Les Carnets de Byfeel domotique , Objets connectés , DIY , Programmation, Nouvelles Technologies ….

Protéger votre serveur , contre les tentatives d’intrusion.

Afin de contrôler au mieux , nos box domotique ou autre serveur ,  en dehors de la maison , nous sommes amenés à ouvrir des ports et nous pouvons être confrontés à des attaques régulières , qui peuvent planter notre box ou permettre une ouverture sur notre réseau.

Pour surveiller toutes ces tentatives d’intrusion , je vais expliquer comment installer le service fail2ban , sur un serveur à base de linux.

Dans mon terminal je lance les commandes suivantes

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fail2ban

Une fois installée , la configuration se réalise dans le fichier /etc/fail2ban/jail.conf

jail.conf
jail.conf

Les paramètres par défaut , peuvent être réglés dans ce fichier , mais il est préférable de réaliser un fichier de config personnalisé , qui permettra de ne pas être effacé lors des mises à jour.

Ce fichier se nomme jail.local , situé dans le répertoire /etc/fail2ban

Voici un exemple de mes valeurs par défaut :

[DEFAULT]
bantime = 84600
ignoreip = 127.0.0.1/8  192.168.0.10 192.168.0.12

Afin de prendre en compte les modifications, relancer le service avec la commande suivante :

sudo systemctl restart fail2ban.service

Services à surveiller

fail2ban , est en mesure de scruter les logs de la plupart des services , en fin de fichier de jail.conf , vous trouverez la longue liste des services disponibles.

Sur Debian , le service sshd est surveillé dès le lancement. Pour le voir, lancer la commande :  fail2ban-client status

L’accès de mon serveur domotique se fait via apache de l’extérieur , je vais donc activer une surveillance des tentatives d’accès à mon serveur apache.

Je rajoute donc ces lignes à mon fichier local  /etc/fail2ban/jail.local

[apache]
enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /var/log/apache2/*error.log
maxretry = 3
findtime = 600
ignoreip = 192.168.0.10
 
[apache-noscript]
enabled  = true
port     = http,https
filter   = apache-noscript
logpath  = /var/log/apache2/*error.log
maxretry = 3
findtime = 600
ignoreip = 192.168.0.10
 
[apache-overflows]
enabled  = true
port     = http,https
filter   = apache-overflows
logpath  = /var/log/apache2/*error.log
maxretry = 2
findtime = 600
ignoreip = 192.168.0.10
 
[apache-badbots]
enabled  = true
port     = http,https
filter   = apache-badbots
logpath  = /var/log/apache2/*error.log
maxretry = 2
findtime = 600
ignoreip = 192.168.0.10

Avec la commande iptables suivante :

sudo iptables -L

il est possible de voir les règles créées au niveau du pare-feu.

Cette Règle en détail :

  • [apache] : Cette règle sert à bloquer les tentatives de login ratées
  • [apache-noscript] : Cette règle sert à bloquer les connexion qui tentent de lancer des scripts distants.
  • [apache-overflows]  : Cette régle est pour bloquer les clients , qui tentent des  requêtes  malicieuses .
  • [apache-badbots] : Cette requête permet de bloquer les requêtes envoyées par des robots.

Mots clés utilisés :

  • Enabled  : Cette clé active la régle
  • port : cette clé indique quels sont les services à écouter
  • filter : Cette clé renvoie au fichier de définition ( dans le dossier /etc/fail2ban/filter.d/ ) des recherches à faire.
  • logpath : Indique où est situé le fichier log
  • findtime : Cette clé indique, en secondes , la durée sur laquelle la règle doit être exécutée ( ici on autorise 3 essais max sur 10 mn )
  • maxretry : Le nombre d’essai max de tentative d’authentification.
  • ignoreip : Cette clé permet de lister les adresses ip à ignorer

Redémarrer le service avec la commande :

systemctl restart fail2ban.service

Il suffit de lancer la commande : fail2ban-client status apache ,afin de visualiser l’état des blocages.

Status for the jail: apache
|- Filter
|  |- Currently failed:	0
|  |- Total failed:	0
|  `- File list:	/var/log/apache2/error.log
`- Actions
   |- Currently banned:	0
   |- Total banned:	0
   `- Banned IP list:	

il est également possible de débannir une ip
fail2ban-client set apache unbanip 192.168.100.12

# ou d’en bannir une
 fail2ban-client set apache banip 192.168.100.12

Fail2ban  peut vous notifier par mail des éventuelles intrusions , il faudra alors configurer un service d’envoi de messagerie ( Par exemple le service ssmtp ).


5 commentaires sur “Protéger votre serveur , contre les tentatives d’intrusion.”

Les commentaires sont fermés.