Назад | Перейти на главную страницу

200 статус для запросов с IP, не разрешенных htaccess?

У меня есть сервер 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