Как fail2ban обнаруживает время попытки вторжения, если в файлах журналов нет метки времени?

Я знаю, как пользователь fail2ban и как настроить тюрьму, но мне неудобно, как это работает.

Дело в том, что есть особый вариант тюрьмы, который findtime мое любопытство: findtime .

  • fail2ban не работает
  • fail2ban отлично работает при неудачных попытках SSH, но не работает при неудачных попытках Apache2
  • Удалите все запреты fail2ban в Ubuntu Linux
  • Атака грубой силы на сервере vsftp не показывает неудачную проверку подлинности в журнале
  • Как я могу научить fail2ban обнаруживать и блокировать атаки из всей подсети?
  • У меня есть тысячи попыток пробить мою систему в этом журнале из журнала?
  • Когда я настраиваю фильтр, необходимо использовать ключевое слово HOST (соответствовать IP-адресу), так что fail2ban может знать IP для сравнения и запрета при необходимости. Хорошо.

    Но вовремя нет такой вещи: fail2ban не может знать точное время, когда строка была добавлена ​​в файл журнала, потому что нет ключевого слова TIME , правильно? Фактически, он может сканировать файлы без какого-либо времени в любой строке, и он все равно будет работать.

    Я предполагаю, что это означает, что fail2ban периодически сканирует файлы: он устанавливает время сканирования внутри, поэтому он может обрабатывать такие параметры, как findtime , сравнивая собственные даты сканирования.

    Во-первых, я прав? Если да, то какова частота сканирования? Не может ли это быть узким местом, если есть много больших файлов журналов для сканирования?

    Затем, что произойдет, если частота сканирования превосходит параметры findtime ? Означает ли это, что fail2ban адаптируется к минимальному варианту времени нахождения, который, как установлено, устанавливает минимальную частоту сканирования?

  • Каковы эти строки% (...) в файле jail.conf fail2ban и как они работают?
  • Игнорировать определенный ip для fail2ban
  • Сервер зависает из-за fail2ban
  • Fail2ban - отправить сообщение с помощью msmtp
  • Почему Fail2ban не отправляет почту для одной конкретной тюрьмы?
  • Как использовать Fail2Ban для защиты приложений ProxyPass (ed)
  • 2 Solutions collect form web for “Как fail2ban обнаруживает время попытки вторжения, если в файлах журналов нет метки времени?”

    Прежде всего. Это (возможно) не ответ, но, возможно, лучше, чем комментарий (и немного для этого).

    Временные марки

    Найдите ваше заявление:

    Фактически, он может сканировать файлы без какого-либо времени в любой строке, и он все равно будет работать.

    что противоречит документации. Что вы подразумеваете под работой ?

    В ручных # фильтрах (v 0.8) указано :

    Если вы создаете свои собственные выражения failregex, вот некоторые вещи, которые вы должны знать:

    • […]

    • Чтобы строка журнала соответствовала вашему failregex, она фактически должна совпадать в двух частях: начало строки должно совпадать с шаблоном timestamp или регулярным выражением , а оставшаяся часть строки должна соответствовать вашему failregex. Если failregex привязан к ведущему элементу ^, тогда привязка ссылается на начало оставшейся части строки после метки времени и промежуточных пробелов.

    • Шаблон или регулярное выражение для соответствия отметке времени в настоящее время не документированы и недоступны для чтения или установки пользователями. См. Ошибка Debian # 491253 . Это проблема, если ваш журнал имеет формат timestamp, который fail2ban не ожидает, так как он не будет соответствовать ни одной строке. Из-за этого вы должны протестировать любой новый failregex на примере строки журнала, как в приведенных ниже примерах, чтобы убедиться, что он будет соответствовать. Если fail2ban не распознает вашу временную метку журнала, у вас есть два варианта: либо переконфигурируйте ваш демон для регистрации с отметкой времени в более общем формате, например, в приведенной выше строке журнала; или напишите сообщение об ошибке, в котором будет указан ваш формат timestamp.

    Обратите внимание, что файлы журналов можно настроить так, чтобы они включали отметки времени, а также формат временных меток. (Это включает dmesg, как указано в комментарии.)

    Также см. Эту тему, Сообщение № 14 и № 19 в частности:

    • fail2ban: совпадение временного шаблона недокументировано и недоступно пользователям

    Два примера:

    Обратите внимание, что вы также можете тестировать команды, например:

     fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf 

    1 Нет метки времени:

     $ fail2ban-regex ' [1.2.3.4] authentication failed' '\[<HOST>\] authentication failed' Running tests ============= Use failregex line : \[<HOST>\] authentication failed Use single line : [1.2.3.4] authentication failed Results ======= Failregex: 0 total Ignoreregex: 0 total Date template hits: Lines: 1 lines, 0 ignored, 0 matched, 1 missed |- Missed line(s): | [1.2.3.4] authentication failed `- 

    2 С отметкой времени:

     $ fail2ban-regex 'Jul 18 12:13:01 [1.2.3.4] authentication failed' '\[<HOST>\] authentication failed' Running tests ============= Use failregex line : \[<HOST>\] authentication failed Use single line : Jul 18 12:13:01 [1.2.3.4] authentication failed Results ======= Failregex: 1 total |- #) [# of hits] regular expression | 1) [1] \[<HOST>\] authentication failed `- Ignoreregex: 0 total Date template hits: |- [# of hits] date format | [1] MONTH Day Hour:Minute:Second `- Lines: 1 lines, 0 ignored, 1 matched, 0 missed 

    Время сканирования

    Руководство # Время реакции :

    Трудно оценить время реакции. Fail2ban ждет 1 секунду перед проверкой сканирования новых журналов. В большинстве случаев это должно быть хорошо. Тем не менее, возможно получить больше ошибок входа, чем указано maxretry.

    В этом отношении также видите эту тему: Re: Ошибка # 481265: fail2ban: Интервал опроса не настраивается .

    Но по дополнительному, но рекомендованному программному обеспечению вы найдете Gamin.

    Gamin – это монитор изменений файлов. Gamin значительно выигрывает от ядра с поддержкой «inotify». Таким образом, активный опрос больше не требуется для получения изменений файла.

    Если Gamin установлен и backend в jail.conf установлен на auto (или gamin ), то будет использоваться Gamin.

    Важно заметить, что дата не должна быть в начале строки, тогда и только тогда, когда вы позволяете регулярному выражению «распознавать» его с помощью подстановочного знака.

    Например: предположим, что в tomcat7 есть несколько строк:

     1.2.3.4 - - [13/Feb/2017:02:47:44 -0300] "GET /manager/html HTTP/1.1" 401 2486 1.2.3.4 - - [13/Feb/2017:02:47:45 -0300] "GET /manager/html HTTP/1.1" 401 2486 1.2.3.4 - - [13/Feb/2017:02:47:45 -0300] "GET /manager/html HTTP/1.1" 401 2486 1.2.3.4 - - [13/Feb/2017:02:47:45 -0300] "GET /manager/html HTTP/1.1" 401 2486 1.2.3.4 - - [13/Feb/2017:02:47:45 -0300] "GET /manager/html HTTP/1.1" 401 2486 1.2.3.4 - - [13/Feb/2017:02:47:46 -0300] "GET /manager/html HTTP/1.1" 401 2486 

    глядя на них, дата не в начале, и это должно быть проблемой.

    Тем не менее, если вы проверите его с помощью регулярного выражения, которое имеет «место для даты», тест будет соответствовать:

     $ fail2ban-regex '1.2.3.4 - - [13/Feb/2017:02:47:44 -0300] "GET /manager/html HTTP/1.1" 401 2486' '<HOST> - - \[.*\] "GET .* HTTP/1.1" 40\d \d+$' Running tests ============= Use regex line : <HOST> - - \[.*\] "GET .* HTTP/1.1" 40\d \d+$ Use single line: 1.2.3.4 - - [13/Feb/2017:02:47:44 -0300] "GET /man... Matched time template Day/MONTH/Year:Hour:Minute:Second Got time using template Day/MONTH/Year:Hour:Minute:Second Results ======= Failregex: 1 total |- #) [# of hits] regular expression | 1) [1] <HOST> - - \[.*\] "GET .* HTTP/1.1" 40\d \d+$ `- Ignoreregex: 0 total Summary ======= Addresses found: [1] 1.2.3.4 (Mon Feb 13 02:47:44 2017) Date template hits: 2 hit(s): Day/MONTH/Year:Hour:Minute:Second Success, the total number of match is 1 
    Linux и Unix - лучшая ОС в мире.