2026年5月19日
2026年5月19日
Proxyサーバー経由のアクセスをサーバー側で許可する方法
はじめに
Proxyサーバー経由のアクセスを許可することは、企業ネットワークや内容保護が必要なウェブサイトで重要なセキュリティ対策です。この手法は、外部からの直接接続よりも内部ネットワークから発信される要求に対してより厳格な認証を行うことが可能となります。
症状・背景
- 企業内LANからのアクセス制御が必要: 企業内ネットワークからは特定のリソースへのアクセスが認められることを設定したい。
- コンテンツ保護: 内部スタッフのみが利用できる情報やサービスを提供する場合。
- セキュリティ強化: 外部から直接アクセスを試みる攻撃者を防ぐために、Proxy経由での接続に制限を設ける。
手順・設定方法
ステップ1: Nginxを用いた認証設定
# Nginxの配置ファイルを開く
sudo nano /etc/nginx/sites-available/your-site
# 以下のようにhttpセクションに Proxy-Authorization ヘッダーをチェックするロジックを追加
location / {
proxy_set_header Authorization "";
if ($http_proxy_authorization ~ "^Basic\s+([^\:]*)\:([^\s]+)$") {
set $auth_user $1;
set $auth_pass $2;
}
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
ステップ2: HTPASSWDファイルの生成
# .htpasswdファイルを作成する
sudo htpasswd -c /etc/nginx/.htpasswd your_username
# その後、追加したいユーザーは以下コマンドで:
sudo htpasswd /etc/nginx/.htpasswd another_username
ステップ3: Nginxのリロード
# Nginxを再読み込みして設定を適用する
sudo systemctl reload nginx
ステップ4: Apacheでの認証設定
# httpd.confまたは具体的なサイトファイルを開く
sudo nano /etc/httpd/conf/httpd.conf
# AllowOverride NoneをAllowOverride AuthConfigに変更し、mod_auth_digestの有効化
<Directory "/var/www/html">
AuthType Digest
AuthName "Restricted"
AuthDigestProvider file
AuthUserFile /etc/apache2/.htdigest
Require valid-user
</Directory>
ステップ5: HTPASSWDファイルの生成 (Apache)
# .htdigestファイルを作成する
sudo htdigest -c /etc/apache2/.htdigest your_username
# その後、追加したいユーザーは以下コマンドで:
sudo htdigest /etc/apache2/.htdigest another_username
ステップ6: Apacheのリロード
# httpdを再読み込みして設定を適用する
sudo systemctl reload apache2
注意事項
- セキュリティ上の注意: .htpasswdや.htdigestファイルは、適切な権限で管理し、不正アクセス防止のために暗号化された形式で保存すること。
- パフォーマンス/運用上の注意: 複数の認証要求が増えると、サーバーへの負荷が高まる可能性があるため、必要最小限に設定を適用すること。
まとめ
1. Nginxでの認証設定: Proxy-Authorizationヘッダーをチェックし、内部ネットワークからの接続のみを許可する。
2. HTPASSWDファイルの生成: 必要なユーザー名とパスワードを追加する。
3. Apacheでの認証設定: Digest認証を使用して、認証が必要なリソースにアクセス制限を設ける。
4. Apacheのリロード: 設定が有効になるようにhttpdを再読み込みする。
5. セキュリティ上の注意: 高度な認証方法を選択し、ファイルの管理を適切に行う。
関連記事: