« Protéger son serveur des attaques par brute force avec fail2ban » : différence entre les versions
Aucun résumé des modifications |
|||
(8 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[Category:serveur]] | [[Category:serveur]] | ||
[[Category:debian]] | [[Category:debian]] | ||
[[Category:security]] | |||
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. | 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. | ||
Ligne 24 : | Ligne 25 : | ||
maxretry = 3 | maxretry = 3 | ||
destemail = | destemail = security@list.domain.tld | ||
action = %(action_mwl)s | action = %(action_mwl)s | ||
Ligne 45 : | Ligne 46 : | ||
</pre> | </pre> | ||
==Si vous êtes sous debian wheezy== | ==Si vous êtes sous debian wheezy ou jessie== | ||
Modifiez <code>/etc/default/fail2ban</code> : | Modifiez <code>/etc/default/fail2ban</code> : | ||
<pre>FAIL2BAN_USER="fail2ban"</pre> | <pre>FAIL2BAN_USER="fail2ban"</pre> | ||
==Suite== | ==Suite quelque soit votre distribution== | ||
Créez l'utilisateur : | Créez l'utilisateur : | ||
<pre>useradd --system --no-create-home --home-dir / --groups adm fail2ban</pre> | <pre>useradd --system --no-create-home --home-dir / --groups adm fail2ban | ||
chown fail2ban /var/log/fail2ban.log | |||
</pre> | |||
Modifiez <code>/etc/logrotate.d/fail2ban</code> : | Modifiez <code>/etc/logrotate.d/fail2ban</code> : | ||
Ligne 69 : | Ligne 72 : | ||
fail2ban ALL=(root) NOPASSWD:/sbin/iptables -n -L INPUT | fail2ban ALL=(root) NOPASSWD:/sbin/iptables -n -L INPUT | ||
#debian wheezy/squeeze | |||
fail2ban ALL=(root) NOPASSWD:/sbin/iptables -I fail2ban-[A-Za-z0-9]* 1 -s * -j DROP | 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 | fail2ban ALL=(root) NOPASSWD:/sbin/iptables -D fail2ban-[A-Za-z0-9]* -s * -j DROP | ||
#debian jessie | |||
fail2ban ALL=(root) NOPASSWD:/sbin/iptables -I fail2ban-[A-Za-z0-9]* 1 -s * -j REJECT --reject-with icmp-port-unreachable | |||
fail2ban ALL=(root) NOPASSWD:/sbin/iptables -I fail2ban-[A-Za-z0-9]* 1 -s * -j REJECT --reject-with icmp-port-unreachable | |||
</pre> | </pre> | ||
<pre> | <pre>chmod 0440 /etc/sudoers.d/fail2ban</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> | 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> | ||
Ligne 79 : | Ligne 87 : | ||
Ajoutez un alias pour l'utilisateur iptables : | Ajoutez un alias pour l'utilisateur iptables : | ||
<pre> | <pre> | ||
echo fail2ban: root >> /etc/aliases | echo fail2ban:root >> /etc/aliases | ||
postalias /etc/aliases</pre> | postalias /etc/aliases</pre> |
Dernière version du 16 décembre 2015 à 21:13
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 bannidestemail
suivi de l'adresse email où les alertes seront envoyéesaction
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 = security@list.domain.tld 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
aptitude install fail2ban sudo
Si vous êtes sous debian squeeze
Modifiez le fichier /etc/init.d/fail2ban
: localisez la ligne contenant start-stop-daemon
et modifiez comme suit (on ajoute 3 lignes et on modifie l'option du --chuid de la ligne start-stop-daemon) :
chown fail2ban /var/run/fail2ban touch /var/log/fail2ban.log chown fail2ban /var/log/fail2ban.log start-stop-daemon --start --quiet --chuid fail2ban --exec $DAEMON -- \
Si vous êtes sous debian wheezy ou jessie
Modifiez /etc/default/fail2ban
:
FAIL2BAN_USER="fail2ban"
Suite quelque soit votre distribution
Créez l'utilisateur :
useradd --system --no-create-home --home-dir / --groups adm fail2ban chown fail2ban /var/log/fail2ban.log
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 #debian wheezy/squeeze 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 #debian jessie fail2ban ALL=(root) NOPASSWD:/sbin/iptables -I fail2ban-[A-Za-z0-9]* 1 -s * -j REJECT --reject-with icmp-port-unreachable fail2ban ALL=(root) NOPASSWD:/sbin/iptables -I fail2ban-[A-Za-z0-9]* 1 -s * -j REJECT --reject-with icmp-port-unreachable
chmod 0440 /etc/sudoers.d/fail2ban
Enfin, modifiez le fichier /etc/fail2ban/action.d/iptables-multiport.conf
en remplaçant toutes les occurences à iptables
par sudo iptables
Ajoutez un alias pour l'utilisateur iptables :
echo fail2ban:root >> /etc/aliases postalias /etc/aliases