OpenEuler20.03升级SSH 9.7p1

背景:最近漏扫发现欧拉20.03版本自带的ssh存在安全漏洞,查看后发现20.03系统默认部署的ssh版本为9.5p1,漏洞修复说明中提到OpenSSH 9.6及之前版本均存在该安全漏洞,因此选择目前最新的版本9.7p1进行升级,如图:

说明:

1、操作环境:OpenEuler20.03,OpenSSH_9.5p1, OpenSSL 1.1.1;(仅供参考,其他系统版本请自行测试)

2、升级方案参考:Linux OpenSSH最新版9.7p1升级操作详细教程_openssh 9.7-CSDN博客

3、漏洞所在均为生产服务器,与外网不互通,因此通过上传rpm包方式进行升级;

4、经过测试,欧拉系统缺少部分环境包,本次升级所用到的rpm包均是从源镜像中提取 ;

        如果你也存在无法通过网络获取,这里介绍一个小操作:解压缩源镜像文件,然后进入解压之后的镜像文件夹中进入Packages目录,在这里可以找到相关的rpm包;

查看本地是否安装某功能    rpm -qa |grep ***

注:这里将本次升级所用到的包都放在一起,有需要的自取-附件ssh.zip

操作:

1、备份ssh配置

cp -rf /etc/ssh /etc/ssh.bak
cp -rf /usr/bin/openssl /usr/bin/openssl.bak
cp -rf /etc/pam.d /etc/pam.d.bak
cp -rf /usr/lib/systemd/system /system.bak

2、安装telnet

rpm -ivh telnet-0.17-76.oe1.x86_64.rpm      #安装telnet
systemctl enable telnet.socket              #设置telnet开机自启
systemctl start telnet.socket               #启动telnet

测试telnet是否可用
1、添加防火墙策略
2、换一台服务器进行telnet

这里需要注意,安装telnet后先测试telnet是否可用,不然后续openssh安装就得跑机房咯!!

3、升级环境准备

3.1、如果可以通过yum安装,执行如下命令:

yum install -y vim gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel zlib-devel tcp_wrappers-devel tcp_wrappers libedit-devel perl-IPC-Cmd wget tar lrzsz nano

3.2、如不能通过自动安装,则需要排查缺少哪些包,再依次找到对应rpm包进行安装

升级所需环境:gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel zlib-devel tcp_wrappers-devel tcp_wrappers libedit-devel perl-IPC-Cmd wget tar lrzsz nano
示例:rpm -qa |grep gcc
经排查缺少
1、libedit-3.1-27.oe1.x86_64.rpm
2、lrzsz-0.12.20-46.oe1.x86_64.rpm
3、pam-devel-1.4.0-8.oe1.x86_64.rpm
4、tcp_wrappers-7.6-96.oe1.x86_64.rpm

找到对应的rpm包上传至服务器后进行安装
rpm -ivh ***.rpm

4、升级Openssh

4.1、获取源码包

        4.1.1可以使用wget下载

wget https://www.zlib.net/zlib-1.3.1.tar.gz
wget https://www.openssl.org/source/openssl-3.2.1.tar.gz
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz

        4.1.2无法连接外网,则手动下载后上传至服务器

4.2、解压缩源码包

tar -zxvf zlib-1.3.1.tar.gz
tar -zxvf openssl-3.2.1.tar.gz
tar -zxvf openssh-9.7p1.tar.gz

4.3、安装zlib

#进入zlib-1.3.1目录
cd /usr/local/src/zlib-1.3.1
#配置
./configure --prefix=/usr/local/src/zlib
#编译及安装
make -j 4 && make test && make install

4.4、安装openssl

#1.进入openssl-3.2.1目录
cd /usr/local/src/openssl-3.2.1
#2.配置
./config --prefix=/usr/local/src/openssl
#3.编译及安装
make -j 4 && make install

4.5、配置

#配置
mv /usr/bin/openssl /usr/bin/oldopenssl
ln -s /usr/local/src/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/src/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/src/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
#更新动态库
echo "/usr/local/src/openssl/lib64" >> /etc/ld.so.conf
ldconfig
#查看更新后的版本
openssl version -v

4.6、卸载系统自带openssh9.5p1

操作之前先测试telnet是否可用再执行,否则就要在机房执行后续操作咯!!

#卸载openssh9.5p1 
yum remove -y openssh
#清理残余文件
rm -rf /etc/ssh/*

4.7、安装openssh9.7p1

#1.进入openssh-9.7p1目录
cd /usr/local/src/openssh-9.7p1
#2.配置
./configure --prefix=/usr/local/src/ssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/src/openssl --with-zlib=/usr/local/src/zlib 
#3.编译及安装
make -j 4 && make install
#4.查看目录版本
/usr/local/src/ssh/bin/ssh -V
#5.复制新ssh文件
cp -rf /usr/local/src/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd
cp -rf /usr/local/src/openssh-9.7p1/contrib/redhat/sshd.pam /etc/pam.d/sshd
cp -rf /usr/local/src/ssh/sbin/sshd /usr/sbin/sshd
cp -rf /usr/local/src/ssh/bin/ssh /usr/bin/ssh
cp -rf /usr/local/src/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
#6.允许root登录
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config

4.8、重启ssh

#重启sshd服务
systemctl restart sshd
#如果ssh无法重启,试试这个命令,然后再执行重启
systemctl daemon-reload

#查看服务运行状态
/etc/init.d/sshd status
#添加开机启动
chkconfig --add sshd
#查看升级后ssh版本
ssh -V

5、测试登录

#测试是否可以远程登录,如发现执行 
ssh root@***ip***后产生如下报错:
/etc/crypto-policies/back-ends/openssh.config: line 3: Bad configuration option: gssapikexalgorithms
/etc/crypto-policies/back-ends/openssh.config: terminating, 1 bad configuration options
#可以多换几台服务器进行连接测试。
排查思路:检查4.3-4.8之间的操作是否成功
#验证方式:
执行命令   echo $?
如返回0,则说明上一步操作成功

6、升级完成

如有安全相关要求,可关闭telnet,更换远程端口等。

  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值