Les règles d'un pare-feu netfilter (iptables) sont vérifiées séquentiellement et le sort du paquet (ACCEPT, DROP, REJECT etc.) est déterminé sur la base de la première correspondance.
En rendant le pare-feu complet et la première règle, la -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
grande majorité typique du trafic légitime vers votre serveur est acceptée après avoir passé cette seule règle. Ce trafic n'a pas besoin de traverser d'autres règles.
Selon la taille de votre base de règles, cela peut signifier une différence significative dans les performances de votre pare-feu.
Le seul trafic que le pare-feu doit désormais valider sont les nouvelles connexions explicites.
C'est-à-dire comparer un pare-feu pour un serveur Web public avec un accès pour une poignée de webmasters à partir de leurs postes de travail:
-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
Environ 99% des paquets légitimes appartiendront à des connexions établies, atteignant uniquement la première règle. Parmi les paquets ne correspondant pas à cette règle, la majorité devrait être de nouvelles connexions à votre site Web, le module multiport peut accorder l'accès à HTTP ou HTTPS dans une seule règle. Les webmasters se connectent à partir d'un certain nombre de postes de travail avec des adresses fixes en utilisant ssh et sftp et tout le reste est rejeté.
Un pare-feu où les règles sont ordonnées logiquement par le port 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
Ici , chaque paquet de votre serveur Web HTTP devrait être comparé à 5 règles avant que l'accès ne soit accordé. Et avec plus de services exécutés sur un serveur qui peuvent facilement devenir 50 règles ou bien plus lorsque vous utiliseriez par exemple fail2ban ou des produits similaires.