Installer fail2ban
fail2ban va vous permettre automatiquement de bannir les IP lors de tentatives d'intrusions, il va regarder dans vos logs les erreurs et avertissements et bannir en fonction de certains critères. Vous allez voir un exemple plus bas...
installer fail2ban:
apt-get install fail2ban
Configurer fail2ban
# Modification de l email de l Admin pour un envoi des banissements par email
destemail = [email protected]
# Modification des parametres de configuration par défaut :
[DEFAULT]
bantime = 20 # durée du ban, ici 20sec
maxretry = 10 # nb de tentatives avant bannissement
# apres vous pouvez configurer les services à bannir en cas d'attaque
# pour activer mettre enabled a true
# et vérifier les logpath car fail2ban les utilise pour les bannissements
# vous pouvez commenter les services que vous n utilisez pas
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
#
# FTP servers
#
[vsftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = vsftpd
logpath = /var/log/vsftpd.log
# or overwrite it in jails.local to be
# logpath = /var/log/auth.log
# if you want to rely on PAM failed login attempts
# vsftpd's failregex should match both of those formats
maxretry = 6
#<p><br />
#<br />
#enabled = false<br />
#port = ftp,ftp-data,ftps,ftps-data<br />
#filter = proftpd<br />
#logpath = /var/log/proftpd/proftpd.log<br />
#maxretry = 6<br />
[p]Et on redémarre fail2ban
/etc/init.d/fail2ban restart
Dans cet exemple de configuration des bannissement d'IP et pour la section [ssh] voici quelques explications:
[DEFAULT] : section DEFAULT quelques paramètres par défaut
bantime = 20 : durée du bannissement , ici 20 seccondes
maxretry = 10 : nombre de tentatives avant bannissement
[ssh] : section ssh
enabled = true : filtrage activée pour cette section si cette valeur est true et désactivée si false
port = ssh : nom du port
filter = sshd : à vrai dire je ne sais pas ce qu'est ce paramètre, lisez la doc de fail2ban...
logpath = /var/log/auth.log : le fichier log où sont stockées les erreurs d'accès au port ssh
maxretry = 6 : nombre maximum de tentatives échouées ce après quoi l'IP est bloquée pendant bantime seconde
Remarque: il est possible de lancer fail2ban au démarrage du serveur, pour cela lire l'article Installer un parefeu
Pour savoir dans quel état et pour vérifier la configuration de fail2ban, vous pouvez faire ceci:
Loaded: loaded (/etc/init.d/fail2ban)
Active: active (running) since ven. 2017-11-24 23:23:20 CET; 12h ago
Process: 17294 ExecStop=/etc/init.d/fail2ban stop (code=exited, status=0/SUCCESS)
Process: 17315 ExecStart=/etc/init.d/fail2ban start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/fail2ban.service
└─17327 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/fail2ban.pid
nov. 24 23:23:20 ksxxxxx.kimsufi.com fail2ban[17315]: Starting authentication failure monitor: fail2ban.
nov. 24 23:23:20 ksxxxxx.kimsufi.com systemd[1]: Started LSB: Start/stop fail2ban.
Vérifier un regex fail2ban
/etc/fail2ban/filter.d# fail2ban-regex -v /var/log/apache2/fichier.log /etc/fail2ban/filter.d/ton-filtre.conf