erro iptables: opção desconhecida --dport

erro iptables: opção desconhecida --dport

O comando iptables não reconhece mais uma das opções mais utilizadas na definição de regras: --dport.

Eu recebo este erro:

[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.

O comando adicionar regra acima é apenas um exemplo para habilitar conexões Terraria.

Aqui está o que tenho atualmente como configuração barebones do iptables ( listiptablesé alias de iptables -L -v --line-numbers) e é óbvio que --dportfuncionou no passado:

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            

Também estou tentando definir uma cadeia personalizada (inspirada emessa questão) para aceitar conexões tcp e udp para que eu não precise definir duas regras para tudo o que desejo ativar tcp e udp (como um servidor Minecraft ou Terraria, ou outro serviço inteiramente). Mas mesmo isso não funciona:

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

Isso está ficando muito frustrante, em termos educados (a quantidade de xingamentos envolvidos nisso faria um marinheiro me dizer para tomar cuidado com a boca). Meu Google-fu é terrível, então ainda não encontrei uma solução funcional para nada disso. Estou executando o CentOS 6.5 no roteador. Qualquer ajuda e dicas que vocês possam oferecer seriam incríveis.

EDITAR:

Pergunta bônus: também estou planejando configurar o encaminhamento de porta. Ainda é necessário definir regras para aceitar conexões de entrada em portas específicas?

Responder1

Primeiro dê uma -popção como -p tcpou -p udp.

Exemplos:

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

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

Você também pode tentar, -p allmas nunca fiz isso e não encontro muito suporte nos exemplos.

Responder2

Outra solução possível é que você está esquecendo de executar como root. Acabei de me deparar com isso ao usar o tutorial do debian

$ iptables -t nat -p tcp -I PREROUTING --src 0/0 --dst 127.0.0.1  --dport 80 -j REDIRECT --to-ports 8080
iptables v1.8.2 (nf_tables): unknown option "--dport"
$ sudo iptables -t nat -p tcp -I PREROUTING --src 0/0 --dst 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080
# OK

Responder3

O protocolo (-p) é necessário se você usar --dport. Exemplo:

-p tcp

Responder4

@dmourati e @diegows já responderam sua primeira pergunta, então abordarei sua segunda pergunta. E pergunta bônus. E também vou dar uma dica bônus ;)

iptables -P apenasaceita cadeias BUILT-IN. Na filtertabela, seriam INPUT, OUTPUTe FORWARDcadeias.

O encaminhamento de porta não é controlado pela INPUTcadeia, portanto você não precisa abrir a porta na INPUTcadeia. Istofazser manipulado pela FORWARDcorrente, no entanto. Tenha cuidado com isso.

Dica bônus:Ao aprender e/ou solucionar problemas iptables, o resultado de iptables-saveé melhor do que o resultado de iptables -L -v --line-numbers. Experimente, você ficará agradavelmente surpreso :)

informação relacionada