suExec
シーサイドネットでは[suExec]というセキュリティシステムを導入いたしております。
「suExec」とは、CGIを実行する仕組みの1つで、セキュリティ面に対して
優れているという特徴を持ちます。
CGIは非常に便利なツールである一方、サーバーをダウンさせてしまう力を
持っている点や、設定によっては悪意を持った第三者によって改ざんされるなどの
危険性を持つ点など、実際の利用に際しては細心の注意が必要とされています。
そのような危険を回避し、CGIを少しでも安全にご利用いただくけるよう[suExec]を導入
いたしました。
suExecって?
・これまでのCGIも問題なく使える
・通常のCGIよりセキュリティの面で優れている
・通常のCGIと比べパーミッションの設定が少しだけ異なる
suExecは、このようにセキュリティーにすぐれたシステムです。
※詳しくは「パーミッションの設定」についてもお読みください。
詳しく知りたい方へ
皆様がお使いになるサーバーには、様々な機能が設けられています。
それらの機能には、その一つ一つに[担当者]が設定され、各担当者が
割り当てられた業務を行う仕組みになっています。
たとえば、メールの配送システムを取り扱うのは[メールサーバー]、
ウェブページの表示を取り扱うのは[ウェブサーバー]といった具合です。
さて、[suExec]の説明の前に、従来のCGIの仕組みを追ってみます。
CGIへのアクセスがあった場合には、CGIのファイルが[ウェブサーバー]によって
取り出され、[ウェブサーバー]がそのCGIを実行し、実行結果を[ウェブサーバー]
が表示するという仕組みになっています。
CGIファイルの所有者はもちろん、サーバーへファイルをアップロードされた
ユーザーですから所有者以外の第三者である[ウェブサーバー]がそのファイルを
見て、実行する必要があります。
また、大抵のCGIには[ログファイル]が存在していますので、その[ログファイル]
を見て、書き込みする権利を第三者である[ウェブサーバー]に与える必要があります。
ここでいう[第三者]とは[ウェブサーバー]を指すように見えますが、設定上は
まさに[第三者]で世界中の誰でも・・・といっても過言ではありません。
CGIの設置をする際には[パーミッション]の設定が必要です。
そのパーミッションは、777や755、666など、3桁の数値という形式で存在しています。
少しだけこのパーミッションについてご説明します。
・左の桁は、所有者本人(ユーザー)
・中の桁は、所有者が属するグループ
・右の桁は、第三者
をそれぞれ示します。また、
・実行権限 : 1
・書込権限 : 2
・閲覧権限 : 4
という数字が割り当てられていますので、例えば、実行権限と閲覧権限が必要な場合は
[1+4=5]という設定になります。
これまでのCGIでは、ログファイルについては第三者に見る権利と、書き込む権利を
与える必要があるため[666]に、CGIファイルに関しては、第三者が実行し閲覧する
必要があるため[755]に、それぞれ設定する必要がありました。
また、ログファイルを自動生成するタイプの掲示板を利用する場合などは、ディレクトリ
そのものに書込み権限を与え[777]とする必要もありました。
これは第3者が自由にプログラムを書き換えることができる危険な設定といえるでしょう。
一方、suExecの実行の形態ですが、[ウェブサーバー]が[ユーザー]にCGI実行を
依頼し、[ユーザー]の権限でCGIが実行されます。
(あくまでもサーバー上の[ユーザー]であり、お客様ご自身が作業をする必要はありません)
そのため、suExecでの設定は第三者に
余分なパーミッションを与える必要はありません。
ログファイルは既に動作したCGIが参照し、書き込む事になるので、
所有者だけが参照し、書き込めればよいことになります。
つまり[600]で運用が可能となります。
このような設定にした場合、例えばログファイルのURLを直打ちされた場合など、
ログファイルだけをダウンロードされるということもありません。
この様に、セキュリティに対して一般のCGIよりも優れているという特性を持ちます。
パーミッションの設定について
実はsuExecであっても従来のCGIと同じパーミッションの設定で動作に支障は
ございません。ただし、一点だけ注意点がございます。
[CGIファイル]に第三者の書込み権限を与えるような設定はできません。
CGIファイルが設置されているディレクトリのパーミッションが、777であったり、
CGIファイルのパーミッションが777である場合は、
サーバーエラーとなり実行することができなくなります。
特にお気をつけ頂く点はこの点だけです。
セキュリティ面を気にされる方は、
次のようにパーミッションの設定をしてください。
(シーサイドネットではこちらの設定を推奨いたします)
・CGIファイル : 701
・ログファイル : 600
・ディレクトリ : 701
その他のファイルは、一般的な設定のままで差し支えございません。