Apacheリバースプロキシアクセスコントロール


8

現在、いくつかのサイトのリバースプロキシであるApacheリバースプロキシがあります。ただし、特定のIPのみがアクセスできる新しいサイト(newsite.comと呼ぶことにします)を追加します。これはApacheをリバースプロキシとして使用できますか?

プロキシされているサイトにはVirtualHostsを使用しています。Allow / DenyディレクティブをLocationステートメントと組み合わせて使用​​してみました。例えば:

<VirtualHost *:80>  
Servername newsite.com   
<Location http://newsite.com>
Order Deny,Allow
Deny from all
Allow from x.x.x.x
</Location>
<IfModule rewrite_module>
 RewriteRule ^/$ http://newsite.internal.com [proxy]
</IfModule>

また、プロキシディレクティブでサイトの許可/拒否を具体的に設定してみました。たとえば、

<Proxy http://newsite.com/>
  Order deny,allow
  Deny from all
  Allow from x.x.x.x
</Proxy>

プロキシされたサイトの残りの部分については、まだこの定義があります。

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

私が何をしても、どこからでもアクセスできるようです。これは、他のすべてのプロキシサイトの定義のためです。プロキシディレクティブを適用する順序はありますか?* 1の前後の両方で、VirtualHostステートメント内にもnewsiteがありました。

回答:


2

newsite.comの照合にServerNameServerAliasを使用しています。

リバースプロキシ構成には、ディレクティブを使用しないでください。

<Proxy whatever>

あなたは使うべきです:

Apache 2.2の場合:

<Location />
Order Deny,Allow
Deny from all
Allow from x.x.x.x
</Location>

Apache 2.4の場合:

<Location />
   <RequireAny>
       Require             ip x.x.x.x/255.255.255.0
       Require ...
   </RequireAny>
</Location>

Authzを実行した後は、ProxyPassとProxyPassReverse(302,301リダイレクトの場合)を実行するだけです。

ProxyPass /  http://newsite.com/
ProxyPassReverse /  http://newsite.com/

この場合、newsite.comを/ etc / hostsに追加する必要があるか、DNSがURL内のホストを解決する必要があることに注意してください。IPアドレスのみを使用することもできますが、「Host:」ヘッダーを保持するhttpdサーバーに次のように指示する必要があります。

ProxyPreserveHost On

1

今日も同様の問題がありました。ワイルドカード照合がどのように行われるかに関連していた、それは完全なURLを使用すると思います:私の場合、私は持っていました

<Proxy /jira*>
  Order allow,deny
  Deny from all
</Proxy>
ProxyPass /jira https://myhost.com

そして、これはうまくいきませんでした。サイトはどこからでもアクセスできました。私はいくつかのことを試し、動作するバージョンを見つけました:

<Proxy *jira*>

だからあなたの場合は

<Proxy http://newsite.com*>

ApacheがそのURLと一致することを確認します。


0
<VirtualHost *:80>
    Servername newsite.com

    <Proxy *>
            Order Deny,Allow
            Deny from all
            Allow from x.x.x.x
    </Proxy>

    ProxyPass /  http://newsite.com/
    ProxyPassReverse /  http://newsite.com/

</VirtualHost>

1
これは何をしますか、そしてなぜそれをしますか?
sysadmin1138

これは、特定のIPからのみアクセス可能なリバースプロキシです(Allow from xxxxの「x」を置き換えることで定義されます)。
dr0i
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.