XAMPPは特定の外部IPアドレスからのアクセスを拒否します
これまで試したことは何も機能していないようであるため、テストXAMPPサーバーを保護するためのサポートが必要です。Windows7マシンでApache2.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>
問題は、deny
特定の外部IPアドレスからどのようにトラフィックするかです。
.htaccess
ポート80のリクエストは、Webコンテンツを含むxamppフォルダーではなく、Javaアプリケーションにリダイレクトされるため、使用できないようです。
また、以下のコードもその役割を果たしません。
<Proxy *>
order allow,deny
deny from 193.37.XXX.XX
allow from all
</Proxy>
他にどのようなオプションがありますか?
助言がありますか?
編集:
私が得た応答の後、私はプロキシリバースを完全に間違って行っていたようで、サーバーに悪用可能なギャップを開いています。提供された回答に基づいて、最初のコードを変更しました。
私はポート443に対して同様の安全でないコードを使用していると私は、Apacheの新しい修正後に起動するために得ることができないので、私は、新しい質問を掲載しているHERE。
回答
@MichaelHamptonがすでにコメントしているように、次の設定をすぐに削除します。
<Proxy *>
order allow,deny
deny from 193.37.XXX.XX
allow from all
</Proxy>
これらはリバースプロキシには必要ありませんが、代わりにフォワードプロキシを構成するために使用され、ほとんどすべての人に公開されます。これにより、サーバーが悪用される可能性があります。(幸いにもあなたはまだ使用しましたProxyRequests off)
ところで、フォワードプロキシが必要な場合は、Apache httpdではなく、より具体的な製品を使用してください。
.htaccessが使えないようです...
私見あなたはすでに.htaccess
ファイルを作成するというあなたの意図で間違った方向に向かっています。それは私のペットのぞき見であり、.htaccessファイルのマニュアルから引用されています:
あなたは必要があります使用しないよう
.htaccess
完全にファイルを 使用すると、メインのサーバ設定にhttpdのアクセスがある場合は、ファイルを。.htaccess
ファイルを使用すると、Apachehttpサーバーの速度が低下します。.htaccess
ファイルに含めることができるディレクティブDirectoryは、メインのApache構成ファイルのブロックに設定する方が適切です。これは、パフォーマンスが向上しても同じ効果があるためです)。
ただし、この場合.htaccessが機能しない理由は、ディレクトリからローカルファイルシステム上のリソースに設定を適用し、リバースプロキシを使用してコンテンツがApachehttpdによって他の場所から取得されるためです。
リバースプロキシURLに追加のアクセス制御とIPアドレスのホワイトリスト/ブラックリストを適用する方法としての実際の問題の解決策:ProxyPass
ディレクティブと追加のディレクティブを<Location>
構成内のブロックに配置します(これもApache2.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>