.
WEB/DB 関連 => CGIをより安全に(SuEXEC) > 1.suEXEC の設定 TurboLinux6
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

suEXEC の設定 TurboLinux6

suEXECとは

不特定多数にCGI実行可能な ディレクトリを提供する場合、デフォルトではnobody権限の動作となるためシステムに深刻なダメージを与える事は出来ませんが、悪意あるユーザー、又 はftp認証が盗聴された場合、nobody権限で動作する他のサービスへの攻撃が可能になってしまいます。

万が一そのような状況に陥った場合、システムに深刻なダメージを与えないためにnobody権限となっているわけですが、nobody全てがやられてしま います。

これを防ぐためには、それぞれの実行権限で動作させる suEXEC が必須となります。 不特定多数の外部のユーザーにCGI 実行可能ディレクトリを提供するのであれば必要ですが、サーバー管理者が確認し、設置行う場合は特に必要な機能ではありません。

つまり外部にCGI実行可能ディレクトリを認めない限り必ずしも必要な機能ではありません。

本稿で使用したパッケージ

本家Apacheからソースをコンパイルする場合、デフォルトではsuEXECをサポートしません。コンパイルオプションが必要になります。ここではTurboLinuxの対応済みパッケージを使用しているため、ソースからのコンパイルについては触れていません。

TurboLinuxのsrc.rpmパッケージがsuEXECをサポートしていたため、これらを利用してみることにしました。suEXECは有効となっているもの利用可能な状態にはなっていません。

使用したパッケージ apache-1.3.27-13.src.rpm

# rpm --rebuild /tmp/apache-1.3.27-13.src.rpm

rebuildし、生成されたrpmをアップデートしています。

TurboLinuxの場合は以下のディレクトリにrpmが生成されます。

/usr/src/turbo/RPMS/i386/

/usr/sbin/suexec が存在することを確認 します。

suEXECの有効化

インストール直後は有効になっていません。以下のコマンドで確認します。

# httpd -l
rCompiled-in modules:
http_core.c
mod_so.c
suexec: disabled; invalid wrapper /usr/sbin/suexec

このように表示されたらApacheはsuEXECに対応しています。ですが有効になっていません。

パーミッションとオーナーを変更します。

# chmod 4711 /usr/sbin/suexec
# chown root /usr/sbin/suexec

Apacheを再起動後、再度確認

# httpd -l
rCompiled-in modules:
http_core.c
mod_so.c
suexec: enabled; valid wrapper /usr/sbin/suexec

suEXECが有効になりました。

suEXECの無効化

無効にする場合は、/user/sbin/suexec のパーミッションを全て読み込み不可にするか、名前を変えるなどし、httpdを再起動します。

以上でsuEXECの導入は終了です。cgiはそれぞれのユーザー権限で動作するようになります。が、これで「めでたしめでたし」という訳には行きません。

CGIをより安全に(SuEXEC)


Perl に関する書籍案内

bottom_mark
ページ最上部
ページ最上部 前のページ