【问题标题】:fail2ban custom filter on multiline多行上的fail2ban自定义过滤器
【发布时间】:2014-09-08 10:52:47
【问题描述】:

是否可以使用 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

谢谢

【问题讨论】:

    标签: regex multiline fail2ban


    【解决方案1】:

    是的,fail2ban 使用带有多行选项的python regex。在您的情况下,请尝试:

    "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 测试您的正则表达式。

    【讨论】:

      【解决方案2】:

      只是在为同一问题寻找解决方案 - 但我认为 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](它们标识 afpd 进程的 PID)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-19
        • 1970-01-01
        • 2014-10-02
        • 2023-04-03
        • 2015-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多