光り輝くVPNマーク
前からやってみたいと思っていたVPNサーバをルータ機に整備した。
とりあえず何をどうしたらどうなるのかさっぱりだったのだが、ぼちぼちといじりながらやってみたところ、
1.
ppp_synctty ppp_async ppp_mppe ppp_deflate ppp-generic
辺りのkernelモジュールを作る。
場合によってはppp-filterをYesにしてkernelコンパイルし直し。
2.
pppd、pptpdをパッケージなりソースからビルドするなりしてインストール
3.
設定ファイルをいじる
4.
iptablesでpptpdで使用するポートを開ける
5.pptpd起動
だけでよかったらしい。
よくわかってなかったので他にも無駄に色々やってしまった。
ルーターにしているサーバ(192.168.150.1)でeth0(WAN)、eth1(LAN)という環境で
設定ファイルは以下のとおり。
[/etc/pptpd.conf]
bcrelay eth1
option /etc/ppp/options.pptpd
#debug
localip 192.168.150.1
remoteip 192.168.150.70-80 |
うちのDHCPサーバは192.168.150.100以降をダイナミック用に確保、それ以前をスタティック用に空けているので、その空いている辺りを使うようにremoteipで設定。
[/etc/ppp/options.pptpd]
lock
name pptpd
nodefaultroute
proxyarp
persist
auth
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
nomppe-stateful
ms-dns 1.2.3.4
ms-dns 1.2.3.5
|
iPhoneのスリープ(wi-fi接続切断)時にVPN接続が切れて欲しくない場合は、nomppe-statefulを入れておくと切れないようである。
ただし弊害があるかもではある。
やっぱり切れる。
※VPNの切れる切れないの具合がわかった。
充電中はスリープしてもwi-fiが切れないのでVPNも切れず、ケーブルを外すと省電力モードに入るのでwi-fiが切れてVPNも切れるんですな。
というわけで、基本スリープさせるとVPNは切れる、ということらしい。
ちなみにnomppe-statefulを入れようが入れまいがiPhoneはstatelessで繋がるようである。
ms-dnsは自宅環境のDNSサーバアドレスを指定。
指定しないと名前解決をしてくれないので実質繋がらなくなる。
DHCPが拾ってくるDNS情報は「/etc/resolv.conf」を参照。
[/etc/ppp/chap-secrets]
# Secrets for authentication using CHAP
# client server secret IP addresses
namae pptpd "pasuwa-do" * |
クライアントの名前とパスワード設定。
以上で設定終わり。
/sbin/modprobe ppp_synctty
/sbin/modprobe ppp_async
/sbin/modprobe ppp_mppe
/sbin/modprobe ppp_deflate
/usr/sbin/pptpd -c /etc/pptpd.conf -o /etc/ppp/options.pptpd |
でサーバ起動。
他方、iptablesによる穴あけは、
iptables-A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p 47 -j ACCEPT |
こんな感じで。
あと注意点としては、経由するネットワークアダプタのMTUの設定がある。
変な設定になっていると通信がべらぼーに遅くなる。
うちではeth0のMTUがそのままだとなぜか400だか500になるので、起動時に1500に設定しなおすようにした。
済んだらiPhone側でVPN接続でpptpを選び、サーバアドレス/またはホスト名を入れ、chap-secretsで設定した名前とパスワードを入れて接続するとすんなり繋がった。
VPN接続していると何となくバッテリの減りが速くなる気もする。
要検証。
で、これが何の役に立つのかといえば、外にいながらにして家のLANの中にいるのと一緒になり、かつその家までの通信は暗号化されていて覗かれない。
ということであるが……まあ、24気分が味わえるくらいで、普通の人には取り立てて役に立たなかったりはする。