Configurons Fail2Ban, ce service vous permet de protéger le serveur contre les inondations, en devinant les mots de passe des services. Des milliers de services tiers accèdent aux serveurs chaque jour, et certains d'entre eux sont malveillants. Avec l'aide de Fail2Ban, nous bloquerons les adresses IP après plusieurs tentatives d'autorisation infructueuses.
Ce guide suppose que vous avez déjà configuré le serveur de messagerie lui-même et que vous devez installer une protection contre la devinette de mot de passe et toute autre activité réseau indésirable. Vous trouverez plus d'informations sur la configuration d'un serveur de messagerie ici:
Vous pouvez également commander un VPS avec un système d'exploitation préconfiguré et obtenir un serveur de messagerie d'entreprise prêt à l'emploi pour le prix d'un serveur VPS.
1. Installer le service Fail2Ban
apt install fail2ban
Modifions les paramètres
vi /etc/fail2ban/jail.d/defaults-debian.conf
[sshd]
enabled = true
[postfix]
enabled = true filter = postfix port = smtp,465,submission,imap,imaps,pop3,pop3s action = iptables[name=Postfix, port=smtp, protocol=tcp] logpath = /var/log/mail.log bantime = 120m maxretry = 3 findtime = 60m
Dans cette configuration, nous avons activé la protection des services ssh et postfix, qui traiteront le fichier journal et bloqueront les adresses IP lors de plusieurs tentatives d'autorisation infructueuses.
Pour vérifier si une correspondance fonctionne, utilisez la commande
fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/postfix.conf
Nous avons utilisé un filtre par défaut prêt à l'emploi et dans notre cas, il s'est immédiatement avéré fonctionner.
2. Début de service
systemctl enable --now fail2ban
Nous avons démarré le service et l'avons ajouté au démarrage automatique.
Vous pouvez maintenant consulter le journal:
more /var/log/fail2ban.log
3. La gestion des services
Pour afficher l'état, ainsi que la dernière activité, utilisez la commande
fail2ban-client status - Il montrera toutes les prisons et leur statut.
fail2ban-client status postfix - affichera l'activité de la prison, y compris les adresses IP actuellement bloquées.
Pour débloquer une adresse IP, utilisez la commande
fail2ban-client set postfix unbanip xxx.xxx.xxx.xxx
Où : postfix est le nom de la prison, et xxx.xxx.xxx.xxx est l'adresse IP de la liste #fail2ban-client status postfix
4. Ajouter une prison pour l'autorisation Rouncube
Ajouter au fichier
vi /etc/fail2ban/jail.d/defaults-debian.conf
[roundcube-auth]
enabled = true
filter = roundcube-authport = http,https
action = iptables[name=Roundcube-auth, port=http, protocol=tcp]logpath = /usr/share/nginx/html/webmail/logs/errors.log
bantime = 120mmaxretry = 3
findtime = 60m
Avec trois tentatives d'autorisation infructueuses dans la messagerie Web, nous bloquons l'accès pendant 2 heures.
Redémarrons le service :
service fail2ban restart
La configuration du filtre est terminée.