date: 15 Oct 2009 title: Home serveur : protéger son serveur - configuration de fail2ban tags: fail2ban, auto-hébergement, planet-libre, sécurité xrefs: home-serveur-tri-du-courrier-avec-sieve.txt, home-serveur-installation-du-serveur-web.txt, home-serveur-configuration-du-serveur-imap-dovecot.txt, home-serveur-premiers-reglages.txt, home-serveur-proteger-son-serveur-configuration-du-pare-feu.txt, home-serveur-recuperer-ses-mail-avec-fetchmail.txt, home-serveur-installation.txt, home-serveur-quelques-astuces-bien-utiles.txt, home-serveur-configuration-du-serveur-de-mail-postfix.txt, home-serveur-utilisation-de-cles-pour-ssh.txt, home-serveur-openssh.txt, home-serveur-sauvegarde-des-maildirs.txt Ce billet complète le [billet précédent](http://billux13.servhome.org/?p=268) sur la configuration du pare feu. Aujourd'hui nous allons voir un programme très utile : fail2ban. Le fonctionnement de fail2ban est très simple : il lit régulièrement les fichiers de log du service concerné (/var/log/auth.log pour ssh, /var/log/apache2/access.log pour apache, ...) et va détecter des éventuels échecs de connection répétés. Il va alors ajouter une règle au pare feu permettant de bloquer l'adresse IP qui tente de se connecter. Comme toujours, on va commencer par l'installer : sudo apt-get install fail2ban Pour vérifier que fail2ban fonctionne, listez les règles d'iptables : sudo iptables -L -vn Vous devez avoir une règle qui ressemble à ceci : 0 0 fail2ban-ssh tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22 Fail2ban est donc déjà en action. Nous allons modifier quelques détails dans sa configuration : éditez le fichier /etc/fail2ban/jail.conf : sudo vim /etc/fail2ban/jail.conf Dans la catégorie DEFAULT, vous avez des options de base, assez explicites : les IP à ignorer, le temps de bannissement d'une IP et le nombre de tentatives de connection maximales autorisées pour une IP. Vous pouvez laisser les valeurs par défauts. Vous remarquerez qu'il y a aussi la possibilité d'être alerté par mail en cas «d'attaques». Nous reviendrons la dessus quand on aura configuré notre serveur de mails. Ensuite, vous avez plusieurs catégories en fonction des services. Comme nous n'avons pour l'instant qu'OpenSSH d'installé actuellement sur le serveur, c'est la seule catégorie à être activée (option "enabled=true"). Pensez à remplacer le port de SSH du fichier par le votre : port 3030 Ce sera tout pour nous (bien que nous allons y revenir quand nous ajouterons d'autres services) mais fail2ban est capable de bien plus de choses. Tout est expliqué dans leur [wiki](http://www.fail2ban.org/wiki/index.php/Main_Page). Pour ce qui est du lancement de fail2ban, il l'est au démarrage du serveur. Nous allons plutôt le lancer depuis le script d'iptables, ça permet que les deux scripts ne s'emmêlent pas trop entre eux. Modifiez donc /etc/network/if-pre-up.d/set_iptables pour rajouter les lignes suivantes, à la fin du fichier : # Démarrage de fail2ban /etc/init.d/fail2ban start Faîte de même pour /etc/network/if-post-down.d/reset_iptables, mais cette fois en rajoutant les lignes au début : # Arrêt de fail2ban /etc/init.d/fail2ban stop Enfin, puisque nous lançons fail2ban par nos propres moyens, il faut penser à le retirer des scripts lancés au démarrage : update-rc.d -f fail2ban remove Penser à le redémarrer pour prendre en compte vos modifications dans /etc/fail2ban/jail.conf et se sera terminé. sudo /etc/init.d/fail2ban restart Jusqu'à présent, ce n'était pas très rigolo, votre serveur ne vous sert toujours à rien. Mais au moins il est bien sécurisé ! Donc la prochaine fois nous allons installer un service «utile» :D . J'hésite encore par quoi je vais commencer, entre un serveur de mail, jabber ou web...