Comment installer Fail2ban avec Firewalld sur Fedora 40 ou 39 Linux

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.

Joshua James
Suis-moi
Les derniers articles par Joshua James (tout voir)

Laissez un commentaire