Ceci est une ancienne révision du document !


Titre_page

Retour à la liste des tutoriels

Présentation rapide.
Prérequis
  • Aucun prérequis pour ce tutoriel.


grand1

lorem ipsum


Liens

++But : Installer et configurer une intelligence pour le [firewall|tag:firewall] : [fail2ban|tag:fail2ban]++

!!!! I) Présentation de fail2ban !!! 1) Préambule Maintenant qu'iptables est configuré sur le serveur, il convient de nourrir un petit peu ce dernier, en lui fournissant des @ IP de “visiteurs” peu scrupuleux. %Je ne vais pas m'attarder sur la parade des attaques Apache / web, mais sur les tentatives de connexion en ssh (port 22). %Rappel : le ssh permet d'ouvrir une console de gestion du serveur à distance. %Une solution "simple" consiste à modifier le port d'écoute de ssh, ce que je ne ferais pas, étant amené à me connecter depuis des réseaux académiques ou professionnels qui sont fortement filtrés, et sur lesquels le port 22 est ouvert ;-) !!! 2) Log de ssh %ssh loggue toutes les tentatives de connexion (réussies ou non) dans le fichier /var/log/auth.log %Exemple : connexion échouée ///[bash] Jun 26 05:56:31 vm sshd[30103]: Invalid user Aurdaneta from 200.69.248.161 Jun 26 05:56:31 vm sshd[30103]: pam_unix(sshd:auth): check pass; user unknown Jun 26 05:56:31 vm sshd[30103]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=h248-161.decidir.net Jun 26 05:56:32 vm sshd[30103]: Failed password for invalid user Aurdaneta from 200.69.248.161 port 52101 ssh2 /// %Exemple : connexion réussie /[bash] Jun 26 02:00:16 vm sshd[29793]: Accepted password for user-web from 88.191.122.115 port 1986 ssh2 Jun 26 02:00:16 vm sshd[29793]: pam_unix(sshd:session): session opened for user user-web by (uid=0) / !!! 3) Fonctionnement de fail2ban %fail2ban sera un daemon sur le serveur, c'est à dire qu'il sera exécuté en permanence, et lira les logs indiqués afin de les analyser et prendre les mesures requises en cas d'abus / tentative de hack de la part d'une personne. %fail2ban est capable d'analyser différents types de logs (ssh, web, ftp, …). Toutefois attention aux ressources consommées par un process tournant en permanence et analysant des logs ! %Ce logiciel n'est pas forcément le plus adéquat pour faire l'analyse de vos logs web, tout du moins en mode stand-alone. (je reviendrais sur ce point ultérieurement). !!!! II) Installation ///[bash] apt-get install fail2ban /// !!!! III) Configuration Toute la configuration de fail2ban s'effectue dans le fichier __/etc/fail2ban/jail.conf__ !!! 1) ignoreip Liste des ip à ignorer dans le scan des logs. %Par défaut 127.0.0.1 . %Séparer les valeurs par une virgule. %Indication avec un masque réseau possible (10.0.0.0/16 → couvre de 10.0.0.0 à 10.0.255.255)

!!! 2) bantime Durée du ban, en secondes. Par défaut 600. %Cette valeur peut-être laissée telle qu'elle (une tentative de connexion en brute-force sur le serveur abdiquera immédiatement s'il ne reçoit pas de réponse de la part du serveur). !!! 3) destemail fail2ban peut prévenir par mail à chaque ip bannie / débannie. %Je n'ai pas encore de serveur mail, on ne va pas toucher à cette valeur.

!!! 4) [ssh|tag:ssh] Voila la partie qui m'intéresse :-). /[bash] [ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 6 / Le module ssh de fail2ban est activé. %La valeur de maxretry peut-être minorée à 3 ou 4 (nombre maximal de tentatives échouées avant ban) !!!! IV) Suite Pour la suite, je recharge la conf de fail2ban avec ///[bash] service fail2ban reload /// !!! 1) Liste des bans actuels ///[bash] iptables -L /// fail2ban est apparu dans la liste :-) !!! 2) Log de fail2ban ///[bash] tail /var/log/fail2ban.log /// !!! 3) Enlever un ban ///[bash] iptables -D fail2ban-ssh -s @IP -j DROP /// Où @IP est l'adresse IP à débloquer :) % % %[Doc ubuntu|http://doc.ubuntu-fr.org/fail2ban|fr] %%%[Doc fail2ban - en|http://www.fail2ban.org/|en]