Механизм отслеживания состояний в iptables позволяет рассматривать пакеты как часть текущего соединения или сеанса, а не как поток дискретных несвязанных пакетов. 1
Система сравнивает каждый пакет с набором существующих соединений. 1 В случае необходимости она обновляет состояние подключения в своём хранилище и добавляет новые подключения. 1
Отслеживаемые соединения могут находиться в одном из четырёх состояний: 35
- NEW. 15 Если поступающий пакет не связан с существующим соединением, но может рассматриваться в качестве первого пакета, в систему добавляется новое соединение с этой меткой. 1
- ESTABLISHED. 15 Когда соединение получает ответ, состояние изменяется с NEW на ESTABLISHED. 1 Для TCP-соединений это означает SYN/ACK, а для трафика UDP и ICMP это ответ, в котором меняются местами целевой и исходный адрес пакета. 1
- RELATED. 15 Пакеты, которые не являются частью существующего соединения, но связаны с соединением, уже находящимся в системе, помечены как RELATED. 1 Это может быть вспомогательное соединение, как в случае с соединениями передачи данных по FTP, или ответ ICMP на попытки подключения другими протоколами. 1
- INVALID. 15 Пакеты могут быть помечены как INVALID, если они не связаны с существующим соединением и не подходят для создания нового соединения, если их нельзя идентифицировать или маршрутизировать по другим причинам. 1
Все функции контроля соединений осуществляются модулем ядра Linux conntrack. 5 Этот модуль может быть загружаемым или встраивается в ядро в зависимости от выбранных опций компиляции ядра. 5