おのたく日記 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 しない場合)
|