Page 2 sur 3

Re: Fail2ban, configuration

Publié : 28 sept. 2023, 11:00
par pierrotori
J'ai trouvé la solution en ajoutant la règle de firewall manquante pour rooter les entrées vers le filtre domoticz, il faut ajouter cette règle et la rendre persistante soit au niveau du firewall ou dans fail2ban
sudo iptables-legacy -I FORWARD -j f2b-domoticz
sur le net on parle aussi de modifier le REJECT par le DROP pour l'instant j'ai laissé REJECT et ca marche

sudo iptables-legacy -S |grep f2b

Code : Tout sélectionner

-N f2b-domoticz
-A INPUT -p tcp -m multiport --dports 443,8443 -j f2b-domoticz
-A FORWARD -j f2b-domoticz
-A f2b-domoticz -j RETURN

Re: Fail2ban, configuration

Publié : 29 sept. 2023, 13:53
par pierrotori
Neutrino a écrit : 29 janv. 2023, 09:51 Perso j'ai juste suivi le wiki :
https://www.domoticz.com/wiki/Setup_fail2ban

Mais dans le filtre, j'ai

Code : Tout sélectionner

failregex = Error: Failed login attempt from <HOST> for user '.*' !
              Error: Failed login attempt from <HOST> for '.*' !
              Error: Error parsing http request address: ::ffff:<HOST>
              Error: \[web:8080\] Failed authentication attempt, ignoring client request \(remote address: <HOST>\)
              Error: \[web:80\] Failed authentication attempt, ignoring client request \(remote address: <HOST>\)
              Error: \[web:443\] Failed authentication attempt, ignoring client request \(remote address: <HOST>\)
Et je viens de voir que j'ai actuellement 17 ip de bannies :)
Je bloque dès la 1ère tentative échouée et pour toujours.
Comment tu fais pour les bannir à vie ?

Re: Fail2ban, configuration

Publié : 29 sept. 2023, 14:48
par lost
Pour avoir changé cela récemment, c'est dans /etc/fail2ban/jail.local que cela se passe.

Code : Tout sélectionner

bantime = -1
Et c'est à vie... Je ne l'avait pas trouvé avec un "man fail2ban" ni même un "man jail.conf", mais ici:
https://stackoverflow.com/questions/663 ... emporarily

Par contre, a force d'en rajouter, on complique les règles de filtrage potentiellement à l'infini et alors que les adresses d'attaquants changent souvent.

A mon sens, mieux vaudrait bannir de manière temporaire mais de plus en plus longue avec les récidives (facile via bantime.multipliers, ce que j'ai pour ma part choisi)... ou uniquement sur récidives (cf lien via jail [recidive]).

Pour ma part, j'ai désormais un ban initial court (1mn), mais qui passe à 5mn/30mn/1h/6h(max) avec le nb de récidives.
Ainsi si je me trompe 3 fois (car la soirée a été dure!), je n'ai qu'une minute à attendre... et celui qui insiste est vite bloqué très au delà des 10mn par défaut. Ne pas oublier de modifier le findtime afin qu'il soit au moins égal au temps de ban maximum (j'ai mis 2j).

Mon /etc/fail2ban/jail.local actuel pour domoticz, pour exemple (adapter la localisation des logs domoticz au besoin):

Code : Tout sélectionner

[domoticz]
enabled = true
port = 443,8080
filter = domoticz
logpath = /tmp/domoticz.txt
maxretry = 3
findtime = 48h
bantime = 1m
bantime.multipliers = 1 5 30 60 360
En pratique, cela lâche l'affaire dès le ban d'1mn. Parfois certains retentent peu après les 10mn par défaut avec la même IP mais c'est rare.

A mon sens, le ban définitif pourrait même être utilisé pour provoquer du déni de service: Dès quelques centaines à milliers de règles iptables, selon la machine, l'occupation CPU commence déjà à monter. A 10k règles, tu mets iptables à 100% de CPU du Xeon de serveur taillé pour encaisser des liens 10G, avec des perfs réseau qui s'écroulent un peu avant d'y être (en TCP, pour UDP c'est 10x plus rapide).

Un PI, loin de ce niveau de perf, s'il se retrouve avec quelques centaines de règles a toutes chances d'être déjà au taquet malgré un seul lien bien et plus lent (100M avant le PI4 pour le filaire).

Pour ma part, c'est assez calme avec 1 à 2 IP bannies/j sur cette jail. Mais probable qu'avec du définitif mon PI serait à genou en 1 ou 2 trimestres. Je ne parle pas de qqun qui s'exciterait avec un bon réseau de machines relais disponible et au moins autant d'IP et obtiendrait le même résultat dans l'heure!

Re: Fail2ban, configuration

Publié : 29 sept. 2023, 17:51
par pierrotori
merci pour le conseil sur le paramétrage et l'analyse sur la gestion des ip bannies
je vais mettre comme toi avec un maxretry à 2 et tester ca en live :D
De mon côté j'ai créé un domoticz.conf dans le répertoire fail.d

Quand je suis connecté avec mon tel sur l'interfcace web je ne vois pas mon ip avec le port 443
je passe cette commande

Code : Tout sélectionner

netstat -natu | grep ESTABLISHED
Est ce que c'est la bonne commande ?

Re: Fail2ban, configuration

Publié : 29 sept. 2023, 20:56
par lost

Code : Tout sélectionner

man netstat
Même si parfois il manque des infos (comme pour le bantime ci dessus), les pages man sont souvent utiles. Quand on ne connait pas la commande mas qu'on a au moins un mot clef s'y rapportant:

Code : Tout sélectionner

man -k KEYWORD
:D

Fail2ban, configuration

Publié : 29 sept. 2023, 21:49
par pierrotori
je vais approfondir, merci
par contre quand tu fais une sauvegarde comme l’image de la sd car les données ca dur 1min
donc l’iso de 32 go dure 1h pendant ce temps fail2ban continue a scruter les log qui ne sont plus alimentées mais l’interface web n’est plus active puisque le service domoticz est down
y a t’il un risque le temps de la sauvegarde?

Re: Fail2ban, configuration

Publié : 30 sept. 2023, 07:18
par lost
Je ne fais jamais de sauvegarde totale en live, c'est une très mauvaise idée et toutes chances de se retrouver avec un système de fichier plus ou moins en forme, sans pouvoir être sauvé par la journalisation ineffective en copie physique (si c'est bien cela).

Je coupe donc le PI, extrait la SD et fais l'image sur un PC. D'un adaptateur+port USB3 ça va plus vite qu'envoyer un dd dans un netcat ou à travers un ssh d'un côté et le récupérer de l'autre d'une part... Ensuite, y aller en live c'est la quasi certitude d'avoir un système de fichier pas bien en forme côté copie, peu fiable en cas de restauration.

En fait, je fais cela une fois après upgrade de l'OS (ou gros ajout côté services) et qq semaines d'uptime sans problème. Et plus jamais jusqu'au suivant: Cette partie, en cas de besoin de restaurer, elle est MAJ d'un coup de apt sans problème (sur une distro encore supportée/maintenue, donc des dépôts non clos, ce qui est toujours mon cas).

Pour le reste, arrêt régulier du service domoticz et un tar.gz de toute l'arborescence domoticz (excluant les backup de db, voir la commande utilisée par le script updatebeta par exemple) pour sauvegarder toute cette partie, avant de redémarrer le service.

Ainsi si seulement un pb de domoticz, juste arrêt restauration (+tenter une récup de juste la BDD pour pas perdre les historiques depuis la dernière sauvegarde) redémarrage, en qq minutes.

Si pb de SD, restauration de l'image complète sur une nouvelle carte, démarrage du PI dessus, arrêt service domoticz/mv du répertoire vers un domoticz_old, apt update && apt upgrade pour MAJ OS, restauration sauvegarde domoticz seul, redémarrage domoticz.

Re: Fail2ban, configuration

Publié : 30 sept. 2023, 09:40
par pierrotori
Du coup tu n'as pas une sauvegarde journalière de la base de donnée de domoticz ?

je me pose la question car avec l'ouverture sur l'extérieure cela change ma politique de sauvegarde.
je fais un ssh tous les jours de l'arborescence de domoticz avec arrêt du container (arrêt service domoticz) cela dure 9 secondes(volume container uniquement de domoticz avec DB)

Re: Fail2ban, configuration

Publié : 01 oct. 2023, 08:19
par lost
pierrotori a écrit : 30 sept. 2023, 09:40 Du coup tu n'as pas une sauvegarde journalière de la base de donnée de domoticz ?
Non, je pourrais le faire mais la BDD a déjà une sauvegarde périodique intégrée. Il suffirait de la recopier ailleurs mais je n'ai pas de NAS sur lequel compter à toute heure non plus. Une clef USB mini dans un port du PI permettrait toutefois de parer à un pb de la uSD qui ne permettrait même plus sa lecture, même si je n'en ai plus depuis que je n'utilise que des modèles A2.

Re: Fail2ban, configuration

Publié : 01 oct. 2023, 17:55
par pierrotori
donc je n’arrête pas fail2ban et plus domoticz pour les sauvegardes quotidiennes afin que fail2ban soit tjs opérationnel
je repasse cette commande que je faisais avant d'être en docker

Code : Tout sélectionner

curl -s http://192.168.0.X:8080/backupdatabase.php
et je sauvegarde tous les jours en faisant des exclusions sur les fichiers maintenus par domoticz

Code : Tout sélectionner

sudo tar czf - --exclude={domoticz.db-wal,domoticz.db-shm,domoticz.db} /home/pi/domoticz/
le tout en très peu de temps :D

Code : Tout sélectionner

Sauvegarde database Domoticz-Duree:0:00:03-Satut:OK
/home/pi/domoticz/ -Duree:0:00:08-Satut:OK
lost a écrit : 01 oct. 2023, 08:19 Non, je pourrais le faire mais la BDD a déjà une sauvegarde périodique intégrée.
ta sauvegarde intégrée, c'est celle de domoticz en standard ?