Iptables, apa perbedaan antara -m state dan -m conntrack?

48

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.

Maksud
sumber
9
Perhatikan bahwa untuk Linux Kernel 3.7 dan yang lebih baru, status telah dihapus. Hanya conntrack yang tersedia.
Tn. X
Saya menjalankan 3.10.0 dan status masih didukung ...
1
status tidak lagi digunakan karena conntrack, dan mungkin dikompilasi tergantung pada bagaimana kernel Anda dibangun.
Michael Hampton

Jawaban:

26

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 ;-)

kupson
sumber
8

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.

lsmooth
sumber
1

Iptables Doc

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.

ki0
sumber
referensi tidak berfungsi lagi
prosti