La sécurité est un point-clé sur un serveur. une intrusion peut être des fois qu'une simple rigolade mais parfois les conséquences peuvent être graves.
voici donc quelques conseils pour sécuriser votre serveur GNU/Linux.
nous avons déjà vu comment configurer un Firewall ( UFW ) et ce dans l'article suivant [ voir ]() ici nous allons parler de l'outil Fail2Ban. notez que les commandes sont destinées pour un serveur Ubuntu 16.04
Au début Fail2Ban m'a été conseillé par mon professeur du système d'exploitation à l'université Claude Bernard Lyon 1, Monsieur Fabien Rico suite à un souci que j'ai rencontré. en effet, je me suis connecté sur un réseau public où il y avait une imprimante connectée au réseau. L'imprimante était défectueuse et donc n'arrêtait pas d'envoyer le même paquet en boucle sur tous les ordinateurs du réseau. comme moi j'ai mis un firewall donc le log grossissait jusqu'à ce que mon ordinateur crache au bout de quelques heurs car mon disque était remplis, ( environ 52 Gb de log )
Le principe de Fail2Ban est très simple, il scrute les différents logs du système ( SSH, Apache, FTP, ...) à la recherche d'échecs répétés, exemple : une authentification SSH échouée plusieurs fois de suite. il identifie alors l'adresse IP d'où viens cette anomalie et la bloque grâce à une règle iptables pour une durée déterminée.
Nous allons donc voir comment installer Fail2 bans et puis comment le configurer.
Si vous êtes sur un serveur Ubuntu. tapez la commande suivante :
sudo apt-get install fail2ban
Attention : Il est possible qu'après l'installation votre serveur ne puisse plus répondre à aucun signe de l'extérieur, pensez à redémarrer votre machine et mode recover ( regardez dans votre panel chez votre hébergeur)
Le fichier de configuration de fail2ban est /etc/fail2ban/jail.conf cependant évitez de modifier directement ce fichier
sudo touch /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
[DEFAULT]# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1
bantime = 600
maxretry = 3# "backend" specifies the backend used to get files modification. Available
# options are "gamin", "polling" and "auto".
# yoh: For some reason Debian shipped python-gamin didn't work as expected
# This issue left ToDo, so polling is default backend for now
backend = polling# Destination email address used solely for the interpolations in
# jailconfiguration files.
destemail = your_email@host
# Default action to take: ban only
action = iptables[name=%(__name__)s, port=%(port)s]# SSH Rule
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5# Apache Rule
[apache]
enabled = true
port = http
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 5# FTP Rue
[vsftpd]
enabled = true
port = ftp
filter = vsftpd
logpath = /var/log/auth.log
maxretry = 5
Je vous laisse lire la configuration, je crois qu'elle est facile à comprendre
sudo service fail2ban restart
3781