一、背景
根据安全扫描结果,发现原系统自带openssh存在高危漏洞。需要针对图中漏洞进行处理。
二、解决思路
由于ssh服务涉及运维方面,对openssh更新前需要预留其他连接服务器方法(如:telnet、VNC)。防止在升级的过程中导致服务器连接不上。
以centos7为例,采取telnet方式对openssh升级至openssh-9.2版本。
当前版本如下图:
注:本方法银河麒麟、中标麒麟同样适用,需要自行结合上述方法操作。
三、操作步骤
3.1准备工作
3.1.1 配置telnet 服务
telnet安装
yum install telnet* xinetd #安装telnet服务
设置服务开机自启及启动
systemctl enable xinetd.service
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start xinetd
设置防火墙放通telnet
firewall-cmd --zone=public --add-port=23/tcp --permanent
firewall-cmd --complete-reload
配置用户登录
"s/auth required pam_securetty.so/#auth required pam_securetty.so/g" /etc/pam.d/remote
# 如果没有以下这个文件,新建文件写入内容。
[root@ct1 ~]# cat /etc/xinetd.d/telnet service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
测试telnet服务连接并成功登录
3.1.2环境依赖安装
yum install pam-devel openssl openssl-devel wget gcc
3.1.3 openssh安装包下载并上传
下载地址:
pub-OpenBSD-OpenSSH-portable安装包下载_开源镜像站-阿里云
上传至服务器
3.1.4 备份openssh配置
cp -r /etc/ssh/ /etc/ssh_old/
3.2 升级操作
3.2.1 通过telnet连接服务器
3.2.2 卸载ssh服务
yum remove openssh -y
rm -rf /etc/ssh/*
3.2.3 解压安装包并进入目录
tar -zxvf openssh*
cd openssh*
3.2.4 编译安装
编译配置
./configure --sysconfdir=/etc/ssh --with-md5-passwords --with-pam
配置文件迁移
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
编译安装
make && make install
3.2.5配置
配置文件修改
sed -i "s/SSHD=\/usr\/sbin\/sshd/SSHD=\/usr\/local\/sbin\/sshd/g" /etc/init.d/sshd
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
设置开机启动项
chmod +x /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
systemctl daemon-reload
systemctl restart sshd
3.3验证升级结果
至此openssh升级至最新版本