sudo apt-get install fail2ban
Par défaut, Fail2ban propose déjà plusieurs filtres pré-configurés. On retrouve les filtres dans « /etc/fail2ban/filter.d/ ».
Le fichier de configuration où l’on peut spécifier pour chaque filtre le nombre d’essai avant le bannissement et le temps de bannissement, est: /etc/fail2ban/jail.conf
En plus des filtres existants, on peut ajouter des filtres pour se protéger des requêtes excessives sur phpmyadmin ainsi que bloquer les attaques w00tw00t (fruit d’un logiciel de scanning « DFind » utilisé par des kiddies) et DOS et autres, ici, nous verrons les 3 que je viens de citer.
1 – Fail2ban contre les attaques sur phpmyadmin
Créez un nouveau filtre dans « /etc/fail2ban/filter.d »
sudo nano /etc/fail2ban/filter.d/apache-phpmyadmin.conf
et copiez:
[Definition] docroot = /var/www badadmin = PMA|phpmyadmin|myadmin|mysql|mysqladmin|sqladmin|mypma|admin|xampp|mysqldb|mydb|db|pmadb|phpmyadmin1|phpmyadmin2|administrator|d$ failregex = [[]client <HOST>[]] File does not exist: %(docroot)s/(?:%(badadmin)s) ignoreregex =
Et enregistrez.
Dans le fichier /etc/fail2ban/jail.conf ajoutez à la fin:
[apache-phpmyadmin] enabled = true port = http,https filter = apache-phpmyadmin logpath = /var/log/apache*/*error.log maxretry = 3
2 – Fail2ban et protection contre les requêtes w00tw00t
sudo nano /etc/fail2ban/filter.d/apache-w00tw00t.conf
Copiez:
[Definition] failregex = ^<HOST> -.*"GET \/w00tw00t\.at\.ISC\.SANS\.DFind\:\).*".* ignoreregex =
Dans /etc/fail2ban/jail.conf copiez:
[apache-w00tw00t] enabled = true port = 80,443 action = %(action_mwl)s filter = apache-w00tw00t logpath = /var/log/apache*/*error.log maxretry = 1
3 – Fail2ban contre les DOS avec mod_evasive (source Linux magazine, hors-série N°66)
Installation mod_evasive
sudo apt-get install libapache2-mod-evasive
Créer un répertoire pour stocker les informations liées aux attaques et préciser les propriétés du répertoire.
sudo mkdir /var/log/apache2/mod_evasive sudo chown www-data.www-data /var/log/apache2/mod_evasive
Configurer apache
sudo nano /etc/apache2/conf.d/evasive
et collez:
DOSHashTableSize 3097 # pas plus de 5 pages toutes les 2 secondes DOSPageCount 5 DOSPageInterval 2 # Pas plus de 100 requête par seconde (image, CSS…) DOSSiteCount 100 DOSSiteInterval 1 # Bloquer le client pendant 10 secondes DOSBlockingPeriod 10 # Dossier contenantles IP blacklistées DOSLogDir "/var/log/apache2/mod_evasive"
Puis recharger la configuration
sudo service apache2 reload
Créez le filtre
sudo nano /etc/fail2ban/filter.d/apache-modevasive.conf
copiez:
[Definition] failregex = ^\[[^\]]*\]\s+\[error\]\s+\[client <HOST>\] client denied by server configuration:\s ignoreregex =
Dans /etc/fail2ban/jail.conf copiez:
[apache-modevasive] enabled = true filter = apache-modevasive action = iptables-allports[name=apache-modevasive] logpath = /var/log/apache*/*error.log bantime = 60 bantime = 3600 maxretry = 10
FIN.
Si vous avez d’autres suggestions ou améliorations, je suis preneur…

Fail2ban ou comment bloquer les requêtes phpmyAdmin w00tw00t et dos avec mod_evasive