Fail2ban, un outil de sécurité puissant, améliore considérablement la protection du serveur en surveillant et en bloquant les tentatives d'accès non autorisées. Ce guide montrera comment installer Fail2ban avec Firewalld sur Fedora Linux, une combinaison qui renforce les défenses de votre serveur. L'intégration de Fail2ban avec Firewalld vous permet de tirer parti d'un duo dynamique pour sécuriser votre système contre les attaques par force brute et les intrusions non autorisées.
Principales fonctionnalités de Fail2ban avec Firewalld :
- Blocage automatisé : Interdit rapidement les adresses IP présentant un comportement suspect, réduisant ainsi le risque de cyberattaques.
- Analyse des journaux : Analyse les journaux du serveur à la recherche de modèles indiquant des tentatives d'accès non autorisées.
- Règles et filtres personnalisables : Adaptez les paramètres de sécurité pour répondre aux besoins spécifiques de votre serveur.
- Notifications par email: Envoie des alertes pour vous tenir informé des failles de sécurité potentielles.
- Assistance étendue : Il est compatible avec divers services, tels que SSH, FTP et HTTP, offrant une couverture de sécurité complète.
L'ajout de Fail2ban avec Firewalld dans votre configuration Fedora Linux fournit une couche de sécurité robuste. Les sections suivantes détaillent les étapes à suivre pour intégrer ces outils, garantissant ainsi que votre serveur est protégé contre un large éventail de menaces numériques.
Étape 1 : Actualiser les packages système Fedora Linux
Commencez par mettre à jour la liste des packages de votre système. Il s’agit d’une étape cruciale pour garantir la compatibilité et éviter les conflits lors de l’installation. Ouvrez votre terminal et saisissez la commande :
sudo dnf upgrade --refresh
Cette commande actualise et met à jour tous vos packages système. Si la mise à jour inclut des modifications importantes, telles qu'une mise à niveau du noyau, il est conseillé de redémarrer votre système pour garantir que toutes les mises à jour sont correctement appliquées.
Étape 2 : Installer Firewalld via la commande DNF
Ensuite, installez Firewalld, un gestionnaire de pare-feu dynamique, sur Fedora Linux. Votre système étant désormais à jour, exécutez la commande suivante pour installer Firewalld :
sudo dnf install firewalld
Les pare-feu gèrent le trafic réseau via des règles personnalisables et sont des composants essentiels de la sécurité du système.
Étape 3 : Activer et démarrer Firewalld
Une fois installé, il est essentiel de configurer Firewalld pour qu'il démarre automatiquement au démarrage du système et le lance immédiatement. Utilisez cette commande pour activer et démarrer Firewalld :
sudo systemctl enable firewalld --now
Cette commande garantit que Firewalld est actif et exécuté après le redémarrage du système, maintenant ainsi une protection continue du réseau.
Étape 4 : Vérifiez l'état du pare-feu
La vérification de l'état opérationnel de Firewalld est essentielle pour confirmer qu'il fonctionne correctement. Utilisez la commande suivante pour vérifier son état :
sudo firewall-cmd --state
Une sortie réussie indique que Firewalld est actif et fonctionne comme prévu.
Étape 5 : Répertorier les règles de pare-feu existantes
Avant d'intégrer Fail2Ban, il est crucial de comprendre les règles actuelles définies dans Firewalld. Familiarisez-vous avec ces règles en les énumérant :
sudo firewall-cmd --list-all
Comprendre les règles actuelles du pare-feu est essentiel pour configurer correctement Fail2Ban. Cela garantit qu’il s’intègre parfaitement à vos mesures de sécurité existantes, évitant ainsi les conflits potentiels. Avec Firewalld désormais opérationnel sur votre système Fedora, nous pouvons installer Fail2Ban.
Étape 6 : Installez Fail2Ban et son intégration Firewalld
Avec Firewalld déjà configuré sur votre système, vous pouvez installer Fail2Ban, un outil essentiel pour la sécurité du serveur. Fail2Ban est facilement disponible dans le référentiel Fedora, vous garantissant ainsi d'obtenir la version la plus récente et la plus sécurisée. Pour installer Fail2Ban avec son intégration Firewalld, utilisez la commande :
sudo dnf install fail2ban fail2ban-firewalld
Cette commande installe Fail2Ban et les composants nécessaires pour fonctionner de manière transparente avec Firewalld.
Étape 7 : Vérifiez la version de Fail2Ban
Après l'installation, il est essentiel de vérifier que Fail2Ban est correctement installé. Vérifiez la version de Fail2Ban pour confirmer ceci :
fail2ban-client --version
Cette étape vous assure que la version installée est à jour.
Étape 8 : Activer et démarrer le service Fail2Ban
Ensuite, activez Fail2Ban pour démarrer automatiquement au démarrage du système et commencer à fonctionner immédiatement. Exécutez cette commande :
sudo systemctl enable fail2ban --now
L'activation de Fail2Ban garantit une surveillance continue et une protection contre les tentatives d'accès non autorisées.
Étape 9 : Vérifiez l'état du service Fail2Ban
Pour vous assurer que Fail2Ban est opérationnel, vérifiez l'état de son service :
systemctl status fail2ban
Une sortie réussie indique que Fail2Ban surveille votre serveur pour détecter les activités suspectes.
À ce stade, Fail2ban est installé avec succès. Les sections suivantes expliquent les bases de la configuration et de la modification des fichiers de configuration.
Créer un fichier de configuration Fail2ban
Créer un fichier de configuration personnalisé
Après avoir installé Fail2Ban, il est important de le configurer en fonction de vos besoins spécifiques. Fail2Ban utilise principalement deux fichiers de configuration : /etc/fail2ban/jail.conf
et /etc/fail2ban/jail.d/00-firewalld.conf
. Pour protéger vos configurations personnalisées contre les écrasements lors des mises à jour, vous devez créer un .local
copie d'extension du fichier de configuration.
Tout d’abord, reproduisez le jail.conf
fichier pour créer un jail.local
déposer. Cela se fait en utilisant le cp
(copier) commande :
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Cette étape garantit que vous disposez d'un fichier de configuration distinct qui ne sera pas automatiquement remplacé lors des mises à jour logicielles.
Ensuite, ouvrez le jail.local
fichier dans un éditeur de texte, tel que Nano, pour modification :
sudo nano /etc/fail2ban/jail.local
Dans ce fichier, localisez la section contenant les paramètres IPTABLES. Celles-ci doivent être remplacées par des configurations spécifiques à Firewalld, reflétant le changement dans le backend du pare-feu :
; Replace this
banaction = iptables-multiport
banaction_allports = iptables-allports
; With this
banaction = firewallcmd-rich-rules[actiontype=]
banaction_allports = firewallcmd-rich-rules[actiontype=]
Personnaliser les paramètres Fail2Ban
Il est crucial de configurer Fail2Ban pour répondre à vos exigences de sécurité. Cela implique de définir des paramètres tels que la durée d'interdiction, la liste blanche des adresses IP et les notifications par e-mail.
Incrément de durée d'interdiction :
Pour augmenter la durée de l'interdiction pour les récidivistes, ajustez la bantime.multipliers
paramètre. En décommentant et en modifiant cette ligne, vous pouvez définir comment la durée du bannissement augmente à chaque infraction ultérieure :
bantime.multipliers = 1 5 30 60 300 720 1440 2880
Cette configuration signifie que la durée initiale du bannissement est de 1 minute, passant à 5 minutes, puis 30 minutes, et ainsi de suite, jusqu'à un maximum de 48 heures.
Liste blanche des adresses IP
Il est parfois nécessaire d'exclure des IP spécifiques des bannissements, notamment pour les réseaux de confiance ou votre IP. C'est là que le ignoreip
le réglage entre en jeu. Modifiez-le pour ajouter toutes les adresses IP que vous souhaitez mettre sur liste blanche :
ignoreip = 127.0.0.1/8 ::1 180.53.31.33
Paramètres de durée d'interdiction par défaut
Vous pouvez définir des règles générales de durée d'interdiction pour divers services. Par exemple, ajuster la durée d'interdiction et les limites de nouvelle tentative pour le service Apache :
[apache-noscript]
enabled = true
port = http,https
logpath = %(apache_error_log)s
bantime = 1d
maxretry = 3
Dans cet exemple, la durée d'interdiction est définie sur 1 jour avec une limite maximale de tentatives de 3 tentatives.
Notifications par email
Configurez Fail2Ban pour envoyer des notifications par e-mail en cas d'action d'interdiction. Cela se fait en définissant le destemail
et sender
des champs:
destemail = admin@example.com
sender = fail2ban@example.com
Cette configuration garantit que vous êtes rapidement informé de toutes les mesures de sécurité prises par Fail2Ban.
Configuration supplémentaire des prisons Fail2ban
Prison Nginx
Une prison personnalisée peut être créée pour les serveurs Nginx afin de bloquer les requêtes avec des noms d'hôte non valides. Ceci est utile pour atténuer les attaques qui ciblent des domaines inexistants sur votre serveur :
[nginx-badhost]
enabled = true
port = http,https
logpath = /var/log/nginx/error.log
maxretry = 3
bantime = 2h
Prison Postfix
Pour protéger votre serveur de messagerie Postfix contre les violations liées au spam, créez une prison ciblant spécifiquement les activités de spam :
[postfix-spam]
enabled = true
port = smtp,ssmtp
logpath = /var/log/mail.log
maxretry = 5
bantime = 1h
Prison du pigeonnier
Pour les services Dovecot IMAP, il est essentiel de disposer d'une prison qui cible les tentatives d'accès non autorisées, renforçant ainsi la sécurité de votre serveur de messagerie :
[dovecot-auth]
enabled = true
port = imap,imaps
logpath = /var/log/dovecot.log
maxretry = 5
bantime = 1h
Redémarrer Fail2Ban
Une fois toutes les configurations définies, redémarrez Fail2Ban pour activer les modifications. Cela garantit que vos paramètres nouvellement définis sont appliqués et que le système est protégé selon les nouvelles règles :
sudo systemctl restart fail2ban
Filtres et actions personnalisés avec Fail2ban
La création de filtres et d'actions personnalisés dans Fail2Ban vous permet d'adapter la sécurité de votre serveur pour répondre aux besoins spécifiques de Fedora Linux.
Filtres personnalisés
Fail2Ban utilise des filtres, définis par des expressions régulières, pour identifier les tentatives d'accès non autorisées dans les fichiers journaux. Ces filtres sont situés dans le /etc/fail2ban/filter.d
annuaire.
Création d'un filtre personnalisé
Pour créer un filtre personnalisé, vous ouvrez un nouveau fichier dans le répertoire du filtre.
Exécutez la commande :
sudo nano /etc/fail2ban/filter.d/mycustomfilter.conf
Cette étape consiste à utiliser nano
, un éditeur de texte, pour créer et ouvrir un nouveau fichier de configuration de filtre.
Ensuite, définissez votre filtre personnalisé dans ce fichier. La définition du filtre comprend généralement un failregex
, une expression régulière qui correspond aux entrées du journal indiquant les tentatives d'accès non autorisées. Par exemple:
[Definition]
failregex = ^.*unauthorized access attempt from <HOST>.*$
ignoreregex =
Dans cet exemple, le failregex
Le modèle est défini pour correspondre à toute entrée de journal incluant une tentative d'accès non autorisée à partir d'une adresse IP spécifique, indiquée par <HOST>
.
Actions personnalisées
Dans Fail2Ban, les actions définissent la façon dont le système répond aux infractions détectées et sont stockées dans le /etc/fail2ban/action.d
annuaire.
Création d'une action personnalisée
Pour créer une action personnalisée, commencez par créer un nouveau fichier dans le répertoire d'action :
sudo nano /etc/fail2ban/action.d/mycustomaction.conf
Cela ouvre un nouveau fichier dans nano
pour modifier la configuration de votre action personnalisée.
Maintenant, dans ce fichier, ajoutez la définition de votre action :
[Definition]
actionstart = /usr/local/bin/mycustomaction start <name>
actionstop = /usr/local/bin/mycustomaction stop <name>
actioncheck = /usr/local/bin/mycustomaction status <name>
actionban = /usr/local/bin/mycustomaction ban <ip>
actionunban = /usr/local/bin/mycustomaction unban <ip>
Remplacer /usr/local/bin/mycustomaction
avec le chemin d'accès à votre script d'action personnalisé. Des paramètres comme <name>
et <ip>
sera remplacé dynamiquement par Fail2Ban lorsque l'action est exécutée.
Intégration de filtres et d'actions personnalisés
Après avoir créé vos filtres et actions personnalisés, intégrez-les dans la configuration de votre prison. Par exemple:
[mycustomjail]
enabled = true
port = 8080
logpath = /var/log/mycustomservice.log
filter = mycustomfilter
action = mycustomaction
maxretry = 3
bantime = 1h
Cette configuration de prison utilise le filtre personnalisé et l'action que vous avez créés. Il surveille le fichier journal spécifié et applique des interdictions en fonction de vos paramètres.
Redémarrage de Fail2Ban
Pour activer vos nouvelles configurations, redémarrez Fail2Ban :
sudo systemctl restart fail2ban
Cela garantit que tous vos paramètres personnalisés sont chargés et opérationnels.
Client Fail2ban pour les opérations d'interdiction et de désinterdiction
Le fail2ban-client
La commande fait partie intégrante de la gestion des configurations et des prisons Fail2Ban, en particulier pour les opérations manuelles d'interdiction et de levée d'interdiction sur les adresses IP.
Bannir une adresse IP
Pour bannir une adresse IP dans une prison spécifique, exécutez la commande :
sudo fail2ban-client set <jail-name> banip <ip-addresss>
Dans cette commande, remplacez <jail-name>
avec le nom de la prison correspondant et <ip-address>
avec l'adresse IP que vous souhaitez interdire. Par exemple:
sudo fail2ban-client set apache-badbots banip 192.168.1.1
Cette commande particulière interdira l'adresse IP 192.168.1.1 dans le apache-badbots
prison, empêchant ainsi l'accès de cette adresse IP aux services protégés par cette prison.
Annuler le bannissement d'une adresse IP
Pour annuler une interdiction, en annulant une adresse IP dans une prison spécifique, utilisez :
sudo fail2ban-client set <jail-name> unbanip <ip-address>
Ici, remplacez <jail-name>
et <ip-address>
avec le nom de prison et l'adresse IP appropriés. Par exemple:
sudo fail2ban-client set apache-badbots unbanip 192.168.1.1
Cette commande lèvera le bannissement de l'adresse IP 192.168.1.1 du apache-badbots
prison.
Afficher la liste des adresses IP interdites
Pour afficher une liste des adresses IP actuellement interdites dans une prison spécifique, la commande est :
sudo fail2ban-client status <jail-name>
Remplacer <jail-name>
avec le nom de la prison que vous souhaitez inspecter.
Par exemple:
sudo fail2ban-client status apache-badbots
L'exécution de cette commande affichera l'état du apache-badbots
prison, y compris une liste de toutes les adresses IP actuellement interdites par cette prison.
Aide et documentation
Pour obtenir de l'aide ou des détails supplémentaires sur le fail2ban-client
commande, utilisez le -h
drapeau:
sudo fail2ban-client -h
Cette commande affichera un menu d'aide, offrant une liste complète des options et commandes disponibles pour le fail2ban-client
.
Utiliser le fail2ban-client
La commande rationalise le processus de gestion des prisons et permet le bannissement et le débannissement manuels des adresses IP, ainsi que la possibilité de surveiller l'état de vos configurations Fail2Ban.
Vérification de l'intégration de Firewalld et Fail2ban
S'assurer que Firewalld et Fail2ban fonctionnent correctement est crucial pour une sécurité optimale du serveur. Un simple test peut confirmer leur intégration.
Activation de la prison SSHD pour les tests
Pour tester l'intégration entre Fail2ban et Firewalld, activez temporairement la prison SSHD dans Fail2ban, même si elle n'est pas utilisée. Cette action permet une évaluation pratique de la fonctionnalité du système.
Ouvrez le fichier de configuration de la prison Fail2ban à l'aide de cette commande :
sudo nano /etc/fail2ban/jail.local
Cette commande ouvre le fichier de configuration Fail2ban dans l'éditeur nano, vous permettant de modifier les paramètres.
Dans le fichier, localisez le [sshd]
section et modifiez le enabled
réglage sur true
:
[sshd]
enabled = true
Régler ceci sur true
active la prison SSHD, une étape cruciale pour les tests.
Après avoir modifié le fichier, enregistrez les modifications et quittez l'éditeur. Ensuite, redémarrez Fail2ban pour appliquer ces modifications :
sudo systemctl restart fail2ban
Le redémarrage de Fail2ban garantit que la nouvelle configuration est active.
Test de la fonctionnalité d'interdiction
Pour tester manuellement la fonctionnalité d'interdiction :
Bannir une adresse IP dans la prison SSHD en utilisant le fail2ban-client
commande:
sudo fail2ban-client set sshd banip 192.155.1.7
Cette commande demande à Fail2ban d'interdire l'adresse IP spécifiée dans la prison SSHD.
Ensuite, vérifiez si Firewalld a appliqué l'interdiction. Utilisez le firewall-cmd
commande pour lister les règles riches :
firewall-cmd --list-rich-rules
Ceci répertorie toutes les règles riches de Firewalld, y compris celles ajoutées par Fail2ban.
Un exemple de résultat indiquant une intégration réussie :
rule family="ipv4" source address="192.155.1.7" port port="ssh" protocol="tcp" reject type="icmp-port-unreachable"
Fail2ban et Firewalld ont correctement interdit cette adresse IP, comme l'indique le résultat.
Annuler les modifications
Après avoir terminé le test, annulez les modifications si vous n'avez plus besoin de la prison SSHD :
Ouvrez à nouveau le fichier de configuration de la prison Fail2ban :
sudo nano /etc/fail2ban/jail.local
Trouvez le [sshd]
et réinitialisez le enabled
revenir à false
:
[sshd]
enabled = false
Enregistrez vos modifications et quittez l'éditeur. Enfin, redémarrez Fail2ban pour appliquer l'inversion :
sudo systemctl restart fail2ban
Le redémarrage de Fail2ban désactive la prison SSHD, ramenant la configuration à son état d'origine.
Surveiller les journaux Fail2Ban
Une surveillance efficace des journaux Fail2Ban est essentielle pour garantir le bon fonctionnement de vos prisons sur Fedora Linux. L'emplacement par défaut des journaux Fail2Ban est /var/log/fail2ban.log
.
Regarder le fichier journal en temps réel
Pour observer le fichier journal au fur et à mesure que des événements se produisent, utilisez le tail -f
commande. Cela vous permet de visualiser les entrées du journal en temps réel, ce qui est particulièrement utile pour un dépannage immédiat ou pour surveiller les activités en cours :
tail -f /var/log/fail2ban.log
L'exécution de cette commande dans une fenêtre de terminal maintient le fichier journal ouvert et le met à jour en temps réel à chaque nouvelle entrée ajoutée.
Affichage d'un nombre spécifique de lignes à partir du fichier journal
Si vous devez examiner un nombre spécifique d'entrées de journal récentes, le tail
la commande peut être modifiée avec le -n
drapeau. Cet indicateur précise le nombre de lignes à partir de la fin du fichier à afficher :
tail -f /var/log/fail2ban.log -n 30
Cet exemple affichera les 30 dernières lignes du fichier journal. Vous pouvez remplacer 30
avec n'importe quel nombre de lignes qui répondent à vos besoins.
Recherche dans le fichier journal de mots clés ou d'adresses IP spécifiques
Pour une analyse plus ciblée des journaux, comme la recherche d'entrées liées à une adresse IP ou à un événement spécifique, utilisez l'option grep
commande. Cet outil recherche dans le fichier journal les modèles spécifiés :
grep '192.168.1.1' /var/log/fail2ban.log
Dans cet exemple, grep
est utilisé pour localiser toutes les occurrences de l’adresse IP 192.168.1.1
dans le journal Fail2Ban. Cette méthode est particulièrement efficace pour identifier rapidement les actions prises contre une adresse IP spécifique ou identifier les modèles liés à certains types d'incidents de sécurité.
Gestion de Fail2ban
Supprimer (Désinstaller) Fail2ban
Lorsque vous n'avez plus besoin de Fail2Ban sur votre système Fedora, désinstallez-le pour supprimer le logiciel et ses dépendances inutilisées associées. Cette action garantit que votre système reste ordonné et efficace.
Exécutez la commande suivante pour désinstaller Fail2Ban et son intégration Firewalld :
sudo dnf remove fail2ban fail2ban-firewalld
Notez que cela supprimera également toutes les dépendances inutilisées installées avec Fail2Ban.
Conclusion
Félicitations pour avoir installé et configuré avec succès Fail2Ban avec Firewalld sur votre système Fedora Linux ! Vous avez franchi une étape importante vers l'amélioration de la sécurité de votre serveur, en le protégeant efficacement des attaques par force brute et des intrusions non autorisées. N’oubliez pas qu’une surveillance et des mises à jour régulières sont essentielles au maintien d’une sécurité robuste. Restez vigilant, gardez votre système à jour et votre serveur restera un dur à cuire face aux menaces potentielles.