Как указать несколько файлов журнала шаблон в fail2ban Jail? - PullRequest
0 голосов
/ 16 октября 2019

У меня есть файлы журнала на моем сервере следующим образом

vpn_20191007.log
vpn_20191008.log
vpn_20191009.log
vpn_20191010.log
vpn_20191011.log
vpn_20191012.log
vpn_20191013.log
vpn_20191014.log
vpn_20191015.log
vpn_20191016.log

Можно ли добавить шаблон файлов журнала в конфигурации jail fail2ban?

    [application]
    enabled  = false
    filter   = example
    action   = iptables
    logpath  = /var/log/vpn_%D.log
    maxretry = 1

1 Ответ

1 голос
/ 17 октября 2019

Ну, условно это возможно ...

Хотя подстановочные знаки в основном разрешены на данный момент, поэтому:

logpath  = /var/log/vpn_*.log

сделает работу, но это немного уродливо вваш случай:

  • fail2ban накапливает список файлов только при запуске службы, поэтому список остается полученным в fail2ban (если его не перезагружают) - это означает, что вы должны уведомить fail2ban о том, что имя файла журнала полученоизменен (см. https://github.com/fail2ban/fail2ban/issues/1379, работа продолжается).
  • , поскольку только один файл будет получать новые сообщения, мониторинг других файлов не требуется, особенно если используется серверная часть опроса.

Так что лучше создать для этого несколько logrotate правил:

  • , чтобы переименовать / сжать все предыдущие файлы журнала (чтобы избежать совпадения с устаревшими файлами);
  • создайте жесткую или символическую ссылку для последнего / активного файла с фиксированным именем (таким образом, fail2ban всегда может найти его с тем же именем, и вам вообще не понадобится подстановочный знак);
  • илиуведомить fail2ban перезагрузить тюрьму, еслиимя-файла изменилось(fail2ban-client reload vpn).

Вот пример изменения логротации:

    postrotate
        nfn="/var/log/vpn_$(date +%Y%m%d).log"
        touch "$nfn"
        ln -fs "$nfn" /var/log/vpn.log
...