Linux Réseaux
Fail2ban
Bannir l'IP des pirates qui font des attaques par brute-force



Pour : Linux


Fail2ban est une protection supplémentaire pour votre serveur contre les pirates.
Le logiciel permet de se protéger des attaques par force brute ou par dictionnaire, comment?
En bannissant l'adresse IP des gens qui essayent de se connecter plusieurs fois de suite sans réussir.



Installation

On fait une installation depuis les dépôts:

apt-get install fail2ban




Configuration

On édite le fichier de configuration de fail2ban qui se trouve dans:

nano /etc/fail2ban/jail.conf



Au debut du fichier de configuration, vous trouverez quelques paramètres globaux:

# Les adresse IP a ignorer par Fail2ban ignoreip = 127.0.0.1 # Temps de bannissement en secondes bantime = 600 # Nombre de tentative autorisés avant d'être banni maxretry = 3 # Adresse e-mail destinataire pour recevoir les notifications destmail XXXXXXX@test.com # Action à éffectuer en cas de détection positive (voir dans /etc/fail2ban/action.d/) action



Après le fichier contient les paramètres des différents filtres.
La configuration de chaque filtres commence par [nom_filtre] et fini avant [nom_filtre] suivant.
Pour activer un filtre il suffit de changer le champ "enabled" à "true" ou à "false" pour le désactiver.
Vous pouvez changer le nombre maximum de tentative de connexion par un utilisateur (maxretry), le numéro de port, l'emplacement du fichier log et le temps d'interdiction de se connecter (bantime).

Voici par exemple la configuration par défault du ssh, mais il vous est possible de rajouter des paramètres identique que les paramètres globaux :

[ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 6



Par défault les filtres [ssh], [ssh-dos], [apache], [apache-multiport], [apache-noscript], [apache-overflows], [proftpd], [postfix], [couriersmtp] et [courierauth] sont activés.

Une fois la configuration de faite, redémarrer le service fail2ban pour activer les nouveaux paramètres:

/etc/init.d/fail2ban restart




La commande fail2ban-client

Cette commande permet d'afficher beaucoup d'information sur fail2ban.
Syntaxe:

fail2ban-client [argument]



Voici quelque argument:
start => Démarrer le service
reload => Recharger tous les filtres
reload [filtre] => Recharger un filtre
stop => Arrêter le service
status => Voir le status du service

Voir tout les paramètres:

man fail2ban-client




Ajouter des filtres personnalisés

Il vous est possible de rajouter des filtre supplémentaire afin d'affiner quelque détail de sécurité.

Filtre Apache erreur 404
Le filtre [apache-404] banni l'IP de tous les utilisateurs qui font trop d'erreur 404.
Les pirates aime bien rechercher des pages d'administration en modifiant l'URL.
Mais ce filtre peut aussi bannir des utilisateurs arrivant sur des pages manquantes de votre site.

Pour ajouter ce filtre il suffit de le rajouter dans le fichier "/etc/fail2ban/jail.conf".

[apache-404] enabled = true port = http filter = apache-404 logpath = /var/log/apache*/error*.log maxretry = 8



Puis créer le fichier "apache-404.conf" dans "/etc/fail2ban/filter.d/".
Et copier collez ces lignes:

# Fail2Ban configuration file # # Author: Cédric OLIVIER # # [Definition] # Option: failregex # Notes.: regex to match the 404 failure messages in the logfile. The # host must be matched by a group named "host". The tag "" can # be used for standard IP/hostname matching and is only an alias for # (?:::f{4,6}:)?(?P[\w\-.^_]+) # Values: TEXT # failregex = [[]client []] (File does not exist|script not found or unable to stat): .* # Option: ignoreregex # Notes.: regex to ignore. If this regex matches, the line is ignored. # Values: TEXT # ignoreregex =




Protéger PhpMyAdmin

Il est possible d'empêcher les bots de scanner la version de PhpMyAdmin qui est installer sur le serveur, dans le but d'empêcher l'utilisation de failles de sécurité connues.
Pour ajouter ce filtre il suffit de le rajouter dans le fichier "/etc/fail2ban/jail.conf".

[apache-phpmyadmin] enabled = true port = http,https filter = apache-phpmyadmin logpath = /var/log/apache*/*error.log maxretry = 3



Puis créer le fichier "apache-phpmyadmin.conf" dans "/etc/fail2ban/filter.d/".
Et copier collez ces lignes:

# Fail2Ban configuration file # # Bans bots scanning for non-existing phpMyAdmin installations on your webhost. # # Author: Gina Haeussge # [Definition] docroot = /var/www badadmin = PMA|phpmyadmin|myadmin|mysql|mysqladmin|sqladmin|mypma|admin|xampp|mysqldb|mydb|db|pmadb|phpmyadmin1|phpmyadmin2 # Option: failregex # Notes.: Regexp to match often probed and not available phpmyadmin paths. # Values: TEXT # failregex = [[]client []] File does not exist: %(docroot)s/(?:%(badadmin)s) # Option: ignoreregex # Notes.: regex to ignore. If this regex matches, the line is ignored. # Values: TEXT # ignoreregex =




Protéger votre espace d'administration

Ce filtre permet de protéger l'espace d'administration de votre site.
Pour ajouter ce filtre il suffit de le rajouter dans le fichier "/etc/fail2ban/jail.conf".

[apache-admin] enabled = true port = http filter = apache-admin logpath = /var/log/apache*/error*.log maxretry = 6



Puis créer le fichier "apache-admin.conf" dans "/etc/fail2ban/filter.d/".
Et copier collez ces lignes:

# Fail2Ban configuration file # # Author: Cyril Jaquier # # $Revision: 471 $ # [Definition] # Option: failregex # Notes.: regex to match the password failure 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 # [client x.x.x.x] File does not exist: /home/www/admin/admin, failregex = [[]client []] File does not exist: .*admin|PMA|mysql # # Option: ignoreregex # Notes.: regex to ignore. If this regex matches, the line is ignored. # Values: TEXT # ignoreregex =




Lien pour aller sur le site de l'éditeur:
www.fail2ban.org


Par O.Cédric
Sur www.octetmalin.net

Article publié le:
30/01/2012 11:31





Cette page vous à plus?

Dîtes que vous l'aimez en cliquant sur le bouton Facebook.