Pages : 1
#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
Pages : 1