OpenVPNサーバーのiptablesについて
OpenVPNで、サーバー側のネットワークにあるその他のPCにクライアント側から接続する方法
クライアント側ネットワーク 192.168.123.0/255.255.255.0
サーバー側ネットワーク 192.168.11.0/255.255.255.0
OpenVPNネットワーク 10.8.0.0/255.255.255.0
OpenVPNサーバーが192.168.11.9の場合、
OpenVPNサーバー内において、
/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -d 192.168.11.0/24 -j SNAT –to-source 192.168.11.9
これで192.168.123.13から192.168.11.3などに接続出来るようになる。
pingも通ることを確認する。
:追記:
この手法だと、OpenVPNサーバー側のLAN内PCが正常にルーティング出来なくなるようである。
そのため、この手法は使用せず、
OpenVPNサーバー側のLAN内のサーバー
で、
[Linux]
route add -net 10.8.0.0 mask 255.255.255.0 gw 192.168.11.9(OpenVPNサーバー)
[Windows]
route add 10.8.0.0 mask 255.255.255.0 192.168.11.9
とする。
:追記:
route add でのルーティングはいまいち上手くいかない。
server.conf
で
push “route 192.168.11.0 255.255.255.0"
をすると、元々192.168.11.0/24にいるPC群は全て192.168.11.9を利用しようとするからかもしれない。
従って、OpenVPNを利用して接続する場合は条件付けを行う必要がある。
外部PC ————————– ルーター —— OpenVPNサーバー ——— その他サーバー
(OpenVPNクライアント) 121.1.253.153 192.168.11.9 192.168.11.24
202.222.19.99 192.168.11.1
192.168.123.13
OpenVPNサーバーのserver.confでは
push “route 192.168.11.0 255.255.255.0"
として、OpenVPN側のローカルLANのネットワークを教える。
さらに
/sbin/iptablesでルーティングを行う(上述を参照)。
こうすると、
外部PCから192.168.11.24にpingを送ることが可能。
ただし、その他サーバーはOpenVPNサーバーに対してVPN接続することは出来ない。
これを行うとネットワークがうまくいかなくなる。
おそらくだが、OpenVPNを起動していると10.8.0.1と192.168.11.1のどちらに送るのか保証出来ないからでは?
※OpenVPNサーバー内でさらにルーティングして外に出るようにすれば問題無いのかもしれないが。
つまり、OpenVPN側LANではVPN接続するとインターネットが出来なくなるので注意。
ということ。
OpenVPNはあくまで外部ネットワークから社内LANにアクセスする場合にのみ使用せよ。ということ。
2007/08/18
古いサーバー(RedHat)などに入れてOpenVPNを構築すると、
すぐにタイムアウトしてしまったり、ルーティングがうまくいかなかったりする。
もしかしたらルーターの問題かもしれないが、これは要調査が必要。
ディスカッション
コメント一覧
まだ、コメントがありません