Ubuntu20.04のOpenSSHを8.2p1から9.6.1pにアップデート。
バージョン 1 (手動人形, 2024/01/05 16:26) → バージョン 2/2 (手動人形, 2024/01/05 16:34)
{{TOC}}
### 概要
{{article(55)}}
こちらの記事で、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にアップデート済み
### さっくりとした手順
1. コンフィグに必要なディレクトリの作成を行います。
1. インストールに必要なパッケージをインストールします。
1. 作業用ディレクトリに移動します。
1. ソースをダウンロードします。
1. OpenSSHをソースからビルドします。
1. バージョンアップを確認します。
#### 最初に
本件はSSHを扱います。念のため、サーバへのターミナルクライアントを別ウィンドウで開いておいてください。
- 現行のバージョン確認
```bash
ssh -V
```
```
OpenSSH_8.2p1 Ubuntu-4ubuntu0.9, OpenSSL 1.1.1f 31 Mar 2020
```
#### 必要なパッケージのインストール
```bash
sudo aptitude install build-essential zlib1g-dev libssl-dev libpam0g-dev libselinux1-dev libkrb5-dev
```
#### ディレクトリ作成と設定
```bash
sudo mkdir /var/lib/sshd && sudo chmod -R 700 /var/lib/sshd/ && sudo chown -R root:sys /var/lib/sshd/
```
#### 作業用ディレクトリ移動
```bash
cd /hoge && pwd
```
任意のディレクトリを指定します。
### ソースのダウンロードと展開
- ソース取得
```bash
wget -c http://mirror.exonetric.net/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
```
2023/12/20現在の最新版を指定しています。
- ソース展開
```
tar -xzf openssh-9.6p1.tar.gz
```
- ディレクトリ移動
```bash
cd openssh-9.6p1
```
### コンフィグ
- OpenSSLの位置を確認
```bash
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
```bash
make
```
- インストール
```bash
sudo make install
```
#### バージョンアップ確認
- バージョン確認
```bash
ssh -V
```
```
OpenSSH_9.6p1, OpenSSL 3.1.1
```
バージョンアップされていることを確認します。
- SSHサービス再起動
```bash
sudo systemctl restart ssh.service
```
- サービス再起動確認
```bash
sudo systemctl status ssh.service
```
active(running)を確認します
この後、バージョンアップを行ったサーバにSSH接続できれば、作業は完了です。
#### 自動アップグレード無効
強制的に9.6系に上げるので、その後、8.xがアップグレードされる可能性を防ぎます。
```bash
# apt を使用する場合
sudo apt-mark hold openssh-server
# aptitude を使用する場合
sudo aptitude hold openssh-server
```
### 確認日
2023/12/20
### 概要
{{article(55)}}
こちらの記事で、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にアップデート済み
### さっくりとした手順
1. コンフィグに必要なディレクトリの作成を行います。
1. インストールに必要なパッケージをインストールします。
1. 作業用ディレクトリに移動します。
1. ソースをダウンロードします。
1. OpenSSHをソースからビルドします。
1. バージョンアップを確認します。
#### 最初に
本件はSSHを扱います。念のため、サーバへのターミナルクライアントを別ウィンドウで開いておいてください。
- 現行のバージョン確認
```bash
ssh -V
```
```
OpenSSH_8.2p1 Ubuntu-4ubuntu0.9, OpenSSL 1.1.1f 31 Mar 2020
```
#### 必要なパッケージのインストール
```bash
sudo aptitude install build-essential zlib1g-dev libssl-dev libpam0g-dev libselinux1-dev libkrb5-dev
```
#### ディレクトリ作成と設定
```bash
sudo mkdir /var/lib/sshd && sudo chmod -R 700 /var/lib/sshd/ && sudo chown -R root:sys /var/lib/sshd/
```
#### 作業用ディレクトリ移動
```bash
cd /hoge && pwd
```
任意のディレクトリを指定します。
### ソースのダウンロードと展開
- ソース取得
```bash
wget -c http://mirror.exonetric.net/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
```
2023/12/20現在の最新版を指定しています。
- ソース展開
```
tar -xzf openssh-9.6p1.tar.gz
```
- ディレクトリ移動
```bash
cd openssh-9.6p1
```
### コンフィグ
- OpenSSLの位置を確認
```bash
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
```bash
make
```
- インストール
```bash
sudo make install
```
#### バージョンアップ確認
- バージョン確認
```bash
ssh -V
```
```
OpenSSH_9.6p1, OpenSSL 3.1.1
```
バージョンアップされていることを確認します。
- SSHサービス再起動
```bash
sudo systemctl restart ssh.service
```
- サービス再起動確認
```bash
sudo systemctl status ssh.service
```
active(running)を確認します
この後、バージョンアップを行ったサーバにSSH接続できれば、作業は完了です。
#### 自動アップグレード無効
強制的に9.6系に上げるので、その後、8.xがアップグレードされる可能性を防ぎます。
```bash
# apt を使用する場合
sudo apt-mark hold openssh-server
# aptitude を使用する場合
sudo aptitude hold openssh-server
```
### 確認日
2023/12/20