Category:Linux,Sécurité,Surveillance
Tags : /etc/fail2ban/jail.local Centos fail2ban jails MariaDB ssh
But
Mettre en quarantaine les tentatives d’accès et les signaler par courriel en utilisant une passerelle GMAIL. Fail2ban est un script qui lit le journal /var/log/secure et bannit les adresses IP dans le firewall en suivant certains critères.
Note
L’auteur fournit la procédure de l’installation de fail2ban tel quel et ne prend aucune responsabilité sur son bon fonctionnement. fail2ban est une contre-mesure aux attaques courantes, mais n’est qu’un élément sécuritaire parmi d’autres.
Installer fail2ban
Fail2ban n’est pas disponible dans le repository officiel de CentOS, il faut ajouter celui du projet EPEL.
sudo yum install -y epel-release
Installer maintenant le package fail2ban
sudo yum install -y fail2ban
Activer le service
sudo systemctl enable fail2ban
Configure Local Settings
Les fichiers de configuration se trouvent dans /etc/fail2ban. Le fichier de configuration par défaut est jail.conf, qui peut être modifié en tout temps par des nouvelles versions de package. Il ne faut en aucun cas l’éditer, mais en faire une copie jail.local qui contiendra les paramètres que nous souhaitons écraser.
Ce fichier contient une section [DEFAULT], suivies par des sections individuelles. Ce fichier peut être à la limite vide si l’on se contente des paramètres par défaut, mais sera populé au besoin des modifications souhaitées.
Les paramètres sont appliqués dans l’ordre des fichiers suivants :
- /etc/fail2ban/jail.conf
- /etc/fail2ban/jail.d/*.conf, alphabetically
- /etc/fail2ban/jail.local
- /etc/fail2ban/jail.d/*.local, alphabetically
Chaque fichier peut contenir une section [DEFAULT] exécutée en premier, ainsi que d’autres sections pour les prisons individuelles.
Par défaut tous les jails sont désactivés dans le jail.conf et il faut les créer dans le fichier jail.local.
Créons notre premier fichier
sudo nano /etc/fail2ban/jail.local
Créer les éléments suivants :
[DEFAULT]
#BAN HOSTS FOR 2 heures
# maxretry = 4 bloque l’adresse IP fans le firewall après 4 tentatives
bantime = 7200
#OVERRIDE
banaction = iptables-multiport
[sshd]
enabled = true
maxretry = 4
[sshd-ddos]
enabled = true
maxretry = 4
[php-url-fopen]
enabled = true
maxretry = 4
[apache-auth]
enabled = true
maxretry = 4
[apache-badbots]
enabled = true
maxretry = 4
[apache-overflows]
enabled = true
maxretry = 4
Redémarrer fail2ban
sudo systemctl restart fail2ban
La commande doit se terminer sans erreurs. Nous pouvons le statut de fail2ban en invoquant son statut :
systemctl status fail2ban
Nous pouvons le statut de fail2ban en invoquant son client :
sudo fail2ban-client status
Nous pouvons avoir des informations concernant une prison particulière :
sudo fail2ban-client status sshd
Il est possible de checker le journal de fail2ban depuis son dernier démarrage
sudo journalctl -b -u fail2ban
Il est aussi possible de checker directement le journal de fail2ban
sudo tail –f –n 2000 /var/log/fail2ban.log
Ou de contrôler les rôles courants définis par fail2ban dans iptables:
sudo iptables -L
Ou de lister les entrées sous la forme des commandes employées dans iptables.
sudo iptables -S
Ou encore de voire toutes les adresses IP bannies par fail2ban
sudo iptables -L -n
Lorsqu’on est certain que fail2ban fonctionne correctement, on peut l’ajouter en démarrage automatique et redémarrer le serveur pour tester.
systemctl enable fail2ban
Envoyer des emails d’alertes
Attention: Il faut compter environ une dizaine de tentative par heure sur le port SSH pour un serveur qui vient d’être activé sur Internet.
Toutefois il y’a un prérequis pour envoyer des courriels, c’est d’installer un MTA. Inutile d’installer Postfix ou Sendmail, des produits qui risquent de vous ouvrir à de nouvelles vulnérabilités, il faut juste pouvoir envoyer des messages en ligne de commande, et surtout passer par un gateway authentifié sur GMAIL pour que vos messages ne soient pas rejetés par le système de messagerie du destinataire.
Installer Heirloom mailx
yum install -y mailx
Créer un lien symbolique sur email
ln -s /bin/mailx /bin/email
Configurer mail.rc
nano /etc/mail.rc
#Use TLS
set smtp-use-starttls
# Ignore SSL
set ssl-verify=ignore
set nss-config-dir=set nss-config-dir=/root/.certs
# set smtp=smtp://smtp.server.tld:port_number
set smtp=smtp://smtp.gmail.com:587
# tell mailx that it needs to authorise
set smtp-auth=login
# set the user for SMTP
# set smtp-auth-user=user@domain.tld
set smtp-auth-user=votreuser@gmail.com
# set the password for authorisation
set smtp-auth-password=votremotdepasseducomptegmail
Importer les certificats nécessaires à l’implémentation TLS avec GMAIL
Créer un dossier pour les certificats
mkdir ~/.certs
Créer une nouvelle base de données (Ne pas oubleir d’y rentrer et noter votre mot de passe)
certutil -N -d ~/.certs
Créer 3 fichiers pour stocker les chaines de certificats
touch ~/.certs/google ~/.certs/geotrust ~/.certs/equifax
Copier la chaine de certificats pour smtp.google.com:465 dans le fichier my_certs. (Utiliser l’option -showcerts, et terminer par CTRL + C)
openssl s_client -showcerts -connect smtp.gmail.com:465 > ~/.certs/my_certs
Maintenant copier chaque certificat en incluant
–BEGIN CERTIFICATE—
Jusqu’à
–END CERTIFICATE—
Et les coller dans les fichiers respectifs créés auparavant (google, geotrust, equifax), puis les sauvegarder.
Ouvrir le fichier my_certs créé précédemment et copier le certificat Google (En général le premier)
nano ~/.certs/my_certs
Ouvrir le fichier google, et y coller le certificat. Sauvegarder et fermer.
nano ~/.certs/google
Ouvrir le fichier my_certs créé précédemment et copier le certificat geotrust (En général le second)
nano ~/.certs/my_certs
Ouvrir le fichier geotrust, y coller le certificat geotrust. Sauvegarder et fermer
nano ~/.certs/geotrust
Ouvrir le fichier my_certs créé précédemment et copier le certificat equifax (En général le troisième)
nano ~/.certs/my_certs
Ouvrir le fichier equifax, y coller le certificat equifax. Sauvegarder et fermer
nano ~/.certs/equifax
Importer chaque certificat dans la DB
Importer le certificat Google dans la DB :
certutil -A -n "Google Internet Authority" -t "TC,," -d ~/.certs -i ~/.certs/google
Importer le certificat geotrust dans la DB :
certutil -A -n "GeoTrust Global CA" -t "TC,," -d ~/.certs -i ~/.certs/geotrust
Importer le certificat equifax dans la DB :
certutil -A -n "Equifax Secure Certificate Authority" -t "TCP,," -d ~/.certs -i ~/.certs/equifax
Contrôler que l’opération été effectuée correctement :
certutil -L -d ~/.certs
Sortie d’exemple :
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
Google Internet Authority CT,,
GeoTrust Global CA CT,,
Equifax Secure Certificate Authority CT,,
Tester l’envoi de message
Tapez la ligne pour envoyer un message
echo "Votre message" | mail -s "Sujet" email@votrechoix
Configurer fail2ban pour envoyer des alertes par email
Pour utiliser mailx, la première chose à faire est de dupliquer le fichier mail.conf en mail-whois.conf
cp /etc/fail2ban/action.d/mail.conf /etc/fail2ban/action.d/ mail-whois.conf
Editer à nouveau le fichier précédent /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Dans la section [DEFAULT] du fichier local, il faut rajouter les paramètres de configuration qui vont écraser ceux du fichier de base :
[DEFAULT]
destemail = mail@votrechoix
mta = mail
sender = votrecompte@gmail.com
sendername = votrenom
action = %(action_mw)s
Redémarrer fail2ban
sudo systemctl restart fail2ban
Vous devriez commencer à recevoir vos emails
Maria Perez