OpenVPN設定完了、もしくはtcpdump最強

Pocket

VPNいいっすよ、VPN。

以前自宅サーバを運用していた関係で、プロバイダの契約が固定IPアドレスになってまして。せっかくだからと、残っていたサーバを使ってVPNサーバを立てたんです。当初は自宅LANにアクセスできればいいかな、程度に思っていたのですが、やはりVPNの醍醐味はセキュアな通信とIPアドレス詐称変換。要するに、外部から暗号化通信でVPNサーバに接続して、そこから別のアドレスでインターネットにアクセスする、というもの。これでどんな国に飛ばされても安心して日本のネットワークに接続できる!(笑) というわけなのです。

そういうわけで、自宅サーバにOpenVPNを導入して、iPhoneにOpenVPN Connectをインストールして、とやっていたのですが、自宅LANには到達できるものの、そこから先のインターネットに出ることができません。VPN クライアントからpingを飛ばすとサーバから先のネットワークに出られない(Destination Net Unreachable)。何だろう、ルーティングの問題なんだろうか……と悩むこと約3日。Google先生を最大限に使って似たような事象がないか、 何か原因を突き止めるきっかけがないかと探したんですが、どれも空振り。さて困った。

で、使えないかなー、と今まで思っていながら 見送っていた最後の手段……というか、使い慣れてなかったので使わなかった手段、tcpdumpに頼ることにしました。というか、トンネルデバイス (tun0)にtcpdumpって使えるんだっけ? と半信半疑で使ってみたんですが、ちゃんと使えるんですねー、これが。意外でした。

結 果、通信できない原因があっさりと判明。ルーティングの問題かと思いきや、VPNサーバへと戻ってくるパケットがrejectされてました。つまり、 iptablesの設定の問題だったのです。具体的に言うと、VPNで構成していたアドレス空間(10.8.0.0/24)をソースとするパケットを forwardせずにrejectしていたのが原因だったのです。よくよく見たら、ご丁寧にルールから漏れたパケットをrejectするように自分で設定 していたという……わかってしまえば、何だかなぁ、というオチでした。

というわけで、iptablesのルールを書き換えて一件落 着。我がiPhoneはどんな盗聴にも負けないネットワーク端末になりましたとさ。めでたし。にしても、tcpdumpは便利ですね。ネットワーク障害の 解析にはもってこいです。使いこなせばもっと強力なツールになりそうなので、これからも頼りにしたいと思います。

つーか、仕事で使える技って、全部趣味で身につけてるのな、自分(笑)。ま、好きじゃなきゃサーバエンジニアなんてやってられませんけどね。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)