htaccess 不允许的 IP 的请求状态为 200?

htaccess 不允许的 IP 的请求状态为 200?

我有一台 Debian 9 服务器,它不断受到机器人的攻击。我每天都会检查 200 的访问日志,以确保我的对策有效。日志中充满了 403 状态请求,通常只有少数 200 来自允许的 IP。出于隐私考虑,下面编辑了 IP 地址。

Doc 根目录有以下 htaccess 文件:

order deny,allow
deny from all
allow from  216.xx.xxx.xxx
allow from 184.xxx.xxx.xxx

AuthUserFile /var/www/.htpasswd
AuthName "Admin"
AuthType Basic

<Limit GET>
        require valid-user
</Limit>

在平常的日子里,此命令仅允许访问上述两个 IP 和 ::1

sudo zcat /var/log/apache2/access.log.4.gz | awk '{ if($9 == 200) { print $1 " " $7  } }' | sort | uniq -c | sort -nr | head -10

但是今天我们也收到了两个请求,尽管它们不在 htaccess 中允许的范围内,但它们的状态却为 200。

::1 - - [17/Apr/2020:00:49:05 -0500] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.25 (Debian) OpenSSL/1.0.2r (internal dummy connection)"
103.231.90.xxx - - [17/Apr/2020:00:49:36 -0500] "OPTIONS * HTTP/1.1" 200 2670 "-" "Mozilla/5.0 [en] (X11, U; OpenVAS-VT 9.0.3)"
103.231.90.xxx - - [17/Apr/2020:00:49:39 -0500] "OPTIONS * HTTP/1.1" 200 163 "-" "Mozilla/5.0 [en] (X11, U; OpenVAS-VT 9.0.3)"
::1 - - [17/Apr/2020:00:49:52 -0500] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.25 (Debian) OpenSSL/1.0.2r (internal dummy connection)"

这些是否代表访问成功?如果是,我该如何更正我的 htaccess 文件以避免这种情况发生?我以为已经很稳定了。

答案1

OPTIONS *带通配符的表示整个服务器,而.htaccess文件等于<Directory> 配置部分。如果您想禁止这些请求,您需要将您的指令从.htaccess移到<VirtualHost>或全局服务器配置。

顺便说一句,Debian 9 附带 Apache 2.4,它具有不同的访问控制您正在使用的指令:

  • 阿帕奇 2.2:

    order deny,allow 
    deny from all 
    allow from 216.xx.xxx.xxx 
    allow from 184.xxx.xxx.xxx
    
  • 阿帕奇 2.4:

    Require ip 216.xx.xxx.xxx 184.xxx.xxx.xxx
    

相关内容