LighttpdにおけるRemote IPによるアクセス制御
Apacheでは mod_access モジュールの "Allow from" や "Deny from" ディレクトリで、サーバにアクセスできるクライアントのIPアドレスを制御することができる。
Lighttpdでは url.access-deny と $HTTP["remoteip"] を組み合わせてこれを実現する。
例えば、192.168.0.1以外からはアクセスを禁止するには、以下のように記述する。
# 192.168.0.1以外からはアクセスを禁止 $HTTP["remoteip"] != "192.168.0.1" { url.access-deny = ( "" ) }
Apacheではこれは次のように書ける。
Order Deny,Allow Deny from all Allow from 192.168.0.1
アクセス許可したいIPが複数あるとき
url.access-deny = () と記述すると、url.access-deny を未定義の状態、即ち全て許可の状態にすることができる。
これを利用して次のように書くと、比較的スマートである。
url.access-deny = ( "" ) $HTTP["remoteip"] == "192.168.0.1" { url.access-deny = () } $HTTP["remoteip"] == "172.16.0.1" { url.access-deny = () } :
複数のドメインで同じ設定を使う場合には、この記述を外部ファイルに切り出して include ディレクティブを用いるとよい。
参考までに、同じ設定はApacheでは次のように書ける。
Order Deny,Allow Deny from all Allow from 192.168.0.1 Allow from 172.16.0.1 :