プロが教えるわが家の防犯対策術!

CentOS4.4、Apache/2.0.63 mod_ssl/2.0.63 でApacheを運用しています。
なお、レンタルサーバのVPSでやってます。

なお、SSLの認証局は、ベリサインなどではなく、いわゆる「オレオレ認証」というか、自分のサーバを認証局にしています

で、いつも、apacheを再起動するとき、
[root@www ~]$ apachectl stop
[root@www ~]$ apachectl startssl
Apache/2.0.63 mod_ssl/2.0.63 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server example.com:443 (RSA)
Enter pass phrase:

OK: Pass Phrase Dialog successful.
[root@www ~]$

というように、「pass phrase」をきかれます。

これは、これでOKというか、こうあるべきなのですが・・・・

「apachectl restart」
とやってみたら、

[root@www ~]$ apachectl restart
[root@www ~]$

というように、「pass phrase」をきかれずに、再起動してしまいました。で、SSLも有効になっています。

これだとセキュリテイ的にまずいので、この状態を回避したいのですが、どうすればいいでしょうか?

よろしくお願いいたします。

A 回答 (2件)

ごめんなさSSL関連はほぼ素人同然なので、無難なところだけ・・・



前回も書きましたが、apachectlはシェルスクリプトなので
手でなおしてください。
restartのところをコメントアウトして、
stopしてからstartするような仕組みにかえるだけでよいでしょう。

>これらのプロセスのUSERが503という変な?ものになっている
apacheの実行権限はセキュリティ上rootではおこなわず
httpd.confにおけるUserおよびGroupで指定したユーザーでの
実行になります。
これは万が一未知のセキュリティホールでデーモンがのっとられたときに
root権限をとられないようにするための方策で、他のメインどころの
デーモンはみな同じような仕組みを採用しているはずです。

>OSを再起動するとApacheは自動では再起動しません

自動起動する処理もあるようですよ。
apache ssl 自動起動
あたりで検索してみてはいかがでしょうか?
    • good
    • 0

apachectl自体単なるシェルスクリプトですから


restartの項目をはずすか、書き換えてしまえばよいのでは?

ただセキュリティ的にまずい・・・というのがよくわかりません。
SSL有効で再起動されるならセキュリティ的にあまりまずくもない
ように思えます。
ぎゃくに誰でも任意に起動・終了・再起動ができるのであれば
SSL以前にまずいので、ユーザー権限をみなおすべきでしょう。

この回答への補足

(2)

[root@www conf]$ ps aux | grep httpd
root   6113 2.4 0.9 21300 7096 ?    Ss  23:34  0:00 /usr/sbin/httpd -DSSL -k start
503    6114 0.0 0.5 21452 4616 ?    S  23:34  0:00 /usr/sbin/httpd -DSSL -k start
503    6118 0.0 0.5 21300 4028 ?    S  23:34  0:00 /usr/sbin/httpd -DSSL -k start
503    6121 0.0 0.4 21300 3500 ?    S  23:34  0:00 /usr/sbin/httpd -DSSL -k start
503    6122 0.0 0.4 21300 3492 ?    S  23:34  0:00 /usr/sbin/httpd -DSSL -k start
root   6142 0.0 0.0 2936 484 pts/0  S+  23:34  0:00 grep httpd
[root@www conf]$ apachectl stop
[root@www conf]$ apachectl sslstart
Apache/2.0.63 mod_ssl/2.0.63 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server example.com:443 (RSA)
Enter pass phrase:

OK: Pass Phrase Dialog successful.
[root@www conf]$ ps aux | grep httpd
root   7735 2.6 0.9 20416 7096 ?    Ss  23:35  0:00 /usr/sbin/httpd -DSSL -k start
503    7736 0.0 0.5 20568 4616 ?    S  23:35  0:00 /usr/sbin/httpd -DSSL -k start
503    7737 0.0 0.5 20416 4028 ?    S  23:35  0:00 /usr/sbin/httpd -DSSL -k start
503    7738 0.0 0.4 20416 3500 ?    S  23:35  0:00 /usr/sbin/httpd -DSSL -k start
root   7742 0.0 0.0 2744 484 pts/0  S+  23:35  0:00 grep httpd
[root@www conf]$ apachectl restart
[root@www conf]$ ps aux | grep httpd
root   7735 0.2 0.9 20416 7776 ?    Ss  23:35  0:00 /usr/sbin/httpd -DSSL -k start
503    9574 0.0 0.4 20416 3528 ?    S  23:37  0:00 /usr/sbin/httpd -DSSL -k start
root   9587 0.0 0.0 2832 484 pts/0  S+  23:37  0:00 grep httpd
[root@www conf]$

のように、
⇒apachectl sslstart だと親プロセスも子プロセスも両方ともすべてリセットされている
⇒apachectl restart だと親プロセスはリセットされない。子プロセスだけがすべてリセットされている
といった状況です
この(1)と(2)の挙動は、いったいどうなっているのでしょうか?
お教えいただければ幸いです

---

なお、さらに【追加質問】させてください

(A)

[root@www conf]$ ps aux | grep httpd
root   22233 0.0 0.9 20456 7764 ?    Ss  22:08  0:00 /usr/sbin/httpd -DSSL -k start
503   25851 0.0 0.5 20592 4716 ?    S  22:11  0:00 /usr/sbin/httpd -DSSL -k start
503   25879 0.0 0.6 20592 4732 ?    S  22:11  0:00 /usr/sbin/httpd -DSSL -k start
root   13681 0.0 0.0 2456 484 pts/0  S+  22:31  0:00 grep httpd
[root@www conf]$

において、

●なぜこれらのプロセスのUSERが503という変な?ものになっているのでしょうか?

(B)

認証鍵をつくるまえは、OSを再起動するとApacheも自動で再起動するようになっていました
ですが、認証鍵をつくったあとは、OSを再起動するとApacheは自動では再起動しません
これを改善するにはどうすればいいのでしょうか?

以上、よろしくお願いいたします。

補足日時:2008/07/29 00:14
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

>ただセキュリティ的にまずい・・・というのがよくわかりません

趣味的に・・・ちょっと追求してみようかと思いまして^^;

>ぎゃくに誰でも任意に起動・終了・再起動ができるのであれば

さすがにこれはない…と思ってたら、ugo全てに実行権限がついてました
レンタルサーバのデフォルトなんですが…これって特殊ですよね?VPSだからなのかな?

>apachectl自体単なるシェルスクリプトですから
>restartの項目をはずすか、書き換えてしまえばよいのでは?

これに関連して、追加の状況説明をさせてください

(1ー1)

「apachectl restart」⇒パスフレーズを聞かれずに再起動し、SSLも有効

は、最初の質問で述べましたが、
これは、apacheが起動しているときだけでした
    apacheが起動していないときに「apachectl restart」を行うと、パスフレーズを聞かれます


(1-2)

(1ー1)で述べたように、apacheが起動していないときに「apachectl restart」を行うと、パスフレーズを聞かれますが、
これでapache起動に成功しても・・・
    ●以下のように、「-DSSL」がつかずに実行されています
    
        [root@www conf]$ ps aux | grep httpd
        root   32639 8.5 0.9 20284 7096 ?    Ss  23:28  0:00 /usr/sbin/httpd -k restart
        503   32640 0.0 0.4 20284 3500 ?    S  23:28  0:00 /usr/sbin/httpd -k restart
        root   32648 0.0 0.0 2848 484 pts/0  S+  23:28  0:00 grep httpd
        [root@www conf]$

    ●でも、「-DSSL」がついてないのに、httpsでアクセスすると正常に表示されます

なぜでしょうか?お教えいただければ幸いです。

以下、長いので、補足へ続きます。。。

お礼日時:2008/07/29 00:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!