取引先の担当の方から「動的IPのようでコロコロIPアドレスが変わるのですが、(WEBアプリ管理者用)WEBサイトにアクセス制限かけられますか?」と聞かれた。

使っているのは、apache 2.2 / linux / aws ec2。

いくつか方法があると思う。

apache で動的IPアドレスの場合だけ Basic/Digest 認証を追加する

複雑な設定が不要で、パスワードを推測しづらいものにし、定期的に変更するのであれば、現実的ではないかと思う。

<Directory /home/test>
order allow,deny
allow from 許可するIPアドレス
AuthType Basic
AuthName "Restricted Resource"
AuthUserFile /etc/httpd/htpasswd
Require valid-user
Satisfy any
</Directory>

Satify any なので、allow か require かどちらかが使われる。

apache 2.2 satisfy directive

VPN を使って IP アドレスを固定化する

組織の情報システム部門が禁止していない場合に限る。

500/udp、4500/udp が通る環境であれば、 固定 IP アドレスの IKEv2 VPN サーバに VPN 接続して、VPN サーバからのアクセスを apache で許可する。

500/udp、4500/udp は通らないが、openvpn のインストールが許されるのであれば、固定 IP アドレスの openvpn サーバに VPN 接続して、VPN サーバからのアクセスを apache で許可する。

クライアント証明書を使う

サーバ側、クライアント側ともややめんどう。

apache 2.2 Client Authentication and Access Controlより引用

apache の設定に以下を追加

SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile conf/ssl.crt/ca.crt