web-dev-qa-db-ja.com

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

私は以下についてアドバイスする記事に出くわしました:

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

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

Iptablesで多くのポートを開く正しい方法はありますか?

59
Paul Whalley

これは正しい方法です:

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

例として。ソース ここ

62
Nathan C

間違ったことを書いたとしても、あなたが言ったことは正しいです(あなたは_--dport_を忘れました)。

_iptables -A INPUT -p tcp --dport 1000:2000_は、インバウンドトラフィックをTCP 1000から2000までのポートに開放します。

_-m multiport --dports_は、開きたい範囲が連続的でない場合にのみ必要です。たとえば、_-m multiport --dports 80,443_は、HTTPおよびHTTPSを開きますonly-間にあるものではありません。

ルールの順序は重要であり、(Iainが他の場所で彼のコメントで言及しているように)追加するすべてのルールが有効になる場所にあることを確認するのはあなたの仕事です。

57
MadHatter

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

フンがあります。

11
BloodMan

Man iptables-extensionsによると、-dportスイッチを使用するだけでポート範囲を定義できます。

tcp
これらの拡張子は、 `--protocol tcp 'が指定されている場合に使用できます。次のオプションがあります。
[!] --destination-port、-dport port [:port]

宛先ポートまたはポート範囲指定。フラグ--dportは、このオプションの便利なエイリアスです。

したがって、これもポート範囲を指定しています:
iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT

0
starvis