升级背景
因为安全评测,客户现场有多台数据库主机检测出了SSH相关的漏洞,根据漏洞报告查询,基本升级主机的SSH以及ssl版本,就可以进行加固。
本文档适用的操作系统:
Centos7 x86_64和bclinux x86_64
本文档升级对应版本:
OPENSSH版本:openssh-9.9p1
OPENSSL版本:openssl-1.1.1w
注意事项:
每台主机可能环境或者本身rpm包不一样,过程中如果有报错,根据实际报错查询需要安装的rpm即可,然后重新进行编译。
openssl升级操作步骤
查看原openssl版本:
[root@cs opt]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
上传openssl-1.1.1安装包进行编译安装:
[root@cs opt] # tar xf openssl-1.1.1w.tar.gz
[root@cs opt] # cd openssl-1.1.1w
[root@cs openssl-1.1.1w] # ./config --prefix=/usr/local/openssl11
[root@cs openssl-1.1.1w] # make
[root@cs openssl-1.1.1w] # make install
配置openssl1.1.1的PATH环境变量:
[root@cs openssl-1.1.1w]# echo 'export PATH=/usr/local/openssl11/bin:$PATH' > etc/profile.d/openssl11.sh
[root@cs openssl-1.1.1w]# chmod +x /etc/profile.d/openssl11.sh
配置openssl1.1.1的动态共享库加载路径:
[root@cs openssl-1.1.1w] # echo '/usr/local/openssl11/lib' > etc/ld.so.conf.d/openssl11.conf
[root@cs openssl-1.1.1w]# ldconfig
使环境变量生效并校验版本:
[root@cs openssl-1.1.1w]# . etc/profile.d/openssl11.sh
[root@cs openssl-1.1.1w]# openssl version
OpenSSL 1.1.1w 11 Sep 2023
openssh升级操作步骤
查看原openssh版本:
[root@cs opt]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
安装yum包:
[root@cs opt] # yum install zlib-devel pam-devel openssl-devel -y
修改主机host key权限:
#新版本Openssh要求600。
[root@cs opt] #chmod 600 /etc/ssh/ssh_*_key
备份sshd_config:
[root@cs opt] # cp -a /etc/ssh/sshd_config{,.`date +%F`}
关闭GSS认证:
#新版本Openssh不支持此认证方式。
[root@cs opt] # sed -i -r 's/^(GSSAPIAuthentication.*)/#\1/;s/^(GSSAPICleanupCredentials.*)/#\1/' /etc/ssh/sshd_config
编译升级openssh:
[root@cs opt]# tar xf openssh-9.9p1.tar.gz
[root@cs openssh-9.9p1]# cd openssh-9.9p1
[root@cs openssh-9.9p1]# ./configure --prefix=/usr/local/openssh
--with-default-path=/usr/local/bin:/bin:/usr/bin
--with-superuser-path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
--with-privsep-path=/var/empty/sshd --with-mantype=man
--with-pam --disable-strip --with-md5-passwords -with-zlib
--with-ssl-dir=/usr/local/openssl11
--with-ssl-engine --sysconfdir=/etc/ssh --libexecdir=/usr/libexec --datadir=/usr/share/openssh --mandir=/usr/share/man
[root@cs openssh-9.9p1]# make
[root@cs openssh-9.9p1]# make install
创建软链接:
#编译后的Openssh二进制文件启动时仍会读取/usr/local/openssh/etc下的配置文件,为保持兼容。
[root@cs openssh-9.9p1]# ln -sv /etc/ssh usr/local/openssh/etc
‘/usr/local/openssh/etc’ -> ‘/etc/ssh’
#为兼容原配置文件中sftp调用路径。
[root@cs openssh-9.9p1]# ln -sv /usr/libexec/openssh usr/local/openssh/libexec
‘/usr/local/openssh/libexec’ -> ‘/usr/libexec/openssh’
备份原sshd二进制文件:
[root@cs openssh-9.9p1]# mv usr/sbin/sshd{,.`date +%F`}
[root@cs openssh-9.9p1] # ll usr/sbin/sshd*
-rwxr-xr-x. 1 root root 852856 Aug 9 2019 /usr/sbin/sshd.2024-11-06
-rwxr-xr-x. 1 root root 3613 Aug 9 2019 /usr/sbin/sshd-keygen
将编译后的sshd创建软连接:
[root@cs openssh-9.9p1]# ln -sv /usr/local/openssh/sbin/sshd usr/sbin/
‘/usr/sbin/sshd’ -> ‘/usr/local/openssh/sbin/sshd’
重启sshd服务:
[root@cs openssh-9.9p1]# systemctlrestartsshd
[root@cs openssh-9.9p1]# systemctlstatussshd
● sshd.service-OpenSSHserverdaemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) sinceWed2024-11-0617:06:57CST; 922msago
Docs: man:sshd(8)
man:sshd_config(5)
MainPID: 35249 (sshd)
CGroup: system.slice/sshd.service
└─35249sshd: usr/sbin/sshd-D[listener]0of10-100startups
Nov0617:06:57cssystemd[1]: StartingOpenSSHserverdaemon...
Nov0617:06:57cssshd[35249]: Serverlisteningon0.0.0.0port22.
Nov0617:06:57cssshd[35249]: Serverlisteningon :: port22.
Nov0617:06:57cssystemd[1]: StartedOpenSSHserverdaemon.
[root@cs openssh-9.9p1]# sshd-V
OpenSSH_9.9p1, OpenSSL1.1.1w11Sep 2023
验证ssh连接:
C:\Users\52432>ssh root@1XX.XXX.44.128
root@1XX.XXX.44.128's password:
Last login: Wed Nov 6 17:15:49 2024 from 192.168.44.1
[root@cs ~]# sshd -V
OpenSSH_9.9p1, OpenSSL 1.1.1w 11 Sep 2023

本文作者:夏乙东(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




