it-swarm-ja.tech

外部アクセスにHTTPSを使用し、内部アクセスにHTTPを使用するようにApacheを構成するにはどうすればよいですか?

私は2つのサーバーを持っています。1つは会社のローカルネットワークの内部でアクセス可能な開発サーバーで、もう1つは公開されているWebサーバーです。開発サーバーは、プロジェクトを内部で管理するために使用するいくつかのツールをホストしますが、セキュリティを維持しながら、外部からもそれらにアクセスする必要があります。

ProxyPassおよびProxyPassReverseディレクティブを使用して外部サーバーにmod_proxyを設定し、外部要求を内部サーバーにマップしました。また、外部アクセスのセキュリティを提供するために、これらの外部仮想ホストに認証を設定しました。また、外部アクセスにはSSLを使用する必要がありますが、理想的には、イントラネット内のユーザーがプレーンHTTPで内部ツールにアクセスできるようにしておきたいと思います。

この動作を実現することは可能ですか?その場合、どのディレクティブとApacheモジュールを使用する必要があり、どのサーバーでセットアップする必要がありますか?

5
Tim Wardle

パブリック用のHTTP接続を受け入れると仮定しますが、標準のHTTPリダイレクトを実行して強制的にHTTPSにします。

この場合、内部ネットワークの一部である場合は、リダイレクトしないようにHTTPディレクティブを変更できます。

これを行うには、Apacheの mod_rewrite を使用し、REMOTE_ADDRでフィルター処理します。基本的に、ネットワークに一致しないものはすべてリダイレクトする必要があります。

もう1つのオプション、そしておそらくより安全なオプションは、内部ユーザーにパブリックアドレスとは異なるサービスアドレスを使用させることです。 myservice.mydomain.comではなくmyservice.mydomain.localに接続してもらいます。

8
Michael Gorsuch

同じドキュメントルートを使用していても、それぞれが異なるIPで応答する2つの異なる仮想ホストをApache構成で作成できますか?ルーターでは、example.comに192.168.1.1で応答し、ルーターの外部では342.434.564.23で応答します。または、オフィスにいるときに全員に別のアドレスを使用してもらいます(internal.example.com)。

1
Darryl Hein

Linuxを使用している場合は、ファイアウォールについてiptablesを調べてください。 Windowsの場合、IPSecポリシーを使用して、同様のファイアウォールルールをシミュレートできます。

基本的に、ソースIPサブネットに基づいてルールを割り当てます。内部ネットワークから接続されている場合は、HTTPSをブロックします。それ以外の場合は、HTTPをブロックします。

0
spoulson