LinuCレベル2 Webサーバーとプロキシサーバー 問20
Webサーバーとプロキシサーバー/Apache HTTPサーバーの設定と管理Apache HTTP Server 2.4で、<Directory>ブロックに「Require ip 192.0.2.0/24」とだけ記述したときの動作として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「Webサーバーとプロキシサーバー」に対応。実際の試験問題ではありません)
- A192.0.2.0/24からのアクセスだけを拒否し、それ以外のアクセスは許可する
- B192.0.2.0/24からのアクセスだけを許可し、それ以外のアクセスは拒否する
- C192.0.2.0/24からのアクセスに対してだけ、Basic認証の入力を求める
- D192.0.2.0/24からのアクセスだけを、アクセスログに記録するようにする
正解:B
解説
Apache 2.4のアクセス制御はRequireディレクティブで記述し、「Require ip」はmod_authz_hostが提供する、接続元IPアドレスによる許可の指定です。この1行だけを書いた場合、条件に一致する192.0.2.0/24からのアクセスが許可され、一致しないアクセスは拒否(403 Forbidden)されます。特定の範囲を拒否したい場合は、<RequireAll>の中で「Require all granted」と「Require not ip ...」を組み合わせます。2.2系のOrder・Allow・Denyによる書き方は、2.4ではmod_access_compatによる互換機能の扱いです。
選択肢ごとの解説
- A誤り。Require ipは一致した接続元を許可する指定です。拒否するには<RequireAll>内でRequire not ipを使います。
- B正しい。Require ipに一致する192.0.2.0/24からのアクセスだけが許可され、それ以外は拒否されます。
- C誤り。Basic認証を求めるにはAuthType Basic・AuthUserFileとRequire valid-user等を組み合わせます。Require ipは認証を求めません。
- D誤り。ログに記録する対象を絞るのはCustomLogの条件指定(env=等)で行う設定で、Requireはアクセス制御のディレクティブです。