如何隐藏tidb telnet探测版本

【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.1.2
【复现路径】
【遇到的问题:问题现象及影响】如何影响下列版本
【资源配置】
【附件:截图/日志/监控】

修改下version系统变量试试,猜的

技术上一些高级的防火墙应该可以,应用软件解决不了这个问题

防火墙应该也解决不了,因为防火墙无法判断是否登录,这个功能应该由软件本身来实现。不过好像mysql也不支持。

https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_connection_phase_packets_protocol_handshake_v10.html

这是mysql握手协议的一部分。

甚至在mysql文档上还特意强调 human readable

所以你要么完全不开放这个端口(开放了tcp能连上,一握手就肯定有),要么改version配置,给他一个假的。
https://docs.pingcap.com/zh/tidb/stable/system-variables#version

但我感觉你看都不想看到的话,不是一定要访问这个端口的机器,直接不让访问最直接,最安全。

2 个赞

防火墙拦住,禁止不必要的ip连这个端口。
或者前面挂代理,只能代理访问tidb
都不想搞的话只能改源码了。

  1. 防火墙禁止不必要的ip访问4000端口。
  2. tidb前面挂代理,同样也是让tidb的端口只允许代理访问
  3. 改源码,自己编译。

直接改个假的版本容易点
https://docs.pingcap.com/zh/tidb/stable/high-reliability-faq#我们的安全漏洞扫描工具对-mysql-version-有要求tidb-是否支持修改-server-版本号呢

1 个赞

没办法 必须对外,我看mysql只有改源码去改

主要是不想让外面知道这是个数据库

1 个赞

除了拔了网线,做不到的

只许内网连接不就行了啊,我这数据库都不能外网连接

使用防火墙,不允许的IP不让进来不就行了

操作系统防火墙搞个白名单不就行了,只有应用可以访问数据库,其余的主机一律不准访问。

白名单控制下

真真假假,假假真真,再来几套蜜罐