Re: Is it a bad idea to start Apache with SSL by non-root?
新城@筑波大学情報です。こんにちは。
Linux に特化した話ではないので、fj.comp.security にふります。
In article <bv0i43$bmb$1@news511.nifty.com>
名称不定 <dev_null@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回しか読めないのでクラックされても証明書ファイル等を
> 読み出せなくする)というのが狙いだったのですが・・・。
サーバのメモリ中には証明書があるんですよね。ファイルだけ守っ
てもしょうがないということはないですか。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735