« LINUX:Fail2Ban » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 46 : Ligne 46 :
   /usr/bin/fail2ban-client status $I >> f2b.lis
   /usr/bin/fail2ban-client status $I >> f2b.lis
  done
  done
----
Voici un extrait pour les modules "apache-auth" et "sshd":
----
======================================
apache-auth
Status for the jail: apache-auth
|- Filter
|  |- Currently failed: 1
|  |- Total failed:    9
|  `- File list:        /var/log/httpd/error_log /var/log/httpd/ssl_error_log /var/log/httpd/ssl_access_log /var/log/httpd/access_log
`- Actions
    |- Currently banned: 1
    |- Total banned:    1
    `- Banned IP list:  192.168.1.20
======================================
sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:    4
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
    |- Currently banned: 1
    |- Total banned:    1
    `- Banned IP list:  192.168.1.20
----
----


Pour repérer directement dans le firewall les adresses IP bannies, voici la commande:
Pour repérer directement dans le firewall les adresses IP bannies, voici la commande:
  /usr/sbin/iptables -L -n | /usr/bin/grep REJECT | /usr/bin/grep all | grep -v "\-\-  0.0.0.0/0" | /usr/bin/sort -u
  /usr/sbin/iptables -L -n  
On pourra remarquer que la règle est liée à un module.
Voici un extrait pour les deux mêmes modules:
----
Chain INPUT (policy ACCEPT)
target          prot opt source              destination
f2b-sshd        tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 6444
f2b-apache-auth  tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 80,443
----
Chain f2b-apache-auth (1 references)
target          prot opt source              destination
REJECT           all  --  192.168.1.20        0.0.0.0/0            reject-with icmp-port-unreachable
RETURN          all  --  0.0.0.0/0            0.0.0.0/0
----
Chain f2b-sshd (1 references)
target          prot opt source              destination
REJECT          all -- 192.168.1.20        0.0.0.0/0            reject-with icmp-port-unreachable
RETURN          all  --  0.0.0.0/0           0.0.0.0/0
----
On pourra remarquer que les règles sont liées aux modules qui ont eu un bannissement.
 


Pour enlever un adresse IP bannie, utilisez la commande suivante:
Pour enlever un adresse IP bannie, utilisez la commande suivante:
  fail2ban-client set <module> unbanip <adresse IP>
  fail2ban-client set <module> unbanip <adresse IP>
par exemple pour les modules "apache-auth" et "sshd" qui bloques l'adresse IP "192.168.1.20":
par exemple pour les modules "apache-auth" et "sshd" qui bloquent l'adresse IP "192.168.1.20":
  fail2ban-client set apache-auth unbanip 192.168.1.20
  fail2ban-client set apache-auth unbanip 192.168.1.20
  fail2ban-client set sshd unbanip 192.168.1.20
  fail2ban-client set sshd unbanip 192.168.1.20

Version du 19 février 2022 à 15:23


retour au menu pour contrer les attaques


But

"fail2ban" est un logiciel qui se charge d'analyser les logs de divers services installés sur la machine, pour bannir automatiquement un hôte via le firewall "iptables" pour une durée déterminée, après un certain nombre de tentatives infructueuses. Il s'intéresse spécialement aux authentifications. C'est un élément essentiel pour sécuriser son système, et éviter des intrusions via brute-force.


Installation

Pour installer ce programme, exécutez la commande suivante:

dnf install fail2ban-server

et éventuellement:

dnf install fail2ban-mail
dnf install fail2ban-sendmail


Configuration

Service

On doit activer et lancer le service correspondant:

systemctl enable fail2ban
systemctl start fail2ban


Statuts

On passer en revue l'état des différents modules et ainsi repérer quelles sont les adresses IP bannies.

Le script suivant y pourvoie; le résultat est placé dans le fichier "f2b.lis":


#!/bin/bash
# statut des modules actifs de Fail2ban
# lister les modules actifs
/usr/bin/fail2ban-client status > f2b.lis
/usr/bin/grep "Jail list:" f2b.lis | /usr/bin/awk  -F ":" '{printf("%s\n",$2)}' > temp1.log
/usr/bin/sed -i 's/,/ /g' temp1.log
LISTE=`/usr/bin/cat temp1.log`
/usr/bin/rm -f temp1.log
# passer le statut de chaque module actif
for I in $LISTE
do
 echo "======================================" >> f2b.lis
 echo $I >> f2b.lis
 /usr/bin/fail2ban-client status $I >> f2b.lis
done

Voici un extrait pour les modules "apache-auth" et "sshd":


==========================
apache-auth
Status for the jail: apache-auth
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     9
|  `- File list:        /var/log/httpd/error_log /var/log/httpd/ssl_error_log /var/log/httpd/ssl_access_log /var/log/httpd/access_log
`- Actions
   |- Currently banned: 1
   |- Total banned:     1
   `- Banned IP list:   192.168.1.20
==========================
sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     4
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 1
   |- Total banned:     1
   `- Banned IP list:   192.168.1.20


Pour repérer directement dans le firewall les adresses IP bannies, voici la commande:

/usr/sbin/iptables -L -n 

Voici un extrait pour les deux mêmes modules:


Chain INPUT (policy ACCEPT)
target           prot opt source               destination
f2b-sshd         tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 6444
f2b-apache-auth  tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 80,443

Chain f2b-apache-auth (1 references)
target           prot opt source               destination
REJECT           all  --  192.168.1.20         0.0.0.0/0            reject-with icmp-port-unreachable
RETURN           all  --  0.0.0.0/0            0.0.0.0/0

Chain f2b-sshd (1 references)
target           prot opt source               destination
REJECT           all  --  192.168.1.20         0.0.0.0/0            reject-with icmp-port-unreachable
RETURN           all  --  0.0.0.0/0            0.0.0.0/0

On pourra remarquer que les règles sont liées aux modules qui ont eu un bannissement.


Pour enlever un adresse IP bannie, utilisez la commande suivante:

fail2ban-client set <module> unbanip <adresse IP>

par exemple pour les modules "apache-auth" et "sshd" qui bloquent l'adresse IP "192.168.1.20":

fail2ban-client set apache-auth unbanip 192.168.1.20
fail2ban-client set sshd unbanip 192.168.1.20




retour au menu pour contrer les attaques