Apache2 をリバースプロキシとして使用しOpenConnectを構成する
Apache2 をリバースプロキシとして使用し、外部からの接続をポート 443 で受けつつ、内部で OpenConnect サーバー(ocserv)をポート 4443 へ転送する設定を行う場合、mod_proxy を使った設定が必要になります。
1. Apache2 の mod_proxy を有効化
まず、必要なモジュールを有効にします。
bash
sudo a2enmod proxy proxy_http ssl
sudo systemctl restart apache2
2. Apache2 の VirtualHost 設定
Apache の sites-available に新しい設定ファイルを作成します。
bash
sudo nano /etc/apache2/sites-available/openconnect.conf
次のような設定を記述してください:
apache
<VirtualHost *:443>
ServerName vpn.example.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/vpn.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/vpn.example.com/privkey.pem
# ocserv へのリバースプロキシ設定
ProxyRequests Off
ProxyPass / https://127.0.0.1:4443/
ProxyPassReverse / https://127.0.0.1:4443/
# WebSocket の対応(必要な場合)
ProxyPass /ws/ ws://127.0.0.1:4443/
ProxyPassReverse /ws/ ws://127.0.0.1:4443/
ErrorLog ${APACHE_LOG_DIR}/vpn_error.log
CustomLog ${APACHE_LOG_DIR}/vpn_access.log combined
</VirtualHost>
ここで:
- ServerName: VPN サーバーのドメイン名(適宜変更)
- SSL 設定: Let's Encrypt の証明書を使用(適宜変更)
- ProxyPass / ProxyPassReverse: Apache2 をリバースプロキシとして ocserv に転送
- WebSocket の設定: ocserv の WebSocket を有効化した場合の設定
3. 設定を有効化
作成した設定ファイルを有効化し、Apache2 を再起動します。
bash
sudo a2ensite openconnect.conf
sudo systemctl reload apache2
この構成で 443 番ポートの HTTPS 通信を受け、内部で 4443 に転送できます! 環境や要件によって設定を調整する必要があるかもしれませんが、基本的な構成はこのようになります。
