プロジェクト

全般

プロフィール

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
クリップボードから画像を追加 (サイズの上限: 50 MB)