Apache リバース プロキシのロケーション ベースのアクセス制御が機能しない

Apache リバース プロキシのロケーション ベースのアクセス制御が機能しない

私は Ubuntu 12.05.5 LTS と Apache 2.2.22 を使用して小規模な Web サーバーを実行していますが、最近次のような問題に遭遇しました。

仮想マシン上の 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 をオフにして同じ設定を使用し、ProxyPass ディレクティブで https の代わりに http を使用すると、次のエラーが発生します。

[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 でリッスンし、ポート 8080 で Apache に HTTP リクエストをプロキシしています。そのため、当然、HTTP リクエストはローカルホストから Apache に送られているように見えます。

関連情報