Contents
Présentation de fail2ban
A quoi ça sert ?
Fail2ban sert a analyser des fichiers de logs et créé des règles iptables en fonction des actions que nous aurons définies.
Par exemple fail2ban va analyser le fichier /var/log/auth.log pour rechercher les connexions ayant échouées sur notre serveur.
Les actions sont définies dans un fichier prison (jail.conf)
Installation fail2ban
Démarrage du service fail2ban
Configuration de fail2ban
Fonctionnement
Fail2ban founi un grand nombre de d’action qui sont encadrées par des balises.
La définition d’une balise d’encadrement est relativement simple 🙂
- [Nom de l’action]
Les champs important d’un action :
- enabled : détermine si l’action doit être activée par le service
- true ou false
- port : détermine le port d’écoute de la règle
- filter : correspond au filtre (regex) défini dans le répertoire /etc/fail2ban/filter.d/
- logpath : chemin complet du fichier de log à analysé
Les variables par défaut défines dans le fichier jail.conf peuvent être surcharger directement depuis une action. Cela peut être interressant si par exemple on ne veut pas utiliser le maxretry par défaut.
Mise en place des actions
Création du fichier jail.local
Afin de surcharger la configuration par défaut de jail2ban nous allons créer le fichier jail.local.
Une fois notre fichier local créé nous pouvons personnaliser notre configuration
Configuration
Comportement par défaut
En modifiant le fichier /etc/fail2ban/jail.conf nous allons définir le comportement par défaut de fail2ban
Dans ce début de fichier les lignes importantes sont :
- ignoreip = 127.0.0.1/8
- Par défaut fail2ban ignore l’ip local. vous pouvez rajouter d’autres ip ou plage d’ip en utilisant la virgule comme séparateur
- bantime = 600
- Défini le temps de bannissement des vilaines ip qui nous attaquent. Perso je mets 604800 Sec soit 7 jours.
- findtime = 600
- Détermine la durée maximum entre la première tentative et le nombre maximum de tetative de connexion
- maxretry = 3
- Corrrespond au nombre maximum de tentatives de connexion
- destemail = root@localhost
- Correspond au champs « to : » des mails de notifications
- sendername = Fail2Ban
- L’alias du champ « from : » dans le message.
- sender = fail2ban@localhost
- Adresse mail du champs « from : » du message
Il n’y a rien de plus a faire pour ce fichier. Nous pouvons maintenant personnaliser le fichier jail.local
Le fichier jail.local
Présentation
C’est le fichier qui nous permettra de personnaliser les actions définies dans le fichier jail.conf.
Il est aussi possible de personnaliser les champs du chapitre précédent dans ce fichier.
En effet, toutes variables ou action définies dans le fichier jail.local seront prioritaires sur celles définie dans le fichier jail.conf.
Personnalisation des actions
Rappel : pour qu’une action soit active, il faut positionner la vairable enabled à « true ».
banir les tentatives de connexion ssh echouées
ci-dessous la regle ssh :
Ici le maxretry est positionné à 3. Si c’est la valeur par défaut dans le fichier jail.conf ce champs est facultatif.
bannir les attaques ddos
bannir les attaques sur nginx
http-get-dos
Tentatives de connexion à un site web