Я написал собственный джейл и фильтр в fail2ban для входа в мой сервис. Файл журнала находится в /var/журнал/движение/motion.log
и неудачный вход в систему генерирует такую строку:
[0:ml1] [ALR] [STR] [02 ноября 11:42:59] handle_basic_auth: motion-stream — неудачная попытка аутентификации с <ip>
Моя тюрьма в /etc/fail2ban/jail.local
выглядит так:
[авторизация движения]
включено = верно
порт = 8008
фильтр = движение-auth.conf
logpath = /var/log/motion/motion.log
banaction = %(banaction_allports)s
максимальная попытка = 3
время нахождения = 10800
бантайм = 259200
И мой фильтр в /etc/fail2ban/filter.d
названный движение-auth.conf
выглядит так:
[Определение]
failregex = \[0:ml1\] \[ALR\] \[STR\] \[.*\] handle_basic_auth: motion-stream — неудачная попытка аутентификации с <HOST>
когда я бегу fail2ban-regex /var/log/motion/motion.log /etc/fail2ban/filter.d/motion-auth.conf
Я получаю подтверждение того, что мой фильтр работает так, как задумано:
Запуск тестов
==============
Используйте файл фильтра failregex: motion-auth, baseir: /etc/fail2ban
Используйте файл журнала: /var/log/motion/motion.log
Использовать кодировку: UTF-8
Результаты
=======
Failregex: всего 186
|- #) [количество совпадений] регулярное выражение
| 1) [186] \[0:ml1\] \[ALR\] \[STR\] \[.*\] handle_basic_auth: motion-stream - неудачная попытка авторизации с <HOST>
`-
Игнорировать регулярное выражение: всего 0
Дата показа шаблона:
|- [количество просмотров] формат даты
| [2640] (?:DAY )?MON Day %k:Minute:Second(?:\.Microseconds)?(?: ExYear)?
`-
Строки: 2929 строк, 0 проигнорировано, 186 сопоставлено, 2743 пропущено
[обработано за 1,06 сек.]
Но когда я пытаюсь перезагрузить/перезапустить fail2ban, чтобы добавить новый фильтр, я получаю следующее сообщение:
Не найдены доступные файлы конфигурации для 'filter.d/motion-auth.conf' в /etc/fail2ban
Не удалось прочитать фильтр «motion-auth.conf»
Ошибки в джейл 'motion-auth'. Пропуская...
ХОРОШО
Кто-нибудь знает, что я делаю неправильно?