El control de acceso basado en la ubicación del proxy inverso de Apache no funciona

El control de acceso basado en la ubicación del proxy inverso de Apache no funciona

Estoy ejecutando un pequeño servidor web con Ubuntu 12.05.5 LTS y Apache 2.2.22 y recientemente encontré este problema:

Para un servidor IIS en una máquina virtual tengo la siguiente configuración de proxy inverso:

<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>

Esto funciona perfectamente y solo permite conexiones desde el 192.168. subred, como se esperaba.

Ahora, cuando uso la misma configuración menos SSLProxyEngine y http en lugar de https en las directivas ProxyPass, aparece el siguiente error:

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

si agrego

Allow from 127.0.

Por supuesto que funciona, pero el acceso se concede desde cualquier lugar.

Jugar con la directiva Proxy, como se sugiere en otra parte (por ejemplo,Control de acceso de proxy inverso de Apache) tampoco tiene ningún efecto.

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

Aún permite el acceso desde cualquier lugar.

¿Que me estoy perdiendo aqui? ¿Es este el comportamiento esperado? Si es así, ¿por qué es diferente con y sin SSL?

Respuesta1

Como siempre, otro programa se interponía en el camino. Tengo OpenVPN escuchando en el puerto 80 y enviando solicitudes http a Apache en el puerto 8080. Entonces, naturalmente, las solicitudes http parecen provenir de localhost a Apache.

información relacionada