22
0
Fork 0

Amélioration de la partie pour purger la base sqlite de fail2ban

This commit is contained in:
Bruno Tatu 2022-12-09 17:04:23 +01:00
parent d16709e5b7
commit f48b2f6c19
1 changed files with 5 additions and 7 deletions

View File

@ -806,18 +806,17 @@ 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 (Debian Bullseye).
[Un bug](https://github.com/fail2ban/fail2ban/issues/1267#issuecomment-323336619) affecte les versions antérieures à 0.11 (Debian Bullseye) dont la base `/var/lib/fail2ban/fail2ban.sqlite3` n'est pas purgée.
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.daily/fail2ban_dbpurge` ou `/etc/cron.hourly/fail2ban_dbpurge` :
Le contournement est de mettre en place un cron `/etc/cron.daily/fail2ban_dbpurge` :
~~~
#!/bin/sh
sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "DELETE FROM bans WHERE date('now', '-$days day') > datetime(timeofban, 'unixepoch'); VACUUM;"
sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "DELETE FROM bans WHERE datetime('now', '-86400 second') > datetime(timeofban, 'unixepoch'); VACUUM;"
~~~
On remplacera la variable `$days` par la durée maximale définie dans l'option `bantime` (l'unité par défaut est la seconde) :
Notons que la commande `VACUUM` va copier la base en supprimant les espaces inutilisés dans la nouvelle base.
Par défaut, la durée maximale est définie par l'option `bantime` dont l'unité est à la seconde :
~~~
grep -R -E "bantime[[:blank:]]*=[[:blank:]]*[0-9]+" /etc/fail2ban/
@ -839,4 +838,3 @@ sqlite > DELETE FROM bans WHERE date('now', '-$days day') > datetime(timeofban,
sqlite > VACUUM;
# systemctl start fail2ban
~~~