Контроль доступа на основе местоположения обратного прокси-сервера Apache не работает

Контроль доступа на основе местоположения обратного прокси-сервера Apache не работает

Я использую небольшой веб-сервер с Ubuntu 12.05.5 LTS и Apache 2.2.22 и недавно столкнулся с такой проблемой:

Для сервера IIS на виртуальной машине у меня есть следующая конфигурация обратного прокси:

<VirtualHost *:443>

    SSLEngine on

    DocumentRoot /var/www/

    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
        allow from 192.168.
        allow from 10.8.0
    </Directory>

    ...

    ProxyRequests Off
    ProxyPreserveHost On
    ProxyVia On

    SSLProxyEngine on
    <Location /AutodeskDM>
        Order Deny,Allow
        Deny from all
        Allow from 192.168.
        ProxyPass https://10.8.0.131/AutodeskDM
        ProxyPassReverse https://10.8.0.131/AutodeskDM
    </Location>

    <Location /autodeskdm>
        Order Deny,Allow
        Deny from all
        Allow from 192.168.
        ProxyPass https://10.8.0.131/autodeskdm
        ProxyPassReverse https://10.8.0.131/autodeskdm
    </Location>

....

</VirtualHost>

Это работает отлично и разрешает подключения только из подсети 192.168., как и ожидалось.

Теперь, когда я использую ту же конфигурацию, но без SSLProxyEngine и http вместо https в директивах ProxyPass, я получаю следующую ошибку:

[error] [client 127.0.0.1] client denied by server configuration: proxy:http://10.8.0.131/AutodeskDM/

Если я добавлю

Allow from 127.0.

конечно, работает, но доступ предоставляется из любой точки мира.

Игра с директивой Proxy, как предлагалось в другом месте (например,Контроль доступа обратного прокси-сервера Apache) также не имеет никакого эффекта.

<Proxy *>
    Order deny,allow
    Deny from all
    Allow from 192.168.
</Proxy>

По-прежнему обеспечивается доступ из любой точки мира.

Что я упускаю? Это ожидаемое поведение? Если да, то почему оно отличается с SSL и без него?

решение1

Как всегда, другая программа вмешивалась. У меня OpenVPN прослушивает порт 80 и проксирует http-запросы на apache на порт 8080. Поэтому, естественно, http-запросы выглядят так, будто они идут с localhost на apache.

Связанный контент