Webサーバの基本「Apache」

2006年12月7日(木)
古賀 政純

ApacheのDigestによるログイン認証


   続いて、Apacheを使用している場合に、Webサイトにログイン認証(アクセス制限)をかける設定方法について解説します。Apacheで利用可能なアクセス制限には、大きく分けて次の2つがあります。
  1. basic認証:パスワードがネットワーク上を平文で流れるため、キャプチャソフトで簡単にクラック可能。
  2. digest認証:パスワードが暗号化されてネットワーク上を流れるため、basic認証に比べてセキュアな環境を実現可能。

表3:Apacheで利用可能なアクセス制限

   インターネット上にWebサーバとして公開する場合、セキュリティの観点から2のdigest認証によるアクセス制限を推奨します。社内LANのようにファイアウォール内でネットワークそのものが比較的セキュアで信頼できる場合はbasic認証を利用しても良いでしょう。

   例えばメーリングリストのログをインターネット上の公開したWebサーバで閲覧できるようにしたいケースでは、内容を第三者に読まれないためにdigest認証を採用します。次は「test1-hp-ml」と「test2-hp-ml」の2つのメーリングリストの公開ログに対して実際にアクセス制限をかける手順を解説します。


Webサーバのhttpd.confファイルを編集


   まずWebサーバ側のhttpd.confファイルを編集します。ここではWebサーバ上の/work/www/html/mhonarc/test1-hp-ml以下のディレクトリと/work/www/html/mhonarc/test2-hp-ml以下のディレクトリにあるWebコンテンツに対して、digest認証を設定しています。

   また/work/www/html以下のWebコンテンツがクライアントからhttp経由によるアクセスを可能にするには、httpd.confファイルにDocumentRootとして/work/www/htmlが設定されている必要がありますので注意してください。

# cd /etc/httpd/conf/ ← 設定ファイルが保存されているディレクトリに移動
# vi httpd.conf ← viで設定ファイルを編集
(中略)
<Directory "/work/www/html/mhonarc/test1-hp-ml"> ← Digest認証の対象ディレクトリ
AuthType Digest ← 認証方式を「Digest」に指定
AuthName "Please enter user name and password" ← 認証時に表示するメッセージ
AuthDigestFile /work/www/html/mhonarc/test1-hp-ml/.htdigest ← 認証ファイルの場所を設定
Require user test1-hp-ml ← Digest認証でログインさせるユーザ(test1-hp-ml)
</Directory>
<Directory "/work/www/html/mhonarc/test2-hp-ml"> ← Digest認証の対象ディレクトリ
AuthType Digest ← 認証方式を「Digest」に指定
AuthName "Please enter user name and password" ← 認証時に表示するメッセージ
AuthDigestFile /work/www/html/mhonarc/test2-hp-ml/.htdigest ← 認証ファイルの場所を設定
Require user test2-hp-ml ← Digest認証でログインさせるユーザ(test2-hp-ml)
</Directory>

   このように設定することで、クライアント側がWebブラウザで上記2つのWebサイトを見ようとすると、ユーザ名とパスワードによる認証が行われます。

※注1: Webサーバでアクセス制限を行う場合、Linux側のアカウントとして「test1-hp-ml」および「test2-hp-ml」をadduserコマンドなどで作成する必要はありません。ここで認証に使われているユーザはApache固有のもので、/etc/passwd登録されたユーザとは無関係です。


Webサービスを再起動


   digest認証の設定が終了したら、次のコマンドを実行してWebサービスを再起動します。

# service httpd restart ← httpdサービスを再起動

   このときhttpdのサービスを再起動するだけで設定が反映されます。OSの再起動は必要ありません。

日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター OSS・Linux担当 シニアITスペシャリスト

兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師を担当。科学技術計算サーバーのSI経験も持つ。2005年、大手製造業向けLinuxサーバー提案で日本HP社長賞受賞。2006年、米国HPからLinux技術の伝道師に与えられる「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。日本HPプリセールスMVPを4度受賞。現在は、Linux、FreeBSD、Hadoop等のOSSを駆使したスケールアウト型サーバー基盤のプリセールスSE、技術検証、技術文書執筆を担当。日本HPのオープンソース・Linuxテクノロジーエバンジェリストとして講演活動も行っている。Red Hat Certified Engineer、Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、EXIN Cloud Computing Foundation Certificate、HP Accredited Systems Engineer Cloud Architect、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoop認定技術者。HP公式ブログ執筆者。趣味はレーシングカートとビリヤード

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています