かなり長い間、VPN内の2つのデバイス間でポートまたは/または接続を転送しようとしましたが、理解できませんでした。外部IPを使用してDebian 9.0 x64にVPSを設定しました。私はgithubでhwdsl2 / setup-ipsec-vpnに基づいてVPNを作成しました。インストールされ、すべてがうまく動作します。 VPNを介してサーバーに接続でき、私のIPアドレスが外部IPに変更されます。
今問題は別の道に行きたいということです。
IncommingIP -> (eth0)ExternalIP - 転送 -> (pppX) VPNIP
私の現在のiptablesは次のとおりです。
# Generated by iptables-save v1.6.0 on Mon Jun 29 10:55:31 2020
*nat
:PREROUTING ACCEPT [21617:1100891]
:INPUT ACCEPT [17101:829091]
:OUTPUT ACCEPT [703:55681]
:POSTROUTING ACCEPT [703:55681]
-A PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination 8.8.8.8
-A PREROUTING -p tcp -m tcp --dport 53 -j DNAT --to-destination 8.8.8.8
-A POSTROUTING -s 192.168.42.0/24 -o eth0 -j MASQUERADE
#-A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.42.10:8080
#-A POSTROUTING -d 192.168.42.10 -o ppp0 -p tcp --dport 8080 -j SNAT --to-source 192.168.42.1
-A PREROUTING --src 0/0 --dst 192.168.42.10 -p tcp --dport 8080 -j REDIRECT --to-ports 8080
COMMIT
# Completed on Mon Jun 29 10:55:31 2020
# Generated by iptables-save v1.6.0 on Mon Jun 29 10:55:31 2020
*filter
:INPUT ACCEPT [16:676]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [221:33480]
:f2b-sshd - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -p udp -m udp --dport 1701 -m policy --dir in --pol none -j DROP
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m multiport --dports 500,4500 -j ACCEPT
-A INPUT -p udp -m udp --dport 1701 -m policy --dir in --pol ipsec -j ACCEPT
-A INPUT -p udp -m udp --dport 1701 -j DROP
PRE/POST パスを試しても機能しないコンテンツが残っています。
フォワードとして機能するには、何を変更する必要があります(例:テスト用ポート8080)。また、VPNネットワーク内で接続できないのはなぜですか? (pingだけが機能します。)括弧内の数字は正確に何ですか?:PREROUTING ACCEPT [21617:1100891]
助けてください
答え1
NATルールが正しくありません。次のことを試してください(IPSec / VPNサーバーをインストールしたばかりです)。
既存のNATチェーンルールを表示(削除前):
$ sudo iptables -t nat -L -n --line-numbers
既存のNATルールを削除します。
$ sudo iptables -t nat -D POSTROUTING 3
次の2つのNATルールが残るまで上記のコマンドを繰り返します。
1 MASQUERADE all -- 192.168.42.0/24 0.0.0.0/0
2 MASQUERADE all -- 192.168.43.0/24 0.0.0.0/0 policy match dir out pol none
TCP 8080
これで、インターネットIP(1.2.3.4
)からVPNクライアントIP(192.168.42.10
)に転送するDNATルールを追加します。
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 8080 -j DNAT --to-destination 192.168.42.10:8080
それはあなたが必要とするすべてです。すべてが大丈夫なら、iptablesルールを保存できます。