Вопрос: Iptables, какая разница между -m state и -m conntrack?


Какая практическая разница между:

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

а также

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

Какой из них лучше всего использовать?

Спасибо.


48
2018-02-10 22:56


Источник


Обратите внимание, что для Linux Kernel 3.7 и более поздних версий состояние было удалено. Доступен только conntrack. - Mr. X
Я запускаю 3.10.0, и состояние все еще поддерживается ...
состояние устарело в пользу conntrack и может или не может быть скомпилировано в зависимости от того, как было построено ваше ядро. - Michael Hampton♦


Ответы:


Оба используют одинаковые внутренние элементы ядра под подсистемой отслеживания подключений.

Заголовок xt_conntrack.c:

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

Поэтому я бы сказал, что модуль состояния проще (и, возможно, меньше подвержен ошибкам). Он также больше в ядре. У Conntrack с другой стороны есть больше возможностей и функций [1].

Мой звонок - использовать conntrack, если вам нужны его функции, иначе придерживайтесь государственного модуля.

Аналогичный вопрос на netfilter maillist.

[1] Очень полезно, как «-m conntrack -ctstate DNAT -j MASQUERADE» маршрутизация / DNAT fixup ;-)


26
2018-02-11 00:29





Нет никакой разницы в результатах этих двух правил. Оба совпадающих расширения используют одни и те же данные для соответствия состоянию отслеживания соединений. state - это «старое» расширение соответствия, а conntrack - более новое и имеет гораздо больше опций, чем просто соответствие состоянию отслеживания соединения.


8
2018-02-11 00:21





Iptables Doc

Как говорится в документации:

Blockquote   Сопоставление conntrack - это расширенная версия совпадения состояний, что позволяет сопоставлять пакеты гораздо более гранулированным способом. Это позволяет вам просматривать информацию, доступную напрямую в системе отслеживания соединений, без каких-либо систем «frontend», например, в совпадении состояний. Дополнительные сведения о системе отслеживания соединений см. В главе «Состояние».


0
2017-09-28 10:10