過去問ドリル

LinuCレベル2 Webサーバーとプロキシサーバー 問20

Webサーバーとプロキシサーバー/Apache HTTPサーバーの設定と管理

Apache HTTP Server 2.4で、<Directory>ブロックに「Require ip 192.0.2.0/24」とだけ記述したときの動作として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル2の出題範囲「Webサーバーとプロキシサーバー」に対応。実際の試験問題ではありません)

正解: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はアクセス制御のディレクティブです。
LinuCレベル2の問題を演習モードで解く