Précision version Debian affectée bug fail2ban purge DB + durée ban custom
This commit is contained in:
parent
c364047ac0
commit
a1f9cc296c
|
@ -813,17 +813,23 @@ la raison est que Fail2Ban utilise le nom de la jail pour ajouter une chaîne IP
|
|||
|
||||
### Taille de la base de données SQLite et durée de conservation des bans
|
||||
|
||||
[Un bug](https://github.com/fail2ban/fail2ban/issues/1267#issuecomment-323336619) affecte les versions antérieures à 0.11.
|
||||
[Un bug](https://github.com/fail2ban/fail2ban/issues/1267#issuecomment-323336619) affecte les versions antérieures à 0.11 (Debian Bullseye).
|
||||
La base de données `/var/lib/fail2ban/fail2ban.sqlite3` n'est jamais purgée, malgré l'option `dbpurgeage` dans `/etc/fail2ban/fail2ban.conf` (par défaut à un jour).
|
||||
|
||||
Pour les versions 0.10, il faut mettre en place un cron `/etc/cron.hourly/fail2ban_dbpurge` :
|
||||
|
||||
~~~
|
||||
#!/bin/sh
|
||||
sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "DELETE FROM bans WHERE date('now', '-1 day') > datetime(timeofban, 'unixepoch'); VACUUM;"
|
||||
sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "DELETE FROM bans WHERE date('now', '-$days day') > datetime(timeofban, 'unixepoch'); VACUUM;"
|
||||
systemctl restart fail2ban
|
||||
~~~
|
||||
|
||||
On remplacera la valeur $days par la durée maximale définie dans l'option `bantime` (l'unité par défaut est la seconde) :
|
||||
|
||||
~~~
|
||||
grep -R -E "bantime[[:blank:]]*=[[:blank:]]*[0-9]+" /etc/fail2ban/
|
||||
~~~
|
||||
|
||||
Si la base de données est volumineuse parce qu'elle n'a jamais été purgée, la requête `DELETE` échouera.
|
||||
Il faut d'abord faire des `DELETE` successifs à la main, pour libérer de l'espace :
|
||||
|
||||
|
@ -831,6 +837,7 @@ Il faut d'abord faire des `DELETE` successifs à la main, pour libérer de l'esp
|
|||
# sqlite3 /var/lib/fail2ban/fail2ban.sqlite3
|
||||
sqlite > DELETE FROM bans WHERE date('now', '-100 day') > datetime(timeofban, 'unixepoch');
|
||||
sqlite > DELETE FROM bans WHERE date('now', '-10 day') > datetime(timeofban, 'unixepoch');
|
||||
sqlite > DELETE FROM bans WHERE date('now', '-1 day') > datetime(timeofban, 'unixepoch');
|
||||
sqlite > DELETE FROM bans WHERE date('now', '-$days day') > datetime(timeofban, 'unixepoch');
|
||||
sqlite > VACUUM;
|
||||
~~~
|
||||
|
||||
|
|
Loading…
Reference in a new issue