Пользовательский фильтр fail2ban на многострочном

Можно ли поймать ошибку аутентификации в нескольких строках с помощью регулярного выражения fail2ban?

Вот пример:

Sep 08 11:54:59.207814 afpd[16190] {dsi_tcp.c:241} (I:DSI): AFP/TCP session from 10.0.71.149:53863
Sep 08 11:54:59.209504 afpd[16190] {uams_dhx2_pam.c:329} (I:UAMS): DHX2 login: thierry
Sep 08 11:54:59.272092 afpd[16190] {uams_dhx2_pam.c:214} (I:UAMS): PAM DHX2: PAM Success
Sep 08 11:55:01.522258 afpd[16190] {uams_dhx2_pam.c:666} (I:UAMS): DHX2: PAM_Error: Authentication failure

Спасибо


person bonnemais    schedule 08.09.2014    source источник


Ответы (2)


Да, конечно, fail2ban использует регулярное выражение python с многострочным параметром. В вашем случае попробуйте:

"afpd\[[0-9]+\] {dsi_tcp.c:241} \(I:DSI\): AFP/TCP session from <HOST>:[0-9]+\n.*afpd\[[0-9]+\] {uams_dhx2_pam.c:[0-9]+}.*\n.*afpd\[[0-9]+\] {uams_dhx2_pam.c:[0-9]+}.*\n.*afpd\[[0-9]+\] {uams_dhx2_pam.c:[0-9]+}.*PAM_Error: Authentication failure"

Как видите, вам просто нужно поставить \n там, где это необходимо. Не забудьте установить для параметра maxlines значение 4 в вашем случае, чтобы fail2ban использовал 4 строки для соответствия регулярному выражению. Ваш файл фильтра должен выглядеть примерно так:

[Init]
maxlines = 4

[Definition]

failregex = "afpd\[[0-9]+\] {dsi_tcp.c:241} \(I:DSI\): AFP/TCP session from <HOST>:[0-9]+\n.*afpd\[[0-9]+\] {uams_dhx2_pam.c:[0-9]+}.*\n.*afpd\[[0-9]+\] {uams_dhx2_pam.c:[0-9]+}.*\n.*afpd\[[0-9]+\] {uams_dhx2_pam.c:[0-9]+}.*PAM_Error: Authentication failure"

ignoreregex =

Используйте fail2ban-regex для проверки регулярного выражения.

person wpoely86    schedule 04.11.2014

Просто искал решение той же проблемы, но я думаю, что ответ, данный wpoely86, может привести к блокировке невинных IP-адресов, если несколько IP-адресов подключаются более или менее одновременно.

Sep 08 11:54:59.207814 afpd[16190] {dsi_tcp.c:241} (I:DSI): AFP/TCP session from 10.0.71.149:53863
Sep 08 11:54:59.207815 afpd[99999] {dsi_tcp.c:241} (I:DSI): AFP/TCP session from 10.10.10.10:53864
Sep 08 11:54:59.209504 afpd[16190] {uams_dhx2_pam.c:329} (I:UAMS): DHX2 login: thierry
Sep 08 11:54:59.272092 afpd[16190] {uams_dhx2_pam.c:214} (I:UAMS): PAM DHX2: PAM Success
Sep 08 11:55:01.522258 afpd[16190] {uams_dhx2_pam.c:666} (I:UAMS): DHX2: PAM_Error: Authentication failure
Sep 08 11:55:01.522258 afpd[99999] {uams_dhx2_pam.c:666} (I:UAMS): DHX2: PAM_success: Authentication succeeded

Выше оскорбительное соединение пришло с 10.0.71.149. Однако регулярное выражение заблокирует 10.10.10.10. Другими словами, регулярное выражение должно различать afpd[99999] и afpd[16190] (которые идентифицируют PID процесса afpd).

person Tomasz Chmielewski    schedule 21.04.2019