4

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

ありがとう

4

2 に答える 2

6

確かに、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、必要な場所に配置するだけです。この場合、オプションを 4に設定することを忘れないmaxlinesでください。これにより、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 を使用します。

于 2014-11-04T20:58:19.977 に答える