¿Cuál es la diferencia práctica entre:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
y
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
¿Cuál es el mejor para usar?
Gracias.
¿Cuál es la diferencia práctica entre:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
y
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
¿Cuál es el mejor para usar?
Gracias.
Respuestas:
Ambos utilizan el mismo núcleo interno debajo (subsistema de seguimiento de conexión).
Encabezado de xt_conntrack.c:
xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)
Entonces diría que el módulo de estado es más simple (y tal vez menos propenso a errores). También es más largo en el núcleo. Conntrack en el otro lado tiene más opciones y características [1].
Mi llamado es usar conntrack si necesita sus características, de lo contrario, quédese con el módulo de estado.
Pregunta similar sobre maillist netfilter.
[1] Muy útil como "-m conntrack --ctstate DNAT -j MASQUERADE" enrutamiento / reparación de DNAT ;-)
No hay diferencia en el resultado de esas dos reglas. Ambas extensiones coincidentes utilizan los mismos datos para coincidir con el estado de seguimiento de la conexión. state es la extensión de coincidencia "antigua" y conntrack es más reciente y tiene muchas más opciones que solo coincidir con el estado de seguimiento de la conexión.
Como dice la documentación:
La coincidencia conntrack es una versión extendida de la coincidencia de estado, que hace posible la coincidencia de paquetes de una manera mucho más granular. Le permite ver la información directamente disponible en el sistema de seguimiento de la conexión, sin ningún sistema "frontend", como en la coincidencia de estado. Para obtener más información sobre el sistema de seguimiento de conexiones, consulte el capítulo La máquina de estado.