シナリオ:
INTERNET --- VPN-Server <----> ROUTER <----> Roadwarrior <----> Subnet
132.1.1.1 192.168.2.1 192.168.2.50 176.168.10.0/24
|
INTERNET
VPNサーバー:Cisco
Roadwarrior:Linux上のアライグマ
サブネット176.168.10.0/24からのすべてのインターネットトラフィックがルーターではなくVPNサーバーを通過するように、そのシナリオを設定しようとしています。
これまでのところ:Roadwarriorを介してVPNサーバーに接続できます。また、ロードウォリアーで生成されたすべてのトラフィックは、VPNサーバーを通過してインターネットに到達します。ただし、次のコマンドでルーティングされたサブネットからのトラフィックは、インターネットのルーターを通過します。
iptables -t nat -A POSTROUTING -s 176.168.10.0/24 -j SNAT --to-source 192.168.2.50
次のコマンドを使用すると、サブネットからのトラフィックはインターネットに渡されません(ルーター経由でもVPNサーバー経由でも)。
iptables -t nat -A POSTROUTING -s 176.168.10.0/24 -j SNAT --to-source 132.1.2.2 (internal ip assigned to roadwarrior from VPN-Server)
何か案は?
道行く戦士:
eth0 192.168.2.50
eth0:1 132.1.2.2
br0 176.168.10.1
ip route list
default via 192.168.2.1 dev eth0 src 132.1.2.2
132.1.0.0/16 dev eth0 proto kernel scope link src 132.1.2.2
132.1.1.1 via 192.168.2.1 dev eth0
176.168.10.0/24 dev br0 proto kernel scope link src 176.168.10.1
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.50
私はそれを見つけました... phase1-up.shスクリプトには、最後に次の行が含まれています。
44 #
45 # XXX This is a workaround for Linux forward policies problem.
46 # Someone familiar with forward policies please fix this properly.
47 #
48 echo "
49 spddelete 0.0.0.0/0[any] ${INTERNAL_ADDR4}[any] any
50 -P fwd ipsec esp/tunnel/${REMOTE}-${LOCAL}/require;
51 " | setkey -c
52
転送ポリシーが削除されないように、このコードはコメントアウトする必要があります。次に、単純な
iptables -t nat -A POSTROUTING -o $WAN_IP -j MASQUERADE
トリックを行います。