У меня есть сервер Apache2, настроенный как обратный прокси в моей сети периметра.
Существует множество VirtualHost, настроенных с помощью директивы ProxyPas.
Для конкретного я хочу ограничить доступ к определенному IP-адресу.
Это пример:
<VirtualHost 192.168.0.1:80>
ServerAdmin email@domain.com
ServerName sub.domain.com
ServerAlias sub.domain.com
ProxyPass / http://internal.domain.com:80/
ProxyPassReverse / http://internal.domain.com:80/
CustomLog /var/log/apache2/my_log combined
HostnameLookups Off
ProxyPreserveHost On
UseCanonicalName Off
ServerSignature On
ProxyRequests Off
</VirtualHost>
Я пытался добавить это:
<Proxy *>
Order deny,allow
Deny from all
Allow from 192.168.0.100
</Proxy>
но не работает, потому что обратный прокси-сервер не сохраняет удаленный IP-адрес.
Есть ли способ использовать IP ACL с Apache, настроенным как обратный прокси?
Спасибо
Вы можете сделать это, используя: Заголовки запроса обратного прокси (X-Forwarded-For
)
Учебное пособие: Apache 2.4 как обратный прокси-сервер - LeaseWeb labs - охватывает второй пункт маркера.
для mod_proxy
:
LogFormat "%v %{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" pro
xy
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded