PPTPサーバ作成
今回の動機
2chユーザにとってiPhoneってかなり使いやすい閲覧デバイスだと思うんですが、最近ではiPhoneの書き込み規制が尋常じゃなく使い物になりません。私もp2とか●とか買って書き込めるようにしようか迷いましたけど、「iPhoneを自宅にVPNでログインして書き込めばいいんじゃね?」って気付きました。
iPhoneが接続可能なVPNの種類は「L2TP」「PPTP」「IPSec」の3種類。今まで自宅サーバには「L2動作で汎用性が高い」&「全ての通信がTCP/UDPに乗るのでNAT超えが楽チン」という理由から「OpenVPN」を仕込ませていましたがiPhoneからはどう足掻いても使えないっぽいです。
なので今回はLinkStation(LS-XHL)に比較的簡単に導入できる「pptpd(PPTP)」をインストールして、iPhoneから利用できるようにしてみようと思います。
作業手順
すんなり行けば簡単に設定できるはずなので、あんまり詳しくは説明しません。というか後で自分で思い出すためのメモ用です。
LinkStation(LS-XHL)の準備
まだdebian化してない場合はKirkwood Hack Blogさんのエントリを参考に環境を構築してください
pptpdのインストール
sudo apt-get install pptpd
pptpd設定ファイル(/etc/pptpd.conf)の内容
option /etc/ppp/options.pptpd localip 192.168.1.201-210 remoteip 192.168.1.211-220
localipはpptpdの居るネットワークと同じIPアドレスを指定、remoteipはPPTPで接続する側に割り当てられるアドレスを指定します。両方ともDHCPで配られない範囲のアドレスを指定します。
pptpdオプションファイル(/etc/ppp/options.pptpd)の内容
lock nodefaultroute name godmelon-pptp auth proxyarp refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 ms-dns 192.168.1.1 #ms-wins 192.168.1.1 debug nobsdcomp novj novjccomp logfile /var/log/pptpd.log
必ずmschap-v2で認証し、mppe-128で通信暗号化するように指定します。(これ以外の方式は脆弱性が高いらしいです)
認証ユーザ設定ファイル(/etc/ppp/chap-secrets)の内容
user * "passwd" *
↑は見本なので実際は、userの文字列を「ユーザ名」に、passwdの文字列を「パスワード」に変えます。
必要なモジュールを読み込ませる(/etc/modules)
bridge ipv6 tun ecb pcbc ppp_generic ppp_deflate ppp_async ppp_mppe ppp_synctty alias ppp-compress-18 ppp_mppe alias ppp-compress-21 bsd_comp alias ppp-compress-24 ppp_deflate alias ppp-compress-26 ppp_deflate
bridgeとかtunとかはOpenVPN用なので要らないと思います。
再起動
ここまでできたら一旦再起動します。正常に動作しているなら、
netstat -tul tcp 0 0 *:1723 *:* LISTEN
TCP1723番で待機して、
lsmod Module Size Used by ppp_synctty 8096 0 ppp_mppe 6916 0 ppp_async 9632 0 crc_ccitt 1728 1 ppp_async ppp_deflate 5248 0 ppp_generic 24148 4 ppp_synctty,ppp_mppe,ppp_async,ppp_deflate slhc 5760 1 ppp_generic pcbc 4576 0 ecb 2944 0 tun 9056 0 ipv6 262500 26 bridge 44054 0 llc 5876 1 bridge mvsdmmc 12484 0
ppp_mppeモジュールまで有効化されている事が確認できるはずです。
ブロードバンドルータの設定
今までの設定でpptpdを動作させると、VPN通信のためにTCPの1723番とGREプロトコルを使います。ブロードバンドルータの設定で「TCPの1723番をポートフォワード」、「VPNパススルー」の2点を有効化します。