概要
こちらの記事で、Ubuntu 20.04のOpensslを1.1.1から3.1.1にバージョンアップしました。
しかし、
OpenSSH_8.2p1 Ubuntu-4ubuntu0.9, OpenSSL 1.1.1f 31 Mar 2020
OpenSSHが参照しているSSLが前のままです。また、OpenSSHの脆弱性情報もあるのでセキュリティ上よろしくありません。
そこで、
- OpenSSHを最新版にする
- そのとき、参照するOpenSSLも現状に合わせる
作業を行いました。
参考にしたURL:
- https://askubuntu.com/questions/1189747/is-possible-to-upgrade-openssh-server-openssh-7-6p1-to-openssh-8-0p1
- https://qiita.com/zzz0mbie/questions/37262d1f3285500b3f45
環境
- Ubuntu 20.04
- 上記自サイトに則って、OpenSSLを3.1.1にアップデート済み
さっくりとした手順
- コンフィグに必要なディレクトリの作成を行います。
- インストールに必要なパッケージをインストールします。
- 作業用ディレクトリに移動します。
- ソースをダウンロードします。
- OpenSSHをソースからビルドします。
- バージョンアップを確認します。
最初に
本件はSSHを扱います。念のため、サーバへのターミナルクライアントを別ウィンドウで開いておいてください。
- 現行のバージョン確認
ssh -V
OpenSSH_8.2p1 Ubuntu-4ubuntu0.9, OpenSSL 1.1.1f 31 Mar 2020
必要なパッケージのインストール
sudo aptitude install build-essential zlib1g-dev libssl-dev libpam0g-dev libselinux1-dev libkrb5-dev
ディレクトリ作成と設定
sudo mkdir /var/lib/sshd && sudo chmod -R 700 /var/lib/sshd/ && sudo chown -R root:sys /var/lib/sshd/
作業用ディレクトリ移動
cd /hoge && pwd
任意のディレクトリを指定します。
ソースのダウンロードと展開
- ソース取得
wget -c http://mirror.exonetric.net/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
2023/12/20現在の最新版を指定しています。
2024/07/02追記:CVE-2024-6387に対応する場合はこちらを指定します。
参考: OpenSSHの脆弱性 CVE-2024-6387についてまとめてみた
wget -c http://mirror.exonetric.net/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
- ソース展開
tar -xzf openssh-9.6p1.tar.gz
# 上記脆弱性に対応したバージョンをダウンロードした場合は
tar -xzf openssh-9.8p1.tar.gz
- ディレクトリ移動
cd openssh-9.6p1
# 上記脆弱性に対応したバージョンを解凍していた場合は
cd openssh-9.8p1
コンフィグ
- OpenSSLの位置を確認
which openssl
- 結果確認
/usr/local/ssl/bin/openssl
筆者の環境です。
- コンフィグ
./configure --with-kerberos5 --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl
--with-ssl-dir=/usr/local/ssl
は、opensslがあるディレクトリのヘッダを指定してます。
- make
make
- インストール
sudo make install
バージョンアップ確認
- バージョン確認
ssh -V
OpenSSH_9.6p1, OpenSSL 3.1.1
バージョンアップされていることを確認します。
# 上記脆弱性に対応したバージョンは
OpenSSH_9.8p1, OpenSSL 3.3.1 4 Jun 2024
- SSHサービス再起動
sudo systemctl restart ssh.service
- サービス再起動確認
sudo systemctl status ssh.service
active(running)を確認します
この後、バージョンアップを行ったサーバにSSH接続できれば、作業は完了です。
確認日
2023/12/20