設定は次のとおりです。
- DMZのプロキシサーバー(RHEL8 apache 2.4)
- 複数の仮想ホストが含まれています。
- 各仮想ホストは、LAN上のWebサーバーのリバースプロキシとして機能します。
- プロキシからバックエンド Web サーバーへの接続は SSL 経由で保護されます。
- LANのバックエンドサーバー(RHEL8 apache 2.4)
解決する必要がある問題現在のバックエンドサーバーのApacheアクセスログには、元のクライアントIPの代わりにプロキシのIPが表示されます。クライアントIP(プロキシに接続している人)がバックエンドApacheサーバーのアクセスログに記録されていることを確認したいと思います。
Webには多くのガイドがあります(例:Apache WebサーバーからX-Forwarded-For IPアドレスを取得する方法)をお勧めしますRemoteIPHeader X-Forwarded-For
。
ただし、これはバックエンドへのプロキシ接続がHTTPを使用している場合にのみ機能するようです。 (linodeフォーラムに関するディスカッション.)
プロキシサーバーは、SSL証明書の公開鍵と秘密鍵を保持します。
X-Forwarded-for
バックエンドへのSSL接続を維持しながらヘッダーを追加するようにプロキシサーバーを設定するにはどうすればよいですか?
プロキシサーバーの仮想ホスト構成(IP 192.168.1.2):
<VirtualHost *:443>
ServerName service.example.com
SSLEngine on
SSLCipherSuite AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCompression off
SSLCertificateFile /etc/pki/tls/certs/service_example_com.crt
SSLCertificateKeyFile /etc/pki/tls/private/service_example_com.key
SSLCertificateChainFile /etc/pki/tls/certs/CA.crt
SSLProxyEngine on
ProxyPass / https://backend-1.anubex.com/
ProxyPassReverse / https://backend-1.anubex.com/
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 192.168.1.2
</VirtualHost>
ベストアンサー1
表示されるのは、SSL パススルーではなく、リバース プロキシでの SSL シャットダウンと、そこからエンドサーバーへの別の HTTPS 接続です。 ~によると文書これはエンドサーバーへの新しい要求に自動的に追加されるため、X-Forwarded-Header
リバースプロキシには特別な設定は必要ありません。
エンドサーバー(Apacheも同様)にこのヘッダーを実際に書き込むには、プロキシ%a
で設定したこのヘッダーをそれに応じて解釈する必要があります。そのためにmod_remoteipリバースプロキシ設定で(間違って)行ったように使用でき、設定する必要がありRemoteIPHeader
ます。X-Forwarded-For