Iptablesでポートの範囲を開く正しい方法は何ですか

Iptablesでポートの範囲を開く正しい方法は何ですか

次のようなアドバイスをしている記事を目にしました。

iptables -A INPUT -p tcp 1000:2000 -j ACCEPT

また、上記は機能せず、iptables はオプションを使用して複数のポート宣言のみをサポートすると述べている人もいます--multiport

iptables を使用して多数のポートを開く正しい方法はありますか?

答え1

正しい方法は次のとおりです:

iptables -A INPUT -p tcp --match multiport --dports 1024:3000 -j ACCEPT

例として。出典ここ

答え2

あなたが言われたことは正しいのですが、あなたがそれを間違って書いています(忘れています--dport)。

iptables -A INPUT -p tcp --dport 1000:2000TCP ポート 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サービスを再起動します

関連情報