Apache(1)の続きですので、読んでない方は下記リンクからApache(1)を読んでみてください。
外部設定ファイル
AccessFileName ファイル名
httpd.conf以外のファイルに設定を記述し、httpd.confの設定を上書きすることも出来ます。外部設定ファイルのファイル名は、httpd.confファイル内のAccessFileNameディレクティブに指定されます。デフォルトは「.htaccess」です。
AllowOverride パラメータ
外部設定ファイルの利用を許可するには、httpd.confファイル内のAllowOverrideディレクティブで指定します。
パラメータ | 説明 |
AuthConfig | 認証関係の設定を許可します。 |
Limit | Order、Allow、Denyによる設定を許可します。 |
All | 全ての設定変更を許可します。 |
None | 全ての設定変更を禁止します。 |
Apacheの制御
Apacheの制御にはinit/systemdの他に、apachectlコマンドも利用できます。
書式は「apachectl サブコマンド」です。
以下は、apachectlの主なサブコマンドです。
サブコマンド | 説明 |
start | Apacheを起動します。 |
stop | Apacheを終了します。 |
restart | Apacheを再起動します。 |
graceful | Apacheを安全に再起動します。 (httpdが停止中なら起動し、リクエスト処理中なら再起動を待ちます。) |
configtest | 設定ファイルの構文をチェックします。 |
モジュール
Apacheでは様々な機能を持ったモジュールを必要に応じてロードしたりアンロードしたりすることが出来ます。新しい機能を加える場合でも必要なモジュールをコンパイルしてロードするだけで済みます。Apacheの機能の多くはモジュールによって実現されています。
モジュール名 | 説明 |
mod_authn_file | .htaccessでのユーザー認証機能 |
mod_authn_basic | BASIC認証 |
mod_authn_digest | ダイジェスト認証 |
mod_authz_ host | ホストベースのアクセス制御 (Requireディレクティブ) |
mod_authz_ user | ユーザーベースのアクセス制御 (Requireディレクティブ) |
mod_access_compat | ホストベースのアクセス制御 |
mod_so | 動的(DSO)モジュールを組み込む機能を提供 |
mod_ssl | SSLによる暗号化通信を提供 |
mod_perl | Perlの機能を提供 |
mod_php | PHPの機能を提供 |
Apacheで使用するモジュールには静的モジュールと動的(DSO)モジュールがあります。
静的モジュール
静的モジュールはApacheインストール時に組み込むモジュールです。
静的モジュールは「httpd -l」で確認することが出来ます。
動的モジュール
動的(Dynamic Shared Object略してDSO)モジュールは、いつでもインストールや有効無効を設定できるモジュールです。
動的モジュールは「apxs」コマンドでコンパイルとインストールをします。
httpd.confファイルのLoadModuleディレクティブで有効無効を設定できます。
クライアントアクセス制御
Apacheを使った認証方法の中にはBasic認証とDigest認証の2種類があります。
BASIC認証
BASIC認証とは、Apache認証方式の一つで、ユーザー名とパスワードを使う単純な認証方式です。
認証に用いられるユーザー名とパスワードを設定するコマンドは「htpasswd」です。以下はhtpasswdコマンドの主なオプションです。
オプション | 説明 |
-c | パスワードファイルを新規作成する。 |
-m | MD5で暗号化する。 |
-s | SHA1で暗号化する。 |
-D | ユーザーを削除する。 |
ダイジェスト認証
ダイジェスト認証とは、BASIC認証と同じくユーザー名とパスワードを使う認証方式ですが、認証情報をハッシュ化して送受信することでセキュリティを高める認証方式です。
認証に用いられるユーザー名とパスワードを設定するコマンドは「htdigest」です。 以下はhtdigestコマンドの主なオプションです。
オプション | 説明 |
-c | パスワードファイルを新規に作成する。 |
BASIC認証とダイジェスト認証に関するディレクティブです。
ディレクティブ | 説明 |
AuthType | 認証方式の指定します。 BASIC認証の場合はBasic ダイジェスト認証の場合はDigest |
AuthName | 忍か領域名を指定します。 ここで指定した文字列は認証時に出力されます。 |
AuthUserFile | パスワードファイル名を指定します。 |
AuthGroupFile | グループファイル名を指定します。 |
Require | アクセス可能なユーザーを指定します。 (ユーザー名またはvalid-user) |
ホストベースのアクセス制御(1)
Order、Allow、Denyディレクティブを使ってIPアドレスやホスト名、ドメイン名でアクセス制御が出来ます。
設定 | Order Deny.Allow | Order Allow,Deny |
デフォルト | 全て許可 | すべて拒否 |
一部のみ許可 | Order Deny,Allow Deny from all Allow from IPアドレス|ホスト名 | Orde Allow,deny Allow from IPアドレス|ホスト名 |
一部のみ拒否 | Order Deny,Allow Deny from IPアドレス|ホスト名 | Order Allow,Deny Allow from all Deny from IPアドレス|ホスト名 |
全て許可 | Order Deny,Allow | Order Allow,Deny Allow from all |
すべて拒否 | Order Deny,Allow Deny from all | Order Allow,Deny |
ホストベースのアクセス制御(2)
IPアドレスやホスト名、ドメイン名などでアクセス制御したい場合は、Requireディレクティブを使います。
Requireディレクティブの書式は「Require エンティティ [値]」です。以下は主なエンティティです。
エンティティ | モジュール | 説明 |
all granted | mod_authz_core | 全て許可 |
all denied | mod_authz_core | 全て拒否 |
env 環境変数 | mod_authz_core | 指定した環境変数が指定されていると許可 |
method httpメソッド | mod_authz_core | 指定したhttpメソッドに合致すると許可 |
expr 表現 | mod_authz_core | 指定した表現に合致すると許可 |
ip IPアドレス(範囲) | mod_authz_host | 指定したアドレス(範囲)を許可 |
host ホスト名 | mod_authz_host | 指定したホスト名を許可 |
user ユーザー名 | mod_auth_user | 指定したユーザーを許可 |
group グループ名 | mod_auth_user | 指定したグループを許可 |
valid-user | mod_auth_user | 正常に認証されたユーザーを許可 |
バーチャルホスト
Apacheが備えているバーチャルホスト機能を利用すると1台のサーバーで複数のWebサイトを管理することが出来ます。バーチャルホストには名前ベースとIPベースがあります。
名前ベースのバーチャルホスト
名前ベースのバーチャルホストとは、1つのIPアドレスに複数のドメイン名を設定するバーチャルホストのことです。
IPベースのバーチャルホスト
IPベースのバーチャルホストとは、複数のIPアドレスにそれぞれ異なるドメイン名を設定します。受け付けるIPアドレスの設定はListenディレクティブを使用します。
今回は、Apache(2)で外部設定ファイル、Apacheの制御、モジュール、クライアント認証制御、バーチャルホストについてでした。
最後まで読んで頂き、ありがとうございました。
LPIC level2の他の分野へ移動できる全体ページへは以下リンクからお願いします。