У меня есть сервер Debian 9, который постоянно атакуют боты. Я проверяю журналы доступа по 200 секунд каждый день, просто чтобы убедиться, что мои контрмеры работают. Журналы заполнены 403 запросами статуса, обычно из которых всего несколько 200 с разрешенных IP-адресов. IP-адреса отредактированы ниже для конфиденциальности.
В корне документа есть следующий файл 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
Но сегодня у нас также было что-то вроде двух запросов, получивших статус 200, несмотря на то, что они не были в разрешенном htaccess.
::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>
раздел конфигурации. Если вы хотите запретить эти запросы, вам нужно переместить свои директивы из .htaccess
к <VirtualHost>
или глобальная конфигурация сервера.
Кстати, Debian 9 поставляется с Apache 2.4, который имеет разные контроль доступа директивы из того, что вы используете:
Apache 2.2:
order deny,allow
deny from all
allow from 216.xx.xxx.xxx
allow from 184.xxx.xxx.xxx
Apache 2.4:
Require ip 216.xx.xxx.xxx 184.xxx.xxx.xxx