As regras em um firewall de filtro de rede (iptables) são verificadas sequencialmente e o destino do pacote (ACEITAR, DESCER, REJEITAR etc.) é determinado em uma primeira partida.
Ao tornar o firewall completo e com a primeira regra típica, -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
a grande maioria do tráfego legítimo para o servidor é aceita depois de passar apenas essa regra. Esse tráfego não precisa atravessar outras regras.
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 agora precisa validar são as novas conexões explicitamente.
Ou seja, compare um firewall para um servidor da web público com acesso a um punhado de webmasters em 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, apenas atingindo a primeira regra. Dos pacotes que não correspondem a essa regra, a maioria deve ser de novas conexões com o site, o módulo de multiportas pode conceder acesso ao HTTP ou HTTPS em uma única regra. Os webmasters efetuam login em várias estações de trabalho com endereços fixos usando ssh e sftp e todo o resto é 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, todo e qualquer pacote para seu servidor da Web HTTP precisaria ser verificado em relação a 5 regras antes do acesso ser 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.