「L2TP/IPsec VPN」の編集履歴(バックアップ)一覧に戻る

L2TP/IPsec VPN - (2013/05/06 (月) 00:28:15) のソース

スマホからの家のPCにリモートアクセス環境を構築したく、ためしにVM上のLinuxを使ってL2TP/IPescのVPN環境を構築してみた。

環境
|No|分類|ソフト|
|01|OS|Ubuntu Server12.10(VirtualBox上のVM)|
|02|IPsec|Openswan|
|03|L2TP|xl2tpd|

** Openswan、xl2tpdのインストール
 以下のコマンドでインストールする。
 途中X.509証明書を使うか聞かれるが、今回は使わないのでNoにした。
 $ sudo apt-get install openswan xl2tpd

** IPsecの設定
 以下のファイルに以下を設定。
*** /etc/ipsec.conf ・・・既存を修正
 version	2.0	# conforms to second version of ipsec.conf specification
 config setup
 	dumpdir=/var/run/pluto/
 	nat_traversal=yes
 	virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v6:fd00::/8,%v6:fe80::/10
	oe=off
	protostack=netkey
 include /etc/ipsec.d/l2tp-psk.conf

***/etc/ipsec.d/l2tp-psk.conf ・・・ipsec.confからinclude 新規作成
 conn L2TP-PSK-NAT
 	rightsubnet=0.0.0.0/0
 	forceencaps=yes
 	also=L2TP-PSK-noNAT
 conn L2TP-PSK-noNAT
 	authby=secret
 	pfs=no
 	auto=add
 	keyingtries=3
 	rekey=no
 	dpddelay=5
 	dpdtimeout=30
 	dpdaction=clear
 	ikelifetime=8h
 	keylife=1h
 	type=transport
 	left=192.168.11.200
 	leftnexthop=%defaultroute
 	leftprotoport=17/%any
 	right=%any
 	rightprotoport=17/%any

***/var/lib/openswan/ipsec.secrets.inc ・・・/etc/ipsec.secretsからincluse 新規作成
 : PSK "事前共有鍵(任意の文字列)"


** L2TPの設定
 以下のファイルに以下を設定。
***/etc/xl2tpd/xl2tpd.conf ・・・既存修正
 [global]								; Global parameters:
 [lns default]							; Our fallthrough LNS definition
 ip range = 192.168.11.100-192.168.11.103	; * Allocate from this IP range 
 local ip = 192.168.11.200				; * Our local IP to use
 length bit = yes
 require chap = yes
 refuse pap = yes
 require authentication = yes
 name = VPN
 ppp debug = yes
 pppoptfile = /etc/ppp/options.l2tpd.lns

***/etc/ppp/options.l2tpd.lns
 asyncmap 0
 auth
 local
 crtscts
 debug
 lock
 proxyarp
 refuse-pap
 refuse-chap
 refuse-mschap
 require-mschap-v2
 logfile /var/log/xl2tpd.log
 lcp-echo-interval 30
 lcp-echo-failure 4
 ms-dns 8.8.8.8             # GoogleのDNSサーバ
 ms-dns 8.8.4.4             # GoogleのDNSサーバ
 本ファイルの設定内容は、「man pppd」で参照できる。
 ms-dnsはクライアントがWindowsのためのオプションのようだが、これを指定しないとVPN接続後にクライアント(今回はAndroidのスマホでためした)がDNSサーバが設定されておらず、ホスト名指定でインターネットに出られなかった。