【问题标题】:Regex for ApacheApache 的正则表达式
【发布时间】:2019-11-21 22:05:20
【问题描述】:

我想为 Apache 创建一条规则,以根据此类日志阻止大量登录:

93.176.51.15 - - [21/Nov/2019:00:02:40 +0100] "GET /wordpress/wp-login.php HTTP/1.1" 200 5485

我需要的究竟是什么正则表达式?我用这个:

^.+?:\d+ <HOST> -.*"(GET|POST|HEAD) .*/wp-login.php.*$

提前致谢

【问题讨论】:

    标签: fail2ban


    【解决方案1】:

    更“精确”的正则表达式看起来像:

    ^<HOST> \S+ \S+ [^"]*"[A-Z]{3,15}\s+\S*/wp-login\.php\b
    

    它是锚定的(^.+ 不是锚点),没有包罗万象(如 .*,但尤其是非贪婪,如 .+?),并涵盖所有 http 方法以及来自入侵者方面提供的用户名(如果不需要身份验证并且 Web 服务器将记录它而不是 -)。

    如果您的 fail2ban >= 0.10,请使用 &lt;ADDR&gt; 而不是 &lt;HOST&gt;(如果只记录 IP,则更快、更安全、更精确)。

    【讨论】:

      猜你喜欢
      • 2011-11-01
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-04
      • 2023-03-17
      相关资源
      最近更新 更多