Protéger le serveur contre d'éventuelles attaques est une tâche de base de tout administrateur système. Ce n'est pas aussi simple qu'il y paraît mais c'est possible si vous apprenez à installer et à configurer Fail2ban sur CentOS 8. Le guide suivant vous sera très utile à cet effet.
Fail2Ban
Fail2ban est un outil Python qui analyse les fichiers journaux comme /var/log/auth.log
et interdit aux adresses IP d'effectuer trop de tentatives de connexion infructueuses. Pour ce faire, il met à jour les règles de pare-feu du système pour rejeter les nouvelles connexions à partir de ces adresses IP, pendant une durée configurable.
Par défaut, Fail2ban est considéré comme prêt à l'emploi car il inclut certains paramètres qui lui permettent de lire de nombreux fichiers journaux et d'appliquer des règles de protection.
Largement utilisé par de nombreux administrateurs système, Fail2ban peut réduire le risque d'attaques SSH bien que les développeurs avertissent que d'autres mesures de sécurité sont nécessaires pour être vraiment protégés. Cependant, avec Fail2ban, nous pouvons avoir une autre couche de sécurité et rendre le serveur un peu plus sécurisé.
Un détail à ne pas négliger est que Fail2ban est open source, vous pouvez donc être sûr que son code source ne contient pas de portes dérobées ou de code malveillant.
Installer Fail2ban sur CentOS 8
Malgré sa popularité, Fail2ban n'est pas inclus dans les dépôts officiels CentOS 8. Cependant, ce n'est pas un problème pour l'installer.
Donc, dans un environnement de terminal, essayez de mettre à jour le système d'exploitation
sudo dnf update
Fail2ban est présent dans le référentiel EPEL. Ce référentiel, bien qu'externe à CentOS 8, est considéré par beaucoup comme un référentiel fondamental en raison du grand nombre de packages dont il dispose. En outre, il est considéré comme assez sécurisé et nous aidera dans ce processus.
Alors, ajoutez-le au système en cours d'exécution.
sudo dnf install epel-release
Une fois le package installé et le référentiel ajouté au système, nous pouvons installer Fail2ban :
sudo dnf install fail2ban
Fail2ban est géré comme un service système, nous devons donc le démarrer avec la commande systemctl
sudo systemctl start fail2ban
C'est une bonne idée de le démarrer avec le système comme un autre service.
sudo systemctl enable fail2ban
Et vous pouvez vérifier l'état du service pour voir s'il a été démarré correctement.
sudo systemctl status fail2ban
Maintenant que Fail2ban est installé, nous pouvons le configurer selon nos besoins.
Configuration de Fail2ban sur CentOS 8
Avant d'effectuer certaines configurations, il est utile de savoir comment Fail2ban gère ses fichiers de configuration.
Par défaut, le répertoire où résident les fichiers de configuration Fail2ban est /etc/fail2ban/
et il y aura deux fichiers que nous n'aurons pas à modifier, /etc/fail2ban/jail.conf
et /etc/fail2ban/jail.d/00-firewalld.conf
.
Par conséquent, la méthode recommandée pour effectuer des configurations consiste à copier l'intégralité du contenu de jail.conf
dans un fichier appelé jail.local
dans le même répertoire. C'est parce que le .local
les fichiers écraseront le .conf
des dossiers. Il est également possible de créer le fichier à partir de rien.
Si vous copiez le contenu de jail.conf
ou repartir de zéro, vous pouvez ajouter vos propres paramètres.
Par exemple, certaines configurations de base à faire avec Fail2ban peuvent être :
- Bantime :temps en secondes pendant lequel l'IP sera bannie.
- Maxretry :nombre de tentatives autorisées avant d'être banni.
- Findtime :si l'hôte effectue le
maxretry
dans le temps exprimé enfindtime
, alors il sera banni. - Banaction :action que le système effectuera lors du bannissement de l'hôte.
- Backend :d'où proviennent les journaux fail2ban.
Aussi avec le ignoreip
valeur, vous pouvez définir une adresse IP ou une plage que Fail2ban ignorera.
Protéger SSH avec Fail2ban
L'un des services les plus importants à protéger est SSH. Pour cela, vous pouvez ajouter au fichier de configuration jail.local
la valeur jail.local
.
[ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log
De cette façon, vous pouvez protéger SSH rapidement et facilement.
Pour appliquer toutes les modifications, redémarrez le service Fail2ban.
sudo systemctl restart fail2ban
Conclusion
Dans cet article, vous avez appris à configurer Fail2ban pour sécuriser davantage votre serveur contre les attaques contre les services système. Vous pouvez consulter la documentation officielle de Fail2ban où vous pouvez trouver de nombreuses configurations différentes.