Installation d'une Dédibox V3 sous Debian - Fail2Ban
Par Mathieu Muller le mardi, 28 septembre 2010, 17:53 - Web - Lien permanent
On continue aujourd'hui la sécurisation de notre serveur par l'installation d'un logiciel fort sympathique tournant sous python à savoir fail2ban. Le but de ce logiciel est de monitorer les accès de login sous SSH via une lecture du syslog.
On commence par installer fail2ban, en tapant la commande suivante en root:
Host:/home/User# apt-get install fail2ban
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Paquets suggérés :
python-gamin
Les NOUVEAUX paquets suivants seront installés :
fail2ban
0 mis à jour, 1 nouvellement installés, 0 à enlever et 21 non mis à jour.
Il est nécessaire de prendre 86,2ko dans les archives.
Après cette opération, 631ko d'espace disque supplémentaires seront utilisés.
Réception de : 1 http://ftp.fr.debian.org lenny/main fail2ban 0.8.3-2sid1 [86,2kB]
86,2ko réceptionnés en 0s (231ko/s)
Sélection du paquet fail2ban précédemment désélectionné.
(Lecture de la base de données... 20389 fichiers et répertoires déjà installés.)
Dépaquetage de fail2ban (à partir de .../fail2ban_0.8.3-2sid1_all.deb) ...
Traitement des actions différées ("triggers") pour "man-db"...
Paramétrage de fail2ban (0.8.3-2sid1) ...
Host:/home/User#
On continue par créer les dossiers pour stocker les logs de fail2ban:
Host:/home/User# mkdir /var/log/fail2ban/
Il ne nous reste plus qu'à éditer le fichier de configuration qui se trouve par défaut dans /etc/fail2ban/fail2ban.conf. Nous allons utiliser le même paradigme que dans un billet précédent, et créer des liens symboliques pour pouvoir upgrader les configurations simplement.
Nous allons modifier le fichier de configuration originel par le suivant:
# Fail2Ban configuration file # # Author: Cyril Jaquier # # $Revision: 629 $ # [Definition] # Option: loglevel # Notes.: Set the log level output. # 1 = ERROR # 2 = WARN # 3 = INFO # 4 = DEBUG # Values: NUM Default: 3 # loglevel = 3 # Option: logtarget # Notes.: Set the log target. This could be a file, SYSLOG, STDERR or STDOUT. # Only one log target can be specified. # Values: STDOUT STDERR SYSLOG file Default: /var/log/fail2ban.log # logtarget = /var/log/fail2ban/fail2ban.log # Option: socket # Notes.: Set the socket file. This is used to communicate with the daemon. Do # not remove this file when Fail2ban runs. It will not be possible to # communicate with the server afterwards. # Values: FILE Default: /var/run/fail2ban/fail2ban.sock # socket = /var/run/fail2ban/fail2ban.sock
Et le sauver dans /etc/fail2ban/fail2ban.conf.0:
Host:/home/User# vim /etc/fail2ban/fail2ban.conf.0 Host:/home/User# /etc/init.d/fail2ban stop Host:/home/User# rm /etc/fail2ban/fail2ban.conf Host:/home/User# ln -s /etc/fail2ban/fail2ban.conf.0 /etc/fail2ban/fail2ban.conf Host:/home/User# /etc/init.d/fail2ban start
En effectuant ces commandes, nous arrêtons temporairement le service, pour pouvoir remplacer le fichier de configuration par le lien symbolique vers notre fichier de configuration.
Il ne nous reste plus qu'à configurer les services suivis par fail2ban. Les services sont contenus dans le fichier /etc/fail2ban/jail.conf, mais fail2ban utilise automatiquement un fichier jail.local s'il existe. Nous allons utiliser le même paradigme de numérotation des fichiers, en prenant pour base le fichier d'exemple jail.conf:
Host:/home/User# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local.0 Host:/home/User# ln -s /etc/fail2ban/jail.local.0 /etc/fail2ban/jail.local
On édite ensuite notre fichier, pour être prévenu par mail d'intrusions possibles:
Host:/home/User# vim /etc/fail2ban/jail.local.0
Première modification à faire: modifier ignoreip pour intégrer vos IPs statiques en plus du loopback. Plusieurs notations sont possibles, comme par exemple:
ignoreip = 127.0.0.1 88.88.88.88 192.168.1.0/24
Dans cette notation, vous ne bannirez pas les tentatives provenant du loopback, de l'ip statique 88.88.88.88 ni des IPs au format 192.168.1.xxx (notation CIDR).
bantime = 600
bantime indique le temps de bannissement, en secondes; par défaut, il est réglé sur 10 minutes (ce qui me semble un bon compromis).
maxretry = 3
maxretry indique le nombre de tentatives échouées avant de se faire bannir.
Personnellement, vu que j'ai "sécurisé" mes IPs de provenance, je règle ces valeurs sur 3600 secondes et une tentative.
destemail = votre@email.com
Ici vous mettez votre adresse email, pour être prévenu en cas de problème.
On a fini maintenant avec la configuration (minimale) de fail2ban. J'espère que ce tutoriel vous sera suffisant pour appréhender la sécurisation un peu plus en profondeur de votre dédibox sous Debian.