安全漏洞处理-openssh升级
1. 适用范围
- zCloud 6.1.0
- CentOS 7.x
2. 问题概述
客户现场zCloud主机扫描到openssh的漏洞。
按照最新的漏洞 CVE-2023-51385 修复要求,需要将openssh 升级至 9.6p1 版本。
3. 解决方案
3.1 部署telnet server服务
为防止openssh升级过程中,无法通过sshd服务连接主机而导致的主机失联,建议先安装telnet server 服务以防万一。
安装telnet-server
yum -y install telnet-server
安装 xinetd
yum -y install xinetd
编辑配置文件 vi /etc/xinetd.d/telnet
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
添加 /etc/xinetd.d/telnet
配置文件之后,重启 xinetd 服务,使用 xinetd 启动 telnet server。
# 重启 xinetd
systemctl restart xinetd
# 检查 xinetd 状态
systemctl status xinetd
# 检测 telnet 是否开启,通过检查是否启动 :23 端口判断
ss -anp | grep ':23 '
telnet server 配置完成后,可以使用 telnet 进行远程登录的测试。
3.2 升级openssh
3.2.1 升级 openssl
# 解压安装包
tar -zxf openssl-1.1.1q.tar.gz
cd openssl-1.1.1q
# 添加配置路径进行初始化
./config -Wl,-rpath=/usr/lib64 --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --libdir=/usr/lib64
# 编译并安装
make && make install
# 备份,并设置新openssl的软链
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# 检查openssl升级是否成功
openssl version
3.2.2 安装zlib
tar -zxf zlib-1.3.1.tar.gz
cd zlib-1.3.1
./configure --prefix=/usr/local/zlib
make && make install
echo "/usr/local/zlib/lib/" >> /etc/ld.so.conf
ldconfig
cp /usr/local/zlib/lib/libz.so.1.3.1 /lib64/libz.so.1.3.1
ln -snf /lib64/libz.so.1.3.1 /lib64/libz.so
ln -snf /lib64/libz.so.1.3.1 /lib64/libz.so.1
ll /lib64/ | grep libz
3.2.3 升级openssh
# 对sshd的配置进行备份
mkdir -p /etc/ssh/bak
cp /etc/ssh/ssh* /etc/ssh/bak
cp /etc/ssh/m* /etc/ssh/bak
cp /etc/pam.d/sshd /etc/ssh/bak
# 卸载当前openssh
rpm -e `rpm -qa | grep openssh` --nodeps
# 解压
tar -zxf openssh-9.6p1.tar.gz
cd openssh-9.6p1
# 初始化
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-md5-passwords --with-tcp-wrappers --with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/zlib --mandir=/usr/share/man
# 编译并安装
make && make install
# 下面的文件权限非0600可能会安装错误
chmod 0600 /etc/ssh/ssh_host_rsa_key
chmod 0600 /etc/ssh/ssh_host_ecdsa_key
chmod 0600 /etc/ssh/ssh_host_ed25519_key
# 设置systemd
cp ./contrib/redhat/sshd.init /etc/init.d/
/etc/init.d/sshd.init start
cp /run/systemd/generator.late/sshd.init.service /usr/lib/systemd/system/sshd.service
systemctl daemon-reload
systemctl start sshd
systemctl status sshd
4. 参考文档
openssh.com/txt/release-9.6
Index of /pub/OpenBSD/OpenSSH/portable/
Linux Centos7 升级最新版OpenSSH-9.6p1详细步骤(附脚本)_升级openssh9.6-CSDN博客
https://blog.51cto.com/u_15514004/9417210
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix