Apacheのモジュールには静的(組込み)モジュールとDSOモジュールがあり、それぞれの確認方法、インストール方法についてです。
下記資料を参考にしました。
NSA(National Security Agency)の『Guide to the Secure Configuration of Red Hat Enterprise Linux 5』
※目次をクリックすると目次の下部にコンテンツが表示されます。
$ httpd -l Compiled in modules: core.c prefork.c http_core.c mod_so.c
2)静的モジュールのインストールについて
①推奨の設定
デフォルトのApacheインストールでは、静的に組み込まれているモジュールは、(core、prefork、http_core、mod_so)など最小限になっています。
セキュリティのリスクを軽減するため静的モジュールは最小限にします。
追加、削除する場合は再インストールする必要があります。
②インストール方法
ソースからのインストール時にconfigureで下記のように指定する必要があります。
# cd /..Apacheのソース../
# ./configure –enable-モジュール名
# make
# make install
・DSOモジュールは設定ファイル内の”LoadModule”ディレクティブを削除する事によって無効にする事が出来ます。
・DSOは、そのDSOモジュールが提供するディレクティブが設定ファイル内に含まれている場合のみその機能を提供します。
・対象DSOモジュールの”LoadModule”ディレクティブを削除してもそのDSOモジュールが提供するディレクティブが設定ファイルに残っているとApache起動時にエラーが発生します。削除するDSOモジュールに関わるディレクティブも削除する必要があります。
DSOモジュールを設定ファイルから削除した場合は、下記コマンドで設定ファイルのテストをしてエラーが発生しないか確認するようにします。
# service httpd configtest
2)ロードされるモジュールを確認する方法
$ httpd -M Loaded Modules: core_module (static) mpm_prefork_module (static) http_module (static) so_module (static) auth_basic_module (shared) auth_digest_module (shared) :
“(static)”となっているのが静的モジュール、”(shared)”となっているのがDSOモジュールです。
3)DSOモジュールのインストールについて
必要なモジュールがインストールされていない場合は、apxs(APache eXtenSion tool)を使ってモジュールを追加インストールします。
apxsは”httpd-devel”に含まれているので、”httpd-devel”パッケージがインストールされていない場合はyumでインストールする必要があります。
●インストール方法
モジュールのソースを入手し、下記のようにインストールします。
# cd “モジュールソースのあるディレクトリ”
# apxs -i -a -c モジュール名.c
※セキュリティ上のリスクを考慮し、実行時に動的にロードされるDSOモジュールは必要最小限にします。