web-dev-qa-db-ja.com

XAMPPは特定の外部IPアドレスからのアクセスを拒否します

これまでのところ、私が試したことは何も機能していないようです。 Windows 7マシンでApache 2.4.7を実行しています。

セットアップは次のとおりです。

サーバーIP、ポート80に着信するすべてのトラフィックをJava localhost:5000で実行されているアプリケーションにリダイレクトしています。

これらすべてをhttpd-vhosts.confファイルで実行するコードは次のとおりです。

<VirtualHost *:80> 
  ProxyPreserveHost On
  ProxyRequests Off
  ServerName demo.website.com
  ServerAlias website.com
  ProxyPass / http://localhost:5000/
  ProxyPassReverse / http://localhost:5000/
  <Proxy *>
        Order deny,allow
        Allow from all
  </Proxy>
</VirtualHost>

問題は、特定の外部IPアドレスからのトラフィックをどのようにdenyするかです。

ポート80でのリクエストは、Javaアプリケーションにリダイレクトされ、ウェブコンテンツを含むxamppフォルダにリダイレクトされないため、.htaccessを使用できないようです。

また、以下のコードも機能しません。

<Proxy *>
    order allow,deny
    deny from 193.37.XXX.XX
    allow from all
</Proxy>

他にどのようなオプションがありますか?

助言がありますか?

編集:

私が得た応答の後、私はサーバーで悪用可能なギャップを開いてプロキシを完全に間違って逆にしているようです。提供された回答に基づいて、最初のコードを変更しました。

ポート443に同様の安全でないコードを使用していて、新しい変更後にApacheを開始できないため、新しい質問 [〜#〜]こちら[〜#〜] を投稿しました。

2
user3132858

@MichaelHamptonがすでにコメントしたように:次の設定をすぐに削除します:

<Proxy *>
    order allow,deny
    deny from 193.37.XXX.XX
    allow from all
</Proxy> 

リバースプロキシには必要ありませんが、代わりにforwardproxy、ほとんど誰にでもオープンで、サーバーが悪用される可能性があります。 (幸いにもあなたはまだ ProxyRequests off も使用しています)

ところで、フォワードプロキシが必要な場合は、Apache httpdではなく、より具体的な製品を使用してください。


.htaccessを使用できないようです...

私見あなたはすでに.htaccessファイルを作成するつもりで間違った方向に向かっています。これは manual on .htaccess ファイルから引用された私のペットのピーチです:

Httpdメインサーバーの設定にアクセスできる場合は、_.htaccessファイルの使用を完全に回避する必要がありますファイル。 .htaccessファイルを使用すると、Apache httpサーバーの速度が低下します.htaccessファイルに含めることができるディレクティブは、同じ効果を持つため、メインのApache構成ファイルの Directory ブロックで設定することをお勧めします。パフォーマンスが向上します)。

ただし、この場合に.htaccessが機能しないのは、ローカルファイルシステムのリソースにディレクトリから設定を適用し、リバースプロキシを使用して、コンテンツがApache httpdによって他の場所から取得されるためです。


リバースプロキシURLに追加のアクセス制御とIPアドレスホワイト/ブラックリストを適用する方法としての、実際の問題の解決策:ProxyPassディレクティブと追加のディレクティブを<Location>ブロックに配置します。構成(これも Apache 2.4以降 は、最高のパフォーマンスを提供する構成構文です) Require ディレクティブでIPアドレス制限に追加しますその場所に:

<VirtualHost *:80> 
  ServerName demo.website.com
  ServerAlias website.com

  <Location />
    <RequireAll>
      # Block IP-addresses from the 193.37.0.0/16 and 10.9.8.0/24 networks 
      Require not ip 193.37 10.9.8
      # Allow all other IP's
      Require all granted
    </RequireAll> 
    ProxyPass http://localhost:5000/
    ProxyPassReverse http://localhost:5000/
  </Location>

</VirtualHost> 
4
HBruijn