web-dev-qa-db-ja.com

VPN iptables転送:Net-to-net

このサイトの他の場所を調べようとしましたが、この問題に一致するものは見つかりませんでした。現在、ローカルネットワークとリモートネットワークの間にipsecトンネルを開いています。

現在、トンネルを開いた状態でOpenswan ipsecを実行しているローカルボックスは、リモートipsecボックスおよびリモートネットワーク内の他のコンピューターにpingを実行できます。リモートコンピューターにログオンすると、ローカルネットワーク内の任意のボックスにpingを実行できます。それが機能するものですが、機能しないものです:

ipsecボックス以外のローカルマシンを介してリモートコンピューターにpingを実行することはできません。

これが私たちのネットワークの図です:

[local ipsec box] ----------\
                             \
[arbitrary local computer] --[local gateway/router] -- [internet] -- [remote ipsec box] -- [arbitrary remote computer]

ローカルのipsecボックスと任意のローカルコンピューターには直接の接続はなく、ゲートウェイ/ルーターを介して通信します。ルーターは、ローカルコンピューターからのリモートサブネットの要求をipsecボックスに転送するように設定されています。これは機能します。

問題は、ipsecボックスが何も転送しないことです。

任意のローカルコンピューターがリモートサブネット上の何かにpingを実行すると、次のように応答します。

[user@localhost ~]# ping 172.16.53.12
PING 172.16.53.12 (172.16.53.12) 56(84) bytes of data.
From 10.31.14.16 icmp_seq=1 Destination Host Prohibited
From 10.31.14.16 icmp_seq=2 Destination Host Prohibited
From 10.31.14.16 icmp_seq=3 Destination Host Prohibited

Tracerouteは次のとおりです。

[root@localhost ~]# traceroute 172.16.53.12
traceroute to 172.16.53.12 (172.16.53.12), 30 Hops max, 60 byte packets
 1  router.address.net (10.31.14.1)  0.374 ms  0.566 ms  0.651 ms
 2  10.31.14.16 (10.31.14.16)  2.068 ms  2.081 ms  2.100 ms
 3  10.31.14.16 (10.31.14.16)  2.132 ms !X  2.272 ms !X  2.312 ms !X

これは、到達しているipsecボックスのIPですが、転送されていません。

IPSecボックスで、/ etc/sysctl.conf net.ipv4.ip_forward = 1でIP転送を有効にしました

そして、転送するIPTablesを設定しようとしました。

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [759:71213]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 500 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 4500 -j ACCEPT
-A INPUT -m policy --dir in --pol ipsec -j ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-Host-prohibited
-A FORWARD -s 10.31.14.0/24 -d 172.16.53.0/24 -j ACCEPT
-A FORWARD -m policy --dir in --pol ipsec -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-Host-prohibited
COMMIT

IPTablesにルールがありませんか?忘れたものはありますか?

注:すべてのマシンでCentOS 6.xを実行しています。編集:注2:ローカルipsecボックスのネットワークインターフェイスはeth1のみです。

2
Mike Holler

周りを見回してあなたの提案に従った後、私は自分のアプローチを少し考え直すことにしました、そして非常に痛い間違いに気づきました。 172.16.53.0/24172.16.53.0/28であると想定されています。今では魅力のように機能します。話の教訓:皆さん、サブネットアドレスが正しいことを確認してください!

1
Mike Holler