Apacheあれこれ ベーシック認証など
Linux LPIC編。(第9章 Webサーバとプロキシサーバ)
Apacheの外部設定ファイル(.htaccess)やモジュールのロード、ベーシック認証など、
とりまぜてメモ。
.htaccessを利用して、特定のディレクトリにおいて個別のオプションを設定できる。
(httpd.confの設定を上書きする)書式はhttpd.confと同じ。なお、ディレクトリに配置
した.htaccessはブラウザからアクセスできないようデフォルトで設定されている。
外部ファイル名は、通常httpd.confのAccessFileNameで.htaccessとなっている。
.htaccessでどこまで設定可能かは、httpd.confのAllowOrvrerrideディクレクティブで
制御可能。詳細はちょっと割愛するとして・・・
次にモジュールについて。Apacheでは必要に応じて個別のモジュールをロードしたり
アンロードできる。モジュールは/usr/lib/httpd/modulesディレクトリ等にインストールされる。
モジュールをロードするには、httpd.conf でLoadModuleディレクティブを使用。
以下はmod_rerwiteモジュールをロードするように設定。
LoadModule rewrite_module modules/mod_rerwite.so
静的にコンパイルされて組み込まれたモジュールについては記述する必要はない。
Apacheのインストール後にモジュールを組み込むには、apxsコマンドを利用。
apxsでコンパイル/インストール→httpd.confのLoadModuleディレクティブに追加、
という流れらしい。
また、組み込み済みのモジュールは httpd -l コマンドで確認可能(apachectl -lでも)。
さくさくいきます。
次に基本認証とダイジェスト認証。これらはディレクトリ単位でアクセス制御し、ユーザ名
とパスワードで認証する。
(ところで出典教科書では「基本認証」となっているものの、個人的には「ベーシック認証」
という呼び方が馴染み深かったりする。が、ここでは基本認証で統一しておく)
基本認証にはmod_authモジュールが必要。
まずは基本認証を設定するときに必要なこと。httpd.confに以下のような記述をし、
専用のパスワードファイルを用意する。
<Directory "/web/home/membes/">
AuthType Basic ←基本認証を指定
AuthName “Please Enter Your ID and Password” ←メッセージ文字列
AuthUserFile /etc/httpd/conf/.htpasswd ←パスワードファイル名
Reguire valid-user ←アクセス可能なユーザを指定
<Directory>
上記のReguireの指定だと、パスワードファイルにエントリがあるユーザすべてを許可
対象とする。valid-userの代わりにuser ユーザ名,…としてユーザ名を列挙することも可能。
ユーザ名とパスワードを設定するには、hppasswdコマンドを使用する。
パスワードファイル作成時にパスワードの入力(設定)を求められる。
書式
htpasswd [オプション] ファイル名 ユーザ名
オプション
-c パスワードファイルを新規に作成
-m MD5で暗号化する
-s SHA1で暗号化する
-D ユーザを削除する
以下例ではuser01の新規アカウントを作成。
# htpasswd -c /etc/httpd/conf/.htpasswd user01
-cオプション抜きで同じコマンドを実行すれば、user01のパスワードの変更となる。
最後にダイジェスト認証について。概要は省くとして、設定例を。
AuthNameの扱いが基本認証と違うことに注意。
<Directory "/web/home/private/">
AuthType Digest ←基本認証を指定
AuthName “Private” ←ユーザ認証を行う領域を指定
AuthUserFile /etc/httpd/conf/.htdigest ←パスワードファイル名
Reguire valid-user ←アクセス可能なユーザを指定
<Directory>
注:教科書ではAuthUserFileの箇所がAuthDigestFileとなっているが、これはもう古い。
ここでは現在有効な設定を書いておく(2011/08/27)
ダイジェスト認証では、ユーザやパスワードの設定にhtdigestコマンドを使用する。
書式
htdigest [オプション] ファイル名 領域名 ユーザ名
例
# htdigest -c /etc/httpd/conf/.htdigest private user01
設定が終わったらconfigtestしてApache再起動するのを忘れずに。
(これを忘れてしまって「あれ、反映されてないじゃん」とボケまくること何度かあり)
出典
Linux教科書LPICレベル2(翔泳社)
Linux記事一覧はこちらをどうぞ
↓ ↓ ↓
Linux-index