LinuCレベル2 202試験の例題と解説

2.09.1Apache HTTP サーバーの設定と管理

今回は202試験の試験範囲から「2.09.1 Apache HTTP サーバーの設定と管理」についての例題を解いてみます。
Apache HTTP Serverのアクセス制限の方法について取り上げます。正しいアクセス制限の方法を覚えて、セキュアなウェブサービスを提供できるようになりましょう。

Linucレベル2 202試験 出題範囲


例題

Apache HTTP Serverの設定ファイルに下記を追加しました。

<Directory "/var/www/html/private">
    AuthUserFile /etc/httpd/htpasswd
    AuthName "Private"
    AuthType Basic

    <RequireAll>
        Require ip 192.168.0.0/24
        Require valid-user
    </RequireAll>
</Directory>

/var/www/html/privateディレクトリへのアクセス制限について、正しい説明をひとつ選択してください。

  1. 接続元IPアドレスが192.168.0.0/24のネットワークであれば、ユーザ認証なしで接続できる。
  2. ユーザ認証で正しいユーザ名/パスワードを入力すれば、どこからでも接続できる。
  3. 接続元IPアドレスが192.168.0.0/24であり、かつ、ユーザ認証で正しいユーザ名/パスワードを入力した時のみ接続できる。
  4. 設定の書式が正しくないため、エラーとなる。

※この例題は実際の試験問題とは異なります。


解答と解説

正解は、「3. 接続元IPアドレスが192.168.0.0/24であり、かつ、ユーザ認証で正しいユーザ名/パスワードを入力した時のみ接続できる。」です。

Apache HTTP Serverでアクセス制限を行う場合、Requireディレクティブを使用することができます。
Requireディレクティブを使用すれば、接続元IPアドレスやログインユーザによるアクセス制限を行うことができます。

Requireディレクティブの主な設定方法について紹介します。

Require all granted
すべての接続を許可します。

Require all denied
すべての接続を禁止します。

Require ip IPアドレス IPアドレス…
指定したIPアドレスからの接続を許可します。

Require user ユーザ名 ユーザ名…
指定されたユーザでユーザ認証が行われている場合、接続を許可します。

Require valid-user
認証されたユーザからの接続を許可します。

複数の条件を指定する場合、RequireAll / RequireAny ディレクティブを使用することができます。

RequireAll
指定したすべての条件に適合した場合のみ接続を許可します。

<RequireAll>
  Require 条件1
  Require 条件2
</RequireAll>

本例の場合、条件1と条件2の両方に適合した場合に接続が許可されます。

RequireAny
指定した条件のうち1つでも適合した場合に接続を許可します。

<RequireAny>
  Require 条件1
  Require 条件2
</RequireAny>

本例の場合、条件1または条件2のいずれかが適合した場合に接続が許可されます。

RequireAll と RequireAny のいずれも指定しない場合、RequireAny が指定された場合と同じ動作となります。

例題について解説します。

本例題では下記の条件が指定されています。

Require ip 192.168.0.0/24
接続元IPアドレスが 192.168.0.0/24 の場合に接続を許可

Require valid-user
認証されたユーザからの接続を許可

上記の条件を で指定していますので、両方の条件が適合した時に接続が許可されます。よって、選択肢の「3. 接続元IPアドレスが192.168.0.0/24であり、かつ、ユーザ認証で正しいユーザ名/パスワードを入力した時のみ接続できる。」が正解となります。

Apache HTTP Serverのアクセス制限の方法を覚えて、セキュアなウェブサービスを提供できるようにしておきましょう。


例題作成者

株式会社デージーネット OSS研究室 大野 公善
※上記の解説とその内容については、例題作成者の監修です。

ページトップへ