记一次#34;非常诡异#34;的云安全组规则问题排查过程

记一次非常诡异的云安全组规则问题排查过程 问题背景:

1、应用服务器:172.16.100.21

2、数据库服务器:172.16.100.22 (sqlServer 1433)

如图所示

(图片可点击放大查看)

一、问题现象

开发工程师反馈:

1、办公区的PC telnet 172.16.100.22 1433 sqlServer端口是通的,用Navicat可以连上数据库

2、但是非常奇怪的是:应用服务器172.16.100.21 上telnet 172.16.100.22 1433却不通,应用服务器联调不成功

(图片可点击放大查看)

二、问题确认与分析

我这边检查发现

1、应用服务器和数据库服务器使用的同一云服务器安全组规则

如下图所示

(图片可点击放大查看)

可以看到安全组规则对外是(0.0.0.0/0)全部开放1433端口

2、我尝试用运维区的服务器也进行端口探测

发现172.16.100.22 1433 sqlServer端口是通的

(图片可点击放大查看)

所以非常纳闷 这时以为问题应该出在数据库服务器上面,是不是数据库服务器自身做了啥限制

检查过172.16.100.22的操作系统防火墙配置,没有做任何限制,防火墙直接关闭的

也询问过开发工程师,数据库层面有没有限制,也说没有做限制

这也太奇怪了吧

三、继续排查

检查数据库服务器上的安全防护软件(HIDS)也没有做限制

与该开发工程师沟通过,联调阶段数据库服务器可以重启,也进行过重启,问题依旧 (虽然重启能解决80%的问题)

问题陷入僵局

四、跳出思维定势,问题瞬间解决

在沟通(battle)的过程中,突然开发工程师的一句话提醒了我:应用服务器对外访问有没有限制?对外?下行规则都放开外部访问的,他说的对外访问是指上行规则?出方向?

是啊,问题有没有可能出在源服务器上,而不应该出在目的服务器上,得转换一下方向

这时我打算去检查一下应用服务器自身操作系统防火墙的出站规则,突然在安全组上行规则(出方向)看到这个小细节

(图片可点击放大查看)

系统判定了一些高危端口,默认将其加入了安全组并禁止。 对于 Windows 云服务器,系统默认限制了几个“上行安全组”规则:
协议 TCP,端口3389,1433,445,135,139;
协议 UDP,端口1434,445,135,137,138。
Windows 云服务器向外发起 远程桌面连接,您需要在安全组中放行规则 tcp 上行 3389 端口;
Windows 云服务器向外发起 sql Server 连接,您需要在安全组中放行规则 tcp 上行 1433 端口。

瞬间知道原因了 这时加了一条规则解决问题

(图片可点击放大查看)

开发反馈应用服务器:172.16.100.21可以正常连上172.16.100.22 (sqlServer 1433)数据库,问题解决

五、
你可能想看:
标签: 数据库
分享给朋友: