修改OpenSSH服务版本号

前言

这几年信息安全要求很高,奈何口号响亮掩盖不了我们技术基础依然很低的事实,加上风口烧钱和政绩工程等因素,于是就诞生了一些乱象,其中一个就是安全扫描胡乱标记,这里面的典型就是OpenSSH的漏洞扫描报告。

比如,OpenSSH社区说我们最近修复了某个漏洞,发布补丁到新版本OpenSSH 9.7。然后像红帽,SUSE,欧拉,Ubuntu这些大公司或者Debian,ARCH等社区的发行版会第一时间把相关补丁打入自己的升级包,但是按照发行规则,命名就跟随大版本,如RHEL7/CentOS7新的升级包可能是openssh-server-7.4p1-23.el7_9.x86_64,也就是说版本继续在7.4后面增加小版本号。

这时候某些漏洞扫描工具就闪亮登场了,它们无力去验证对端的ssh服务到底有没有这个漏洞,但是sshd的版本号是谁都可以看到的啊,你是7.4,低于9.7,那你这个OpenSSH就是有漏洞。

这种扫描版本号来判断是否存在漏洞的方式并非不可行,只要去该Linux发行版的官网,查询下修补漏洞记录就可以知道某个版本号是否修复了某个漏洞,可是直到现在,这么一个简单的事情却没见到有人做。可能对安全扫描来说,能多找出一些漏洞更重要吧,哪怕这些漏洞根本不存在。

于是系统管理员花时间去修补不存在或者不必处理的漏洞,有时候,为了修补一个不存在的漏洞,还要升级OpenSSL,导致更多系统和应用的故障。

操作

下面的操作很危险,可能导致ssh远程链接失败,所以不要贸然在生产系统尝试。任何情况下操作请确保有另一个登陆系统的办法,比如云平台的novnc/vnc等等。

下面以Debian 11为例,其OpenSSH的版本是8.4p1-5+deb11u3


$ dpkg -l openssh-server
期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h)
| 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触发器未决(T)
|/ 错误?=(无)/须重装(R) (状态,错误:大写=故障)
||/ 名称           版本              体系结构     描述
+++-==============-=================-============-=================================================================
ii  openssh-server 1:8.4p1-5+deb11u3 amd64        secure shell (SSH) server, for secure access from remote machines

$ strings /usr/sbin/sshd | grep OpenSSH
OpenSSH_8.4p1 Debian-5+deb11u3
OpenSSH_8.4
OpenSSH_2.*,OpenSSH_3.0*,OpenSSH_3.1*
OpenSSH_2*,OpenSSH_3*,OpenSSH_4*
OpenSSH_7.0*,OpenSSH_7.1*,OpenSSH_7.2*,OpenSSH_7.3*,OpenSSH_7.4*,OpenSSH_7.5*,OpenSSH_7.6*,OpenSSH_7.7*
OpenSSH_3.*
OpenSSH_5*
OpenSSH_6.6.1*
OpenSSH_6.5*,OpenSSH_6.6*
OpenSSH*
OpenSSH_8.4p1

我们把这个8.4改成9.5

在本服务器上安装hexedit,这是一个十六进制编辑器。

创建副本并修改

备份和复制sshd的执行文件,通常是/usr/sbin/sshd

cp /usr/sbin/sshd /usr/sbin/sshd.$(date +%Y%m%d-%H%M)cp /usr/sbin/sshd /tmp/sshd

下面用hexedit修改/tmp/sshd的版本号,命令中的--color不是必须的

hexedit --color /tmp/sshd

下图两个区域,区域1是十六进制显示,2是文本显示,可以使用tab键在两个区域之间切换,我们切换到文本区域

按键Ctrl+s,查找OpenSSH_8

使用方向键,移动光标到OpenSSH_8.4p1的数字8上面

直接输入数字9,同样把小数点后面的4改为5

继续搜索OpenSSH_8和修改,每次修改都要保存

一共有三处,全部修改完成后按键Ctrl+x退出

替换

用这个修改过的/tmp/sshd替换/usr/sbin/sshd

mv /usr/sbin/sshd /usr/sbin/sshd.$(date +%Y%m%d-%H%M) && cp /tmp/sshd /usr/sbin/sshd

再用openssh客户端测试下,参数-v查看详情,客户端还是8.4p1,但是服务器已经是9.5p1了。

后记

无论如何,关注并安装发行版的最新openssh,这是大厂的实力和信誉。

用白名单限制访问IP地址和账户。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师之路魂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值