Centos7.X下rpm升级OpenSSH到openssh-8.4p1版本

漏洞描述:XMSS中使用的签名方案是有状态的,这意味着密钥随时间而变化,此过程需要考虑以前保存的“状态”(如果有)。负责处理XMSS保存的“状态”的函数会由于整数溢出漏洞而导致内存破坏。任何可以解析私有XMSS密钥的OpenSSH函数都容易受到攻击。
漏洞类型:系统组件漏洞
威胁等级:高危
修复方案:升级OpenSSH至8.3及以上版本
需确认机器已安装的软件包中不存在低版本openssh组件,如可通过执行命令:rpm -qa | grep openssh查看组件版本。
可通过执行命令升级到新版本,如centos系统可执行以下命令:yum update openssh
检测到服务器存在漏洞风险,建议立即对相关主机进行快照备份,避免遭受损失。
1. 由于openssh爆出一个特殊漏洞,涉及到openssh8.3p1及以下版本,博客特意编译了一个openssh8.4p1版本进行分享
检查环境:
[root@test]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
2.为保openssh-8.4p1证顺利升级:
注意:如果机器做过安全基线整改,建议先自行备份/etc/pam.d/sshd文件,升级后,此文件会被覆盖,如果未修改过,按照文章后续的进行覆盖即可。亦请务必确定系统版本为:CentOS7。
请确定openssh版本为7.x,openssl版本为 OpenSSL 1.0.2k及以上。(正常来说,系统都为以上版本。)
openssh8.4p1下载
wget https://cikeblog.com/s/openssh8.4.zip
unzip openssh8.4.zip
3.openssh-8.4p1安装方法一:
rpm -Uvh *.rpm 安装后会如下提示:
[root@test ~]# rpm -Uvh *.rpm
Preparing... ################################# [100%]
Updating / installing...
1:openssh-8.1p1-1.el7 ################################# [ 14%]
2:openssh-clients-8.1p1-1.el7 ################################# [ 29%]
3:openssh-server-8.1p1-1.el7 ################################# [ 43%]
4:openssh-debuginfo-8.1p1-1.el7 ################################# [ 57%]
Cleaning up / removing...
5:openssh-server-7.4p1-16.el7 ################################# [ 71%]
6:openssh-clients-7.4p1-16.el7 ################################# [ 86%]
7:openssh-7.4p1-16.el7 ################################# [100%]
[root@test ~]# ssh -V OpenSSH_8.1p1, OpenSSL 1.0.2k-fips 26 Jan 2017
[root@768 ~]#
# 升级openssh-8.4p1
rpm -Uvh *.rpm
# 修改权限
cd /etc/ssh/
chmod 400 ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key
# 允许 root登录
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
# 不修改这个文件,会出现密码是对的,却无法登陆。
cat </etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
auth include password-auth
account required pam_nologin.so
account include password-auth
password include password-auth
## pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
## pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth
EOF
# 重启服务
systemctl restart sshd
4.openssh-8.4p1安装方法二(此方法会自动处理依懒关系):
yum install ./*.rpm
部分机器使用方法二安装会提示依赖问题,可以使用以下方法:
yum update *.rpm
至此,升级完成,如果之前升级过的,下面的就不用看了,直接新开SSH终端连接即可。
因为OPENSSH升级后,/etc/ssh/sshd_config会还原至默认状态,我们需要进行相应配置:
cd /etc/ssh/
chmod 400 ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
systemctl restart sshd
注意:升级后重启SSH可能出现以下错误
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Unable to load host key "/etc/ssh/ssh_host_ed25519_key": bad permissions
Unable to load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available -- exiting.
[FAILED]
sshd.service: control process exited, code=exited status=1
Failed to start SYSV: OpenSSH server daemon.
Unit sshd.service entered failed state.
sshd.service failed.
重启SSH出现以错误解决办法
chmod 0600 /etc/ssh/ssh_host_ed25519_key
service sshd restart
即可解决。
5.注意,/etc/pam.d/sshd也文件会被覆盖,我们进行还原:
先清空:
>/etc/pam.d/sshd;
再还原:
echo '#%PAM-1.0
auth required pam_sepermit.so
auth include password-auth
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth'>/etc/pam.d/sshd
至此,升级完成,先别关闭终端,直接新开一个终端,连接到服务器测试。
注意:如果新开终端连接的时,root密码报错,并且已经根据上面后续操作,那可能就是SElinux的问题,我们进行临时禁用:
setenforce 0
即可正常登录,然后修改/etc/selinux/config 文件:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
进行永久禁用SElinux即可。
注意:
如果Centos7默认openssl版本不为OpenSSL 1.0.2k,就需要先进行升级:
yum install openssl -y
然后回到第一步进行安装即可。
Openssh升级后导致无法ssh远程连接 解决方案
1.查看sshd服务的状态,必须为开启状态。
2.查看selinux的状态,在/etc/sysconfig/selinux文件中更改selinux的状态为disabled关闭状态。
3.查看防火墙的状态,必须为关闭状态。
4.查看/etc/ssh/sshd_config配置
常见的修改配置有:PermitRootLogin yes、PubkeyAuthentication yes、PasswordAuthentication yes
注意:如果是   #PermitRootLogin yes ,请将注释取消

版权声明:
作者:Yun·云上初生
链接:https://www.yunscs.com/centos7-x-rpmopenssh-openssh-8-4p1.html
来源:Yun·云上初生
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>