Net: 自宅 LAN に PPTP 接続 (VPN)

以下のエントリ、間違っている可能性があります。特に「/etc/pptpd.conf」の設定あたり。

今年のお盆休みのテーマとなった (いつの間に決まった (汗)) 、「自宅へ VPN 接続」ですが、CLUB AIR-EDGE は VPN をサポートしていないという件のエントリの続きで、通常のプロバイダから AIR-EDGE でダイアルアップして PPTP 接続をして成功するかどうか確認してみました。

結果的には、
・クライアントが Windows Mobile 6 Classic → なぜか接続できない。
・クライアントが Windows XP → ソフトウェア圧縮を使用しない設定で接続できた。(ちゃんと LAN 内共有ディスクも接続可能)
でした。

また、プロバイダ回線を利用して WiFiSnap で DMZ に配置した iPod touch から同様に接続してみたところ、認証そのもので失敗したり (成功することもある) 、と不安定でした。
※その後、何度かやってみたところ LAN 内 Web サーバへの接続に成功することもありました。

サーバ側設定手順としては、以下の通りで行いました。
※ OS は Debian GNU/Linux 5.0 lenny を使用。
※ここでは PPTP サーバの IP アドレスを 192.168.62.1 と仮定する。
※ PPTP サーバ名は pptpd とする。
※ PPTP サーバ側には 192.168.62.100 〜 192.168.62.109 を割り当てる。
※ PPTP クライアントには 192.168.64.10 〜 192.168.64.19 を割り当てる。
※ LAN 内 NAS および DNS プロキシ の IP アドレスは 192.168.62.10 と仮定する。

・pptpd をインストール
# apt-get install pptpd

・/etc/pptpd.conf を修正
localip 192.168.62.100-109
remoteip 192.168.64.10-19
※ localip はサーバ自身の IP ではなく、サーバの置いてあるネットワークで割り当てられていない IP アドレスを指定する必要があるようだ。完全に設定を見間違えていた。(2010/01/23 追記)

・/etc/ppp/pptpd-options を修正
name pptpd
ms-dns 192.168.62.10
ms-wins 192.168.62.10
※このあたり、とりあえず指定してみたという感じ。
※また、このファイルでは暗号化などの設定もあるが、今回インストールした Debian GNU/Linux 5.0 lenny の pptpd の設定ファイルでは、デフォルトで最高強度の暗号化が設定されているようだった。

・/etc/ppp/chap-secrets に PPTP 接続するアカウントを設定
ユーザ名 pptpd パスワード *
※上記のような書式で指定する。

・pptpd を再起動
# /etc/init.d/pptpd restart

・iptables のルールに以下を追加。
# iptables -P FORWARD DROP
# iptables -A INPUT -i eth0 -p tcp -d 192.168.62.1 –dport 1723 -j ACCEPT
# iptables -A INPUT -i eth0 -p 47 -d 192.168.62.1 -j ACCEPT
# iptables -A INPUT -i ppp+ -j ACCEPT
# iptables -A FORWARD -i ppp+ -j ACCEPT
# iptables -A FORWARD -i eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT
※必要に応じて、上記の設定が恒常的に有効となるように何らかの方法で設定する。
※私の場合は iptables-save と iptables-restore を利用している。

・/etc/sysctl.conf を修正
net.ipv4.ip_forward = 1
を追加。

・/etc/sysctl.conf の設定内容を有効とする
# sysctl -p

・pptpd への接続制限
お好みに応じて、/etc/hosts.allow, /etc/hosts.deny にて pptpd への接続制限を設定する。

VPN の中では設定項目も少なく簡単と思っていた PPTP だったけれど、ネットワークの状況により一筋縄ではいかないということがわかりました。
あと、セキュリティ的には、接続もと IP を固定したいところだけれど、動的 IP なので無理なのがちょっと不安。

・追記
一応、以下の通り WiFiSnap 経由の iPod touch でも、LAN 内 Web サーバにアクセスできました。でもやっぱり不安定・・・。設定がどこか抜けているのだろうなぁ・・・。

・追記 2
多分不安定の原因は、/etc/pptpd.conf の「localip」と「remoteip」の解釈を間違っていてそのまま設定したのが問題だったみたい。上記の説明では該当部分は訂正してある。

・追記 3 (2012/08/02)
VPNなどで使われる認証プロトコル「MS-CHAPv2」、クラックされる | スラッシュドット・ジャパン セキュリティ」の通り、PPTP で用いられる認証プロトコル、「MS-CHAPv2」がクラックされたとのことですので、この内容での設定については、強く非推奨とします。