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

Sep 17 2019

これまで試したことは何も機能していないようであるため、テスト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。

回答

4 HBruijn Sep 18 2019 at 07:45

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