fail2ban

Principalement destiné à protéger des attaques par bruteforce , fail2ban est un script qui surveille les logs du système à la recherche de tentatives répétées de connexion d'un ip. Si plusieurs tentatives infructueuses sont détectés, fail2ban bloque l'ip qui est l'origine de ces tentatives pendant un temps configurable.

La méthode bruteforce est ainsi fortement ralentie, et il est probable que les scripts à l'origine de la plupart de ces attaques abandonnent les attaques sur votre ip, car peu "rentable".

Installation

Pour installer fail2ban, rendez-vous dans le modules "Système", puis "Composants Logiciels" de Webmin. Dans la section "Installer un nouveau composant", cocher la dernière ligne "Composant d'APT" puis entrez "fail2ban" dans le champ correspondant et cliquez sur "Installer".

Configuration

La configuration de fail2ban se fait manuellement en Ă©ditant directement les fichiers de configuration se trouvant dans /etc/fail2ban.

Dans le gestionnaire de fichiers de Webmin, rendez vous donc dans ce
répertoire et éditez le fichier "jail.conf".{{
reseau:edit.gif?nolink&|}}

Dans la première partie de ce fichier, il faut définir certaines règles générales :

 ignoreip = 127.0.0.1 192.168.0.0/24 

bantime = 600

findtime = 600

maxretry = 3

destemail = ab@bambou.viens.la

La section qui nous intéresse maintenant se trouve en fin de fichier et contient les "jail". Une jail contient plusieurs informations :

| Nom de la prison | [ssh] | | Activée ? | enabled = true | | Port surveillé| port = ssh | | Fichier de filtre| filter = sshd | | Log à surveiller | logpath = /var/log/auth.log | | Nombre d'essais autorisés| maxretry = 3 |

Pour activer une prison, il suffit de remplacer la valeur de "enabled" de "false" par "true".

Voici les prisons qu'il est judicieux d'activer par défaut :

Ajout d'une règle contre les attaques w00t

Dans le fichier "jail.conf", ajouter la prison suivante ( en fin de fichier ) :

[apache-w00tw00t] enabled = true filter = apache-w00tw00t action =
iptables[name=Apache-w00tw00t,port=80,protocol=tcp] logpath =
/var/log/apache2/access*.log maxretry = 1

Dans le dossier /etc/fail2ban/filter.d, créer un fichier "apache-w00tw00t.conf" contenant :


[Definition]

failregex = ^   -.*"GET
/w00tw00t.at.ISC.SANS.DFind:).*".*

ignoreregex =

Correction de la règle [sasl]

Par défaut, la règle pour la prison [sasl] ne fonctionne pas. Il faut pour cela faire une correction dans le fichier /etc/fail2ban/jail.conf.

Cherchez la prison sasl, et remplacez :

 logpath = /var/log/mail.log 

par :

 logpath = /var/log/mail.warn 

Puis, dans le fichier /etc/fail2ban/filter.d/sasl.conf, modifiez la ligne commençant par "failregex =" en supprimant la fin de la ligne après "authentification failed" :

 failregex = (?i): warning: [-._w]+ $$$$ : SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed (: [A-Za-z0-9+/]*=0,2)?$ 

devient :

 failregex = (?i): warning: [-._w]+ $$$$ : SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed 

Lancement et vérification du statut de fail2ban

Pour lancer fail2ban :

 sudo service fail2ban-client start 

Pour vérifier le statut de fail2ban :

 sudo service fail2ban-client status 

doit retourner quelque chose du genre :

 Status   |- Number of jail: 10 
    - Jail list: apache-w00tw00t, courierauth, pam-generic, postfix, apache-multiport, proftpd, couriersmtp, ssh, apache, sasl   

Pour recharger la configuration de fail2ban après une modification :

 sudo service fail2ban-client reload 

Surveillance des bans

Pour surveiller les bans et le bon fonctionnement de fail2ban, vous pouvez jeter un oeil au log qui se trouve dans /var/log/fail2ban.log

Chapitre suivant