Правила в брандмауері netfilter (iptables) перевіряються послідовно, і доля пакету (ACCEPT, DROP, REJECT тощо) визначається на основі першого матчу.
Здійснюючи брандмауер справним і першим правилом, типова -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 або подібні продукти.