LinuCレベル2 202試験の例題と解説
2.09.1Apache HTTPサーバーの設定と管理
LinuCレベル2 202試験の出題範囲から「2.09.1 Apache HTTPサーバーの設定と管理」についての例題を解いてみます。
Apache HTTP Serverのユーザ認証について学んでいきましょう。
例題
Apache HTTP ServerのBasic認証用に以下の条件でパスワードファイルを新規に作成したい。
- パスワードファイル: /etc/httpd/conf/htpasswd
- 作成するユーザ名: testuser
適切なコマンドを一つ選択してください。
- apachectl -c /etc/httpd/conf/htpasswd testuser
- apachectl /etc/httpd/conf/htpasswd testuser
- htpasswd -c /etc/httpd/conf/htpasswd testuser
- htpasswd /etc/httpd/conf/htpasswd testuser
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「3. htpasswd -c /etc/httpd/conf/htpasswd testuser」です。
ApacheのBasic認証とは、ウェブサーバであるApache HTTP Serverを使用して、ウェブページやファイルへのアクセス制御するための認証方法の1つです。
Basic認証を設定する場合、以下の手順で設定を行います。
- Apache HTTP Serverの設定ファイルでBasic認証を定義
- Basic認証で使用するユーザを作成
- 設定の反映
ここでは、/var/www/html/dataディレクトリに対しBasic認証を設定する例で解説します。
Basic認証を有効化するには、mod_auth_basicモジュールが必要となります。Apache HTTP Serverの設定ファイルに以下の設定を行います。
LoadModule auth_basic_module modules/mod_auth_basic.so
この設定により、mod_auth_basicモジュールが読み込まれ、Basic認証の機能が有効になります。
(使用するディストリビューションによってはデフォルトで有効になっている場合があります)
続いて、Apache HTTP Serverの設定ファイルにBasic認証の対象となるディレクトリの設定を行います。
<Directory /var/www/html/data>
Require valid-user
AuthType Basic
AuthUserFile "/etc/httpd/conf/htpasswd"
AuthName "admin user only"
</Directory>
各設定の意味は以下の通りです。
Requre valid-user
ー認証したユーザのみアクセスを許可
AuthType Basic
ーBasic認証を使用
AuthUserFile "/etc/httpd/conf/htpasswd"
ー認証するユーザの情報が書かれたファイルを指定
AuthName "admin user only"
ー認証に使う領域を指定
続いて、Basic認証で使用するユーザを作成します。
ここで、htpasswdコマンドを使用します。
htpasswdコマンドは、HTTPユーザーのBasic認証のために、ユーザー名とパスワードを格納するファイルを作成および更新するコマンドです。-cオプションを指定することで、パスワードファイルを新規で作成することができます。
# htpasswd -c /etc/httpd/conf/htpasswd testuser
New password:(パスワードを入力)
Re-type new password:(パスワードを入力)
Adding password for user testuser
パスワードファイルが作成されているか確認します。
設定後、Apacheを再起動して設定を反映します。
# apachectl restart
これで、Basic認証の設定が完了です。
表示するコンテンツをディレクトリに作成し、WEBサーバにアクセスすると、WEBページが表示される前に認証画面が表示されるようになります。
例題の選択肢を確認してみましょう。
1.apachectl -c /etc/httpd/conf/htpasswd testuser
2.apachectl /etc/httpd/conf/htpasswd testuser
不正解です。
apachectlコマンドは、その名の通り、Apache(httpd)をコントロールするコマンドです。
apacheの起動や停止、再起動などを行います。Basic認証用パスワードファイルは作成できないため不正解です。
3.htpasswd -c /etc/httpd/conf/htpasswd testuser
正解です。
前述の通り、-cオプションを指定することで、新規にパスワードファイルを作成することができます。
4.htpasswd /etc/httpd/conf/htpasswd testuser
不正解です。
-cオプションを指定しない場合、既存のパスワードファイルにユーザを追加する動作となります。パスワードファイルが存在しない場合は、以下のようにエラーになります。
# htpasswd /etc/httpd/conf/test testuser
htpasswd: cannot modify file /etc/httpd/conf/test; use '-c' to create it
Apache HTTP ServerにはBasic認証の他にも、Digest認証などの認証方式があります。それぞれどのように動作するのかとどのように設定するのかを確認して利用できる様にしておきましょう。
例題作成者
株式会社デージーネット OSS研究室 橋本 知里