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

Блокировка IP с помощью .htaccess в Apache 2.4 - не работает

Я хочу заблокировать определенные IP-адреса, но разрешить все остальные. Я все еще борюсь с этим.

Сначала я изменил apache2.conf файл, чтобы он выглядел так:

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

AllowOverride из None к All

Затем добавил в .htaccess согласно документации Apache2 ниже:

Директивы Allow, Deny и Order, предоставляемые mod_access_compat, устарели и исчезнут в будущей версии. Вам следует избегать их использования и избегать устаревших руководств, рекомендующих их использование.

Итак, более перспективным ответом будет:

<RequireAll>
      Require all granted
      Require not ip XXX.XXX.XXX.XXX
    </RequireAll>

где XXX.XXX.XXX.XXX - мой IP

в access.log Я вижу это:

10.10.10.5 (XXX.XXX.XXX.XXX) - - [27 / ноя / 2018: 17: 11: 46 +0000]

Где 10.10.10.5 - прокси HA.

Это все еще не работает. Есть идеи, что мне делать дальше?

"Где 10.10.10.5 - прокси HA"

Ваш Apache находится за обратным прокси?

Потому что обычно это приводит к тому, что Apache видит только IP-адрес обратного прокси-сервера в качестве IP-адреса клиента (а не фактический IP-адрес клиента), что делает невозможными общие ограничения IP-адресов.

HAProxy можно настроить для пересылки фактического IP-адреса клиента (см. https://www.haproxy.com/blog/haproxy/proxy-protocol/), а Apache необходимо будет перенастроить, чтобы использовать этот IP-адрес клиента с https://httpd.apache.org/docs/2.4/mod/mod_remoteip.html а затем вы можете ожидать, что фильтрация клиентских IP-адресов работает должным образом в Apache httpd