【CVE-2018-15473】漏洞修复-离线版

记录Linux openssl及ssh升级记录

CVE-2018-15473 漏洞

漏洞描述

中危漏洞
OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组所维护的一套用于安全访
问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加
密,可有效阻止窃听、连接劫持以及其他网络级的攻击。
OpenSSH 7.7及之前版本中存在用户枚举漏洞,该漏洞源于程序会对有效的和无效的
用户身份验证请求发出不同的响应。攻击者可通过发送特制的请求利用该漏洞枚举用
户名称。

漏洞原因

由于linux ssh版本过低导致,以下是我的版本。
ssh版本

修复过程

根据漏扫建议升级OpenSSH-7.8已经修复这个安全问题,我想不如干脆升级到8.8p1版本算了。

升级过程

本次升级操作系统为CentOS 7.5

OpenSSL 1.0.1升级至 OpenSSL 3.0.1

OpenSSH 7.4p1 升级至 OpenSSH 8.8p1

由于是服务器是没有互联网,只能离线升级

准备工作

准备 OpenSSH_8.8p1安装包,OpenSSL 3.0.1安装包,建议听劝升级SSH前先把SSL升级了。 我只准备了这两个安装包。

下载地址

OpenSSL 3.0.1

OpenSSL 3.0.1

OpenSSH 8.8p1,使用官网镜像

阿里云开源镜像目录地址

openssl安装

tar -zxvf openssl-3.0.1.tar.gz
 
cd openssl-3.0.1

./config shared zlib enable-fips --prefix=/usr/local/ssl
# 如果缺少zlib 就用 ./config --prefix=/usr/local/ssl

make && make install

也可以分开执行make(编译) 再执行make install(安装)

如果编译OpenSSL时报错,请查看下方链接。
编译OpenSSL时报错,Can‘t locate IPC/Cmd.pm in @INC

IPC/Cmd下载地址
IPC/Cmd下载地址

rpm -ivhU * --nodeps --force

备份原来的OpenSSL

mv /usr/bin/openssl /usr/bin/openssl.bak
 
mv /usr/include/openssl /usr/include/openssl.bak

创建软连接
因为源码安装默认安装的位置是 /usr/local/ssl 需要将创建软链接到系统位置:

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
 
ln -s /usr/local/ssl/include/openssl /usr/include/openssl

修改lib库

echo '/usr/local/ssl/openssl/lib64' > /etc/ld.so.conf.d/openssl.conf
 
ldconfig

查看OpenSSL版本

[root@centos7 openssl-3.0.1]# openssl version -a
OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021)
built on: Wed Dec 29 07:20:46 2021 UTC
platform: linux-x86_64
options:  bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DZLIB -DNDEBUG
OPENSSLDIR: "/usr/local/ssl/ssl"
ENGINESDIR: "/usr/local/ssl/lib64/engines-3"
MODULESDIR: "/usr/local/ssl/lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0xfdfa32035f8bffff:0x9c67ab

若提示以下错误

[root@centos7 openssl-3.0.1]# openssl version -a
openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory

通过 find / -name libcrypto.so.3 和 libssl.so.3 查找到对应so文件的位置,并建立软连接

ln -s /usr/local/ssl/lib64/libssl.so.3  /usr/lib/libssl.so.3
 
ln -s /usr/local/ssl/lib64/libcrypto.so.3  /usr/lib/libcrypto.so.3

ldconfig

openssh安装

OpenSSH升级
备份原ssh配置文件

mv /etc/ssh /etc/ssh.bak

编译安装
注意:–with-ssl-dir参数指定为新升级的ssl路径

tar -zxf openssh-8.8p1.tar.gz 
 
cd openssh-8.8p1/
./configure  --prefix=/usr  --sysconfdir=/etc/ssh  --with-md5-passwords --mandir=/usr/share/man   --with-zlib  --with-pam --with-ssl-dir=/usr/local/ssl
 # 如果失败 看一下error提示不是pam异常,如果是pam就把 --with-pam 去掉 
 #(缺少组件,如果有网 可以执行 yum -y pam-devel 进行安装,离线版我还没找到)
make && make install

修改配置文件
根据原ssh配置文件,修改新生成的配置文件/etc/ssh/sshd_config

从源码包中拷贝一些文件到目标位置(如果目标目录存在就覆盖)

(可能下面的ssh.pam文件都没用到,因为sshd_config配置文件貌似没使用它,请自行测试。我这边是拷贝了)

cp -a contrib/redhat/sshd.init /etc/init.d/sshd
 
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
 
chmod +x /etc/init.d/sshd

重启服务并配置开机自启
把原先的systemd管理的sshd文件删除或者移走或者删除,不移走的话影响我们重启sshd服务

mv  /usr/lib/systemd/system/sshd.service  /usr/lib/systemd/system/sshd.service.bak

设置开机自启

chkconfig --add sshd
 
chkconfig sshd on
 
systemctl enable sshd

重启服务

使用以下命令管理sshd

/etc/init.d/sshd restart
 
/etc/init.d/sshd stop
 
/etc/init.d/sshd start

或通过systemctl

systemctl stop sshd
 
systemctl start sshd
 
systemctl restart sshd

服务验证

[root@GZWGQGLYJJC21 openssh-8.8p1]# ssh -V
OpenSSH_8.8p1, OpenSSL 3.0.1 14 Dec 2021

参考文献:
https://blog.csdn.net/sd4493091/article/details/122219298

https://blog.csdn.net/weixin_45920147/article/details/135200046

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值