## Contrer les attaques de _brute-force_ avec **fail2ban** Fail2ban est un programme qui surveille les logs des services en place et détecte les tentatives d'attaques _brute-force_. Il mets automatiquement en quarantaine les IP attaquantes. ### Installation --- ``` root@atom:/home/ericadmin# apt install fail2ban Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait The following additional packages will be installed: python3-pyinotify python3-systemd whois Paquets suggérés : monit python-pyinotify-doc Les NOUVEAUX paquets suivants seront installés : fail2ban python3-pyinotify python3-systemd whois 0 mis à jour, 4 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 423 ko dans les archives. Après cette opération, 1 897 ko d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer ? [O/n] o Réception de:1 http://deb.debian.org/debian stretch/main i386 fail2ban all 0.9.6-2 [288 kB] Réception de:2 http://deb.debian.org/debian stretch/main i386 python3-pyinotify all 0.9.6-1 [26,9 kB] Réception de:3 http://deb.debian.org/debian stretch/main i386 python3-systemd i386 233-1 [34,4 kB] Réception de:4 http://deb.debian.org/debian stretch/main i386 whois i386 5.2.17~deb9u1 [73,8 kB] 423 ko réceptionnés en 0s (1 996 ko/s) Sélection du paquet fail2ban précédemment désélectionné. (Lecture de la base de données... 31956 fichiers et répertoires déjà installés.) Préparation du dépaquetage de .../fail2ban_0.9.6-2_all.deb ... Dépaquetage de fail2ban (0.9.6-2) ... Sélection du paquet python3-pyinotify précédemment désélectionné. Préparation du dépaquetage de .../python3-pyinotify_0.9.6-1_all.deb ... Dépaquetage de python3-pyinotify (0.9.6-1) ... Sélection du paquet python3-systemd précédemment désélectionné. Préparation du dépaquetage de .../python3-systemd_233-1_i386.deb ... Dépaquetage de python3-systemd (233-1) ... Sélection du paquet whois précédemment désélectionné. Préparation du dépaquetage de .../whois_5.2.17~deb9u1_i386.deb ... Dépaquetage de whois (5.2.17~deb9u1) ... Paramétrage de fail2ban (0.9.6-2) ... Created symlink /etc/systemd/system/multi-user.target.wants/fail2ban.service → /lib/systemd/system/fail2ban.service. Paramétrage de whois (5.2.17~deb9u1) ... Paramétrage de python3-systemd (233-1) ... Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u1) ... Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ... Paramétrage de python3-pyinotify (0.9.6-1) ... root@atom:/home/ericadmin# ``` --- ### Paramétrage de **fail2ban** Pour fail2ban, il n'a rien à configurer pour l'instant. Seul ssh est surveillé. --- Ici, pour l'utilisation avec ufw. Avec Debian, le fichier à configurer est: /etc/fail2ban/jail.d/defaults-debian.conf Par défaut, il contient --- ``` [sshd] enabled = true ``` --- Il va falloir l'éditer (n'oubliez pas de faire une sauvegarde avant!), pour obtenir ceci: --- ``` [sshd] enabled = false [ssh-with-ufw] enabled = true port = 22 filter = sshd action = ufw[application="OpenSSH", blocktype=reject] logpath = /var/log/auth.log maxretry = 3 ``` --- En effet, **fail2ban** fonctionne par défaut avec **iptables**. Il faut donc activer le fonctionnement avec **ufw**. On crée une nouvelle règle, appelée [ssh-with-ufw]. L'action **ufw** existe déjà par défaut dans l'installation.