
OpenBSD/LibreSSL 2.0をUbuntu Linux 14.04 LTSにmake installしました
こんにちは。匠技術研究所の谷山 亮治です。
今日は、OpenBSDのサブプロジェクトLibreSSL 2.0.1が7月13日にリリースとなったので、OpenSSLと入れ替えた手順を紹介します。
重要な注意点としてはUbuntu 14.04 LTSの配布開始時点でのOpenSSLはHeartbleed bugを含んでいます。サーバーとして運用するのであれば必ずアップデートが必要です。または、以下の手順を参考にLibreSSLをインストールする必要があります。
OpenSSLのバージョン1.0.1~1.0.1fおよび1.0.2-betaにはHeartbleed bugがあります!
その後も、セキュリティ・アップデートが出ています。最新版に維持して運用してください。
■LibreSSLの試験環境
私の日常的なデスクトップ環境を使いました。SSLサーバーとして使っていないので、インストールの手順を調べるに適しています。
Ubuntu Studio 14.04 LTS
$ uname -a
Linux ubstudio 3.13.0-30-lowlatency #55-Ubuntu SMP PREEMPT Fri Jul 4 21:58:44 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04 LTS
Release: 14.04
Codename: trusty
■LibreSSLの追加ステップ
1.tar ballのダウンロード
ftp://ftp.kddilabs.jp/OpenBSD/LibreSSL/
2.展開
3.インストール
./configure && make check && make install
4.動作確認
5.環境変数調整
6.再度動作確認
■LibreSSLのインストール手順
1.tar ballのダウンロード
OpenBSDの関連プロジェクトとしてリリースされているので以下のアドレスでダウンロードできます。私はKDDIサイトが近いのでお世話になりました。
ftp://ftp.kddilabs.jp/OpenBSD/LibreSSL/
(*)世界各地にOpenBSDのミラーサイトがあります。
2.展開
Xwindow上のアーカイブマネージャーでダウンロードしたtar ballを展開しました。
3.インストール
展開した、LibreSSLディレクトリに移動して、root権限で以下を実行するだけです。
私は、コンパイルインストールの際は、一旦rootシェルを起動して実行しています。
$ sudo bash
私の環境では、つつがなく完了しました。開発環境がない場合はあらかじめインストールしておく必要があります。
# ./configure && make check && make install
4.動作確認
コンパイルとインストールが完了したので、opensslのバージョンを確認してみました。そこでライブラリーをロードできない旨のエラーが出ます。
# openssl version
openssl: error while loading shared libraries: libcrypto.so.30: cannot open shared object file: No such file or directory
5.環境変数LD_LIBRARY_PATHの追加
では元々入っているopensslのバージョンを確認します。ありゃりゃ。危ないバージョンですが、このLinuxはサーバーとして使うことはないので、影響はありません。
# /usr/bin/openssl version
OpenSSL 1.0.1f 6 Jan 2014
opensslのバイナリのタイムスタンプを確認します。
# ls -l /usr/bin/openssl
-rwxr-xr-x 1 root root 513088 6月 21 03:58 /usr/bin/openssl
確かに、古いバイナリーでした。
新しいOpenSSL=LibreSSLは、以下のとおり/usr/local/binにインストールされています。
# which openssl
/usr/local/bin/openssl
# ls -l /usr/local/bin/openssl
-rwxr-xr-x 1 root root 2041145 7月 14 10:28 /usr/local/bin/openssl
/usr/local/libにLibreSSL用のライブラリがあるはずです。
# ls /usr/local/lib/
libcrypto.a libssl.a pkgconfig/
libcrypto.la libssl.la python2.7/
libcrypto.so libssl.so python3.4/
libcrypto.so.30 libssl.so.27 site_ruby/
libcrypto.so.30.0.0 libssl.so.27.0.0
ありました。このライブラリーをLibreSSLが利用できるように、環境変数LD_LIBRARY_PATHを設定します。
# export LD_LIBRARY_PATH=/usr/local/lib
# env
SHELL=/bin/bash
TERM=xterm
OLDPWD=/home/takumi
USER=root
LD_LIBRARY_PATH=/usr/local/lib
...省略
環境変数の追加が確認できました。
6.再度動作確認
# openssl version
LibreSSL 2.0
LibreSSLを実行することができました。サーバーとして運用するには、バージョンの取り違えを起こさないよう、慎重に調整する必要があります。