次のようなアドバイスをしている記事を目にしました。
iptables -A INPUT -p tcp 1000:2000 -j ACCEPT
また、上記は機能せず、iptables はオプションを使用して複数のポート宣言のみをサポートすると述べている人もいます--multiport
。
iptables を使用して多数のポートを開く正しい方法はありますか?
答え1
答え2
あなたが言われたことは正しいのですが、あなたがそれを間違って書いています(忘れています--dport
)。
iptables -A INPUT -p tcp --dport 1000:2000
TCP ポート 1000 から 2000 までの受信トラフィックが開かれます。
-m multiport --dports
開きたい範囲が連続していない場合にのみ必要です。たとえば-m multiport --dports 80,443
、HTTPとHTTPSを開きます。のみ- 中間のものではありません。
ルールの順序は重要であることに注意してください。また、(Iain が他のコメントで言及しているように) 追加したルールが効果を発揮する場所にあることを確認するのはあなたの仕事です。
答え3
TL;DRですが...
マルチポートモジュールなしの純粋なポート範囲:
iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT
同等のマルチポートの例:
iptables -A INPUT -p tcp -m multiport --dports 1000:2000 -j ACCEPT
...そして、複数の範囲を持つ複数のポートのバリエーション(はい、これも可能です):
iptables -A INPUT -p tcp -m multiport --dports 1000,1001,1002:1500,1501:2000 -j ACCEPT
...および否定を伴う同等のマルチポート マルチ範囲の例:
iptables -A INPUT -p tcp -m multiport ! --dports 0:999,2001:65535 -j ACCEPT
楽しんでください。
答え4
Iptables ファイルに直接エントリを追加する別の方法もあります。場所/etc/sysconfig/iptables
-A INPUT -p tcp -m multiport --dports 1024:3000 -m state --state NEW -j ACCEPT
その後、iptableサービスを再起動します