18
0
Fork 0

Ajout whitelist bruteforce

This commit is contained in:
jdubois 2020-03-12 14:53:57 +01:00
parent 3e4fe78861
commit f66f13b8f9
1 changed files with 22 additions and 9 deletions

View File

@ -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 <bruteforce> persist
block in quick proto tcp from <bruteforce> to port 2222
table <blacklist-ssh> persist
block in quick on $ext_if proto tcp from <blacklist-ssh> 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 <bruteforce> flush)
keep state (max-src-conn 10, max-src-conn-rate 5/30, overload <blacklist-ssh> flush)
~~~
Cette règle signifie que :
Il est également possible d'avoir une whitelist avec cette configuration :
~~~
table <whitelist-ssh> persist { 86.71.108.179, 188.92.66.167, 62.202.26.200, 90.85.162.229 }
table <blacklist-ssh> persist
pass in quick on $ext_if proto tcp from <whitelist-ssh> to port 2222 rdr-to 192.0.2.5 port ssh
block in quick on $ext_if proto tcp from <blacklist-ssh> to port 2222
pass in quick on $ext_if proto tcp from !<whitelist-ssh> to port 2222 rdr-to 192.0.2.5 port ssh \
keep state (max-src-conn 10, max-src-conn-rate 5/30, overload <blacklist-ssh> 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 <bruteforce> (`overload <bruteforce>`).
- Au-delà des 5 connexions échouées durant ces 30 secondes, l'IP en question est insérée dans la table <blacklist-ssh> (`overload <blacklist-ssh>`).
- 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 <bruteforce> 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 <blacklist-ssh> 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 <whitelist-ssh> 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)