スマホからの家の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サーバが設定されておらず、ホスト名指定でインターネットに出られなかった。