GNU/Linux >> Tutoriels Linux >  >> AlmaLinux

Comment installer Fail2ban avec Firewalld sur AlmaLinux 8

Fail2ban est un cadre logiciel de prévention des intrusions qui protège les serveurs informatiques des attaques par force brute, en interdisant les agents utilisateurs malveillants, en interdisant les analyseurs d'URL, et bien plus encore. Fail2ban y parvient en lisant les journaux d'accès/d'erreurs de votre serveur ou de vos applications Web. Fail2ban est codé dans le langage de programmation Python.

Le guide donnera un aperçu de l'installation de Fail2ban sur AlmaLinux 8, ainsi que des conseils et une configuration de base.

Prérequis

  • OS recommandé : AlmaLinux 8.
  • Compte utilisateur : Un compte utilisateur avec des privilèges sudo ou accès root (commande su) .

Mise à jour du système d'exploitation

Mettez à jour votre AlmaLinux système d'exploitation pour s'assurer que tous les packages existants sont à jour :

sudo dnf upgrade --refresh -y

Le tutoriel utilisera la commande sudo et en supposant que vous avez le statut sudo . Pour vérifier le statut sudo sur votre compte :

sudo whoami

Exemple de sortie montrant l'état de sudo :

[joshua@localhost ~]$ sudo whoami
root

Si vous n'avez pas configuré de compte utilisateur sudo et que vous souhaitez le faire, consultez notre tutoriel sur Comment ajouter un utilisateur à Sudoers sur AlmaLinux .

Pour utiliser le compte racine , utilisez la commande suivante avec le mot de passe root pour vous connecter.

su

Installer le référentiel EPEL

La première étape consiste à importer le référentiel depuis EPEL (Extra Packages for Enterprise Linux) comme suit :

sudo dnf install epel-release

Exemple de résultat :

Tapez "O", puis appuyez sur la « TOUCHE ENTRÉE » pour poursuivre l'installation.

C'est toujours une bonne idée de vérifier si le référentiel a été ajouté avec succès; cela peut être fait avec la commande dnf repolist comme ci-dessous :

sudo dnf repolist

Exemple de résultat :

Comme vous pouvez le voir, le référentiel EPEL est ajouté correctement. Astuce pratique, vous pouvez réutiliser cette commande pour voir toutes les importations futures du référentiel.

Configurer le pare-feu

Par défaut, AlmaLinux est livré avec firewalld installé. Pour le vérifier, utilisez la commande suivante :

sudo dnf info firewalld

Exemple de résultat :

Comme vous pouvez le voir, ceci est installé sur AlmaLinux 8 par défaut; de plus, il devrait être automatiquement activé sur votre système.

Pour le confirmer, utilisez la commande systemctl suivante :

sudo systemctl status firewalld

Exemple de résultat :

Une autre astuce pratique avec firewalld consiste à utiliser la commande firewall-cmd –state pour vérifier s'il est en cours d'exécution ou non :

sudo firewall-cmd --state

Exemple de résultat :

running

Si votre pare-feu est désactivé, pour le démarrer, utilisez ce qui suit :

sudo systemctl start firewalld

Pour le réactiver afin qu'il démarre au démarrage du système, utilisez ce qui suit :

sudo systemctl enable firewalld

Exemple de résultat en cas de succès :

Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.

Si votre pare-feu a été supprimé, vous pouvez réinstaller firewalld avec la commande suivante :

sudo dnf install firewalld

Enfin, pour vérifier les règles actuelles avant que de nouvelles ne soient ajoutées par fail2ban, listez celles qui existent pour vous familiariser avec firewalld :

sudo firewall-cmd --list-all

Exemple de résultat :

Installer Fail2ban

Maintenant que vous avez installé le référentiel EPEL, il est temps d'installer fail2ban et le package supplémentaire fail2ban-firewalld, qui configurera correctement Fail2ban pour qu'il fonctionne avec firewalld pour une utilisation future.

sudo dnf install fail2ban fail2ban-firewalld

Exemple de résultat :

Tapez Y, puis appuyez sur la TOUCHE ENTRÉE pour poursuivre l'installation.

Par défaut, fail2ban ne sera pas actif, vous devez donc le démarrer manuellement avec la commande systemctl suivante :

sudo systemctl start fail2ban

Ensuite, pour activer fail2ban au démarrage du système, utilisez ce qui suit :

sudo systemctl enable fail2ban

Vérifiez l'état avec la commande suivante :

sudo systemctl status fail2ban

Exemple de résultat :

Enfin, vérifiez la version et le build de fail2ban :

fail2ban-client --version

Exemple de résultat :

Fail2Ban v0.11.2

Comment configurer Fail2ban

Après avoir terminé l'installation, nous devons maintenant effectuer une configuration et une configuration de base. Fail2ban est livré avec deux fichiers de configuration situés dans /etc/fail2ban/jail.conf et la prison fail2ban par défaut /etc/fail2ban/jail.d/00-firewalld.conf . Ne modifiez pas ces fichiers. Les fichiers de configuration d'origine sont vos originaux et seront remplacés dans toute mise à jour de Fail2ban à l'avenir.

Maintenant, vous vous demandez peut-être comment nous configurons Fail2ban comme si vous mettez à jour et perdez vos paramètres. Simple, nous créons des copies se terminant par .local au lieu de .conf car fail2ban lira toujours .local fichiers avant de charger .conf .

Pour ce faire, utilisez les commandes suivantes.

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Par défaut, jail.local est configuré pour utiliser IPTABLES . Pour garder les choses simples, au lieu d'utiliser le 00-firewalld.conf/jail et créez vos règles à partir de zéro, ouvrez jail.local et allez à la ligne 208 et remplacez :

Ouvrez jail.local :

sudo nano /etc/fail2ban/jail.local

Trouver Ol code (IPTABLES) :

anaction = iptables-multiport
banaction_allports = iptables-allports

Remplacer par (FIREWALLD) :

banaction = firewallcmd-rich-rules[actiontype=]
banaction_allports = firewallcmd-rich-rules[actiontype=]

Ensuite, le didacticiel passera en revue certains paramètres que vous pouvez utiliser ou modifier à votre guise. Notez que la plupart des paramètres sont commentés ; le tutoriel décommentera les lignes en question ou modifiera celles existantes dans les paramètres de l'exemple.

N'oubliez pas qu'il s'agit de paramètres facultatifs et que vous pouvez définir ce que vous voulez si vous en savez plus sur fail2ban et que vous avez confiance.

Incrément de temps d'interdiction

Le premier paramètre que vous rencontrerez est Interdire les incréments de temps . Vous devez l'activer chaque fois que l'attaquant revient. Cela augmentera le temps d'interdiction, évitant à votre système de bannir constamment la même adresse IP si la durée de votre interdiction est mineure ; par exemple, 1 heure, vous voudriez que cela soit plus long si l'attaquant revient x5 fois.

Vous devez également définir un multiplicateur ou un facteur pour que la logique d'augmentation de l'interdiction fonctionne. Vous pouvez choisir n'importe lequel d'entre eux; cependant, dans notre guide, nous préférons les multiplicateurs, comme indiqué dans notre exemple ci-dessous, car vous pouvez définir des augmentations de temps d'interdiction personnalisées à votre guise. Vous trouverez plus d'explications dans la configuration des calculs sous-jacents.

Exemple ci-dessous :

Liste blanche des IP dans Fail2ban

Ensuite dans la liste, nous rencontrons des options de liste blanche, décommentez ce qui suit et adressez toutes les adresses IP que vous souhaitez ajouter à la liste blanche.

ignoreip = 127.0.0.1/8 ::1 180.53.31.33 (example IP address)

Assurez-vous d'espacer ou de virgule entre les adresses IP. Vous pouvez également ajouter des plages d'adresses IP à la liste blanche.

Exemple ci-dessous :

Configuration de l'heure d'interdiction par défaut

Les délais d'interdiction par défaut sont de 10 minutes par défaut avec 10 minutes de recherche sur 5 tentatives. Une explication à cela est que la prison Fail2ban avec filtrage bannira votre attaquant pendant 10 minutes après qu'il aura retenté la même attaque en 10 minutes (trouver l'heure) x 5 fois (retries). Vous pouvez définir certains paramètres d'interdiction par défaut ici.

Cependant, lorsque vous arrivez en prison, il est conseillé de définir des délais de bannissement différents, car certains bannissements devraient automatiquement être plus longs que d'autres, y compris les tentatives qui devraient être plus ou moins longues.

Exemple ci-dessous :

E-mail configuré avec Fail2ban

Vous pouvez définir une adresse e-mail pour que Fail2ban envoie des rapports. L'action par défaut =%(action_mw)s qui interdit l'adresse IP incriminée et envoie un e-mail avec un rapport whois que vous pouvez consulter. Cependant, dans votre dossier action.d, d'autres options de messagerie existent pour signaler non seulement vous-même, mais envoyer des e-mails aux fournisseurs de la liste noire et au FAI de l'attaquant à signaler.

Exemple ci-dessous :

# Destination email address used solely for the interpolations in
# jail.{conf,local,d/*} configuration files.
destemail = [email protected]

# Sender e-mail address used solely for some actions
sender = [email protected]

Notez que par défaut, Fail2ban utilise sendmail MTA pour les notifications par e-mail. Vous pouvez le remplacer par la fonction de messagerie en procédant comme suit :

Changer de :

mta = sendmail

Remplacer par :

mail = sendmail

Prisons Fail2ban

Ensuite, nous arrivons aux prisons. Vous pouvez définir des prisons prédéfinies avec des filtres et des actions créés par la communauté couvrant de nombreuses applications serveur populaires. Vous pouvez créer des prisons personnalisées ou en trouver des externes sur divers gists et les sites Web communautaires ; cependant, nous configurerons les jails de package Fail2ban par défaut.

Configuration par défaut pour toutes les prisons selon l'image ci-dessous. Remarquez que rien n'est activé.

Exemple ci-dessous :

[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
port     = http,https
logpath  = %(apache_access_log)s
bantime  = 48h
maxretry = 1

Donc, nous avons un serveur HTTP Apache 2, et comme pour filtrer/interdire les mauvais bots, tout ce que vous avez à faire est d'ajouter enabled =true comme dans l'exemple ci-dessous.

[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
enabled = true
port     = http,https
logpath  = %(apache_access_log)s
bantime  = 48h
maxretry = 1

Remarquez que le nombre maximal de tentatives est égal à 1 et que le délai d'interdiction est de 48 heures. Il s'agit d'un réglage individuel de la durée maximale des tentatives et des interdictions pour cette prison qui augmentera automatiquement avec le multiplicateur d'interdiction que nous avons configuré plus tôt dans le guide. S'il manque ceci à l'un des filtres, vous pouvez l'ajouter à titre d'exemple.

[apache-noscript]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s

Modifiez ci-dessus l'exemple suivant :

[apache-noscript]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
bantime = 1d
maxretry = 3

Ensuite, vous aimeriez avoir des actions différentes de celles spécifiées dans votre configuration par défaut dans /etc/fail2ban/jail.local, des actions supplémentaires que vous pouvez trouver dans le répertoire action.d. Différentes actions de ce répertoire peuvent être facilement configurées en suivant les instructions à l'intérieur de ces lignes de configuration d'action dans les fichiers, en n'oubliant pas de les renommer d'abord en .jail sur .conf, puis en ajoutant ce qui suit à votre configuration de prison.

[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
banaction = action_mw
cloudflare
bantime = 72h
maxretry = 1

Comme vous pouvez le voir, nous avons ajouté action_mw, donc il interdit automatiquement selon notre action par défaut et nous envoie un rapport avec whois, puis l'action suivante, si vous utilisez Cloudflare, il bloquera également l'adresse IP sur le service. N'oubliez pas que Cloudflare doit être configuré avant utilisation. Lire le fichier action.d cloudflare.conf .

Une fois que vous êtes satisfait de votre configuration, exécutez la commande suivante pour redémarrer fail2ban afin de charger vos nouvelles prisons.

sudo systemctl restart fail2ban

Exemples d'utilisation du client Fail2ban

Maintenant que vous êtes opérationnel avec Fail2ban, vous devez connaître certaines commandes de fonctionnement de base. Pour ce faire, nous utilisons la commande fail2ban-client. Vous devrez peut-être disposer des privilèges sudo, selon votre configuration.

Bannir une adresse IP :

sudo fail2ban-client set apache-botsearch banip <ip address>

Débannir une adresse IP :

sudo fail2ban-client set apache-botsearch unbanip <ip address>

Commande pour afficher le menu d'aide si vous avez besoin de trouver des paramètres supplémentaires ou d'obtenir de l'aide sur un paramètre particulier.

sudo fail2ban-client -h

Vérifier Firewalld et Fail2ban

Par défaut, firewalld doit être configuré pour interdire automatiquement toute adresse IP sur laquelle fail2ban effectue une interdiction. Pour voir si cela fonctionne bien, utilisez la commande suivante :

Un test rapide est situé dans votre prison [SSHD] et en plaçant enabled =true même si vous n'utilisez pas cette prison car il ne s'agit que d'un test, utilisez la commande d'interdiction suivante :

sudo fail2ban-client set sshd banip 192.155.1.7

Répertoriez maintenant les règles enrichies de la liste de pare-feu comme suit :

firewall-cmd --list-rich-rules

Exemple de résultat :

rule family="ipv4" source address="192.155.1.7" port port="ssh" protocol="tcp" reject type="icmp-port-unreachable"

Comme vous pouvez le voir, fail2ban et firewalld fonctionnent correctement pour un environnement en direct.

Surveillance des journaux Fail2ban

De nombreuses erreurs courantes consistent à mettre en place des prisons et à s'en aller sans tester ni surveiller ce qu'ils font. L'examen des journaux est essentiel, le journal fail2ban se trouvant dans son chemin par défaut /var/log/fail2ban.log .

Si vous avez un serveur recevant un trafic décent, une excellente commande pour regarder en direct pour voir les problèmes et garder un œil dessus pendant que vous travaillez sur d'autres serveurs est d'utiliser la commande tail -f ci-dessous.

sudo tail -f /var/log/fail2ban.log

La commande peut être utile pour une vérification ponctuelle sans avoir à plonger dans la journalisation.

Désinstaller Fail2ban

Si vous n'avez plus besoin de Fail2ban, pour le supprimer de votre système, utilisez la commande suivante :

sudo dnf autoremove fail2ban fail2ban-firewalld

Exemple de résultat :

Tapez Y, puis appuyez sur la TOUCHE ENTRÉE pour poursuivre la désinstallation.

Notez que cela supprimera également toutes les dépendances inutilisées qui ont été installées avec Fail2ban.


AlmaLinux
  1. Comment installer Fail2ban avec Firewalld sur Rocky Linux 8.4

  2. Comment installer MongoDB sur AlmaLinux 8

  3. Comment installer la dernière version de PHP 8.1 sur AlmaLinux

  4. Comment installer Lighttpd sur AlmaLinux 8

  5. Comment installer Fail2ban avec Firewalld sur Rocky Linux 8

Comment installer le noyau Linux 5.15 sur AlmaLinux 8

Comment installer et configurer Memcached sur AlmaLinux 8

Comment installer et configurer Git sur AlmaLinux 8

Comment installer Redis et configurer sur AlmaLinux 8

Comment installer Elasticsearch sur AlmaLinux 8

Comment installer Fail2Ban sur AlmaLinux 8