Apa perbedaan praktis antara:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
dan
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Mana yang terbaik untuk digunakan?
Terima kasih.
Apa perbedaan praktis antara:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
dan
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Mana yang terbaik untuk digunakan?
Terima kasih.
Jawaban:
Keduanya menggunakan internal kernel yang sama di bawahnya (subsistem pelacakan koneksi).
Header xt_conntrack.c:
xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)
Jadi saya akan mengatakan - modul negara lebih sederhana (dan mungkin lebih sedikit kesalahan rawan). Ini juga lebih lama di kernel. Conntrack di sisi lain memiliki lebih banyak opsi dan fitur [1].
Panggilan saya adalah menggunakan conntrack jika Anda membutuhkan fitur itu, jika tidak tetap dengan modul negara.
Pertanyaan serupa pada netfilter maillist.
[1] Cukup berguna seperti perutean "-m conntrack --ctstate DNAT -j MASQUERADE" / perbaikan DNAT ;-)
Tidak ada perbedaan dalam hasil kedua aturan tersebut. Kedua ekstensi kecocokan menggunakan data yang sama untuk mencocokkan kondisi pelacakan koneksi. state adalah ekstensi pertandingan "lama" dan conntrack lebih baru dan memiliki lebih banyak opsi daripada sekadar mencocokkan status pelacakan koneksi.
Seperti yang dikatakan dalam dokumentasi:
Pertandingan conntrack adalah versi lanjutan dari pertandingan negara, yang memungkinkan untuk mencocokkan paket dengan cara yang jauh lebih terperinci. Anda dapat melihat informasi yang tersedia secara langsung di sistem pelacakan koneksi, tanpa sistem "frontend", seperti dalam pertandingan negara bagian. Untuk informasi lebih lanjut tentang sistem pelacakan koneksi, lihat bab The state machine.