一、升级背景
通过绿盟漏洞扫描工具检测OpenSSH安全漏洞CVE-2021-28041,现公司要求修复。

解决方法:openssh升级到openssh-8.6p1。

二、环境信息
操作系统:Centos7.6.1810

openssh:OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
openssl:OpenSSL 1.0.2k-fips 26 Jan 2017

三、注意事项

1、检查防火墙或selinux是否关闭。
2、更新前一定要多开1个或1个以上ssh终端,一旦更新失败当前shell终端是无法操作的,也就无法进行版本回退。
3、升级前一定要对ssh进行备份,避免更新失败时能回滚。
4、升级前一定要提前在测试环境验证,运行一段时间,确认没有问题才可在生产环境进行更新操作。
5、对于生产环境主机数量比较多时,建议先在1台或几台服务器上更新,运行一段时间,确认没有问题再执行批量更新操作。

总结:对于以上需要注意的内容,建议大家务必重视,小心谨慎总没错的。

systemctl enable xinetd.service && systemctl enable telnet.socket && systemctl start telnet.socket && systemctl start xinetd
useradd test #创建普通用户用于telnet登录,登录后切换root,不能直接用root登录。
passwd test

远程测试

telnet IP
输入test用户密码 登陆成功 su – root 切换root
(若条件允许可以重启服务器再测试telnet是否正常 保证万无一失)

5、验证telnet可以正常登录

6.备份文件,需要备份的是openssh从来都没有升级过的文件,对于openfile非常重要:
不备份安装完成后会密码无效提示认证失败!

mkdir /openssh.bak
cp /etc/pam.d/sshd /openssh.bak

四、升级步骤
1、升级准备

cd /opt && wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz

2、安装依赖软件包

yum install gcc -y
yum install -y zlib-devel openssl-devel 
yum install pam-devel libselinux-devel zlib-devel openssl-devel -y

3、备份ssh(非常重要,请严格执行)

mv /etc/ssh /etc/ssh.bak
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/sbin/sshd /usr/sbin/sshd.bak

4、编译安装

cd /opt && tar -zxvf openssh-8.6p1.tar.gz
chown root.root /opt/openssh-8.6p1 -R
cd /opt/openssh-8.6p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam \
--with-zlib --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --without-hardening
make && make install

5、授权

chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key

6、复制配置文件并设置允许root用户远程登录

cd /opt/openssh-8.6p1
cp -a contrib/redhat/sshd.init  /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod u+x /etc/init.d/sshd
mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak

7、修改ssh配置

vim /etc/ssh/sshd_config 
PermitRootLogin yes
PasswordAuthentication yes
UseDNS no
UsePAM yes

8、设置开机自启

chkconfig --add sshd
chkconfig sshd on

9、重启ssh服务

systemctl daemon-reload
systemctl restart sshd

10、验证

[root@lvs-keepalived-02 ~]# ssh -V
OpenSSH_8.6p1, OpenSSL 1.0.2k-fips  26 Jan 2017

五、故障处理
现象:centos7升级ssh7.4到8.6版本后,ssh连接不稳定,时断时续,systemctl status sshd查看服务状态为activating(start),查看/var/log/message里不断提示sshd.service holdoff time over,scheduling restart

原因:/usr/lib/systemd/system/sshd.service 与 systemd不兼容

处理办法:

[root@localhost ~]# cd /usr/lib/systemd/system 
[root@localhost system]# mv sshd.service sshd.service.bak  
[root@localhost system]# systemctl daemon-reload   

#重启前执行

1、sshd -t 检查下配置有没有问题
2、/var/log/message里sshd有没有继续报错

以上正常后重启

systemctl restart sshd

六、版本回退
回滚前:

[root@localhost etc]# ssh -V
OpenSSH_8.6p1, OpenSSL 1.0.2k-fips  26 Jan 2017
回滚操作:

rm -rf /etc/ssh
mv /etc/ssh.bak /etc/ssh 
mv /usr/bin/ssh.bak /usr/bin/ssh 
mv /usr/sbin/sshd.bak /usr/sbin/sshd 
systemctl restart sshd

[root@localhost etc]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐