пятница, 14 сентября 2012 г.

Про флаги (--tcp-flags) в iptables

Описание --tcp-flags

Определяет маску и флаги tcp-пакета.
Т.е. идет маска ПРОБЕЛ флаги.

Пакет считается удовлетворяющим критерию, если из перечисленных флагов в первом списке в единичное состояние установлены флаги из второго списка.


Подробнее:

--tcp-flags SYN,FIN,ACK SYN

Означает, что мы проверяем флаги SYN, FIN и ACK, и из них только SYN должен быть активен, а FIN и ACK - неактивны (а остальные - пофиг).
Это "SYN", но не "SYN,ACK".

и

--tcp-flags SYN SYN

Проверяем _только_ SYN, и он должен быть активен (а вот состояние остальных - неважно).
Это и "SYN", и "SYN,ACK".


Для чего всё это?


Пример:

Когда --state NEW пакет приходит с одним лишь SYN - это нормально и правильно.
А вот когда, опять таки, --state NEW, а пакет с флагами SYN,ACK (или, например, SYN,FIN) - он идёт лесом.


Схема открытия TCP соединения:





Схема закрытия TCP соединения:


Схема  UDP соединения:


Схема ICMP соединения:



Таблица Internal states

СостояниеВремя ожидания
NONE30 минут
ESTABLISHED5 дней
SYN_SENT2 минуты
SYN_RECV60 секунд
FIN_WAIT2 минуты
TIME_WAIT2 минуты
CLOSE10 секунд
CLOSE_WAIT12 часов
LAST_ACK30 секунд
LISTEN>2 минуты

Комментариев нет:

Отправить комментарий