/ /
随着新冠疫情的逐步缓解,2020年度的护网行动也在如火如荼的开展,生产无小事,安全大于天,参与其中的小伙伴们都在加班加点查找系统中的薄弱点,修补漏洞,进行攻防演练,保证网络通畅和系统安全。今天我们就来详述下最常见的Linux下升级openssh的步骤及可能遇到的问题。
首先科普下openssh,openssh(OpenBSD Secure Shell)是OpenBSD计划组所维护的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。
openssh经常性会报出很多漏洞,为了安全需要通过打补丁或升级openssh来解决ssh漏洞。
下图为主流的企业Linux发行版本openssh和openssl版本对照表:

目前openssh最新版本为8.3,通过上图可以看出主流Linux发行版本openssh版本普遍要比当前openssh版本要低,很多客户系统漏洞扫描后会报告出来很多openssh漏洞,安全厂家都建议升级openssh到较新版本,操作系统厂家一般不会跨openssh大版本升级来解决漏洞。
这样为我们系统安全加固带来很大的困惑。我们一般建议客户这样升级openssh:
1)优先升级红帽或suse厂家的openssh补丁;
2)如果厂家补丁不能解决漏洞,建议自编译较新版本openssh rpm包,使用rpm包升级openssh;
3)如果遇到无法编译openssh rpm包系统,只能使用源代码升级;
升级注意事项:
1)openssh升级一般有源码编译安装和rpm安装两种方式,建议使用rpm方式(需要自己build rpm包),先了解当前系统环境(如之前已经升级过一个版本)再决定具体升级方式和步骤。
2)其次在当前openssl版本满足要升级的openssh版本要求时(可以通过源码包的INSTALL文件查看),及没有特殊要求时,建议不要升级openssl,可能会导致系统上依赖openssl包的其它软件包执行出现错误。如果要升级openssl切记做好测试。
1)编译openssh8.1 rpm包
需要事前使用openssh源代码编译生成openssh rpm包,后续使用rpm包升级其他服务器。编译过程请参考openssh官方手册。
2)配置telnet-server
以防升级异常还得跑机房

编辑/etc/securetty添加

用root用户测试主机
3)备份文件
部分pam.d模块和ssh目录

4)openssh升级包
查看当前安装的包

升级openssh
5)恢复配置

6)验证ssh版本、客户端连接、scp、sftp、普通用户如应用用户的ulimit是否生效
7)最后可以删除telent server了
1)sshd服务重启异常

提示/etc/ssh/ssh_host_ed25519_key权限不对,修改权限

再次启动ssh

2)解决ulimit不生效问题
配置用户nofile和nproc,普通用户直接登录生效

升级openssh导致sshd pam模块被修改

3)root无法直接登录
如果root不能登录:
修改/etc/ssh/sshd_config 中的
#PermitRootLogin prohibit-password为PermitRootLogin yes
重启sshd服务
红帽操作系统建议采用自编译rpm包方式升级,不推荐直接使用源码升级,另外openssh升级不当会导致连接、应用启动等一系列问题,所以升级前一定做好备份工作,最重要的升级之后做好验证,以防后续各类问题发生。
/ /
好啦,本期技术人生就到这里。再次提醒奋斗在护网行动一线的小伙伴们,注意防控疫情,保护自身安全!
- end -
关注 “中亦科技” 公众号
查看更多精彩文章






