Debian iptables

Debian iptables

かなり長い間、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ルールを保存できます。

関連情報