特定の 2 つのポートを除くすべてのポートを Iptables でローカル IP のみに許可する方法

特定の 2 つのポートを除くすべてのポートを Iptables でローカル IP のみに許可する方法

私は、任意の IP に対して許可されるべき 2 つの特定のポート X と Y を除く、ローカル IP (192.168.2.*) に対してのみ、Debian サーバー上のすべてのポートへの接続を許可する方法を探しています。IP がローカル IP でない場合は、ポート X と Y を除くすべてのポートへの接続はすべてブロックされる必要があります。

Iptables でこの状況をどのように処理すればよいでしょうか?

答え1

よく理解できたか分かりませんが、やり方は次のとおりです。

2 つのポート (X と Y) を除くローカル IP 範囲 192.168.2.0/24 のすべてのポートを許可するには、次のようなルールを使用できます。

iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport X -j DROP
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport Y -j DROP
iptables -A INPUT -s 192.168.2.0/24 -p tcp -j ACCEPT

その他の非ローカル IP については、X と Y への接続のみを許可するには、次を使用できます。

iptables -A INPUT -p tcp --dport X -j ACCEPT
iptables -A INPUT -p tcp --dport Y -j ACCEPT
iptables -A INPUT -p tcp -j DROP

プロトコル (TCP または UDP) を指定していませんが、上記で明らかなように TCP であると想定しています。ルールをこの特定の順序で挿入する必要があり、他の定義済みルールはないものと想定しています。

関連情報