Критерий состояния соединения — conntrack ( iptables)
conntrack — контроля состояния соединения
используется для привязки к соединениям. В частности, состояние NEW выделяет пакеты, открывающие новые соединения, состояние ESTABLISHED — пакеты, принадлежащие к установленным соединениям, состоянию RELATED соответствуют пакеты, открывающие новые соединения, логически связанные с уже установленными (например, соединение данных в пассивном режиме FTP). Состояние INVALID означает, что принадлежность пакета к соединению установить не удалось.
Например, одним простым правилом
iptables -I INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
получается корректное пропускание всех входящих пакетов, принадлежащих установленным соединениям, и возможность фильтрации новых соединений.
Лучше заменить в предыдущем правиле ESTABLISHED на ESTABLISHED,RELATED ,
iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
происходит правильная фильтрация протоколов, использующих связанные соединения — FTP, SIP H.323 и других. Такое простое (с точки зрения пользователя) решение сложной (с технической точки зрения) проблемы является безусловным достоинством firewall — netfilter и ядра Linux в целом.
Кроме критерия conntrack, стоит упомянуть и его идеологического предшественника — критерий state.Он был вместо -m conntrack --ctstate ESTABLISHED,RELATED .
было iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Подобные формулировки до сих пор сохраняются во многих руководствах по iptables. Однако в настоящее время критерий state считается устаревшим, и разработчики iptables рекомендуют использовать вместо него критерий conntrack. Также заметим, что критерий conntrack обладает более широкими возможностями, нежели state, и позволяет использовать дополнительную информацию о соединении, в частности, состояние самого соединения (ctstatus).
Subscribe to the RSS feed and have all new posts delivered straight to you.