Qual è la differenza pratica tra:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
e
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Qual è il migliore da usare?
Grazie.
Qual è la differenza pratica tra:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
e
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Qual è il migliore da usare?
Grazie.
Risposte:
Entrambi usano gli stessi kernel interni (sottosistema di tracciamento delle connessioni).
Intestazione di xt_conntrack.c:
xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)
Quindi direi: il modulo di stato è più semplice (e forse meno soggetto a errori). È anche più lungo nel kernel. Conntrack dall'altra parte ha più opzioni e funzionalità [1].
La mia chiamata è quella di utilizzare Conntrack se hai bisogno delle sue funzionalità, altrimenti mantieni il modulo di stato.
Domanda simile sul maillist di netfilter.
[1] Molto utile come "-m conntrack --ctstate DNAT -j MASQUERADE" routing / DNAT fixup ;-)
Non vi è alcuna differenza nell'esito di queste due regole. Entrambe le estensioni di corrispondenza utilizzano gli stessi dati per abbinare lo stato di tracciamento della connessione. state è la "vecchia" estensione della corrispondenza e conntrack è più recente e ha molte più opzioni rispetto alla semplice corrispondenza dello stato di tracciamento della connessione.
Come dice la documentazione:
La connessione conntrack è una versione estesa della corrispondenza dello stato, che consente di abbinare i pacchetti in un modo molto più granulare. Ti consente di esaminare le informazioni direttamente disponibili nel sistema di tracciamento della connessione, senza alcun sistema "frontend", come nella corrispondenza dello stato. Per ulteriori informazioni sul sistema di tracciamento delle connessioni, dai un'occhiata al capitolo La macchina a stati.