Google グループは Usenet の新規の投稿と購読のサポートを終了しました。過去のコンテンツは引き続き閲覧できます。
表示しない

Is it a bad idea to start Apache with SSL by non-root?

閲覧: 0 回
最初の未読メッセージにスキップ

名称不定

未読、
2004/01/25 8:59:352004/01/25
To:
こんにちは。

Apache 2 + mod_ssl について相談です。

chroot を使って必要最小限のファイルしか置かないように
しています。

Apache がクラックされた場合を想定して
最初から root 権限を使わずに動作させたいと
考えています。そのための一般ユーザをここでは
httpd (UID=501)という名前にします。

iptables を使ってポート80をポート8000へリダイレクト
することで、 Apache を最初から httpd ユーザ権限で
開始させることはできます。

また、同様にポート443をポート8443へリダイレクトして、
サーバ証明書ファイル等に対して httpd ユーザに対して
読み込み許可を与えることで、同様に httpd ユーザ権限で
開始させることができます。

しかし、最初から root を使わないので Apache が
クラックされたとしても root 権限を奪われることは無いと
思うのですが、その代償として httpd ユーザ権限を
奪われるだけでサーバ証明書ファイル等を読まれてしまいます。

mod_ssl を使う場合はやっぱり root で開始させるべき
なのでしょうか?
httpd.conf の中で root で開始された場合に子プロセスを
一般ユーザ権限で動作させる指定ができるのでその指定を
使うべきでしょうか? root で開始した場合、子プロセスが
クラックされた際に何らかの方法で root 権限で動作している
親プロセスまでクラックされてしまうのではないかと心配です。

一度、 server.key を FIFO にして動作するかどうか
試したのですが、 mod_ssl が「ファイルサイズが 0 である」
というエラーを発生させてしまうのでうまくいきませんでした。
開始スクリプトで root が鍵ファイルの内容を FIFO に書き込んで
httpd ユーザ権限で開始した Apache がその FIFO から読み出す
(1回しか読めないのでクラックされても証明書ファイル等を
読み出せなくする)というのが狙いだったのですが・・・。

よろしくお願いします。

Yasushi Shinjo

未読、
2004/01/27 1:33:062004/01/27
To:
新城@筑波大学情報です。こんにちは。

Linux に特化した話ではないので、fj.comp.security にふります。

In article <bv0i43$bmb$1...@news511.nifty.com>


名称不定 <dev_...@anet.ne.jp> writes:
> Apache 2 + mod_ssl について相談です。

> iptables を使ってポート80をポート8000へリダイレクト
> することで、 Apache を最初から httpd ユーザ権限で
> 開始させることはできます。

面白いですね。そういう方法があったんですね。

> しかし、最初から root を使わないので Apache が
> クラックされたとしても root 権限を奪われることは無いと
> 思うのですが、その代償として httpd ユーザ権限を
> 奪われるだけでサーバ証明書ファイル等を読まれてしまいます。
>
> mod_ssl を使う場合はやっぱり root で開始させるべき
> なのでしょうか?

まだ root 権限奪われるよりは被害が少ないから、ある特定の権限
で動かした方がいいんじゃないですか。

> httpd.conf の中で root で開始された場合に子プロセスを
> 一般ユーザ権限で動作させる指定ができるのでその指定を
> 使うべきでしょうか? root で開始した場合、子プロセスが
> クラックされた際に何らかの方法で root 権限で動作している
> 親プロセスまでクラックされてしまうのではないかと心配です。

Apache を普通に動作させると、root のものが1つと後は特定の一
般ユーザ(たとえば nobody とか www とか apache とか)で動きま
すよね。root のものは、たぶん、ネットワークからのデータを
read() しないようく作ってあると思います(私ならそうする)。
そういう意味では、安全なのでしょう。あと問題は、プロセス間共
有メモリを見るかですが、どうなっているのでしょうか?

> 一度、 server.key を FIFO にして動作するかどうか
> 試したのですが、 mod_ssl が「ファイルサイズが 0 である」
> というエラーを発生させてしまうのでうまくいきませんでした。
> 開始スクリプトで root が鍵ファイルの内容を FIFO に書き込んで
> httpd ユーザ権限で開始した Apache がその FIFO から読み出す
> (1回しか読めないのでクラックされても証明書ファイル等を
> 読み出せなくする)というのが狙いだったのですが・・・。

サーバのメモリ中には証明書があるんですよね。ファイルだけ守っ
てもしょうがないということはないですか。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\

新着メール 0 件