iptables erro: opção desconhecida --dport

17

O comando iptables não reconhece mais uma das opções mais usadas ao definir 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 add rule acima é apenas um exemplo para habilitar conexões Terraria.

Aqui está o que eu tenho atualmente como uma configuração de iptables barebones ( listiptables é aliada para iptables -L -v --line-numbers ), e é óbvio que --dport funcionou 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 em esta questão ) para aceitar tcp & conexões udp para que eu não tenha que definir duas regras para tudo o que eu quero para ativar o tcp e udp para (como um servidor Minecraft ou Terraria, ou outro serviço totalmente). 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 palavrões envolvida com isso faria um marinheiro dizer para eu ver minha boca). Meu Google-fu é terrível, então eu ainda não encontrei uma solução funcional para nada disso. Estou executando o CentOS 6.5 no roteador. Qualquer ajuda e ponteiros que vocês possam oferecer seria incrível.

EDITAR:

Pergunta de 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?

    
por Calyo Delphi 22.12.2013 / 19:47

3 respostas

25

Primeiro, forneça uma opção -p como -p tcp ou -p udp .

Exemplos:

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

Você também pode tentar -p all , mas eu nunca fiz isso e não encontrei muito suporte para isso nos exemplos.

    
por 22.12.2013 / 19:58
9

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

-p tcp
    
por 22.12.2013 / 19:53
3

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

iptables -P somente aceita cadeias BUILT-IN. Na tabela filter , isso seria INPUT , OUTPUT e FORWARD cadeias.

O encaminhamento de porta não é tratado pela corrente INPUT , portanto, você não precisa abrir a porta na cadeia INPUT . Ele é gerenciado pela cadeia FORWARD , no entanto. Tenha cuidado com isso.

Dica de bônus: Ao aprender e / ou solucionar problemas iptables , a saída de iptables-save é heads & ombros melhor que a saída de iptables -L -v --line-numbers . Experimente, você ficará agradavelmente surpreso:)

    
por 30.12.2013 / 10:34