この記事では、SSHを使用してシステムにログインするのではなく、ポート443 Webトラフィックを保護するために最新のOpenSSLパッチを適用する方法について説明します。
openssl-1.0.1g.tar.gz
最新のOpenSSL Tarballソースパッチを入手しました。ここCentOS 6.5を実行しているLinuxワークステーションでは、次のものを含むパッチを構築しました。
./config; make; make test; make install # as root
これはにインストールされます/usr/local/ssl
。
本番システムにパッチを適用する前に、パッチを使用できるかどうかを安全な場所で証明したいと思います。しかし、すべてを実行した後はパニックになります。これ
./config, make, make test, and make install
エラーなしで手順が完了しました。
最新のOpenSSLがインストールされているかどうかを確認するには?
さまざまな回答に基づいてバージョンをテストした結果は次のとおりです。
openssl version -a
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Tue Apr 8 02:33:43 UTC 2014
platform: linux-elf
答え1
はじめに:質問が示すように、opensslは基本的に/usr/local/ssl
。そうしないと、そこにファイルを追加します(ファイルの意味は以下を参照)。./config --prefix=/usr/local shared
libssl
/etc/ld.so.conf.d
/usr/local/ssl/lib
/etc/ld.so.conf.d
/usr/local/bin
$PATH
リンカキャッシュにライブラリを追加するには、ldconfig
後で実行する必要があります。make install
それでも機能しない場合は、読み続けてください。
make install
/usr/local
おそらくデフォルトでは次の場所に移動します。しなければならない優先順位ですが、優先順位ではない可能性があります。したがって、パッケージマネージャと前提条件を妨げないように、ディストリビューションのopensslインストールを維持できますが、それでも独自のローカルビルドをデフォルトとして使用できます。行って確認してください:
ldd $(which ssh) | grep libssl
出力がない場合は、ssh
リンクは静的にリンクされているため、再構築する必要があります(Antonの回答を参照)。そうでなければ、これはあなたのバージョンを指すべきです/usr/local
。他のものを指す場合:
ldconfig -p | grep libssl
バージョンは/usr/local
他のバージョンの後に表示する必要があります。その場合は、以下の「/usr/local/libに優先順位がありません」に進んでください。そうでない場合は、通常は/usr/local
リンカーパスにあることを確認してください。
ldconfig -p | grep "/usr/local"
そうでなければgrep -r "/usr/local" /etc/ld.so.conf.d
。存在しない場合は、/etc/ld.so.conf.d
1行で呼び出すファイルを追加します。00-local.conf
/usr/local/lib
ldconfig
(スイッチなし)を実行し、この操作をやり直してください。
/usr/local/libには優先順位はありません。
次のパスを追加するリンカーキャッシュ構成ファイルを見つけます。
grep -r "/usr/local" /etc/ld.so.conf.d
ファイルがない場合は、上記のようにファイルを追加する必要があります。その場合、問題はファイルがアルファベット順に処理されることです。たとえば、コンテンツが/etc/ld.so.conf.d
次のような場合:
addtheselibraries.conf
libc.conf
libc.conf
含まれますが/usr/local/lib
含まれますaddtheselibraries.conf
(例:1)/usr/lib
。後者が優先します。ファイルに他の内容が含まれていない場合は、別のファイルを置き換える名前に名前を変更するだけです。それでは大丈夫です。/usr/local/lib
000-whatever
完全に制御できるからです/usr/local/lib
。しなければならないディストリビューションのパッケージマネージャが使用するすべてのパスの前に(通常は)続きます。
1. /usr/lib はデフォルトでリンカーにコンパイルされますが、この場所やその他の標準システムの場所 (/lib など) が追加されます。最後、これにより交換できます。したがって、時には(たとえば)/usr/lib
.confファイルに追加され、他の.confファイルを置き換えます。
答え2
openssl version -a
上記のコマンドはシステムのopensslバージョンを提供します。最初の行の日付ではなくビルド日付を確認してください。
答え3
ソースコード(ソースツリーのopensslソースコードを含む)をダウンロードして./config; make; make install
実行し、opensshを再コンパイルする必要がありますopenssh
。
openssh コンパイルの詳細な手順は、以下にあります。インストール文書