iptablesエラー:不明なオプション--dport


19

コマンドiptablesは、ルールを定義するときに最も一般的に使用されるオプションの1つを認識しなくなりました--dport

私はこのエラーを受け取ります:

[root@dragonweyr /home/calyodelphi]# iptables -A INPUT --dport 7777 -j ACCEPT_TCP_UDP
iptables v1.4.7: unknown option `--dport'
Try `iptables -h' or 'iptables --help' for more information.

上記のルールの追加コマンドは、Terraria接続を有効にするための単なる例です。

ここに私がベアボーンiptables構成として現在持っているもの(listiptables別名iptables -L -v --line-numbers)があり--dport、過去に機能していたことは明らかです:

root@dragonweyr /home/calyodelphi]# listiptables 
Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       39  4368 ACCEPT     all  --  lo     any     anywhere             anywhere            
2      114 10257 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
3        1    64 ACCEPT     tcp  --  eth1   any     anywhere             anywhere            tcp dpt:EtherNet/IP-1 
4       72 11610 ACCEPT     all  --  eth1   any     anywhere             anywhere            

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 91 packets, 10045 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain ACCEPT_TCP_UDP (0 references)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            

また、tcpとudp接続を許可するカスタムチェーン(この質問に触発された)を定義して、tcpとudpを有効にするすべてのもの(MinecraftやTerrariaサーバー、または完全に別のサービス)。しかし、これでも機能しません:

[root@dragonweyr /home/calyodelphi]# iptables -P ACCEPT_TCP_UDP DROP
iptables: Bad built-in chain name.

これは丁寧な言葉で非常にイライラするようになっています(これに関係する量が多いため、船乗りに私の口を見るように言われます)。私のGoogle-fuはひどいので、これに対する有効な解決策はまだ見つかりません。ルーターでCentOS 6.5を実行しています。皆さんが提供できるヘルプやポインターは素晴らしいものです。

編集:

ボーナスの質問:ポートフォワーディングも構成する予定です。特定のポートを介した着信接続を受け入れるルールを設定する必要はありますか?

回答:


27

最初にまたはの-pようなオプションを指定します。 -p tcp-p udp

例:

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j DROP

iptables -A INPUT -p udp --dport 53 --sport 1024:65535 -j ACCEPT

試してみることもできますが-p all、私はそれをやったことがなく、例でそれをあまりサポートしていません。


1
私はこれを試してみましたが-p all、まったく同じエラーが発生しました。unknown option --dport。それ-p tcpはうまくいきましたが、それは同じ問題につながるので、この場合は本当に助けにはなりません:すべての個々のtcp / udpルールを定義する。
カリオデルファイ

私の経験からallすると、ポートの指定での使用は機能しませんでした。ただし、異なるプロトコルに対して複数のルールを設定する代わりに、異なる方向のルールについて考えることができます。プロトコルに基づいてルールを作成し、multiportsオプションを使用していくつかのルールをグループ化します。
canadmos

だから、TerrariaとMinecraftの接続を有効にする場合、マルチポートを使用して7777と25565を開き、ポートの各ペアに対してTCPとUDPルールを作成できますか?
カリオデルファイ

3
-pのオプションは、ポートの概念を持つ単一のプロトコルである必要があります(-p ICMP --dport whatever明らかな理由により、どちらも機能しません)。
ファルコンモモット

9

--dportを使用する場合は、プロトコル(-p)が必要です。例:

-p tcp

さらに、@ FalconMomotが以前のコメントで指摘したように、ポートの概念を持つプロトコルを指定する必要があります。
CVn

その詳細については、あなたは正しいです:)
ディエゴWoitasen

3

@dmouratiと@diegowsはすでにあなたの最初の質問に答えていたので、2番目の質問に取り組みます。そしてボーナス質問。そして、私もボーナスチップを投げます;)

iptables -P 組み込みチェーンのみを受け入れます。ではfilter、テーブル、それは次のようになりINPUTOUTPUT、およびFORWARDチェーン。

ポート転送はINPUTチェーンによって処理されないため、チェーン内のポートを開く必要はありませんINPUT。それはないが取り扱うますFORWARDけれども、チェーン。そのことに注意してください。

おまけのヒント:学習やトラブルシューティングを行うiptables場合、の出力はの出力iptables-saveよりも頭と肩の方が優れていますiptables -L -v --line-numbers。それを試してみてください、あなたはうれしい驚きでしょう:)


+1で良い答えが得られますが、最後のコメントには少し驚いています。出力から問題を診断するのは嫌いです。なぜあなたはそれよりも良いと思いますか?iptables-saveiptables -L -n -v [--line-numbers]
MadHatterは、モニカをサポートします

@MadHatterの簡単な例:--dportオプションを含むルールが実際-p tcpに前にあることが簡単にわかります。また、ルール処理が組み込みチェーン(例:INPUT)からカスタムチェーン(例:ACCEPT_TCP_UDP)にどのように/いつジャンプするかを確認することもできます。これらの2つの重要な情報は、の出力には表示されませんiptables -L -n
ペポルアン

3
別の利点:vimを使用してiptables-save > somefile編集somefileし、それiptables-apply -t 600 somefileをテストすることができます。不注意で自分をブロックした場合、600秒後にルールが元に戻ります。
ペポルアン

ボーナスのヒントは非常に高く評価されており、すでに使用されています。iptables-saveこの質問をする前に、未加工の構成ダンプから学習するために使用していました。FORWARDただし、チェーンがポートフォワーディングに注意を払う必要がある場所になるとは思っていませんでした。私はそれについて読む必要があります。
カリオデルファイ14年

@CalyoDelphi「netfilter packet flow diagram」を検索すると、すべてのテーブルとチェーンが適用される場所が表示されます;-)
pepoluan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.