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 ( listiptables
tiene un alias iptables -L -v --line-numbers
), y es obvio que --dport
ha 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 -p
opción como -p tcp
o -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 filter
tabla, serían INPUT
, OUTPUT
y FORWARD
cadenas.
La cadena no maneja el reenvío de puertos INPUT
, por lo que no es necesario abrir el puerto en la INPUT
cadena. ÉlhaceSin embargo , déjate manejar por la FORWARD
cadena. Ten cuidado con eso.
Consejo adicional:Al aprender y/o solucionar problemas iptables
, el resultado de iptables-save
es mucho mejor que el resultado de iptables -L -v --line-numbers
. Pruébalo, te sorprenderá gratamente :)