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를 성공적으로 컴파일했으므로 두 가지 버전의 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 설치에서 잠재적으로 영향을 받을 수 있는 부분을 다시 설치해야 합니다.

관련 정보