Serversman@VPSの2014年夏のアップデートがいいかも

8月初めに予告メールが届いていたServersman@VPSのアップデートが、
2014年9月某日、やっと私のvpsにも実施されました。
カーネルバージョン(“uname -a”の結果)は

Linux dti-vps-srv725 2.6.32-042stab079.5 #1 SMP Fri Aug 2 17:16:15 MSK 2013 i686 GNU/Linux

から

Linux dti-vps-srv725 2.6.32-042stab092.2 #1 SMP Tue Jul 8 10:35:55 MSK 2014 i686 GNU/Linux

へと微妙な更新ですが、中身はすごかった。

ちょっとした冗談のつもりで、Android4.4からPPTPでVPN接続したところ、
何とつながるではありませんか!
vps、androidの両側でifconfigを見ると確かにつながってそうですし、
実際vpn内でpingが通ります。
ついでにiPhone4S(iOS6)からも接続できることを確認しました。
以前書きましたが
過去Seversman@VPSではカーネルがPPPに非対応でPPTPはできませんでした。
今回めでたくPPP対応を果たしたようです。”/dev/ppp”は動いています!!

もしやということで

# iptables -t nat -A POSTROUTING -s <VPN網のネットワークアドレス>/<VPN網のサブネットマスクビット数> -o venet0 -j MASQUERADE

を実行してみると、
昔はMASQUERADEターゲットがないとかエラーが出ていた記憶がありますが、
今回は通ったっぽい。

# iptables-save

で設定内容を確認すると

-A POSTROUTING -s ***.***.***.***/** -o venet0 -j MASQUERADE

の文字がはっきり見えます(*は伏せ字)。
で、実際に中継するのかを実際に試してみました。
vpsで

# echo 1 > /proc/sys/net/ipv4/ip_forward

した上でMacからvpn接続してみます。
[システム環境設定]アプリケーションの[ネットワーク]で[+]をクリックし、
[インターフェイス]を”VPN”、[VPNタイプ]を”PPTP”として[作成]をクリックします。
[サーバアドレス]にvps、[アカウント名]を作成済みのものを指定し、
[接続]をクリックした後にそのアカウントのパスワードを入力します。
これでAndroidやiPhoneからと同様にPPTPにてvpnが張れました。
ここまでは単なる追加確認に過ぎません。

とりあえず適当な外部サーバを決めてそのIPアドレスを調べると
“173.***.***.***”(*は伏せ字)だったので、

$ traceroute 173.***.***.***

を実行したところ、契約しているISP経由で通信していることが確認できます。
今度は

# route add -net 173.0.0.0/8 <vpnサーバのIPアドレス>

を実行した後にもう一度tracerouteしてみると、
経路がvps+DTIを通っています。
一応

# netstat -rn

でルーティングテーブルを確認すると指定通りになっています。
Serversman@VPSはiptablesのMASQUERADEに対応しました!!!

別のvpsに乗り換えようか考えたこともありましたが、
同時起動プロセス数の増加の件といい、
Seversman@VPSは結構ユーザの希望を叶えてくれます。
待っていた甲斐がありました。

ところでPPPとMASQUERADEって今回からの対応ですよね?
もしかして以前から対応していたのを私が見逃していたとか?