As regras em um firewall de filtros de rede (iptables) são verificadas sequencialmente e o destino do pacote (ACCEPT, DROP, REJECT etc.) é determinado em uma base de primeira partida.
Ao tornar o firewall statefull e a primeira regra, o típico -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
da grande maioria do tráfego legítimo para o seu servidor é aceito após passar apenas essa regra única. Esse tráfego não precisa passar por nenhuma outra regra.
Dependendo do tamanho da sua base de regras, isso pode significar uma diferença significativa no desempenho do seu firewall.
O único tráfego que o firewall precisa validar agora são as novas conexões explicitamente.
Ou seja. comparar um firewall para um servidor da Web público com acesso a um punhado de webmasters de suas estações de trabalho:
-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
Aproximadamente 99% dos pacotes legítimos pertencerão a conexões estabelecidas, atingindo apenas a primeira regra. Dos pacotes que não correspondem a essa regra, a maioria deve ser novas conexões ao seu site, o módulo multiportas pode conceder acesso a HTTP ou HTTPS em uma única regra. Os webmasters fazem login a partir de várias estações de trabalho com endereços fixos usando ssh e sftp e tudo o mais é rejeitado.
Um firewall em que as regras são ordenadas logicamente pela porta 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
Aqui, o todo e qualquer pacote para o seu servidor da Web HTTP precisaria ser verificado em relação a 5 regras antes que o acesso seja concedido. E com mais serviços em execução em um servidor que pode facilmente se tornar 50 regras ou muito mais quando você, por exemplo, usaria produtos fail2ban ou similares.