最近客户反馈公司的3台服务器存在OpenSSH 用户枚举漏洞(CVE-2018-15919),解决办法是升级OpenSSH到OpenSSH_8.1p1版本, OpenSSL 升级到OpenSSL 1.0.2r

1、查看版本
在这里插入图片描述
2、安装依赖
注意:一定确保服务器能连接外网,由于机房无法连接外网,本人是使用手机共享网络,所需安卓机和usb线即可。这里用到yum源安装依赖 ,还要保证yum源能正常。
yum update openssh -y

yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel

yum install -y pam* zlib*

[root@localhost ~]# yum update openssh -y
已加载插件:fastestmirror, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Determining fastest mirrors
base                                                                              | 3.6 kB  00:00:00     
extras                                                                            | 2.9 kB  00:00:00     
updates                                                                           | 2.9 kB  00:00:00     
updates/x86_64/primary_db                                                         |  12 MB  00:00:09     
No packages marked for update
[root@localhost ~]# yum install  -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel  pam-devel
已加载插件:fastestmirror, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
软件包 gcc-4.8.5-44.el7.x86_64 已安装并且是最新版本
软件包 gcc-c++-4.8.5-44.el7.x86_64 已安装并且是最新版本
软件包 1:make-3.82-24.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 autoconf.noarch.0.2.69-11.el7 将被 安装
--> 正在处理依赖关系 m4 >= 1.4.14,它被软件包 autoconf-2.69-11.el7.noarch 需要
---> 软件包 glibc.x86_64.0.2.17-292.el7 将被 升级
--> 正在处理依赖关系 glibc = 2.17-292.el7,它被软件包 glibc-devel-2.17-292.el7.x86_64 需要
--> 正在处理依赖关系 glibc = 2.17-292.el7,它被软件包 glibc-headers-2.17-292.el7.x86_64 需要
--> 正在处理依赖关系 glibc = 2.17-292.el7,它被软件包 glibc-common-2.17-292.el7.x86_64 需要
---> 软件包 glibc.x86_64.0.2.17-325.el7_9 将被 更新
---> 软件包 openssl.x86_64.1.1.0.2k-19.el7 将被 升级
---> 软件包 openssl.x86_64.1.1.0.2k-22.el7_9 将被 更新
--> 正在处理依赖关系 openssl-libs(x86-64) = 1:1.0.2k-22.el7_9,它被软件包 1:openssl-1.0.2k-22.el7_9.x86_64 需要

[root@localhost ~]# yum install  -y pam* zlib*
已加载插件:fastestmirror, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
软件包 pam-1.1.8-23.el7.x86_64 已安装并且是最新版本
软件包 pam-devel-1.1.8-23.el7.x86_64 已安装并且是最新版本
软件包 zlib-devel-1.2.7-19.el7_9.x86_64 已安装并且是最新版本
软件包 zlib-1.2.7-19.el7_9.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 pam_krb5.x86_64.0.2.4.8-6.el7 将被 安装
---> 软件包 pam_pkcs11.x86_64.0.0.6.2-30.el7 将被 安装
---> 软件包 pam_snapper.x86_64.0.0.2.8-4.el7 将被 安装
--> 正在处理依赖关系 snapper(x86-64) = 0.2.8-4.el7,它被软件包 pam_snapper-0.2.8-4.el7.x86_64 需要
---> 软件包 pam_ssh_agent_auth.x86_64.0.0.10.3-2.21.el7 将被 安装
---> 软件包 zlib-static.x86_64.0.1.2.7-19.el7_9 将被 安装
--> 正在检查事务
---> 软件包 snapper.x86_64.0.0.2.8-4.el7 将被 安装
--> 正在处理依赖关系 snapper-libs(x86-64) = 0.2.8-4.el7,它被软件包 snapper-0.2.8-4.el7.x86_64 需要
--> 正在处理依赖关系 libsnapper.so.3()(64bit),它被软件包 snapper-0.2.8-4.el7.x86_64 需要
--> 正在处理依赖关系 libboost_serialization.so.1.53.0()(64bit),它被软件包 snapper-0.2.8-4.el7.x86_64 需要
--> 正在检查事务
---> 软件包 boost-serialization.x86_64.0.1.53.0-28.el7 将被 安装
---> 软件包 snapper-libs.x86_64.0.0.2.8-4.el7 将被 安装
--> 解决依赖关系完成

3、在opt下下载升级openssh需要的2个压缩包

cd /opt

wget -c https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz

wget -c https://ftp.openssl.org/source/openssl-1.0.2r.tar.gz

解压

tar xfz openssh-8.1p1.tar.gz

tar xfz openssl-1.0.2r.tar.gz

4、重新授权下

[root@localhost opt]#  chown -R root.root openssh-8.1p1
[root@localhost opt]#  chown -R root.root openssl-1.0.2r

5、备份原文件

[root@localhost opt]# mv /usr/bin/openssl /usr/bin/openssl_bak
[root@localhost opt]# mv /usr/include/openssl /usr/include/openssl_bak

6、安装openssl

[root@localhost opt]# cd /opt/openssl-1.0.2r/
[root@localhost openssl-1.0.2r]# ./config shared && make && make install

添加软连接

[root@localhost openssl-1.0.2r]# ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
[root@localhost openssl-1.0.2r]# ln -s /usr/local/ssl/include/openssl /usr/include/openssl
[root@localhost openssl-1.0.2r]# echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
[root@localhost openssl-1.0.2r]# ldconfig

查看openssl版本

[root@localhost openssl-1.0.2r]# openssl version
OpenSSL 1.0.2r  26 Feb 2019
[root@localhost openssl-1.0.2r]# 

7、安装openssh8.1(重点!!!!)
先备份源文件

[root@localhost openssl-1.0.2r]# cp -r  /etc/ssh /tmp/
[root@localhost openssl-1.0.2r]# 
[root@localhost openssl-1.0.2r]# rm -rf /etc/ssh

开始安装编译

[root@localhost openssl-1.0.2r]# cd /opt/openssh-8.1p1/
[root@localhost openssh-8.1p1]# ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl/lib/ --with-zlib --with-md5-passwords --with-pam && make && make install

刚刚开始报很多check for ** 看到这样就执行成功了,在这里插入图片描述
正式安装

[root@localhost openssh-8.1p1]# make install

8、这需要修改配置文件/etc/ssh/sshd_config

[root@localhost openssh-8.1p1]# grep '^#GSSAPI*' /etc/ssh/sshd_config 
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

#修改配置使root可以登录
vim /etc/ssh/sshd_config
把 #PermitRootLogin prohibit-password改为 PermitRootLogin yes
把UsePAM no改为UsePAM yes

这句我也不知道什么意思执行就对了

[root@localhost openssh-8.1p1]# install -v -m755 contrib/ssh-copy-id /usr/bin
已删除"/usr/bin/ssh-copy-id"
"contrib/ssh-copy-id" -> "/usr/bin/ssh-copy-id"
[root@localhost openssh-8.1p1]# 

#从解压包openssh-8.1p1中复制文件

[root@localhost openssh-8.1p1]# cp -a contrib/redhat/sshd.init /etc/init.d/sshd

#修改执行权限

[root@localhost openssh-8.1p1]# chmod +x /etc/init.d/sshd

#修改开启启动

[root@localhost openssh-8.1p1]# chkconfig --add sshd
[root@localhost openssh-8.1p1]# systemctl enable sshd
sshd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig sshd on
注意:正在将请求转发到“systemctl enable sshd.socket”。

#移走之前的启动文件

[root@localhost openssh-8.1p1]# mv  /usr/lib/systemd/system/sshd.service  /root/ssh_bak

#设置sshd服务开机启动

[root@localhost openssh-8.1p1]# chkconfig sshd on

大功告成!!!!!!!!!

#查看版本

[root@localhost openssh-8.1p1]# ssh -V
OpenSSH_8.1p1, OpenSSL 1.0.2r  26 Feb 2019
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐