CentOS7升级openssh-9.6p1(漏洞修复)(含自动化升级脚本)_openssh升级

问题背景 

前段时间接到单位安全部门人员通过漏扫工具扫描出一个漏洞(CVE-2023-38408),修复建议:目前centos操作系统中openssh版本过低,建议升级至最新版openssh-9.6p1,以下为测试升级后的升级步骤。

注意:稳妥起见,建议在升级前,安装xinetd和telnet服务,以保障在openssh升级期间服务器中断时,可以使用telnet登录服务器。

下载软件包

  1. Openssh-9.6p1下载地址:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
  2. Openssl-1.1.1q下载地址: https://www.openssl.org/source/old/1.1.1/index.html
  3. zlib1.3下载地址: http://www.zlib.net/

安装

  1. 安装OPenssl1.1.1q依赖
#解压安装包,安装包放置路径(/usr/local)
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 -j 4 && make install
# 备份旧openssl版本,创建软连接
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

#验证新版本
openssl version
  1. 安装zlib1.3依赖
#解压安装包,安装包放置路径(/usr/local)
tar xf zlib-1.3.tar.gz

#进入安装目录下
cd zlib-1.3

#添加prefix路径
./configure --prefix=/usr/local/zlib

#编译执行安装 
make
make check
make install

#写入动态库的路径
echo "/usr/local/zlib/lib/" >> /etc/ld.so.conf
ldconfig -v

#查看软连接
ll /lib64/libz.*

#进入编译目录下
cd /usr/local/zlib/lib/

#复制执行文件到/lib64目录下
cp libz.so.1.3 /lib64/libz.so.1.3

#进入lib64目录下创建软连接
cd /lib64
ln -snf libz.so.1.3  /lib64/libz.so
ln -snf libz.so.1.3  /lib64/libz.so.1
  1. 安装openssh-9.6p1
#备份openssh
mkdir /etc/ssh/bak
cp /etc/ssh/ssh* /etc/ssh/bak && cp /etc/ssh/m* /etc/ssh/bak
cp /etc/pam.d/sshd ~

#卸载openssh
rpm -e `rpm -qa | grep openssh` --nodeps

#进入/usr/local解压安装包
tar -xzvf 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

#授权
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key

#配置
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
sed -i '/UsePAM no/c\UsePAM yes' /etc/ssh/sshd_config
sed -i '/^Subsystem/c\Subsystem sftp /usr/libexec/sftp-server' /etc/ssh/sshd_config
sed -i '/^SELINUX=enforcing/c\SELINUX=disabled' /etc/selinux/config
setenforce 0

#查看版本
sshd -v
#测试sshd能否登陆
/usr/sbin/sshd -p 22
  1. 测试
#设置sshd开机自启动
chkconfig --add sshd
chkconfig sshd on
chkconfig --list sshd

#重启服务
rm -rf /usr/lib/systemd/system/sshd.service
systemctl daemon-reload
systemctl restart sshd
systemctl status sshd

如上步骤全部完成即可升级Openssh9.6p1版本。以上openssh升级部署方案已在CentOS 7.x操作系统完成测试并编写了一份自动化升级脚本,由于文章篇幅及排版问题,没有在文章中体现自动化升级脚本

脚本执行结束后的提示信息

CentOS7升级openssh-9.6p1(漏洞修复)(含自动化升级脚本)_漏洞_02