Ubuntu20.04 LTSに入っていたOpenSSLがバージョン1.1.1fと古かったので手動で最新版をインストールしました。
セキュリティー対策
aptコマンドでインストールできるOpenSSLのパッケージは、1.1.1fと古く、脆弱性が残っているバージョンだったので、セキュリティーパッチを当てた最新版に入れ替えたいです。
2021年11月12日時点で、OpenSSLバージョン1系の最新版は「1.1.1l」でした。
これを手動でインストールしてみます。
参考になったサイト
↑基本的な作業の手順は、こちらのページを参考にしました。
- ソースのダウンロード
- コンパイル
- インストール
までOK。
若干、自分の環境と違う部分を、他のページの説明で補足しました。
コンパイルの段階で「makeコマンドがない」というエラーメッセージが出たので、makeを含む開発ツールのパッケージをインストールしました。
apt install build-essential
「build-essential」はC言語のコンパイラーなど、ソースコードからインストールするときに必要な開発ツールの詰め合わせ、とのこと。
OpenSSLの入れ替え作業
とりあえず、作業ログを取りながら、手動でインストールを進めて行くと、最後の段階で、ちょっとしたトラブルにぶつかりました。
元々入っていたOpenSSL 1.1.1fと、手動でインストールした最新のOpenSSL 1.1.1lが別のディレクトリーにあったので、OpenSSLを使うときの参照先を入れ替える必要があるようでした。
OpenSSL入れ替え
8.リンク作成まず,古いバージョンのOpenSSLを退避させます。退避させる場所はどこでもいいです。
例:
$ sudo mv /usr/bin/openssl /home/user/backup/
次に,新しいバージョンのOpenSSLにリンクを張ります。
$ sudo ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ここに書いてあるパスを自分の環境に合わせて書き換えて、コマンドを実行します。
自分の場合は以下のような位置関係になっていました。
- (古いOpenSSL) /usr/bin/openssl
- (新しいOpenSSL) /usr/local/bin/openssl
- 「$ cd ~」で自分のホームディレクトリ―に移動して、「backup」等という名前のディレクトリーを作成します。「$ mkdir backup」
- 次に古いOpenSSLをbackupに移動させます。「$ sudo mv /usr/bin/openssl /home/$USER/backup/」
- 次に新しいOpenSSLのシンボリックリンクを作成して、元々あったOpenSSLの位置に配置します。「$ sudo ln -s /usr/local/bin/openssl /usr/bin/openssl」
(※「$USER」というシステム定数には、現在ログインしているユーザー名が入ります。「$ echo $USER」で確認できます。実際にはログイン時の自分のユーザー名を入れたらOK)
これで「$ openssl version」のコマンドを実行したら、最新のOpenSSL 1.1.1l になっていました。
念のため、最後にSSH(sshd)も再起動させておきました。(影響ないと思うけど)
$ sudo systemctl restart sshd
以上で、UbuntuのOpenSSLを最新版に更新することができました。