Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/05/2014, à 10:47

Kalc

Fail2ban : démarrer une prison désactivée

Bonjour,

J'aimerais pouvoir configurer dans jail.local certaines prisons qui seraient désactivées par défaut (enabled=false), pour ensuite les activer manuellement si le besoin s'en fait sentir. Bien sûr, sans faire un reload/restart de fail2ban pour ne pas perdre les ips déjà bannies.
J'ai cherché du côté de la commande fail2ban-client, mais sans succès...

Avez-vous des idées ?

Merci

Dernière modification par Kalc (Le 14/05/2014, à 10:47)

Hors ligne

#2 Le 19/05/2014, à 18:30

Pseudo supprimé

Re : Fail2ban : démarrer une prison désactivée

Salut,

A/ Avec enabled=true, pas de problème, en utilisant start,stop <JAIL>

B/ En revanche, cela semble impossible ce que tu veux faire avec enabled=false. J'ai testé

Avec enabled=false et en utilsant ADD <JAIL> , cela crée une JAIL à la volée, et il faut fixer tous les paramètres avec SET et vérifier/lire avec GET.
Bref, si tu penses qu'en utisant ADD avec le jail.local, il va chercher la configuration, euh c'est loupé. C'est le constat que j'ai fait après le petit test de dessous.

B'/J'ai testé avec wuftpd avec enabled=false, émettant l'hypothèse  que fail2ban charge les paramètres du <jail> sans pour autant l'activer.

[wuftpd]
enabled  = false
port	 = "ftp,ftp-data,ftps,ftps-data"
filter   = wuftpd
logpath  = /var/log/auth.log
maxretry = 6
sudo fail2ban-client add wuftpd
sudo fail2ban-client start wuftpd
sudo fail2ban-client status
...ok

et dès qu'il y a vérification, par exemple

sudo fail2ban-client get wuftpd logpath
.. et autres, les paramètre sont lus, mais sans rapport 

moralité;  le wuftpd crée par ADD n'a aucun rapport avec le wuftpd du jail.local qu'aurait pu charger fail2ban. Bref, lorsque tu as enabled  = false, la configuration du jail relatif est ignorée et pas chargée, et impossible de revenir dessus rétroactivement parlant.

#3 Le 20/05/2014, à 08:11

Kalc

Re : Fail2ban : démarrer une prison désactivée

Merci Titouan, c'est effectivement ce que j'avais essayé mais ça ne fonctionne pas.

Le "enabled=true" ne me convient vraiment pas, car c'est un filtre que je souhaiterais activer uniquement en cas de besoin (attaque DDOS plus précisément) mais qui ne doit pas s'activer automatiquement...

Hors ligne

#4 Le 20/05/2014, à 17:40

Pseudo supprimé

Re : Fail2ban : démarrer une prison désactivée

A/ Pour le premier cas, il faut faire unreload et non pas un simple start, voir double reload, après stop <jail>

sudo fail2ban-client stop evasive3
Jail stopped
sudo iptables -L INPUT -n -v | grep evasive3

sudo fail2ban-client start evasive3
Sorry but the jail 'evasive3' does not exist
sudo fail2ban-client reload evasive3
Sorry but the jail 'evasive3' does not exist
sudo fail2ban-client reload evasive3
sudo iptables -L INPUT -n -v | grep evasive3
  130 13545 fail2ban-evasive3  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           
sudo fail2ban-client status evasive3
Status for the jail: evasive3
|- filter
|  |- File list:	/var/log/mod-evasive/dos_evasive.log 
|  |- Currently failed:	0
|  `- Total failed:	0
`- action
   |- Currently banned:	0
   |  `- IP list:	
   `- Total banned:	0
sudo fail2ban-client get evasive3 actionban iptables-allports 
iptables -I fail2ban-<name> 1 -s <ip> -j DROP

B/ Pour ton problème, le second cas, tu es obligé de mettre enabled=true pour avoir un dump de la configuration de la jail. Une fois que tu as la config en fichier plat, tu remets en enabled=false.

Retrouver la configuration d'une jail d'après le dump:
exemple avec jail <evasive>

sudo fail2ban-client -d 
sudo fail2ban-client -d | grep -w evasive3 > /tmp/evasive3
sed -i -e 's/,//g' -e 's/\[//g' -e 's/\]//g' -e "s/'//g" -e 's/.*/sudo fail2ban-client & /g' /tmp/evasive3

ensuite éditer le fichier. rajouter de simples quotes ' pour les cas particuliers dans le /tmp/evasive3 principalement dans le dernier argument, genre

sudo fail2ban-client set evasive3 actionban iptables-allports 'iptables -I fail2ban-<name> 1 -s <ip> -j DROP'
..
sudo fail2ban-client set evasive3 actionban mail-whois-lines 'printf %b "Hi\\n\nThe IP <ip> has just been banned by Fail2Ban after\n<failures> attempts against <name>.\\n\\n\nHere are more information about <ip>:\\n\n`whois <ip>`\\n\\n\nLines containing IP:<ip> in <logpath>\\n\n`grep \\\<<ip>\\>\ <logpath>`\\n\\n\nRegards\\n\nFail2Ban"|mail -s "Fail2Ban <name>: banned <ip>" <dest>' 
etc..

et bien, tu as ta configuration de ta jail, que tu pourras exécuter qd enabled=false
exécuter le script /tmp/evasive3 et faire un reload <jail> pour iptables

sudo fail2ban-client reload evasive3
sudo iptables -L INPUT -n -v | grep evasive3
  131 13586 fail2ban-evasive3  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0