[AWS] 「ALB」ALB経由でのIPアドレス制限

ALB経由でEC2にアクセスした場合、アクセス元がALBからのIPアドレスになってしまって、そのままではIPアドレス制限ができません。
そこで、X-Forwarded-Forヘッダを使用します。

1. 準備作業

「mod_remoteip」モジュールを有効にします。
※Amazon Linux 2においては、デフォルトで有効になっています。

2. 設定

「/etc/httpd/conf/httpd.conf」もしくはVirtualHostに以下の設定を追加します。
# 送信元IPアドレスとして、X-Forwarded-Forを利用する
RemoteIPHeader X-Forwarded-For

これで、mod_remoteipが提供するRemoteIPHeaderディレクティブによって、X-Forwarded-Forヘッダの内容を確認して、その値を送信元IPアドレスとしてApacheに認識させることができます。

3. 設定例

(1) .htaccessでの例
該当のディレクトリに配置します。
SetEnvIf X-Forwarded-For "^xxx\.xxx\.xxx\.xxx$|^xxx\.xxx\.xxx\.xxx$" AllowedIp
Require env AllowedIp
※複数のIPアドレスを指定する場合は「|」で区切ります。

(2) VirtualHostの例
特定のIPアドレスのみphpMyAdminを表示させます。
<VirtualHost *:80>
# 送信元IPアドレスとして、X-Forwarded-Forを利用する
RemoteIPHeader X-Forwarded-For
 
alias /pma "/usr/local/phpmyadmin"
<Directory "/usr/local/phpmyadmin">
    Options FollowSymLinks
    AllowOverride All
    Require all denied
</Directory>
<Location /pma>
    Require ip xx.xx.xx.xx
</Location>
</VirtualHost>




最終更新:2021年03月04日 11:25