Правила в брандмауэре сетевого фильтра (iptables) проверяются последовательно, и судьба пакета (ACCEPT, DROP, REJECT и т. Д.) Определяется на основе первого совпадения.
Делая брандмауэр statefull и первое правило типичным, -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
подавляющее большинство легитимного трафика на ваш сервер принимается после прохождения только этого единственного правила. Этот трафик не должен пересекать другие правила.
В зависимости от размера вашей базы правил это может означать существенную разницу в производительности вашего брандмауэра.
Единственный трафик, который теперь должен проверять межсетевой экран, - это явно новые соединения.
Т.е. сравнить брандмауэр для общедоступного веб-сервера с доступом для нескольких веб-мастеров со своих рабочих станций:
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp -m multiport --dports 80,443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -m iprange --src-range 10.9.8.7-10.9.8.10 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
Примерно 99% легитимных пакетов будут принадлежать установленным соединениям, но только первое правило. Из пакетов, не соответствующих этому правилу, большинство должно быть новыми подключениями к вашему веб-сайту, многопортовый модуль может предоставлять доступ к HTTP или HTTPS в одном правиле. Веб-мастера входят в систему с нескольких рабочих станций с фиксированными адресами, используя ssh и sftp, а все остальное отклоняется.
Брандмауэр, где правила логически упорядочены портом TCP:
-A INPUT -p tcp -m tcp --dport 22 --source 10.9.8.7 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 --source 10.9.8.8 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 --source 10.9.8.9 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 --source 10.9.8.10 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
Здесь каждый пакет для вашего веб-сервера HTTP должен быть проверен на соответствие 5 правилам, прежде чем будет предоставлен доступ. И с большим количеством сервисов, работающих на сервере, которые могут легко превратиться в 50 или более правил, если вы, например, будете использовать fail2ban или аналогичные продукты.