Comment utiliser Fail2Ban pour sécuriser votre serveur Linux

Comment utiliser Fail2Ban pour sécuriser votre serveur Linux

Améliorer la sécurité de votre serveur devrait être l'une de vos principales priorités lorsqu'il s'agit de gérer un serveur Linux. En examinant les journaux de vos serveurs, vous pouvez souvent trouver différentes tentatives de connexion par force brute, d'inondations Web, de recherche d'exploits et bien d'autres.

Avec un logiciel de prévention des intrusions tels que fail2ban, Vous pouvez examiner vos journaux de serveur et ajouter des règles iptables supplémentaires pour bloquer les adresses IP problématiques.

Lire aussi: Comment installer Fail2ban pour protéger SSH sur Centos / Rhel 8

Ce tutoriel vous montrera comment installer fail2ban et configurer la configuration de base pour protéger votre système Linux contre les attaques de force brute.

Exigences

Fail2ban est écrit en python et la seule exigence est d'installer Python:

  • Fail2ban branche 0.9.x nécessite Python> = 2.6 ou python> = 3.2
  • Fail2ban branche 0.8.x nécessite Python> = 2.4
  • Accès racine à votre système
  • Éventuellement, iptables ou showewall et sendmail

Comment installer Fail2ban dans les systèmes Linux

Installation de fail2ban est relativement facile:

Installer Fail2ban sur Centos / Rhel

Tout d'abord, mettez à jour vos packages, activez le Epel référentiel et installation fail2ban comme montré.

# mim mise à jour # yum install epel-release # yum install fail2ban 

Installer Fail2ban sur Debian / Ubuntu

Tout d'abord, mettez à jour vos packages et installez fail2ban comme montré.

# APT-Get Update && APT-Get Adthing -y # apt-get install fail2ban 

En éventuellement, si vous souhaitez activer la prise en charge du courrier (pour les notifications de courrier), vous pouvez installer Sendmail.

# yum install sendmail [sur Centos / Rhel] # apt-get install sendmail-bin sendmail [sur Debian / Ubuntu]] 

Autoriser fail2ban et envoyer un mail Utilisez les commandes suivantes:

# systemctl start fail2ban # systemctl activer fail2ban # systemctl start sendmail # systemctl activer sendmail 

Comment configurer Fail2ban dans les systèmes Linux

Par défaut, fail2ban utilise le .confli Fichiers situés dans / etc / fail2ban / qui sont lus en premier. Cependant, ceux-ci peuvent être remplacés par .local Fichiers situés dans le même répertoire.

Ainsi, le .local Le fichier n'a pas besoin d'inclure tous les paramètres du .confli fichier, mais uniquement ceux que vous souhaitez remplacer. Des modifications doivent être apportées dans le .local fichiers, pas dans le .confli. Cela empêchera les modifications d'écrasement lors de la mise à niveau du paquet Fail2ban.

Aux fins de ce tutoriel, nous copierons le fail2ban.confli déposer à fail2ban.local.

# cp / etc / fail2ban / fail2ban.conf / etc / fail2ban / fail2ban.local 

Maintenant, vous pouvez apporter les modifications dans le .local fichier en utilisant votre éditeur de texte préféré. Les valeurs que vous pouvez modifier sont:

  • logevel - C'est le niveau de détail à enregistrer. Les options possibles sont:
    • CRITIQUE
    • ERREUR
    • AVERTISSEMENT
    • AVIS
    • INFO
    • DÉBOGUER
  • logtarget - Enregistrer les actions dans un fichier spécifique. La valeur par défaut est / var / log / fail2ban.enregistrer. Vous pouvez cependant changer cela en:
    • STDOUT - Sortir toutes les données
    • STDERR - Épuisez toutes les erreurs
    • Syslog - journalisation basée sur des messages
    • Fichier - sortie vers un fichier
  • prise - répertoire dans lequel le fichier de douille sera placé.
  • pidfile - Emplacement du pidfile.

Configurer la prison Fail2ban.local

L'un des fichiers les plus importants de Fail2ban est prison.confli qui définit vos prisons. C'est là que vous définissez les services pour lesquels Fail2ban doit être activé.

Comme nous l'avons mentionné plus tôt .confli Les fichiers peuvent être modifiés lors des mises à niveau, vous devez donc créer un prison.local fichier où vous pouvez appliquer vos modifications.

Une autre façon de le faire est de simplement copier le .confli dossier avec:

# cp / etc / fail2ban / prison.conf / etc / fail2ban / prison.local 

Dans le cas où vous utilisez Centos ou Feutre, vous devrez changer le backend dans prison.local depuis "auto" pour «Systemd».

Activer le backend dans Fail2ban

Si vous utilisez Ubuntu / Debian, Il n'est pas nécessaire de faire cette modification, même s'ils utilisent aussi systemd.

Le fichier de prison permettra par défaut SSH pour Debian et Ubuntu, mais pas sur Centos. Si vous souhaitez l'activer, modifiez simplement la ligne suivante dans / etc / fail2ban / prison.local:

[sshd] activé = true 
Interdiction et réessayer les temps

Vous pouvez configurer la circonstance après laquelle une adresse IP est bloquée. Dans ce but, fail2ban les usages bantile, trouver le temps et maxret.

  • bantile - Il s'agit du nombre de secondes qu'une adresse IP restera interdite (par défaut dix min).
  • trouver le temps - le temps entre les tentatives de connexion, avant que l'hôte ne soit interdit. (défaut dix min). En d'autres termes, si Fail2ban est défini pour bloquer une adresse IP après 3 Échec des tentatives de connexion, celles 3 les tentatives doivent être effectuées dans la période de découverte (dix minons).
  • maxret - Nombre de tentatives à faire avant qu'une interdiction ne soit appliquée. (défaut 3).
Adresse IP de liste blanche

Bien sûr, vous voudrez la liste blanche certaines adresses IP. Pour configurer ces adresses IP ouvertes / etc / fail2ban / prison.local Avec votre éditeur de texte préféré et l'intercomance, la ligne suivante:

Ignoreip = 127.0.0.1/8 :: 1 

Ensuite, vous pouvez mettre les adresses IP que vous souhaitez être ignorées. Les adresses IP doivent être séparées de l'espace ou de la virgule.

alertes courrier électronique

Si vous souhaitez recevoir des alertes de courrier lors de l'événement, vous devrez configurer les paramètres suivants dans / etc / fail2ban / prison.local:

  • destremail - Adresse mail, où vous recevrez la notification.
  • Nom de l'expéditeur - l'expéditeur que vous verrez lors de la réception du message.
  • expéditeur - Adresse e-mail à partir de laquelle Fail2ban enverra les e-mails.

Le défaut MTA (agent de transfert de courrier) est réglé sur envoyer un mail.

Afin de recevoir des notifications de courrier, vous devrez également modifier le "action" Réglage de:

Action =% (action_) s 

À l'un de ceux-ci:

action =% (action_mw) s action =% (action_mwl) s 
  • % (action_mw) s - interdire l'hôte et enverra un courrier avec un rapport whois.
  • % (action_mwl) s - interdire l'hôte, fournira des informations WHOIS et toutes les informations pertinentes du fichier journal.

Configuration supplémentaire de la prison Fail2ban

Jusqu'à présent, nous avons examiné les options de configuration de base. Si vous souhaitez configurer une prison, vous devrez l'activer dans le prison.local déposer. La syntaxe est assez simple:

[Jail_to_enable]… activé = true 

Où vous devez remplacer prison_to_enable avec la prison réelle, par exemple, "SSHD". Dans le prison.local Fichier, les valeurs suivantes seront prédéfinies pour le service SSH:

[sshd] port = ssh logPath =% (sshd_log) s 

Vous pouvez activer le filtre qui aidera à identifier si une ligne dans le journal est échoué. La valeur du filtre est en fait une référence à un fichier avec le nom du service suivi de .confli. Par exemple: / etc / fail2ban / filtre.d / sshd.confli.

La syntaxe est:

filtre = service 

Par exemple:

filtre = sshd 

Vous pouvez consulter les filtres existants dans le répertoire suivant: / etc / fail2ban / filtre.d/.

Utiliser Fail2ban-Client

Fail2ban est livré avec un client qui peut être utilisé pour examiner et modifier la configuration actuelle. Puisqu'il offre de nombreuses options, vous pouvez passer par son manuel avec:

# homme fail2ban-client 

Ici, vous verrez certaines des commandes de base que vous pouvez utiliser. Pour revoir l'état actuel de fail2ban ou pour une prison spécifique, vous pouvez utiliser:

# statut de l'échec 2ban 

Le résultat ressemblera à ceci:

Vérifier l'état de l'échec 2ban

Pour une prison individuelle, vous pouvez courir:

# Fail2ban-Client Status SSHD 

Dans la capture d'écran ci-dessous, vous verrez que j'ai délibérément échoué plusieurs connexions pour que Fail2ban puisse bloquer l'adresse IP à partir de laquelle j'essayais de me connecter:

Vérifier l'état de SSH Fail2ban
Conclusion

Fail2ban est un excellent système de prévention des intrusions bien documentée, qui offre une sécurité supplémentaire à votre système Linux. Il faut du temps pour s'habituer à sa configuration et à sa syntaxe, mais une fois que vous vous êtes familiarisé avec lui, vous vous sentirez libre de changer et d'étendre ses règles.