CentOS更新OpenSSH到8
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更新
- 安装依赖
yum install -y pam-devel libselinux-devel zlib-devel openssl-devel wget gcc
- 下载软件
cd /usr/local/src
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz
- 备份
cp /etc/ssh/sshd_config sshd_config.backup
cp /etc/pam.d/sshd /etc/pam.d/sshd.backup
- 卸载旧版ssh
此时可以删除低版本包,当然这个操作是有风险的,如果删除了但是安装不成功就远程连接不上去了,只有自己去远程服务器边上安装,保险办法是通过另外的手段远程连接,我自己没有遇到这个问题,所以就不赘述。
rpm -qa | grep openssh
rpm -e --nodeps `rpm -qa | grep openssh`
- 解压新版压缩包
tar -zxvf openssh-8.6p1.tar.gz
cd openssh-8.6p1
- 设置编译配置
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --without-hardening
- 文件授权
chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key
- 编译
make
make install
- 复制文件
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd
- 修改配置
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改回来,否则登陆不了。
- 还原pam.d下的sshd文件
mv /etc/pam.d/sshd.backup /etc/pam.d/sshd
- 设置开机自启
chkconfig --add sshd
chkconfig sshd on
- 测试
ssh -V
成功!