¿Necesito esta línea en mi configuración de iptables para redirecciones?

¿Necesito esta línea en mi configuración de iptables para redirecciones?

Tengo una aplicación escuchando en el puerto 7162 capturas SNMP. Las trampas llegan al puerto 162, así que tengo esta redirección en mis iptables:

-A PREROUTING -p udp -m udp --dport 162 -j REDIRECT --to-ports 7162

¿También necesito permitir explícitamente las conexiones entrantes al puerto 162 con

-A INPUT -p udp -m state --state NEW -m udp --dport 162 -j ACCEPT

A veces funciona solo con la primera línea, a veces no, así que estoy tratando de descubrir por qué podría ser así.

Respuesta1

La primera regla debería ser suficiente, a menos que esté limitando INPUTde alguna manera el acceso al puerto 7162 en la cadena.

De hecho, su paquete UDP ni siquiera debería pasar a través de la INPUTcadena con el puerto de destino configurado en 162, al menos según el siguiente diagrama:https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg

Además, su INPUTregla parece demasiado complicada. UDP es un protocolo sin estado, por lo que se trata de algún tipo de estado dentro del netfilter. Ni siquiera he encontrado documentación adecuada sobre lo que significan esos estados cuando se usan con UDP.

Intente monitorear ambos puertos con tcpdumpel programa en busca de pistas (nota:Si suelta algún paquete en PREROUTINGla cadena, tcpdump no lo verá.solo puede ver el paquete entrante en el puerto 162, incluso escuchar en bucle no revelará la redirección).

Editar:No estás probando la regla con conexiones dentro de una sola máquina, ¿verdad? PREROUTINGno se atraviesa en conexiones solo de host local.

información relacionada