LinuCレベル2 202試験の例題と解説
2.09.1Apache HTTPサーバーの設定と管理
今回は202試験の試験範囲から「2.09.1 Apache HTTPサーバーの設定と管理」についての例題を解いてみます。
Apache HTTP Serverのアクセス制限の方法について取り上げます。正しいアクセス制限の方法を覚えて、セキュアなウェブサービスを提供できるようになりましょう。
例題
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ディレクトリへのアクセス制限について、正しい説明をひとつ選択してください。
- 接続元IPアドレスが192.168.0.0/24のネットワークであれば、ユーザ認証なしで接続できる。
- ユーザ認証で正しいユーザ名/パスワードを入力すれば、どこからでも接続できる。
- 接続元IPアドレスが192.168.0.0/24であり、かつ、ユーザ認証で正しいユーザ名/パスワードを入力した時のみ接続できる。
- 設定の書式が正しくないため、エラーとなる。
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「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研究室 大野 公善
※上記の解説とその内容については、例題作成者の監修です。