Packet filter, le parre feu d'OpenBSD (disponible et installé dans FreeBSD et NetBSD) nous offre des options de filtrage avancées.
Il est possible de contrer le ssh bruteforcing (tentative de trouver le mot de passe en testant une infinité de mots de passe) et le Déni de service (grand nombre de connexion à un serveur pour le faire exploser où empêcher les autres d'y accéder).
Pour celà il faut un peu jouer avec max-src-conn , max-src-conn-rate et les tables pf.
Voici un exemple commenté :
# Interface entrante ext_if = "fxp0" # On crée deux tables table <ssh_abuse> persist table <http_abuse> persist # On bloque ceux qui sont dans la table sur les ports concernés # Le 'quick' permet d'ignorer toute autre rêgle de filtrage # concernant ces paquets block in quick on $ext_if proto tcp from <ssh_abuse> port ssh block in quick on $ext_if proto tcp from <http_abuse> port http # si on a plus de 2 connection toutes les 10 secondes sur # le port ssh, on rajoute l'IP concernée dans la table ssh_abuse pass in inet proto tcp to any port ssh flags S/SA keep state \ (max-src-conn-rate 2/10, overload <ssh_abuse> flush global) # Si on a plus de 100 connection avec cet IP ou plus de 20 connexion # en 5 secondes, alors on met l'IP concernée dans la table http_abuse pass in inet proto tcp to any port http flags S/SA keep state \ (max-src-conn 100, max-src-conn-rate 20/5, overload <http_abuse> flush)