Error de iptables: opción desconocida --dport

Error de iptables: opción desconocida --dport

El comando iptables ya no reconoce una de las opciones más utilizadas al definir reglas: --dport.

Recibo este error:

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

El comando Agregar regla anterior es solo un ejemplo para habilitar conexiones Terraria.

Esto es lo que tengo actualmente como configuración básica de iptables ( listiptablestiene un alias iptables -L -v --line-numbers), y es obvio que --dportha funcionado en el pasado:

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            

También estoy tratando de definir una cadena personalizada (inspirada enesta pregunta) para aceptar conexiones tcp y udp para no tener que definir dos reglas para todo lo que quiero habilitar tcp y udp (como un servidor Minecraft o Terraria, u otro servicio completamente). Pero ni siquiera esto funciona:

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

Esto se está volviendo muy frustrante, en términos educados (la cantidad de malas palabras involucradas en esto haría que un marinero me dijera que tenga cuidado con mi boca). Mi Google-fu es terrible, por lo que todavía tengo que encontrar una solución que funcione para todo esto. Estoy ejecutando CentOS 6.5 en el enrutador. Cualquier ayuda y consejo que puedan ofrecernos sería fantástico.

EDITAR:

Pregunta adicional: también planeo configurar el reenvío de puertos. ¿Aún es necesario establecer reglas para aceptar conexiones entrantes a través de puertos específicos?

Respuesta1

Primero da una -popción como -p tcpo -p udp.

Ejemplos:

iptables -A ENTRADA -p tcp --dport 22 -m estado --estado NUEVO -j DROP

iptables -A ENTRADA -p udp --dport 53 --sport 1024:65535 -j ACEPTAR

También puedes intentarlo -p all, pero nunca lo he hecho y no encuentro mucho apoyo en los ejemplos.

Respuesta2

Otra posible solución es que te olvides de ejecutar como root. Me encontré con esto cuando usaba el tutorial de 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

Respuesta3

Se requiere el protocolo (-p) si usa --dport. Ejemplo:

-p tcp

Respuesta4

@dmourati y @diegows ya respondieron tu primera pregunta, así que abordaré tu segunda pregunta. Y pregunta extra. Y también daré un consejo extra;)

iptables -P soloAcepta cadenas INTEGRADAS. En la filtertabla, serían INPUT, OUTPUTy FORWARDcadenas.

La cadena no maneja el reenvío de puertos INPUT, por lo que no es necesario abrir el puerto en la INPUTcadena. ÉlhaceSin embargo , déjate manejar por la FORWARDcadena. Ten cuidado con eso.

Consejo adicional:Al aprender y/o solucionar problemas iptables, el resultado de iptables-savees mucho mejor que el resultado de iptables -L -v --line-numbers. Pruébalo, te sorprenderá gratamente :)

información relacionada