2008/12/12 19:21PHP 5.2.8

PHPをバージョンアップします。
アップデートバージョンはPHP 5.2.8です。
PHP 5.2.6、PHP 5.2.7と立て続けに脆弱性が見つかっているので早めにアップデートしましょう。

$ wget http://jp.php.net/get/php-5.2.8.tar.bz2/from/this/mirror
$ tar xvjf php-5.2.8
$ cd php-5.2.8
$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs \
              --with-mysql=/usr/local/mysql \
              --with-zlib \
              --with-gd \
              --with-jpeg-dir=/usr/lib \
              --enable-mbstring \
              --enable-mbregex \
              --disable-ipv6
$ make
# make install

Apacheを再起動します。

# /sbin/service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

見た目には成功のように見えましたが、エラーログが出ていてApacheが起動していませんでした。
/var/log/httpd/error.log

PHP Warning:  [eAccelerator] This build of "eAccelerator" was compiled for PHP version 5.2.6. Rebuild it for your PHP version (5.2.8) or
download precompiled binaries.\n in Unknown on line 0
PHP Fatal error:  Unable to start eAccelerator module in Unknown on line 0

eAcceleratorをPHP 5.2.8でコンパイルする必要があります。

$ tar xvjf eaccelerator-0.9.5.2.tar.bz2
$ cd eaccelerator-0.9.5.2
$ phpize
$ ./configure
$ make
# make install

もう一度Apacheを再起動します。

# /sbin/service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

今度は成功しました。

今のSSLの設定ではSSLv2が有効になっています。
SSLv2を無効にし、128bit以上の暗号強度を要求するようにします。

●SSLProtocotl all -SSLv2のみ

# openssl s_client -connect kaju.jp:443 -ssl2
CONNECTED(00000003)
30304:error:1407F0E5:SSL routines:SSL2_WRITE:ssl handshake failure:s2_pkt.c:429:

●SSLCipherSuite AES:RC4:3DES:!EXP:!ADH:!SSLv2のみ

# openssl s_client -connect kaju.jp:443 -ssl2
CONNECTED(00000003)

(省略)

30417:error:1406D0B8:SSL routines:GET_SERVER_HELLO:no cipher list:s2_clnt.c:469:

両方を有効にした場合はSSLProtocolの設定が優先的に動くようだ。
最終的な設定。
【/usr/local/apache2/conf/extra/httpd-ssl.conf】

SSLProtocotl all -SSLv2
SSLCipherSuite AES:RC4:3DES:!EXP:!ADH:!SSLv2

Webサーバ上で色々なWebアプリを動かしているのでSSL化してセキュリティの確保をしてみます。
SSLをするには証明書が必要なわけですが、いわゆるオレオレ証明書ではなく無料で証明書を発行してくれるStartSSLのサービスを使ってみます。

最初にWebサーバであるApacheがSSLに対応しているか確認しておきます。
mod_ssl.cが読み込まれていればOKです。

# /usr/local/apache2/bin/httpd -l |grep ssl
  mod_ssl.c

StartSSLのサイトでアカウントを作成して証明書の発行手続きをします。
証明書を発行してもらうためにはCSRが必要なのですがStartSSLの場合はCSRがなくても大丈夫です。
CSRを作成する場合は以下の手順で行います。

1.サーバの秘密鍵を作成
秘密鍵生成時にランダムな値が必要になるので/dev/randomを使用します。

# openssl genrsa -rand /dev/random -des3 -out kaju.jp.key 1024

2.CSRを作成
先ほど作った秘密鍵(kaju.jp.key)を使ってCSRを作成します。
証明書に含める情報を色々聞かれるので入力していきます。
※Common Nameは実際に動かすサーバのFQDNと同じにする必要があるので注意。

# openssl req -new -key kaju.jp.key -out kaju.jp.csr

3.サーバ証明書を発行
CSRをstartsslに送付するとサーバ証明書が発行されるのでWebサーバ上に保存します。

4.CA証明書と中間CA証明書の入手
startsslのCA証明書と中間CA証明書をWebサーバ上に保存します。

# wget https://www.startssl.com/certs/ca.crt
# wget https://www.startssl.com/certs/sub.class1.server.ca.crt

次にApacheの設定を行います。
【/usr/local/apache2/conf/httpd.conf】

Include conf/extra/httpd-ssl.conf

【/usr/local/apache2/conf/extra/httpd-ssl.conf】

Listen 443

<VirtualHost _default_:443>
    DocumentRoot "/usr/local/apache2/htdocs"
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
    ErrorLog /var/log/httpd/ssl_default_error.log
    TransferLog /var/log/httpd/ssl_default_access.log
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /usr/local/apache2/conf/kaju.jp.crt
    SSLCertificateKeyFile /usr/local/apache2/conf/kaju.jp.key
    SSLCertificateChainFile /usr/local/apache/conf/sub.class1.server.ca.crt
    SSLCACertificateFile /usr/local/apache/conf/ca.crt

CustomLog /var/log/httpd/ssl_request.log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

設定を確認してOKだったらApacheを再起動します。

# /usr/local/apache2/bin/apachectl configtest
Syntax OK

# /usr/local/apache2/bin/apachectl start
Apache/2.2.8 mod_ssl/2.2.8 (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 kaju.jp:443 (RSA)
Enter pass phrase:

OK: Pass Phrase Dialog successful.

プロセスの確認をしておきます。

# ps aux |grep httpd
root      9897 18.0  2.0 55948 10512 ?       Ss   14:53   0:01 /usr/local/apache2/bin/httpd -k start
apache    9898  0.0  1.6 55756 8456 ?        S    14:53   0:00 /usr/local/apache2/bin/httpd -k start
apache    9900  0.0  1.6 55948 8592 ?        S    14:53   0:00 /usr/local/apache2/bin/httpd -k start
apache    9901  0.0  1.6 55948 8588 ?        S    14:53   0:00 /usr/local/apache2/bin/httpd -k start
apache    9902  0.0  1.6 55948 8588 ?        S    14:53   0:00 /usr/local/apache2/bin/httpd -k start
apache    9903  0.0  1.6 55948 8588 ?        S    14:53   0:00 /usr/local/apache2/bin/httpd -k start
apache    9904  0.0  1.6 55948 8588 ?        S    14:53   0:00 /usr/local/apache2/bin/httpd -k start

# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN

2007/01/12 17:10Apache 2.2.4

Apacheがバージョンアップした。
KAJUAKJU.netのApacheもアップデート。

$ wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.4.tar.bz2
$ tar xvjf httpd-2.2.4.tar.bz2
$ cd httpd-2.2.4
$ ./configure --disable-userdir --enable-so
(省略)
Configuring Apache Portable Runtime Utility library...
checking for APR-util... yes
configure: error: Cannot use an external APR-util with the bundled APR

いつものようにコンパイルしたらエラーが発生した。
configureオプションを変更することで回避できるようだ。

$ ./configure --disable-userdir --enable-so --with-included-apr
$ make
# make install

プロセスを再起動して完了。

# /sbin/service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

2006/07/28 18:31Apacheアップデート

KAJUKAJU.netで稼働しているWebサーバであるApacheのアップデートがリリースされた。
アップデート手順

$ wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.3.tar.bz2
$ tar xvjf httpd-2.2.3.tar.bz2
$ cd httpd-2.2.3
$ ./configure --disable-userdir --enable-so
$ make
# make install
# /sbin/service httpd restart

2006/05/11 09:41Apacheアップデート

Apacheのアップデートがリリースされている。
新しいバージョンは2.0.58。
今回のセキュリティFIX。
 ・CVE-2005-3357(mod_ssl関連)
 ・CVE-2005-3352(mod_imap関連)


© 2003-2014 うーたんの小部屋 | Powered by Wordpress