私は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を提供していないので交換する必要があります。