« Protéger son serveur des attaques par brute force avec fail2ban » : différence entre les versions

De Linux Server Wiki
Aller à la navigation Aller à la recherche
Ligne 61 : Ligne 61 :
fail2ban ALL=(root) NOPASSWD:/sbin/iptables -D fail2ban-[A-Za-z0-9]* -s * -j DROP
fail2ban ALL=(root) NOPASSWD:/sbin/iptables -D fail2ban-[A-Za-z0-9]* -s * -j DROP
</pre>
</pre>
Enfin, modifiez le fichier <code>/etc/fail2ban/action.d/iptables-multiport.conf</code> en remplaçant toutes les occurences à <code>iptables</code> par <code>sudo iptables</code>

Version du 25 juin 2013 à 00:58

Fail2ban est un petit outil qui permet de surveiller les erreurs d'authentification répétée dans les fichiers logs de plusieurs services. Après un nombre défini d'authentification ratée, fail2ban banni temporairement l'ip ayant essayé de se loguer.

Installation

Installez fail2ban :

aptitude install fail2ban

Configuration

Le fichier /etc/fail2ban/jail.conf contient les options de configuration par défaut de fail2ban.

Copiez les directives qui vous intéressent dans le fichier /etc/fail2ban/jail.local afin de ne pas modifier la configuration par défaut du programme. Considérez en particulier :

  • ignoreip suivi d'une liste d'adresses ip qui ne seront jamais banni
  • destemail suivi de l'adresse email où les alertes seront envoyées
  • action que vous définirez selon les choix proposés par fail2ban.

Voici mon fichier /etc/fail2ban/jail.local :

[DEFAULT]
ignoreip = 127.0.0.1 ip_du_serveur votre_ip
bantime  = 1800
maxretry = 3

destemail = CSNU-security@list.csnu.org

action = %(action_mwl)s

Si vous souhaitez modifier d'autres fichiers de configuration de fail2ban, copiez le fichier en question en changeant l'extension de .conf à .local. Vous pourrez ensuite modifier le fichier .local et éviter de toucher à la configuration par défaut de fail2ban.

Faire tourner fail2ban en tant qu'utilisateur plutot que root

Pour cela il faut avoir au moins la version 0.8.6-3wheezy de fail2ban.

aptitude install fail2ban sudo

Créez l'utilisateur :

useradd --system --no-create-home --home-dir / --groups adm fail2ban

Modifiez /etc/default/fail2ban :

FAIL2BAN_USER="fail2ban"

Modifiez /etc/logrotate.d/fail2ban :

create 640 fail2ban adm

Créez le fichier /etc/sudoers.d/fail2ban contenant :

fail2ban ALL=(root) NOPASSWD:/sbin/iptables -N fail2ban-[A-Za-z0-9]*
fail2ban ALL=(root) NOPASSWD:/sbin/iptables -A fail2ban-[A-Za-z0-9]* -j RETURN
fail2ban ALL=(root) NOPASSWD:/sbin/iptables -I INPUT -p [A-Za-z0-9]* -m multiport --dports [A-Za-z0-9]* -j fail2ban-[A-Za-z0-9]*

fail2ban ALL=(root) NOPASSWD:/sbin/iptables -D INPUT -p [A-Za-z0-9]* -m multiport --dports [A-Za-z0-9]* -j fail2ban-[A-Za-z0-9]*
fail2ban ALL=(root) NOPASSWD:/sbin/iptables -F fail2ban-[A-Za-z0-9]*
fail2ban ALL=(root) NOPASSWD:/sbin/iptables -X fail2ban-[A-Za-z0-9]*

fail2ban ALL=(root) NOPASSWD:/sbin/iptables -n -L INPUT

fail2ban ALL=(root) NOPASSWD:/sbin/iptables -I fail2ban-[A-Za-z0-9]* 1 -s * -j DROP
fail2ban ALL=(root) NOPASSWD:/sbin/iptables -D fail2ban-[A-Za-z0-9]* -s * -j DROP

Enfin, modifiez le fichier /etc/fail2ban/action.d/iptables-multiport.conf en remplaçant toutes les occurences à iptables par sudo iptables