CentOS 7はopensshを9.3p2にアップグレードします。

CentOS 7はopensshを9.3p2にアップグレードします。

OpenSSHバージョンをアップグレードするように求められた理由は次のとおりです。CVE-2023-38408、これが私のプロセスです。

yum groupinstall -y "Development Tools"
yum install -y zlib-devel openssl-devel wget

cp /etc/ssh/sshd_config  /etc/ssh/sshd_config.bak
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key

cd /tmp
wget -c https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p2.tar.gz
tar -xzf  openssh-9.3p2.tar.gz
cd openssh-9.3p2
yum install -y pam-devel libselinux-devel

./configure --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh

make && make install

私のOSで9.3p2のsshとsshdを正常にコンパイルしたので、2つのバージョンのsshdを得ました。

  • /usr/sbin/sshd OpenSSH_7.4p1
  • /usr/local/sbin/sshd OpenSSH_9.3

次に、新しいバージョンのsshdの/usr/lib/systemd/system/sshd.service実行パスを変更する必要があります。

[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

/usr/sbin/sshdに切り替えて/usr/local/sbin/sshd実行しましたがsystemctl daemon-reload成功service sshd restartしませんでした。メッセージは次のようになります。

Aug 25 07:37:57 localhost.localdomain systemd[1]: sshd.service start operation timed out. Terminating.
Aug 25 07:37:57 localhost.localdomain sshd[2276]: Received signal 15; terminating.
Aug 25 07:37:57 localhost.localdomain systemd[1]: Failed to start OpenSSH server daemon.
-- Subject: Unit sshd.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit sshd.service has failed.
--
-- The result is failed.
Aug 25 07:37:57 localhost.localdomain systemd[1]: Unit sshd.service entered failed state.
Aug 25 07:37:57 localhost.localdomain systemd[1]: sshd.service failed.
Aug 25 07:37:57 localhost.localdomain polkitd[365]: Unregistered Authentication Agent for unix-process:2259:84553 (system bus name :1.46, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_
Aug 25 07:38:39 localhost.localdomain systemd[1]: sshd.service holdoff time over, scheduling restart.
Aug 25 07:38:39 localhost.localdomain systemd[1]: Stopped OpenSSH server daemon.
-- Subject: Unit sshd.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit sshd.service has finished shutting down.
Aug 25 07:38:39 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
-- Subject: Unit sshd.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit sshd.service has begun starting up.
Aug 25 07:38:39 localhost.localdomain sshd[2278]: Server listening on 0.0.0.0 port 22.
Aug 25 07:38:39 localhost.localdomain sshd[2278]: Server listening on :: port 22.

問題がファイルにあるのかサービス構成にあるのかわかりません。

答え1

systemdサービスタイプを通知に設定しましたが、これを行うにはシステムサポートを介してデーモンを構築する必要があります。少なくとも./configure行ではその内容を見ることはできません。

さらに、あなたはこれをしないでください。。この脆弱性が悪く、システムを更新する必要があることをどこかで読みました。そのシステムに飛び込んで、その部分のかなりの部分を洞察力が全くないものに交換しましたか? opensshとライブラリへの依存性のために多くの問題が発生した可能性があります。おめでとうございます。システムに最悪の脆弱性があります。

https://forums.centos.org/viewtopic.php?f=47&t=80334そのエントリはすでにアップストリームにパッチされており、yumアップデートのみが必要です。しかし、ソフトウェアをルートとして構築し(状況をさらに悪化させるため)、ランダムなエントリをインストールしました。

したがって、あなたがすべきことは、make uninstallシステムがこの時点で実行され続けることを望むことですyum update。幸いなことに、openssh インストールで潜在的に影響を受ける可能性のある部分を再インストールする必要があります。

関連情報