Posts about: » openssl

OpenSSLの脆弱性 The Heartbleed Bug

Written in 2014年04月09日 by | コメントする( 0件 )

OpenSSLの新しいバージョンにかなり危険な脆弱性が報告されています。早急に対処が必要です。

 

■対処バージョン

OpenSSL 1.0.1 から 1.0.1f

OpenSSL 1.0.2-beta から 1.0.2-beta1

 

■修正済みバージョン

OpenSSL 1.0.1g

Tarballs : http://www.openssl.org/source/

■JPCERTによる勧告

http://www.jpcert.or.jp/at/2014/at140013.html

OpenSSL Project が提供する OpenSSL の heartbeat 拡張には情報漏えいの

脆弱性があります。結果として、遠隔の第三者は、細工したパケットを送付す

ることでシステムのメモリ内の情報を閲覧し、秘密鍵などの重要な情報を取得

する可能性があります。

管理するシステムにおいて該当するバージョンの OpenSSL を使用している場合

は、OpenSSL Project が提供する修正済みバージョンへアップデートすること

をお勧めします。

 

■参考サイトURL

・Heartbleed解説ページ(英語)

http://heartbleed.com/

・参考となるブログ(記事をありがとう)

http://d.hatena.ne.jp/nekoruri/20140408/heartbleed

http://devlab.isao.co.jp/openssl_cve-2014-0160/

・脆弱性テストができるサイト

http://filippo.io/Heartbleed/#www2.millet.co.jp

 

■対策等

【1】以下のコマンドでバージョン確認

rpm -qa |grep openssl

openssl version

【2】RPM版ならyumでアップデート

CentOS6.5 では、opensslのRPMにおいてopenssl-1.0.1e-16.el6_5.7 で修正されている

http://lists.centos.org/pipermail/centos-announce/2014-April/020249.html

yum update openssl

※ソースならOpenSSL 1.0.1g 以降をインストールする。

【3】opensslのライブラリを使っているプロセスを確認

lsof | grep ssl

【4】それらのサーバプロセスを再起動

service crond restart

service httpd restart

service php-fpm restart

service fail2ban restart

service vsftpd restart

service mysql restart

service postfix restart

など。

出来れば、サーバマシンごと再起動がよい。

Apache2.2+PHP5.3+MySQL5.5環境でApacheが立ち上がらない

Written in 2011年03月23日 by | コメントする( 0件 )

最近、Apache2.2+PHP5.3+MySQL5.5の構築をしました。何度もしていたので甘く見てたら、Apache起動でOKと表示されるものの実際には立ち上がっておらず、ログにもエラーが出ていなかったので、とても困りました。

おそらくopensslの複数バージョンの混在が原因ではないかと思います。RPM版のopenssl0.9.8eが入っており、別途ソースインストールで、/usr/local/openssl にopenssl1.0.0cを入れていました。

MySQL5.5では、コンパイル時にCmakeを使うようになり、設定方法が以前と変わっており、opensslのインストールPREFIXを指定できずに(方法があるのかもしれませんが、、、)、デフォルトのディレクトリ/usr からライブラリを組み込むようで、RPM版のopenssl0.9.8eが組み込まれました。

一方、PHPではopensslのインストールディレクトリを指定できるので、/usr/local/openssl のopenssl1.0.0cを組み込もうとしたところ、MySQL5.5からクライアントライブラリを組み込む指定もしていたので、MySQL5.5のopenssl0.9.8eとPHP5.3のopenssl1.0.0cがコンフリクトして「セグメンテーション違反」となって、コンパイルできなかった。

なので、opensslは複数バージョンのDSOモジュールがあると競合するようだ。仕方なく、PHPには、/usrのパスを指定してopenssl0.9.8eを組み込んだ。

さて、Apache2.2には、opensslのパス指定ができるので、/usr/local/openssl のopenssl1.0.0cを組み込んでいました。このアパッチにlibphp5.soを読み込ませるわけだが、そうするとApache2.2のopenssl1.0.0cと、PHP5.3およびMySQL5.5に組み込まれたopenssl0.9.8eがコンフリクトするのではなかろうか。PHPコンパイル時のPHP x MySQLのコンフリクトのようにエラーが出ればいいが、Apache起動時にエラーも吐かずに立ち上がらないという状況はいかにも困った。

これらのopensslコンフリクトの仮説をもとに、Apache2.2もopenssl0.9.8eを組み込んでコンパイルし直し、PHP5.3も同様にコンパイルしなおしたところ、動きました。。。。