У меня есть URL-адрес, который мне нужен, чтобы ограничить доступ для определенного IP (10.0.0.5). Когда я делаю это для прямого доступа следующим образом, он отлично работает:
<Location /incoming>
Order Allow,Deny
Deny from 10.0.0.5
Allow from all
</Location>
Но когда этот IP-адрес поступает от прокси (IP-адрес прокси: 192.168.1.43), это решение не работает. Вот что я вижу в журнале:
10.0.0.5, 192.168.1.43 - - [24 / May / 2017: 16: 03: 54 +0300] "POST / входящий HTTP / 1.0" 200 698 0/6899 "-" "-"
Я попробовал сделать следующее - добавить секцию Proxy:
<Proxy /incoming >
Order Allow,Deny
Deny from 10.0.0.5
Allow from all
</Proxy>
Это тоже не помогает.
Мне нужна ваша помощь, друзья !!!
Если прокси устанавливает заголовок X-Forwarded-For, вы должны иметь возможность использовать это:
<Location /incoming>
Order Deny,Allow
SetEnvIf X-Forwarded-For "10.0.0.5" DenyAccess
Deny from env=DenyAccess
</Location>
Order Deny,Allow
- это директива разрешения по умолчанию, которая дает доступ, если не соответствует запрещающее правило. SetEnvIf условно устанавливает флаг среды на основе значения X-Forwarded-For. Единственное правило запрета здесь срабатывает, только если этот флаг установлен. Если правило запрета не срабатывает, доступ разрешен.
Вы также можете сослаться на env
флаги в Require
блоки, как показано Вот.