Next: 12.5.2 ユーザのCGIの実行
Up: 12.5 CGIとセキュリティ
Previous: 12.5 CGIとセキュリティ
特に、rootなどの強い権限でhttpdを走らせるときには、怪しいCGIの侵入を
許せば、重大なセキュリティ・ホールが生まれてしまいます。
rootの権限でhttpdを走らせるのは考えものです。
Apache httpdでは、こうした問題に対処するために、rootで、httpdを立ちあげても、
デフォールトでは、nobodyの権限に切り替わって走るようになっています。
また、次のように、コンフィグ・ファイルの中で、User/Group指定子を使うと、
任意のユーザに、httpdの走る権限を変更できる仕組みがあります。
ただし、この設定が有効になるためには、httpdは、rootの権限で立ち上げられて
いる必要がありますので、一般ユーザの権限でhttpdを
動かしている場合には、残念ながら、動きません。
User www-admin
Group www-admin
この設定では、新しいユーザwww-adminと、新しいグループwww-adminの権限で、
サーバが走る事になります。
User/Group指定子を使うに当たって、幾つか注意すべき事を、
挙げておきたいと思います。
- 1.
- せっかく、Securityの為にこうした機構があるのに、こうした機構を使って、
rootの権限でhttpdを走らせる人がいます。root権限で走るとsecurity が高いような
錯覚があるのかもしれませんが、全く逆です。CGIと組み合わさると危険があることを、
知ってください。
- 2.
- デフォールトでは、nobody権限で走るのですが、ここにも、場合によっては
盲点があります。nobodyは、本来、「誰でもない」はずなのですが、さまざまな
アプリケーションが、nobodyを、例えば例外処理の時などに、使う事があります。
nobody所有のファイルがもしも、沢山存在していたら、nobody権限でサーバを
走らせる事は危険です。
- 3.
- UserIdで設定する新しいユーザを登録する時には、セキュリティに十分注意
して下さい。基本的には、デーモン・プロセスの所有者としてだけ存在すればよい
ので、ログイン出来ないような設定をして下さい。例えば、ログイン・シェルを
設定しない、パスワードもNP(パスワードを持たないというよりは、持てなくする)
にしたほうがいいでしょう。
- 4.
- こうして登録された架空ユーザですが、決してファイルの所有者として
はいけません。特に、サーバからアクセス可能なドキュメント類の所有者にする
のは、自殺行為です。プロセスの所有者と、ドキュメントの所有者は、全く
無関係です。otherに対するreadビットさえ立っていれば、ドキュメントの
サービスは可能です。
Noriyo Kanayama