本連載は、Linux 認定試験 LPICに対応しています。一般的なLinuxユーザーレベルのトピックは省略し、システム管理とサーバ管理の内容を取り上げています。また、LPIC対策だけでなく、関連するトピックについて系統的な理解を問う問題も出題しています。連載の特徴は、対象となるプログラムのバージョンを可能な限り明記していること、比較的新しくまとまった解説がまだ少ないトピック、重要だが理解しにくいトピックを優先して取り上げていることです。問題を解き、その解説を読むことにより実践でLinuxを活用できる力を身に付けます。
■問題を解く鍵 【1】【2】
このトピックに関連した設定や試験問題を解く際には、以下の項目がポイントになります。
【1】WebサーバApacheのアクセス制御の設定方法を把握しておく
Apacheではアクセス制御の対象をディレクティブのDirectory、Files、Locationで指定します。
このディレクティブで指定した対象に対して、アクセスを許可するか、拒否するかを設定します。
ディレクトリに対するアクセス制御 <Directory ディレクトリ名> ……アクセスの設定 </Directory>
ファイルに対するアクセス制御 <Files ファイル名> ……アクセスの設定 </Files>
URLによる指定に対するアクセス制御 <Location URLの指定> ……アクセスの設定 </Location>
アクセスの許可・拒否については多くの設定がありますが、今回はホストからのアクセスの許可・拒否とユーザー認証による許可・拒否の設定を取り上げます。
ホストからのアクセスの許可・拒否は次のディレクティブで行います。
Order、Allow、Deny
Orderディレクティブでデフォルトのアクセスの状態とAllowディレクティブとDenyディレクティブが評価される順番を制御します。
Order Deny、Allow | DenyディレクティブがAllow ディレクティブの前に評価されます。後から評価されるAllowディレクティブが優先されます。アクセスはデフォルトで許可されます |
---|---|
Order Allow、Deny | AllowディレクティブがDenyディレクティブの前に評価されます。後から評価されるDenyディレクティブが優先されます。アクセスはデフォルトで拒否されます |
AllowまたはDenyディレクティブで、ホスト名、ドメイン名、IPアドレス、IPアドレスの一部を指定して、そこからのアクセスを許可あるいは拒否します。第1引数はfromを指定します。
Allow from host.knowd.co.jp Allow from .knowd.co.jp Deny from 172.16.0.1 Deny from 172.16
すべてのホストからのアクセスを許可する場合は、
Allow from all
すべてのホストからのアクセスを拒否する場合は、
Deny from all
<Directory /var/www/html/school> Order deny,allow Deny from all Allow from .knowd.co.jp </Directory>
【2】WebサーバApacheのユーザー認証の設定方法を把握しておく
ユーザーがWebサーバApacheを利用するとき、Apache httpdがユーザー名とパスワードを要求し、正しく入力したユーザーだけがアクセスできるよう、ユーザー認証の設定を行うことができます。
Apacheは認証方式としてBasic認証とDigest認証を提供しています。設定はAuthTypeディレクティブにより、認証方式を指定します。
Basic認証では、ユーザー名とパスワードは平文でネットワークを流れます(SSLなどで暗号化しない場合)。
Digest認証では、challenge-response方式を使用し、ユーザー名とパスワードが平文でネットワークを流れることはないので、より安全です。
なお、Digest認証を使用する場合、WebブラウザがDigest認証をサポートしている必要があります。ここでは広く使われているBasic認証の設定を取り上げます。
(例)
htpasswdコマンドでユーザー認証ファイル/var/www/htpasswdを作成し、ユーザーuser01を登録する。
# htpasswd -c /var/www/htpasswd user01
ユーザーuser02も追加して登録する。
# htpasswd /var/www/htpasswd user02
次に設定ファイルhttpd.confを編集する。
<Directory "/var/www/html/school"> AuthType Basic AuthName "Students only" AuthUserFile /var/www/htpasswd Require valid-user </Directory>
アクセス制御の対象に対しての設定が、Allowディレクティブによるホストに対する許可と、Requireディレクティブによるユーザー認証の両方がある場合、そのどちらか片方で許可するか、両方の条件を満たした場合に許可するかをSatisfyディレクティブを使用して、次のようにして指定できます。
どちらか片方の条件を満たした場合に許可:
Require valid-user Order allow,deny Allow from 192.168.1 Satisfy Any
両方の条件を満たした場合にのみ許可:
Require valid-user Order allow,deny Allow from 192.168.1 Satisfy All
Satisfyを指定しない場合のデフォルトの動作はAllです。
Copyright © ITmedia, Inc. All Rights Reserved.