ubuntu升级openssh(8.9->9.8)

481 阅读2分钟

背景

云服务器检测报ssh漏洞,决定升级解决。 涉及的漏洞有: OpenSSH 安全漏洞(CVE-2023-38408)
OpenSSH远程代码执行漏洞(CVE-2024-6387)
OpenSSH 安全漏洞(CVE-2023-51767)
OpenSSH 安全漏洞(CVE-2023-48795)
OpenSSH 安全漏洞(CVE-2023-51385)
OpenSSH 安全漏洞(CVE-2023-51384)

安装telnet

为防止在ssh安装失败导致无法远程连接服务器,可以安装telnet远程连接。

apt -y install telnetd
apt -y install xinetd
service xinetd status

用户登录成功示例:

image.png

安装openssh

备份旧ssh配置文件及目录

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
mv /etc/ssh/ /home/ssh-bak
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/sbin/sshd /usr/sbin/sshd.bak
mv /etc/pam.d/sshd /etc/pam.d/sshd.old

卸载旧版本

  1. 卸载安装
sudo apt-get remove openssh-server openssh-client --purge -y
  1. 停掉进程
ps -ef|grep sshd
kill id

安装必要的构建工具

sudo apt install build-essential libssl-dev zlib1g-dev libedit-dev libpam0g-dev libwrap0-dev

下载并解压文件

wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
tar -zxvf openssh-9.8p1.tar.gz

编译安装openssh

cd openssh-9.8p1
./configure --prefix=/usr/ssh/ --sysconfdir=/etc/ssh
make
sudo make install

将ssh的bin加入环境变量

# 修改 ~/.bashrc文件,将以下语句加入文件末尾
export PATH=$PATH:/usr/ssh/bin
#使配置生效
source ~/.bashrc

手动编写sshd.service

  1. 编辑/etc/systemd/system/sshd.service
     [Unit]
     Description=OpenSSH server daemon
     After=network.target

     [Service]
     ExecStart=/usr/ssh/sbin/sshd -D
     ExecReload=/bin/kill -HUP $MAINPID
     KillMode=process
     Restart=on-failure
     Type=simple

     [Install]
     WantedBy=multi-user.target
  1. 重新加载 systemd 配置
     sudo systemctl daemon-reload
  1. 启用并启动 sshd 服务
     sudo systemctl enable sshd
  1. 启动 sshd 服务
     sudo systemctl start sshd
  1. 检查服务状态
     sudo systemctl status sshd

重启,验证安装

sudo systemctl enable ssh
sudo systemctl restart sshd
ssh -V

报错分析

  1. Privilege separation user sshd does not exist 在执行make install时报错内容如下:
/usr/ssh/sbin/sshd -t -f /etc/ssh/sshd_config
Privilege separation user sshd does not exist
make: [Makefile:396: check-config] Error 255 (ignored)

解决办法: 修改/etc/passwd文件,在其中加入:

sshd:x:109:65534::/var/run/sshd:/usr/sbin/nologin

修改后重新make install即可。