Centos 更新OpenSSH到8.6版本教程

Centos 更新OpenSSH到8.6版本教程

漏洞分类:通用漏洞检测

危险等级:高风险

影响主机:192.168.1.11 [ TCP / 22 ]

输出信息:

Installed version: 8.0
Fixed version: 8.1
Installation path / port: 22/tcp

详细描述:

[CVE-2019-16905]OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。OpenSSH 7.7版本至7.9版本和8.1之前的8.x版本中存在输入验证错误漏洞。该漏洞源于网络系统或产品未对输入的数据进行正确的验证。

CVE:CVE-2019-16905

CNNVD:CNNVD-201910-599

ssh更新

  1. 安装依赖
yum install -y pam-devel libselinux-devel zlib-devel openssl-devel wget gcc
  1. 下载软件
cd /usr/local/src
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz
  1. 备份
cp /etc/ssh/sshd_config sshd_config.backup
cp /etc/pam.d/sshd /etc/pam.d/sshd.backup
  1. 卸载旧版ssh

此时可以删除低版本包,当然这个操作是有风险的,如果删除了但是安装不成功就远程连接不上去了,只有自己去远程服务器边上安装,保险办法是通过另外的手段远程连接,我自己没有遇到这个问题,所以就不赘述。

rpm -qa | grep openssh
rpm -e --nodeps `rpm -qa | grep openssh`
  1. 解压新版压缩包
tar -zxvf openssh-8.6p1.tar.gz
cd  openssh-8.6p1
  1. 设置编译配置
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --without-hardening
  1. 文件授权
chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key
  1. 编译
make
make install
  1. 复制文件
cp -a contrib/redhat/sshd.init  /etc/init.d/sshd
chmod u+x /etc/init.d/sshd
  1. 修改配置
vim /etc/ssh/sshd_config

# 修改#PermitRootLogin prohibit-password项,去掉注释#并把prohibit-password改为yes,修改后即为PermitRootLogin yes

#去掉注释#PasswordAuthentication yes变为`PasswordAuthentication yes 如果使用证书登陆可以关闭这个

#升级之后sftp如果不好用了,需要注意的是要查看一下相关设置,新的是Subsystem sftp /usr/libexec/sftp-server原始系统自带的是Subsystem sftp /usr/libexec/openssh/sftp-server

# 一般系统是开启PAM模块的,但是编译安装升级后,这个是关闭状态,如果启用PAM,需要有一个控制文件,去掉注释#UsePAM no 变为UsePAM yes,如果打开这个模式,不要忘了把配置文件/etc/pam.d/sshd.backup改回来,否则登陆不了。
  1. 还原pam.d下的sshd文件
mv /etc/pam.d/sshd.backup /etc/pam.d/sshd
  1. 设置开机自启
chkconfig --add sshd
chkconfig sshd on
  1. 测试
ssh -V

成功!

留下评论