↑日記で日々積み重ねた情報をトップの「わんこのページ」にまとめています。

おのたく日記 [RDF] YouTubeも始めました→


2013-02-03(Sun) [長年日記]

[L2TP/IPsec][Debian] L2TP/IPsecサーバを立てる

MyIP

の利用可能な回線」にて、PPTPプロトコルが

・EMOBILE データプランB

・docomo Xi(spモード)

・docomo FOMA(spモード)

では、使えないし、

・Mzone

・mopera

・BBモバイルポイント

・FON

・Freesopt

・au Wifi(livedoor Wireless)

・フレッツ・スポット

は、一番最初の人しか使えないという制限が有ることは知っていたけど、「スマホでリモートアクセス 基礎編:スマホの接続はL2TP/IPsecで、機器やサービスの対応を要確認」によると、実はL2TP/IPsecのNATトラバーサル機能で解決することをしった。


そこで、PPTPサーバを止めてL2TP/IPsecサーバにする。

0.パッケージインストール

必要なDebianパッケージは、xl2tpdパッケージopenswanパッケージ

暗号化は、httpsとかsshで良いからIPsecを行うopenswanはいらないかと思い

きや、iPhoneから接続するときには、L2TPとIPsecはセットなので、両方使い

ます。

1. Sysctrlの設定

# cd /etc/sysctl.d

# ln -s ../ipsec.d/examples/sysctl.conf ipsec.conf

# sysctl -p

2. ファイヤーウォールの設定

ルータの UDP 500番と4500番ポートを空けたり、iptableで

# iptables -A INPUT -p udp -d l2tpserver --dport 500 -j ACCEPT

# iptables -A INPUT -p udp -d l2tpserver --dport 4500 -j ACCEPT

# iptables -A INPUT -p udp -d l2tpserver --dport 1701 -j ACCEPT

したりする。ちなみにespプロトコルは空けないで平気。

3. ipsecの設定

/etc/ipsec.confに

include /etc/ipsec.d/l2tp-psk.conf

[/etc/ipsec.confの最終行より引用]

を足して

conn L2TP-PSK-NAT

rightsubnet=0.0.0.0/0

also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT

forceencaps=yes

authby=secret

pfs=no

auto=add

keyingtries=3

rekey=no

dpddelay=20

dpdtimeout=70

dpdaction=clear

ikelifetime=8h

keylife=1h

type=transport

left=192.168.193.134

leftprotoport=17/1701

right=%any

rightprotoport=17/%any

[/etc/ipsec.d/l2tp-psk.confより引用]

を作る。

dpdtimeoutできめたタイムアウトの時間は、NAT Traversalするplutoプロ

セスが接続を行っているので、再接続できないので注意。

次に、/etc/ipsec.secretsにopenswan (IPsec) の事前共有鍵の設定するために

%any: PSK "PRESHAREDKEY"

[/etc/ipsec.secrets最後の行より引用]

を加える。 "PRESHAREDKEY"はパスワードなので適宜変えてね。

ipsecを再起動してから

# ipsec verify

Checking your system to see if IPsec got installed and started correctly:

Version check and ipsec on-path [OK]

Linux Openswan U2.6.37-g955aaafb-dirty/K3.2.0-4-amd64 (netkey)

Checking for IPsec support in kernel [OK]

SAref kernel support [N/A]

NETKEY: Testing XFRM related proc values [OK]

[OK]

[OK]

Checking that pluto is running [OK]

Pluto listening for IKE on udp 500 [OK]

Pluto listening for NAT-T on udp 4500 [OK]

Two or more interfaces found, checking IP forwarding [OK]

Checking NAT and MASQUERADEing [OK]

Checking for 'ip' command [OK]

Checking /bin/sh is not /bin/dash [WARNING]

Checking for 'iptables' command [OK]

Opportunistic Encryption Support [DISABLED]

とで設定を確認して完成。

ちなみに私の所では自動起動設定されていなかったので

# insserv ipsec

も手で行った。

4. xl2tpd の設定

/etc/xl2tpdの以下の行の「;」を外す

[global] ; Global

[lns default] ; Our fallthroug

ip range = 192.168.0.1-192.168.0.20 ; * Allocate from this IP range

local ip = 192.168.0.21

length bit = yes ; * Use length b

refuse chap = yes

require authentication = yes ; * Require peer to authenticate

name = l2tpd

pppoptfile = /etc/ppp/options.l2tpd.lns

[/etc/xl2tpdより引用]

/etc/ppp/options.l2tpd.lnsを作る

name l2tpd

lock

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

ms-dns 192.168.0.134

nodefaultroute

proxyarp

[/etc/ppp/options.l2tpd.lnsより引用]

/etc/ppp/chap-ecretsに

# client server secret IP addresses

testuser l2tp "password" *

[/etc/ppp/chap-ecretsより引用]

を書き加えて、/etc/init.d/xl2tpd restartで再起動する。

参考: Debian GNU/Linux で L2TP / IPsec を使用する VPN サーバを設定する (サーバ側で NAPT しない場合)

本日のPingbacks(全0件)

Google Web検索 on-o.com内を検索