OpenVPN(11)
VPNサーバー側ネットワーク上の他の機器にもアクセスできるようにしたい
あ〜、もうだいぶ忘れてきたぞ。そろそろ、書いている事がどこまで正しいか自信が無くなってきたよぅ。本質的に理解しているわけじゃなくて、試行錯誤した結果何とかなったって事だからねぇ・・・(^^;)。
VPNが開通しても、今のままではVPNサーバーとクライアント間が繋がるだけの1対1の関係でしかありません。クライントからサーバー側ネットワークにフルにアクセスできるようにするには、VPNサーバーがサーバーLAN上の他の機器に対するアクセスも中継してやるように設定しなければなりません。
やるべき事は、
- VPNクライアントに対して、サーバー側LANのIPアドレス(ウチでは
"192.168.1.0/24" )に対するアクセスは VPNサーバーを経由させるようにする。
- サーバー側LANのゲートウェイで、VPNクライアント側IPアドレス(
"10.8.0.0/24" )へはVPNサーバーを経由するように設定する。
- VPNサーバーでIPフォワードとTUN/TAPフォワードを有効にする。
だそうです。
先ず一番目。『VPNクライアントに対して、サーバー側LANのIPアドレス(ウチでは "192.168.1.0/24" )に対するアクセスは VPNサーバーを経由させる。』は、OpenVPNサーバーの設定ファイル "/etc/openvpn/server.conf" を編集して、以下の一行を付け加えます。(と言うか、以下の行のコメントを外して内容を修正する。)
136 : push "route 192.168.1.0 255.255.255.0"
|
次、二番目。サーバー側LANのゲートウェイって、ウチ場合ADSLルーターですよね。と言うことで、ADSLルーターの静的ルーティングを以下のように設定しました。
LAN側で"10.8.0.*" へ向かおうとするパケットは OpenVPNサーバー 192.168.1.128 へ行くようにルーティングしました。
最後、三番目。実はどうすれば良いのか、何もしなくても良いのか?全然分かんないですけど、とりあえず先のWaterRoofを使って、以下のようにフォワーディングを有効にさせてみました。
以上で、何とかできている様子ですので、まぁヨシとしましょう(^^;)。
Mac OS XでIPフォワードを有効にするには、How do I enable IP forwarding?にも書かれているとおり
$ sudo sysctl -w net.inet.ip.forwarding=1
|
とします。ただ、この設定は一過性で Mac OS X を再起動すると元に戻ってしまいます(デフォルトはIPフォワード無効)。
WaterRoof での IPフォワード有効化(Enable Forwarding)は、Mac OS X の起動時に走る"/etc/waterroof.sh" というスクリプト内でファイアウォールの設定と共に上記コマンドを実行してくれます。これにより、再起動してもIPフォワードは有効になるのですが、WaterRoof で「Tools」→「Startup Script」→「Remove Startup Script」で一旦"/etc/waterroof.sh" を削除した後に、再度「Tools」→「Startup Script」→「Install Startup Script」をしたような場合は、IPフォワードを有効にする(Enable Forwarding)のを忘れないよう注意が必要です。
|