Fail2ban ne se présente plus. – Quoi tu ne connais pas ?… Bon, c’est un daemon qui parse (surveille) les activités du système (logs) de différents services pour y trouver les tentatives d’accès infructueuses et bloquer l’accès afin d’éviter les kikous ou les attaques brute-force.

Je ne vais pas revenir ici sur l’installation ou la configuration du service, je vais plutôt ici vous partager mes observations.

Ma configuration

Action par défaut en cas de ban:

actionban = iptables -I fail2ban-<name> 1 -s <ip> -j DROP

En gros on DROP complètement l’ip sur tout les ports dès qu’une attaque est détectée. C’est un peu hard mais ça me plaît.

Je surveille un maximum de service (SSH, HTTP, HTTPS, IMAP, SMTP,…)

Il y a pas mal de filtres qui se trouvent sur internet, notamment pour se protéger des scripts kiddies.

J’ai également remarqué que depuis que j’ai changés les ports par défaut des services/applications hébergées, j’ai beaucoup moins de tentative de connexion.

Parfait donc ? Bah je trouve qu’il y a quelques défauts tout de même.

Changer de ports n’est pas toujours faisable et ça ne bloque pas les attaques, ça offusque juste certains services ultra-connus.

Fail2ban est codé en Python, niveau performance du code on peut faire mieux. Le daemon consomme un peu de ressources mais ça en vaut la peine si on a pas mal de trafics sur les services ouverts.
Le projet est toujours maintenu sur github, par contre la version des dépôts est assez vielle. Préférez donc la stable release depuis github.

Je déconseille l’utilisation de fail2ban sur les VPS premiers prix car cela peut saturer le pauvre petit qui n’a déjà pas beaucoup de ressources. Analysez et testez en fonction de votre matériel, vos besoins et vos contraintes (trafic,…).

N’oubliez pas que fail2ban ne fait pas tout ! Bref rappel en sécurité système:

  • Changez les ports par défaut des services dès que vous le pouvez (SSH par exemple !)
  • Tenez votre serveur à jour.
  • Implémentez de la sécurité ou vous le pouvez – Préférez des protocoles sécurisés (HTTPS, IMAPS,…)
  • Vérifiez la configuration de vos services
  • Mettez en place de la sécurité au niveau du réseau – Utilisez iptables comme firewall maison par exemple.
  • Tenez VOUS à jour – Soyez au courant des dernières vulnérabilités et soyez prêts à patcher !

 

Docs fail2ban

Quelques petites astuces pour avoir un mot de passe bien sécurisé.

Mot de passe unique

Quand vous vous inscrivez sur un site web quelconque, il vous faut généralement un mot de passe. La plupart du temps, c’est le même mot de passe.

C’est la qu’est l’erreur. Il suffit qu’un webmaster mal intentionné ou un hacker récupère le mot de passe dans la base de données d’un des sites web, décrypte éventuellement le mot de passe. Étant donné que le mot de passe (et éventuellement le login) est identique sur chaque site web, il a ensuite le mot de passe (et login) pour tous vos sites web.

C’est pour cela que je vous recommande d’avoir un pseudo ou au moins un mot de passe unique pour chaque site web.

Choisir le mot de passe

Tout le monde vous le dira, pour avoir un bon mot de passe, il faut qu’il comporte un minimum de caractères et de chiffres, mais ce n’est pas tout.

Pour un bon mot de passe il faut:

  • Au moins 8 caractères (je recommande 12)
  • Des chiffres
  • Des lettres minuscules et MAJUSCULES
  • Des caractères spéciaux (ex: é-*/+)
  • Les lettres ne doivent pas constituer un mot (ex: AcDfsEX)

Un bon mot de passe est par exemple : vX*kOgEFlA1Z

Comment le retenir ?

C’est bien joli, mais comment le retenir ? Le noter ?

Je ne pense pas que cela soit une bonne idée, car si quelqu’un s’introduit dans votre bureau ou dans votre ordinateur, il a sur un seul fichier tout vos mots de passe. À moins de crypter ce fichier (avec truecrypt par exemple).

Une alternative est de former une phrase avec le mot de passe, trouver une signification à partir d’un mot de passe aléatoire.
Par exemple le mot de passe: Vt6gTqmT
Vous trouver une signification : Veux tu 6 grosses truites que ma tante

Des outils pour m’aider ?

J’ai développé un petit outil web qui permet de générer aléatoirement des mots de passe:

http://sandbox.matt.niloo.fr/pw/

Le site web est composé de deux parties.
Celle du dessus permet de générer un mot de passe en fonction du site web sur lequel vous êtes.
Comme ça même pas besoin de retenir chaque mot de passe. L’outil calcul tout seul le mot de passe.

La partie du dessous génère tout simplement un mot de passe aléatoire.

Attention aux navigateurs

Faites attention aux navigateurs, lorsque votre navigateur vous propose de retenir le mot de passe lorsque vous vous loguez sur une page, il le stock en clair sur votre système. Il est facile pour une personne mal intentionnée de récupérer ce fichier sensible. Pensez à désactiver l’option ou toujours cliquer sur « Ne pas retenir le mot de passe ».

En temps que Webmaster

Si vous êtes webmaster, pensez bien à faire les mises à jour régulièrement de votre CMS ou forum, etc….

Si vous développez vous même votre application, pensez à utiliser un système de cryptage de mot de passe pour toujours avoir un hash stocké dans la base de données.
Attention, si vous utiliser du MD5 pour crypter, c’est très facilement cassable… Pensez à hacher les mots de passe en SHA-1/2/3 avec un salt.