IPおよびポート範囲を持つiptableルールからポートを持つ特定のIPを除外する

IPおよびポート範囲を持つiptableルールからポートを持つ特定のIPを除外する

IP 範囲 172.16.0.1 ~ 172.16.0.120 (ポート範囲 20-8081) に対するすべての要求をポート 22215 でリッスンする localhost サービスにリダイレクトする iptable ルールを作成するのに役立ちますが、このルールはポート 443 .0.111 で IP 172.16をキャプチャしないでください(例:172.16.0.111:443はインターネットから直接アクセスできる必要があります)。

iptables -t nat -A OUTPUT -p tcp --match multiport --dport 20:8081 -m iprange --dst-range 172.16.0.1-172.16.0.120 -j DNAT --to-destination 127.0.0.1:22215
iptables -t filter -A INPUT -p tcp --match multiport --dport 20:8081 -m iprange --dst-range 172.16.0.1-172.16.0.120 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 20:8081 -m iprange --dst-range 172.16.0.1-172.16.0.120 -j ACCEPT

上記のルールを適用すると、上記の範囲のIPとポートを持つすべての要求が127.0.0.1:22215にリダイレクトされます。しかし、ポート443を使用してIP 172.16.0.111を除外する方法はわかりません。

ベストアンサー1

ファイアウォールルールは上から下に処理されます。上部には特定の規則を配置し、下部には一般規則(包括規則)を配置します。何をしても、172.16.0.111:443そのルールは一番上になければなりません(公開された3つのルールの前)。

iptables -I INPUT --src 172.16.0.111 -p tcp --dport 443 -j ACCEPT
iptables -I OUTPUT --src 172.16.0.111 ACCEPT
iptables -t nat -A OUTPUT -p tcp --match multiport --dport 20:8081 -m iprange --dst-range 172.16.0.1-172.16.0.120 -j DNAT --to-destination 127.0.0.1:22215
iptables -t filter -A INPUT -p tcp --match multiport --dport 20:8081 -m iprange --dst-range 172.16.0.1-172.16.0.120 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 20:8081 -m iprange --dst-range 172.16.0.1-172.16.0.120 -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

注:送信元または宛先のポート番号を指定して、ルール#2を強化できます。

おすすめ記事