Назад | Перейти на главную страницу

iptables (установленное, связанное правило)

Я хотел бы знать, что именно делает следующее правило iptables? Зачем это нужно?

ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 

Это немного сложнее, чем предполагают некоторые из приведенных выше комментариев.

state ESTABLISHED действительно означает «как только соединение открыто, пропустить остальные пакеты», хотя следует отметить, что «соединение» здесь определяется синхронностью: пакеты, проходящие между одной известной парой адресов / портов и другой известной парой адресов / портов, являются определяется как «СОЗДАНО». Знаменитое трехстороннее TCP-рукопожатие сюда не входит.

state RELATED кажется, что многие люди не понимают, что он делает. Обычно он включает ICMP-трафик, связанный с существующим подключением (попыткой), например, пакеты ICMP-host-adminly-unreachable, возвращаемые брандмауэром, который блокирует ваш запрос на подключение к запрещенному ящику.

Но есть также группа модулей ядра, например nf_conntrack_ftp, которые динамически расширяют определение RELATED трафика по мере их загрузки (этот конкретный пакет выполняет проверку уровня 4 трафика канала управления ftp, ищет операторы DATA, которые предупреждают о неизбежном открытии канала DATA, и сопоставляет эти пакеты, когда они прибывают).

Если вы не знаете, что вам это нужно, я рекомендую не позволяя RELATED трафик в целом, но вместо этого ограничивая RELATED заявления о трафике, который вы хотите, например, -p icmp.

Состояние ESTABLISTED позволит проходить всем пакетам, которые являются частью существующего соединения. Состояние RELATED позволяет создавать новые вторичные соединения, связанные с существующим соединением. Это, например, позволило бы передавать данные FTP, когда управляющее соединение находится на порту 21, а порт данных согласовывается протоколом.