低版本openssh升级到OpenSSH 8.5p1版本的方法

openssh 低版本漏扫后漏洞问题修复方法说明:

问题说明:
centos系统,openssh版本过低,有一些中高的漏洞需要通过升级openssh版本才能够进行解决,所以编写该方法进行说明:
该方法主要是适用于离线安装的场景,相关的安装包已经打包好,下面操作不在考虑安装包获取方法的说明:
漏洞说明:
CNCVE-201715906 OpenSSH 7.6之前的版本中的sftp-server.c文件的‘process_open’函数存在安全漏洞,解决方法:升级到OpenSSH 8.5p1。
CNCVE-201815919 OpenSSH 7.8及之前版本,auth-gss2.c文件存在安全漏洞,解决方法 升级到OpenSSH 8.5p1。
CNCVE-201715906 OpenSSH 7.6之前的版本中的sftp-server.c文件的‘process_open’函数存在安全漏洞,解决方法升级到OpenSSH 8.5p1。
相关安装包和依赖包的获取链接:

	https://wws.lanzoui.com/b0260uoyh
	密码:aq66

一、操作方法:
1) 安装telnet-server,避免openssh升级过程中,有异常,无法进行正常使用:

1:rpm -ivh telnet-server-0.17-66.el7.x86_64.rpm
2:useradd test
3:echo test | passwd --stdin test
4:systemctl start telnet.socket
5:systemctl stop firewalld

说明:
telnet不能够允许使用root用户登录,所以需要添加用户,方便后续登录使用,后续如果升级完毕后,可以进行删除
firewalld可以临时进行关闭,就不用在通过firewall-cmd 来临时添加方向策略了,可以升级完毕后,在开启。

2) 安装gcc程序,方便后续编译安装依赖包,已经将gcc的rpm包和所有的依赖包都放在gcc的目录中,所以cd进入到gcc的目录下,执行如下命令:

rpm -ivh *.rpm

1.安装zlib程序依赖,进入到相关目录下执行:

 1:tar -xf zlib-1.2.11.tar.gz
 2:cd zlib-1.2.11
 3./configure --prefix=/usr/local/zlib
 4: make && make install

2.安装perl-5依赖程序:

1:tar -xf perl-5.16.1.tar.gz
2:cd perl-5.16.1
3./Configure -des -D prefix=/usr/local/perl -Dusethreads -Uversiononly
4:make && make install

3.安装openssl 1.1.1k依赖程序:

1:tar -xf openssl-1.1.1k.tar.gz
2:cd openssl-1.1.1k
3./config --prefix=/usr/local/ssl -d shared
4:make && make install
5:echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
6:ldconfig -v

4.升级openssh为8.5p1版本

1:tar -xf openssh-8.5p1.tar.gz
2:cd openssh-8.5p1
3./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
4:make &&make install

7.修改相关的ssh配置文件,进行配置文件和执行文件的替换的替换:

echo 'PermitRootLogin yes' >> /usr/local/openssh/etc/sshd_config
echo 'PasswordAuthentication yes' >> /usr/local/openssh/etc/sshd_config
echo 'PubkeyAuthentication yes' >> /usr/local/openssh/etc/sshd_config

mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
mv /usr/sbin/sshd /usr/sbin/sshd.bak
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
mv /usr/bin/ssh /usr/bin/ssh.bak
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
cp /usr/local/openssh/etc/ssh_host_dsa_key.pub /etc/ssh/
cp /usr/local/openssh/etc/ssh_host_dsa_key /etc/ssh/

8.大功告成,重启sshd服务,查看是否替换成功

systemctl restart sshd
ssh -V

9.sshd无法restart或者start失败的方法的解决方法:

mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak
systemctl daemon-reload
cp openssh-8.5p1/contrib/redhat/sshd.init /etc/init.d/sshd
systemctl start sshd
systemctl status sshd
systemctl daemon-reload

10.设置sshd开机启动:

chkconfig --add sshd  
chkconfig --list sshd

11.卸载telnet-server,删除添加的用户名和密码,启动firewalld

rpm -qa |grep telnet
rpm -e telnet-server-0.17-66.el7.x86_64
rpm -qa |grep telnet
userdel test
systemctl start firewalld

12.卸载gcc和之前安装的依赖包

rpm -evh cpp-4.8.5-44.el7.x86_64
rpm -evh gcc-4.8.5-44.el7.x86_64
rpm -evh glibc-devel-2.17-323.el7_9.x86_64
rpm -evh glibc-headers-2.17-323.el7_9.x86_64
rpm -evh kernel-headers-3.10.0-1160.21.1.el7.x86_64
rpm -evh libmpc-1.0.1-3.el7.x86_64
rpm -evh mpfr-3.1.1-4.el7.x86_64

13.升级参考链接:
https://blog.csdn.net/Angel_asp/article/details/109508477
https://blog.csdn.net/qq_34965596/article/details/115287891
https://blog.csdn.net/Angel_asp/article/details/109508477
14.scp 漏洞的威力真的好大(相关链接):
https://www.cnblogs.com/hcrk/p/13495626.html (漏洞复现参考)
https://mp.weixin.qq.com/s?__biz=MzI4NjE2NjgxMQ==&mid=2650243015&idx=1&sn=a4b2ed65471dc122a60145b8c13071d8&scene=21#wechat_redirect(漏洞说明详解)

漏洞说明:
CNCVE-202015778 OpenSSH 8.5p1及之前版本中的scp的scp.c文件存在命令注入漏洞。厂商未给出解决方法,建议是禁用scp,改用rsync
该漏洞,需要知道要登陆主机的用户名和密码(都知道用户名,密码啦,为啥还要利用这个漏洞呢,查询资料说,是因为没有登录权限,不知道怎么构造没有登录权限还能够scp传输东西的这种场景进行测试)
修复方法:
卸载openssh-clients

rpm -qa |grep openssh-clients
yum remove openssh-clients-7.4p1-21.el7.x86_64

测试 scp 是否被禁止:

scp
-bash: /usr/bin/scp: 没有那个文件或目录

————————————————————————————————
版权声明:本文为CSDN博主「井天要开心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43847124/article/details/115420585

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值