2009.02.24
L2TPでVPN接続
PPTPよりセキュリティの強いL2TPにチャレンジ。
OSはFedora8(i386)を使用してます。
1.IPsecのインストール
2.l2tpdのインストール
3.サービス起動
4.Windows XPを使っている場合の注意点
1.IPsecのインストール
L2TPはトンネルを作成するプロトコルでPPTPとは違い暗号化までは行われない。
そこでIPレベルでの暗号化を行うためIPsecをインストールします。
ここではopenswanを使用します。
http://www.openswan.org/
また、事前共有鍵方式と証明書方式があるが、ここでは事前共有鍵方式を使う。
とりあえずインストール。
# yum install openswan
設定ファイルをサンプルからコピー。
特に修正必要なし。
# cp /etc/ipsec.d/examples/l2tp-psk.conf /etc/ipsec.d/
事前共有鍵の作成。
/etc/ipsec.d/l2tp-psk.secrets
# vi /etc/ipsec.d/l2tp-psk.secrets
以下を入力。
: PSK "pre-shared-key"
2.l2tpdのインストール
実際にトンネルをはるプロトコル。
第2層のデータリンク層らしい。
ここではxl2tpdを使用する。
# yum install xl2tpd
ちなみにこのxl2tpdをCentOS5.2にインストールしようとしたところ
rpmはなくソースから適用しようとするとkernel2.6.23以上を求められた。
CentOS5.2のkernelは2.6.18である。面倒なので挫折。
L2TPの設定ファイルを編集。
/etc/xl2tpd/xl2tpd.conf
# vi /etc/xl2tpd/xl2tpd.conf
以下の内容を修正。
ここでは
サーバIP:192.168.0.1
割り当てIP:192.168.0.101-192.168.0.254
としているが、各自のネットワークを考慮して割り当ててください。
ip range = 192.168.0.101-192.168.0.254 local ip = 192.168.0.1
PPPの設定ファイルを編集。
/etc/ppp/options.xl2tpd
# vi /etc/ppp/options.xl2tpd
接続PCに割り当てるDNSとWINSを指定。
今回DNSはL2TPサーバ自身。WINSはなし。
ms-dns 192.168.0.1
また、同ファイルに以下を追加。
認証はmschap-v2を使えという指示。
refuse-pap refuse-chap refuse-mschap require-mschap-v2 logfile /var/log/xl2tpd.l2tp-ipsec.log
VPNアクセスユーザアカウントの定義を作成。
/etc/ppp/chap-secrets
# vi /etc/ppp/chap-secrets
アカウントを追加。
ユーザ名 * パスワード *
こんな感じです。
3.サービス起動
サービスの登録と起動。
# chkconfig xl2tpd on # chkconfig ipsec on # /etc/init.d/xl2tpd start # /etc/init.d/ipsec start
4.Windows XPを使っている場合の注意点
WindowsXP SP2ではL2TP/IPsecをNAT越しに利用できないようになっています。
これを利用できるようにするためレジストリの変更が必要となります。
regedit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPsec の中に "AssumeUDPEncapsulationContextOnSendRule" というDWORD値を作り、値に"2"を設定する。
詳しくはMicrosoftのページへhttp://support.microsoft.com/kb/885407/jaへ。
以上でサービスの構築は終了です。
WindowsXPなどのクライアントから接続してみてください。
ルーティングなどに関してはPPTPdの構築記をご参照あれ。