debian -- iptables が特定のポートを許可するのに動作しない

debian -- iptables が特定のポートを許可するのに動作しない

私は3つの仮想マシン(A、B、C)を持ち、すべてDebianで動作します。 AとBの間のトラフィックをルーティングするようにCを設定しました。また、Cには2つのインターフェースがあります。enp0s3そしてenp0s8、この場合重要であるかどうかはわかりません。ルーティングがうまく機能しています。

しかし、ポート8080に送信された要求を除くすべての着信要求をブロックするために、ルータにiptablesを設定したいと思います。

私がしたことは次のとおりです。

iptables -P FORWARD DROP
iptables -A FORWARD -p tcp --dport 8080 -j ACCEPT

ただし、Aを使用してAからBのポート(8080を含む)に接続しようとすると、nc {host} {port}入力はAからBに変換されません。

私もこれを試してみましたが、その逆も同じです。

iptables -P FORWARD ACCEPT
iptables -A FORWARD -p tcp ! --dport 8080 -j DROP

しかし、それも動作しません。

出力を確認すると、iptables -L -v一部のパケットがチェーンで許可されますFORWARD

ベストアンサー1

iptables -A FORWARD -p tcp --dport 8080 -j ACCEPT
このルールは、ポート 8080 宛てのすべてのパケットを転送することを許可します。ただし、ポート8080のパケット(SYNパケットへの応答)は、要求がポート8080でも行われない限り転送されません。コメントで述べたように、これは事実ではない可能性が高いです!

2番目のルールが必要です。

iptables -A FORWARD -p tcp --sport 8080 -j ACCEPT

このルールはポート 8080 のすべてのパケット転送を許可します。

提案によると、設定にセキュリティが必要な場合は、ルールにコンピュータのIPアドレスを追加します。これらの2つのルールを使用すると、8080のソースポートを持つ1人が他のポートと通信できます。

だから私の最終規則は次のようになります。

iptables -A FORWARD -p tcp --sport 8080 -s IPOFMACHINEA -j ACCEPT
iptables -A FORWARD -p tcp --dport 8080 -d IPOFMACHINEA -j ACCEPT

iptables -A FORWARD -p tcp --sport 8080 -s IPOFMACHINEB -j ACCEPT
iptables -A FORWARD -p tcp --dport 8080 -d IPOFMACHINEB -j ACCEPT

ipを提供していないので交換する必要があります。

おすすめ記事