Comment protéger SSH avec fail2ban sur Ubuntu 12.04
Vous n'utilisez pas Ubuntu 12.04 ?Choisissez une autre version ou distribution.
Statut : Obsolète
Cet article couvre une version d'Ubuntu qui n'est plus prise en charge. Si vous gérez actuellement un serveur exécutant Ubuntu 12.04, nous vous recommandons vivement de mettre à niveau ou de migrer vers une version d'Ubuntu prise en charge :
- Mettez à niveau vers Ubuntu 14.04.
- Mettre à niveau d'Ubuntu 14.04 vers Ubuntu 16.04
- Migrer les données du serveur vers une version prise en charge
Raison : Ubuntu 12.04 a atteint sa fin de vie (EOL) le 28 avril 2017 et ne reçoit plus de correctifs de sécurité ni de mises à jour. Ce guide n'est plus maintenu.
Voir plutôt :
Ce guide peut encore être utile comme référence, mais il peut ne pas fonctionner sur d'autres versions d'Ubuntu. Si disponible, nous recommandons fortement d'utiliser un guide rédigé pour la version d'Ubuntu que vous utilisez. Vous pouvez utiliser la fonction de recherche en haut de la page pour trouver une version plus récente.
À propos de Fail2Ban
Les serveurs n'existent pas isolément, et ces serveurs privés virtuels avec seulement la configuration SSH la plus basique peuvent être vulnérables aux attaques par force brute. fail2ban offre un moyen de protéger automatiquement les serveurs virtuels contre les comportements malveillants. Le programme fonctionne en analysant les fichiers journaux et en réagissant aux actions offensantes telles que les tentatives de connexion échouées répétées.
Étape Un—Installer Fail2Ban
Utilisez apt-get pour installer Fail2Ban
sudo apt-get install fail2banÉtape deux—Copier le fichier de configuration
Le fichier de configuration par défaut de fail2ban se trouve à l'emplacement /etc/fail2ban/jail.conf. Toutefois, le travail de configuration ne doit pas être effectué dans ce fichier, et nous devrions plutôt en faire une copie locale.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localAprès que le fichier est copié, vous pouvez apporter toutes vos modifications dans le nouveau fichier jail.local. Beaucoup des services possibles qui peuvent nécessiter une protection sont déjà dans le fichier. Chacun se trouve dans sa propre section, configuré et désactivé.
Étape Trois—Configurer les Valeurs par Défaut dans Jail.Local
Ouvrez le nouveau fichier de configuration de fail2ban :
sudo nano /etc/fail2ban/jail.localLa première section des paramètres par défaut couvre les règles de base que fail2ban suivra. Si vous souhaitez mettre en place une protection plus nuancée sur votre serveur virtuel, vous pouvez personnaliser les détails dans chaque section.
Vous pouvez voir la section par défaut ci-dessous.
[DEFAULT]
# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1/8
bantime = 600
maxretry = 3
# "backend" specifies the backend used to get files modification. Available
# options are "gamin", "polling" and "auto".
# yoh: For some reason Debian shipped python-gamin didn't work as expected
# This issue left ToDo, so polling is default backend for now
backend = auto
#
# Destination email address used solely for the interpolations in
# jail.{conf,local} configuration files.
destemail = root@localhostÉcrivez votre adresse IP personnelle dans la ligne ignoreip. Vous pouvez séparer chaque adresse par un espace. IgnoreIP vous permet de mettre certaines adresses IP sur une liste blanche et de vous assurer qu'elles ne soient pas bloquées. Inclure votre adresse garantira que vous ne vous bannirez pas accidentellement de votre propre serveur.
L'étape suivante consiste à décider d'un bantime, le nombre de secondes pendant lesquelles un hôte serait bloqué sur le VPS s'il est trouvé en violation de l'une des règles. Cela est particulièrement utile dans le cas des bots, qui une fois bannis passeront simplement à la prochaine cible. La valeur par défaut est fixée à 10 minutes — vous pouvez l'augmenter jusqu'à une heure (ou plus) si vous le souhaitez.
Maxretry est le nombre de tentatives de connexion incorrectes qu'un hôte peut avoir avant d'être banni pour la durée du temps de bannissement.
Vous pouvez laisser le backend sur automatique.
Destemail est l'e-mail auquel les alertes sont envoyées. Si vous avez un serveur de messagerie configuré sur votre droplet, Fail2Ban peut vous envoyer un e-mail lorsqu'il bannit une adresse IP.
Détails supplémentaires—Actions
La section Actions se trouve en dessous des valeurs par défaut. Le début ressemble à ceci :
#
# ACTIONS
#
# Default banning action (e.g. iptables, iptables-new,
# iptables-multiport, shorewall, etc) It is used to define
# action_* variables. Can be overridden globally or per
# section within jail.local file
banaction = iptables-multiport
# email action. Since 0.8.1 upstream fail2ban uses sendmail
# MTA for the mailing. Change mta configuration parameter to mail
# if you want to revert to conventional 'mail'.
mta = sendmail
# Default protocol
protocol = tcp
[...]Banaction décrit les étapes que fail2ban suivra pour bannir une adresse IP correspondante. Il s'agit d'une version plus courte de l'extension de fichier où la configuration est située. L'action de bannissement par défaut, "iptables-multiport", se trouve dans /etc/fail2ban/action.d/iptables-multiport.conf
MTA fait référence au programme de messagerie que fail2ban utilisera pour envoyer des e-mails afin d'attirer l'attention sur une IP malveillante.
Vous pouvez également changer le protocole de TCP à UDP dans cette ligne, selon celui que vous voulez que fail2ban surveille.
Étape Quatre (Optionnel)—Configurer la section ssh-iptables dans Jail.Local
La section des détails SSH se trouve un peu plus bas dans la configuration, et elle est déjà configurée et activée. Bien qu'il ne soit pas nécessaire d'apporter des modifications dans cette section, vous pouvez trouver ci-dessous les détails de chaque ligne.
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6Activé se réfère simplement au fait que la protection SSH est activée. Vous pouvez la désactiver avec le mot "false".
Le port désigne le port que fail2ban surveille. Si vous avez configuré votre serveur privé virtuel sur un port non standard, changez le port pour correspondre à celui que vous utilisez :
eg. port=30000Le filtre, défini par défaut sur sshd, se réfère au fichier de configuration contenant les règles que fail2ban utilise pour trouver des correspondances. sshd fait référence à /etc/fail2ban/filter.d/sshd.conf.
chemin du journal fait référence à l'emplacement du journal que fail2ban suivra.
La ligne max retry dans la section SSH a la même définition que l'option par défaut. Cependant, si vous avez activé plusieurs services et souhaitez avoir des valeurs spécifiques pour chacun, vous pouvez définir ici le nouveau nombre maximum de tentatives pour SSH.
Étape Cinq—Redémarrer Fail2Ban
Après avoir effectué des modifications dans la configuration de fail2ban, assurez-vous toujours de redémarrer Fail2Ban :
sudo service fail2ban restartVous pouvez voir les règles que fail2ban met en œuvre dans la table IP :
sudo iptables -L