サーバーセキュリティ (OpenSSH 9.9p2)

個人でVPSを使用してブログ(WordPress)等を実行していると、サーバー自体のセキュリティも気にする必要があります。レンタルサーバー等を利用すればこの様な問題は事業者の方が面倒を見てくれますが、色々な機能(ソフト)を試してみたいので自分で何とかしないといけません。
サーバーの管理用にSSH(OpenSSH)を使用されている方は多いと思われますが、つい先日('25/02/18)もOpenSSHに複数の脆弱性が発見されたようです。詳しい内容はこちらやこちらの記事でご覧いただけます。去年('24/07/08)に発見された脆弱性に比べると、今回の問題はそれほど深刻ではない様ですが、いずれの脆弱性も悪用されるとDoS攻撃(サーバーの停止)やMiTM攻撃(サーバーの乗っ取り)を受ける可能性があります。
これらの攻撃を成功させるには、最低でも何万回にも及ぶ試行(10時間程度、場合によっては数日)が必要なため、そう簡単に成功するとは思えません。またOSが64ビットで動作している場合はほぼ不可能な様です。しかしながらセキュリティホールを放置しておくのもあまり気持ちのいいものではないので、アップデート方法をメモとして残します。
※実際に実行される場合は、いきなりサーバーで行わずに、WSL2等で事前に確認してから実行してください。
OpenSSHのバージョンを確認します
サーバーと接続しているターミナル等に「ssh -V」と入力して、OpenSSHのバージョンを確認します。(実際のサーバーには既に適用済みのため、この記事のメモは新規にインストールした WSL2(Ubuntu24.04) で作成しています。)
user01@DESKTOP-CQEA49P:~$ ssh -V
OpenSSH_9.6p1 Ubuntu-3ubuntu13.8, OpenSSL 3.0.13 30 Jan 2024
OpenSSHのバージョンが「9.9p2」未満の場合はバージョンアップが推奨されています。もし「9.8p1」未満の場合は早急な対応が必要です。(32ビットシステムの場合)
ビルドの準備を行います
今回はOpenSSHをソースファイルから構築するので、すべて管理者権限で行っていきます。「sudo -s」と入力して管理者権限を取得してから、以下の様に入力してアップグレードの準備を行います。
apt install build-essential zlib1g-dev libssl-dev libpam0g-dev libselinux1-dev libkrb5-dev zlib1g-dev
mkdir /var/lib/sshd && chmod -R 700 /var/lib/sshd/ && chown -R root:sys /var/lib/sshd/
ソースファイルの取得と展開を行います
次に以下の様に入力して、ソースファイルを取得して展開します。
wget -c --no-check-certificate https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz
tar -xvf openssh-9.9p2.tar.gz
コンフィグレーションを行います
展開されたフォルダに移動して、コンフィグレーションを行います。
cd openssh-9.9p2
./configure --with-kerberos5 --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr
ビルドとインストールを行います
以下の様に入力して、ソフトのビルドとインストールを行います。
make
make install
再度バージョンを確認します
ターミナルに「ssh -V」と入力して、OpenSSHのバージョンを確認します。
root@DESKTOP-CQEA49P:/home/user01/openssh-9.9p2# ssh -V
OpenSSH_9.9p2, OpenSSL 3.0.13 30 Jan 2024
OpenSSHのバージョンが「9.9p2」になっていれば成功です。一応「systemctl restart ssh」と入力してOpenSSHを再起動しておきます。現在のターミナルを閉じる前に、他のターミナル等を開いてサーバーに接続します。特に問題がない様でしたら終了です。
以上です。