web-dev-qa-db-ja.com

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

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.

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

これが私が現在持っている素朴なiptables設定です(listiptablesiptables -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を有効にするすべての2つのルールを定義する必要がないように、tcpとudpの接続を受け入れるカスタムチェーン( この質問 に触発された)を定義しようとしていますfor(MinecraftやTerrariaサーバーなど、完全に別のサービス)。しかし、これでもうまくいきません:

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

これは、丁寧に言えば非常にイライラするようになっています(これに関係する口調の量は、船員に私の口を見るように言うでしょう)。私のグーグルフーはひどいので、これのいずれかのための実用的な解決策をまだ見つけていません。 CentOS 6.5をルーターで実行しています。あなたたちが提供できるどんな助けと指針も素晴らしいでしょう。

編集:

おまけの質問:ポート転送も構成する予定です。特定のポートを介した着信接続を受け入れるルールを設定する必要はありますか?

19
Calyo Delphi

最初に-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しかし、私はそれを行ったことは一度もありませんし、例ではそれに対するサポートが多すぎません。

32
dmourati

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

-p tcp
9
Diego Woitasen

@dmouratiと@diegowsは最初の質問にすでに回答しているので、2番目の質問に取り組みます。そしておまけの質問。そして、私もボーナスのヒントを投げます;)

iptables -Ponly BUILT-INチェーンを受け入れます。 filterテーブルでは、INPUTOUTPUT、およびFORWARDチェーンになります。

ポート転送はINPUTチェーンによって処理されないため、INPUTチェーンでポートを開く必要はありません。ただしdoesFORWARDチェーンによって処理されます。そのことに注意してください。

ボーナスヒント:iptablesを学習またはトラブルシューティングする場合、iptables-saveの出力はiptables -L -v --line-numbersの出力よりも優れています。それを試してみてください、あなたは嬉しいことに驚くでしょう:)

3
pepoluan