diff --git a/HowtoOpenBSD/PacketFilter.md b/HowtoOpenBSD/PacketFilter.md index fb7d6359..c8e3f185 100644 --- a/HowtoOpenBSD/PacketFilter.md +++ b/HowtoOpenBSD/PacketFilter.md @@ -143,26 +143,39 @@ Il est possible d'empêcher le brute force vers un service particulier. Pour cela, la configuration suivante est nécessaire : ~~~ -table persist -block in quick proto tcp from to port 2222 +table persist +block in quick on $ext_if proto tcp from to port 2222 pass in quick on $ext_if proto tcp to port 2222 rdr-to 192.0.2.5 port ssh \ - keep state (max-src-conn 10, max-src-conn-rate 5/30, overload flush) + keep state (max-src-conn 10, max-src-conn-rate 5/30, overload flush) ~~~ -Cette règle signifie que : +Il est également possible d'avoir une whitelist avec cette configuration : + +~~~ +table persist { 86.71.108.179, 188.92.66.167, 62.202.26.200, 90.85.162.229 } +table persist + +pass in quick on $ext_if proto tcp from to port 2222 rdr-to 192.0.2.5 port ssh +block in quick on $ext_if proto tcp from to port 2222 +pass in quick on $ext_if proto tcp from ! to port 2222 rdr-to 192.0.2.5 port ssh \ + keep state (max-src-conn 10, max-src-conn-rate 5/30, overload flush) +~~~ + +Ces règles signifient que : - Une IP peut établir jusqu'à 10 connexion simultanées maximum vers le port 2222 (`max-src-conn 10`). - Seules 5 connexions peuvent se faire sur un laps de temps de 30 secondes par une même IP (`max-src-conn-rate 5/30`). -- Au-delà des 5 connexions échouées durant ces 30 secondes, l'IP en question est insérée dans la table (`overload `). +- Au-delà des 5 connexions échouées durant ces 30 secondes, l'IP en question est insérée dans la table (`overload `). - Les autres connexions établies par cette même IP sur cette même régle (connexion SSH vers le port 2222) sont tuées (`flush`). -- L'IP est bannie. Elle peut toujours tenter toute autre connexion, mais ne peut plus tenter de connexion SSH vers le port 2222 (`block in quick proto tcp from to port 2222`). Cette règle peut être adaptée selon ce que l'on veut bloquer à l'IP bannie. +- L'IP est bannie. Elle peut toujours tenter toute autre connexion, mais ne peut plus tenter de connexion SSH vers le port 2222 (`block in quick proto tcp from to port 2222`). Cette règle peut être adaptée selon ce que l'on veut bloquer à l'IP bannie. +- Les IPs contenues dans la table peuvent toujours se connecter, sans jamais être soumis aux limites contre le brute force. La table ne se vide pas avec un rechargement de pf (`pfctl -f /etc/pf.conf`). -* On peut voir les IPs contenues dans cette table avec `pfctl -t bruteforce -T show`. -* On peut entièrement vider la table avec `pfctl -t bruteforce -T flush`. -* On peut lever une IP spécifique de la table avec `pfctl -t bruteforce -T delete X.X.X.X`. +* On peut voir les IPs contenues dans cette table avec `pfctl -t blacklist-ssh -T show`. +* On peut entièrement vider la table avec `pfctl -t blacklist-ssh -T flush`. +* On peut lever une IP spécifique de la table avec `pfctl -t blacklist-ssh -T delete X.X.X.X`. #### Routage particulier (avec route-to)