Iptables, jaka jest różnica między stanem -m a -m conntrack?

48

Jaka jest praktyczna różnica między:

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

i

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Którego najlepiej użyć?

Dziękuję Ci.

Kres
źródło
9
Zauważ, że w jądrze Linuksa 3.7 i nowszych stan został usunięty. Dostępny jest tylko conntrack.
Pan X
Korzystam z wersji 3.10.0 i stan jest nadal obsługiwany ...
1
stan jest przestarzały na korzyść conntrack i może być lub nie być kompilowany w zależności od tego, jak zbudowano twoje jądro.
Michael Hampton

Odpowiedzi:

26

Oba używają tych samych elementów wewnętrznych jądra (podsystem śledzenia połączeń).

Nagłówek xt_conntrack.c:

xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)

Powiedziałbym więc, że moduł stanu jest prostszy (i może mniej podatny na błędy). Jest także dłuższy w jądrze. Conntrack po drugiej stronie ma więcej opcji i funkcji [1].

Moim wezwaniem jest użycie conntrack, jeśli potrzebujesz jego funkcji, w przeciwnym razie trzymaj się modułu stanu.

Podobne pytanie dotyczące maillisty netfilter.

[1] Całkiem przydatne, jak „-m conntrack --ctstate DNAT -j MASQUERADE” routing / naprawa DNAT ;-)

kupson
źródło
8

Nie ma różnicy w wynikach tych dwóch zasad. Oba rozszerzenia dopasowania używają tych samych danych do dopasowania stanu śledzenia połączenia. state jest „starym” rozszerzeniem dopasowania, a conntrack jest nowszy i ma o wiele więcej opcji niż tylko dopasowanie stanu śledzenia połączenia.

lsmooth
źródło
1

Iptables Doc

Jak mówi dokumentacja:

Conntrack match jest rozszerzoną wersją dopasowania stanu, która umożliwia dopasowanie pakietów w znacznie bardziej szczegółowy sposób. Pozwala spojrzeć na informacje bezpośrednio dostępne w systemie śledzenia połączeń, bez żadnych systemów „frontendowych”, takich jak dopasowanie stanu. Aby uzyskać więcej informacji o systemie śledzenia połączeń, zapoznaj się z rozdziałem The machine machine.

ki0
źródło
referencja już nie działa
prosti