Security
htaccess 不允許來自 IP 的請求的 200 狀態?
我有一個 Debian 9 伺服器,它不斷被機器人攻擊。我每天檢查 200 秒的訪問日誌,以確保我的對策有效。日誌中充滿了 403 個狀態請求,通常只有少數 200 個來自允許的 IP。為保護隱私,IP 地址在下方進行了編輯。
Doc root 有以下 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 文件,所以這是不可能的?我以為它已經很牢固了。
帶有萬用字元的
OPTIONS *
是指整個伺服器,而.htaccess
文件等於<Directory>
configuration section。如果您想禁止這些請求,您需要將指令從.htaccess
to<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