Новые соединения iptables против --syn

13

В чем разница между:

iptables ... -m state --state NEW

и

iptables ... --syn

Первый должен выбрать НОВЫЕ соединения, но AFAIK новые соединения создаются путем отправки синхротин TCP. Другой означает только это - пакеты с син-флагом.

Можете ли вы привести практические примеры, когда приведенные выше команды дают разные результаты?

WANSON
источник

Ответы:

8

--synФлаг полезен для проверки TCP трафика, но NEWсостояние может быть использован для других протоколов ( в том числе TCP) , как UDPи ICMP. Я могу сказать, что NEWэто более общий --synвариант, чем вариант TCP.

Из руководства по iptables вы можете прочитать:

NEW    meaning that the packet has started a new connection,
       or otherwise associated with a connection which has not seen packets in both directions

Например, запрос DNS будет соответствовать NEWсостоянию, но он не будет соответствовать правилу с --synпараметром. Проще говоря, это дейтаграмма UDP.

Кроме того, эта --synопция может использоваться для проверки пакетов TCP с неправильной комбинацией флагов для их отбрасывания.

Кроме того, вы можете использовать обе эти опции вместе, чтобы проверить NEWпотоки TCP без --synпервого пакета и удалить их, например:

$ sudo iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"

Здесь мы добавляем пакеты этого типа в пользовательскую цепочку, которая называется bad_tcp_packetsотбрасываемой / регистрируемой и т. Д.

Халед
источник