You are currently viewing Sécuriser votre domotique  Jeedom / HA avec Fail2ban (et lister les IP bannies dans un scénario Jeedom)

Sécuriser votre domotique Jeedom / HA avec Fail2ban (et lister les IP bannies dans un scénario Jeedom)

Tags : domotique Jeedom Ha Fail2ban

0. Pourquoi Fail2ban ?

Fail2ban est un outil simple qui surveille les tentatives de connexion (SSH, HTTP…) et bloque automatiquement les IP trop insistantes.
Parfait pour éviter les tentatives de forçage de mot de passe ou les accès abusifs à Jeedom. Ma crainte était de me faire bannir moi-même et avec quelques petites modifications, on se débrouille pour empêcher cela !

1. Installer Fail2ban

Connectez-vous en SSH à votre Jeedom et tapez :

sudo apt update
sudo apt install -y fail2ban

Oui, c’est déjà fini…

2. Configuration de base

On édite le fichier principal :

sudo nano /etc/fail2ban/jail.local

Collez ce contenu : 5penser a modifier en 192.168.1.0 si votre ip est différente

[DEFAULT]
ignoreip = 127.0.0.1/8 ::1 192.168.0.0/16
bantime = 900
findtime = 600
maxretry = 8

[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log

[http-jeedom]
enabled = true
port = http,https
filter = jeedom
logpath = /var/www/html/log/http.error
maxretry = 8

ignoreip empêche Fail2ban de vous bannir depuis votre réseau local. ce qui serait pas mal relou !


3. Créer un filtre Jeedom

sudo nano /etc/fail2ban/filter.d/jeedom.conf

Ajoutez :

[Definition]
failregex = <HOST>.*"(GET|POST).*\/index\.php.*HTTP.*" 401

Ce filtre repère les erreurs 401 (tentatives de connexion échouées à Jeedom ).


4. Redémarrer Fail2ban

sudo systemctl restart fail2ban

Vérifiez que la jail est bien en place :

sudo fail2ban-client status http-jeedom

5. Simuler une IP bannie pour tester

sudo fail2ban-client set http-jeedom banip 192.168.1.42
domotique Jeedom HA Fail2ban

Vous pouvez vérifier :

fail2ban-client status http-jeedom
domotique Jeedom HA Fail2ban

Et la débannir :

fail2ban-client set http-jeedom unbanip 192.168.1.42

6. Créer un script pour exposer les IP bannies à Jeedom

Créer le script :

sudo nano /usr/local/bin/ip_bannies.sh

Contenu :

#!/bin/bash
fail2ban-client status http-jeedom | grep 'Banned IP list' | cut -d: -f2- | tr -d ' ' > /tmp/ip_bannies.txt

Le rendre exécutable :

sudo chmod +x /usr/local/bin/ip_bannies.sh

7. Lancer ce script automatiquement

Ajoutez-le au cron :

sudo crontab -e

Ajoutez à la fin :

* * * * * /usr/local/bin/ip_bannies.sh

Le fichier /tmp/ip_bannies.txt contiendra la liste des IP bannies à jour.


8. Créer un scénario Jeedom pour afficher les IP bannies

Dans Jeedom, créez un scénario.

8.1 Bloc code (PHP) :

$banned = @file_get_contents("/tmp/ip_bannies.txt");

if (trim($banned) == '') {
$banned = "Aucune IP actuellement bannie.";
} else {
$banned = "IP bannies : " . $banned;
}

scenario::setData("ipbannie", $banned);

8.2 Bloc Message :

Envoyez le message via Jeedom Connect ou autre avec :

variable(ipbannie)
domotique Jeedom HA Fail2ban

8.3 Résultat

  • Si des IP sont bannies : IP bannies : 192.168.0.42
  • Sinon : Aucune IP actuellement bannie.
domotique Jeedom HA Fail2ban

8.4 Pour vérifier les logs :

tail -f /var/log/fail2ban.log

Conclusion

Un petit article tout simple qui apporte un peu plus de sécurité à notre cher domotique

N’oubliez pas que la vie est une fête

Loïc

Loïc phoenix castillo

Passionné par informatique dès mon plus jeune âge, j'ai arrêté à mes 21 ans pour me consacrer à mes études d'infirmier et faire la fête. Maintenant père de famille, je me réinvestis dans la domotique ! Bref le kif ! Rédacteur en chef de Youdom