{{indexmenu_n>20}} ====== Fail2ban ====== {{:100_sysadmin:securite:fail2ban_logo-tm.jpg?100 |}} Fail2ban est un script permettant de surveiller les accès réseaux anormaux (tentatives de login répétitives, etc...) par analyse des logs et de réagir à ces accès par un bannissement temporaire de l'adresse IP grâce à iptables. Pour l'installer, rien de plus simple : sudo apt-get install fail2ban ===== Configuration ==== Pour éditer la configuration sudo vi /etc/fail2ban/jail.conf === Paramètres de configuration jail === Si vous désirez recevoir un mail avec les logs des bans modifier la ligne action = %(action_)s par action = %(action_mwl)s Liste des adresses IP de confiance à ignorer par fail2ban, par exemple : ignoreip = 127.0.0.1 192.168.0.0/24 Temps de bannissement en secondes : bantime = 600 Nombre d'essais autorisés avant bannissement : maxretry = 5 Adresse e-mail de destination des notifications (laisser par défaut si vous utilisez logwatch) destemail = root@localhost === Paramètres de configuration par section === {{:info.png |}} Les paramètres cités ci dessus sont surchargeables dans chaque section. Activer le monitoring pour la section concernée : enabled = true Sélectionner le port tcp à surveiller, exemple : port = ssh Filtre utilisé pour analyser le log (voir dans le dossier /etc/fail2ban/filter.d pour les filtres), exemple : filter = sshd === Sections utilisées couramment === | ssh | Protège contre le bruteforce par SSH | | apache | Protège contre le bruteforce de type accès par fichier .htpasswd. | | apache-noscript | Ce jail vous permet de vous prémunir contre les attaques de types scripting. Des robots testent des URLs sur votre site qui n'existent pas, mais en espérant que votre site contiennent des rootkits, ou des backdoors. Attention, si vous avez par exemple une image inexistante sur le serveur l'internaute peut être bloqué. | apache-overflows | Protège contre les attques de type overflow sur Apache | | proftpd | Protège contre le bruteforce par FTP sur ProFTP | === Sections optionnelles === == Apache Bad Bots == Protège contre le parsing par des bots, le filtre existe par défaut. {{:warning.png |}} ATTENTION : le filtre peut dans certains cas bloquer les bots de Google [apache-badbots] enabled = true port = http,https bantime = 86400 filter = apache-badbots logpath = /var/log/apache*/*error.log maxretry = 1 == Anti w00tw00t == Permet de filtrer les attaques / parsing de type w00tw00t : vi /etc/fail2ban/filter.d/apache-w00tw00t.conf on y insère le code suivant # - - [11/Jan/2010:14:56:27 +0200] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 326 [Definition] # Option: failregex # Notes.: regex to match the w00tw00t scan messages in the logfile. The # host must be matched by a group named "host". The tag "" can # be used for standard IP/hostname matching. # Values: TEXT failregex = ^ -.*"GET \/w00tw00t\.at\.ISC\.SANS\.DFind\:\).*".* # Option: ignoreregex # Notes.: regex to ignore. If this regex matches, the line is ignored. # Values: TEXT ignoreregex = on active la règle vi /etc/fail2ban/jail.conf [apache-w00tw00t] enabled = true filter = apache-w00tw00t port = http,https logpath = /var/log/apache*/*access.log maxretry = 1 bantime = 86400 ===== Exécution ===== Après avoir modifié les règles, relancez fail2ban : sudo service fail2ban restart