В состав iptables включён модуль, позволяющий администраторам наблюдать и ограничивать подключения к службам, работающим во внутренней сети, с помощью так называемого отслеживания соединений. Подсистема отслеживания соединений запоминает соединения в таблице, благодаря чему администраторы могут разрешать или запрещать доступ, исходя из следующих состояний соединения:
NEW (Новое) — Пакет запрашивает новое соединение, как, например, HTTP-запрос.
ESTABLISHED (Установлено) — пакет относится к существующему соединению.
RELATED (Связанный) — Пакет запрашивает новое подключение, но оно является частью существующего, как в случае с активными FTP-соединениями, когда подключение идёт к порту 20, а передача выполняется через любой неиспользуемый порт выше 1023.
INVALID (Неверный) — Пакет не является частью ни одного из соединения в таблице отслеживания соединений.
Вы можете использовать функциональность сохранения состояния, предлагаемую средством отслеживания соединений iptables с любым сетевым протоколом, даже если сам протокол состояние не поддерживает (как, например, UDP). Ниже показано правило, в котором отслеживание соединения используется для пересылки только пакетов, связанных с внешним соединением:
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ALLOW |