Je fais appel a votre aide pour un petit coup de pouce.
J’ai installé un reverse proxy swag qui fait le boulot.
Il est associé nativement à fail2ban, cela fonctionne bien avec d’autres sites hebergés mais pas jeedom
Je veux bloquer sur mon fail2ban de mon reverse proxy et non sur jeedom.
Sur le reverse proxy fail2ban regarde dans /log/nginx/access.log les erreurs HTTP 40x qui indiquent un refus de connexion, mais je n’ai rien quand je test avec jeedom, je n’ai que des retour HTTP 200 comme quoi tout va bien meme quand je rentre des mauvais identifiants.
Immich (très bon remplacant de Google photo au passage ) :
« POST /api/auth/login HTTP/1.1 » 401 81 « https://immich.xxxxxxxxx.duckdns.org/auth/login » « Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 »
Jeedom :
« POST /core/ajax/user.ajax.php HTTP/1.1 » 200 120 « - » « Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 »
La config coté reverse proxy est identique entre les 2 sites.
Ca doit pas etre grand chose mais bon je butte dessus.
Y’a bien moyen d’intercepter cela ailleurs que de jeedom ?
Il est peut être possible de configurer les réponses « code erreur » dans apache mais je ne peux pas répondre ne connaissant pas Apache. Je sais aussi que le fichier d’installation Jeedom modifie les paramètres d’Apache. Voir le fichier install.sh.
Merci de ta réponse.
En effet j’ai bien vu que la page que tu mentionnes, en testant un blocage suite a 3 mauvais mot de passe, les 4 jails n’ont aucun bannissement d’adresse IP. C’est donc un autre système que je comprends pas trop.
Du coup je pense que le fait que c’est un autre mécanisme ‹ empêche › la diffusion de la page d’erreur 40x… Car en lisant bien les fonctionnement d’Apache et Nginx y’a aucune raison que ça n’apparaisse pas.
Bonjour
Ce n’est pas possible avec jeedom il envoi un 200 même si l’authentification est pas bonne (car il a son propre fail2ban directement intégré dans son code)
Je vais voir si je sais intercepter le message « mot de passe ou nom utilisateur incorrect » mais c’est pas gagné. (En passant en verbose le site jeedom sur le reverse proxy ?)
On ne sait pas par hasard désactiver le fail2ban natif par x ou y moyen ?
Ben faut refaire tout le code de la connexion car au delà de ça si tu renvoi un 401 ça veut dire l’affichage de la page 401 et plus de jeedom donc pour que l’utilisateur essaye de se reconnecter (car juste erreur de mot passe) il faut qu’il retape l’adresse de son jeedom ou fasse précédent.
En gros vu que ça a jamais été prévu de faire ce que tu demande faut revoir toute la mécanique de connexion (mobile et desktop) et aussi revoir toute la partie api (et la c’est lourd car y’a plusieurs mécanismes de connexion et en plus on sortir du standard en json rpc je pense…)
L’autre service web que je parle envoie bien un 401 sans devoir faire précédent ou retaper l’adresse a chaque tentative.
Enfin bref je vois bien que c’est lourd et hors scope jeedom.
Mais je trouve ça dommage d’être lié a la sécurité native jeedom (au moins pouvoir choisir si on veut l’activer ou pas) sur un produit qui est a la base de la domotique.
Beaucoup de monde essayent de déporter certaines fonctions annexes ce qui me semble le cas ici.
Je comprends et oui on a peut être pas fait ça correctement ou dans les règles désolé…. Mais la je peux vraiment pas caler ça et tout revoir le système de connexion à jeedom juste pour ton cas. Je pense tu imagines pas avec les processus interne de validation et tout j’en ai pour 6mois…. Il y a d’autre priorités que ça. Encore désolé
En vrai je pense tu vas perdre en sécurité en passant par ta solution car elle ne se base que sur l’ip de la personne qui se connecte, c’est pas le cas de Jeedom qui pose d’autre trace au cas ou la meme personne retenue en changeant d’ip.
Bon récupérer le message « mot de passe ou nom utilisateur incorrect », c’est mort car le reverse proxy peut pas lire les data HTTP
L’astuce que j’ai trouvé pour le moment c’est interpreter le code 200 avec une longueur de 120 avec la commande POST /core/ajax/user.ajax.php. Le POST /core/ajax/user.ajax.php apparaît quand je vais par exemple dans la partie user mais jamais la longueur est a 120 (bien plus grande).
Du coup autre question comment je récupère les infos de la page connexion où on voit les @ip bloquées. Vu que les IP sont pas dans les jails de fail2ban, je sais pas comment les récupérer.