Configurer Fail2ban
#Créer le fichier
/etc/fail2ban/jail.d/custom.conf
[DEFAULT]
ignoreip = 127.0.0.1 monip
findtime = 3600
bantime = 86400
maxretry = 3
[sshd]
enabled = true
port = 13422
logpath = /var/log/auth.log
maxretry = 3
sudo systemctl restart fail2ban
#Verifier les jails actives
sudo fail2ban-client status
#Les prisons peuvent être contrôlées séparément avec les mots clés start,stop,status Par exemple :
sudo fail2ban-client stop sshd
#Côté serveur vous pouvez également surveiller ce qu'il se passe avec la commande
sudo fail2ban-client status sshd
# plus d'infos sur https://doc.ubuntu-fr.org/fail2ban
## Phpmyadmin
créer le fichier:
sudo nano /etc/fail2ban/filter.d/apache-phpmyadmin.conf
# Fail2Ban configuration file
# Bans bots scanning for non-existing phpMyAdmin installations on your webhost.
#
[Definition]
# Option: failregex
# Notes.: Regexp to match often probed and not available phpmyadmin paths.
# Values: TEXT
#
failregex = [[]client <HOST>[]] File does not exist: .*(PMA|phpmyadmin|myadmin|mysql|mysqladmin|sqladmin|mypma|admin|xampp|mysqldb|mydb|db|pmadb|phpmyadmin1|myadmin2)
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
!activer la prison dans :
nano /etc/fail2ban/jail.local
[apache-phpmyadmin]
enabled = true
port = http,https
filter = apache-phpmyadmin
logpath = /var/log/apache*/*error.log
maxretry = 3
## Bannir les adresses IP qui effectuent ces requêtes en créant le fichier /etc/fail2ban/filter.d/apache-w00tw00t.conf :
sudo nano /etc/fail2ban/filter.d/apache-w00tw00t.conf
#<HOST> - - [11/Jan/2010:14:56:27 +0200] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 326
[Definition]
# Option: failregex
# Notes.: regex to match the w00tw00t scan messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching.
# Values: TEXT
failregex = ^<HOST> -.*"GET \/w00tw00t\.at\.ISC\.SANS\.DFind\:\).*".*
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
ignoreregex =
Une fois notre filtre créé, il nous faut ajouter et activer la jail :
nano /etc/fail2ban/jail.local
[apache-w00tw00t]
enabled = true
filter = apache-w00tw00t
port = all
banaction = iptables-allports
port = anyport
logpath = /var/log/apache*/access.log
maxretry = 1
bantime = 86400
bloquer les scans du serveur Apache. Il faut donc créer le filtre suivant /etc/fail2ban/filter.d/apache-bloquescan.conf avec les informations suivantes :
[Definition]
failregex = [[]client <HOST>[]] client denied by server configuration: /home/www/*.*
ignoreregex=
Puis il faut activer ce filtre dans /etc/fail2ban/jail.d/custom.conf en ajoutant :
[apache-bloquescan]
enabled = true
port = http,https
filter = apache-bloquescan
logpath = /var/log/apache*/*error.log
maxretry = 1
banTime = 86400
Optimisation de la jail de Postfix :
sudo nano /etc/fail2ban/filter.d/postfix.conf
éditer le fichier /etc/fail2ban/filter.d/postfix.conf pour simplement supprimer le 4 de la ligne suivante pour bannir nimporte quelle erreur :
failregex = reject: RCPT from (.*)\[<HOST>\]: 554