记一次设置 Windows 服务器安全组无效的坑

2020-12-17  本文已影响0人  coder_Ryan

本次踩坑源于客户需求在生产环境安装 Deep Security Agent,关于 Deep Security 可查阅官网 Deep Security

Deep Security 主要包含两个部分,其中一个是 manager,另一个是 Agent,顾名思义,manager 管理了各个 Agent,由于种种历史原因,Deep Security 仅安装在我们的生产环境,测试环境中并没有安装,所以此次安装 Agent,我们需要在测试环境安装完整的 Deep Security(包含 manager 以及 Agent)

一切安装依照官方文档,安装各种数据库依赖等,都还算顺利,直到最后,Deep Security 的 manager 需要对 Agent 开发 4122,以及 4120 的端口,Agent 需要对 manager 开放 4118 的端口。

于是 AWS Security Group 一顿设置,我们完成了该要求。

manager 开放如下 inbound:

Type Protocol Port range Source Description - optional
Custom TCP TCP 4122 Agent-Security Group ID Agent to manager
Custom TCP TCP 4120 Agent-Security Group ID Agent to manager

manager 开放如下的 outbound:

Type Protocol Port range Destination Description - optional
Custom TCP TCP 4118 Agent-Security Group ID manager to Agent

Agent 开放如下的 inbound:

Type Protocol Port range Source Description - optional
Custom TCP TCP 4118 manager-Security Group ID manager to Agent

Agent 开放如下的 outbound:

Type Protocol Port range Destination Description - optional
Custom TCP TCP 4122 manager-Security Group ID Agent to manager
Custom TCP TCP 4120 manager-Security Group ID Agent to manager

一切准备就绪,却发现 manager,Agent无法正常的通信,错误显示 Agent to manager heartbeat failed.

于是尝试使用 telnet 检查端口通信是否正常:

telnet agent-ip 4118

显示通信正常

telnet manager-ip 4122
telnet manager-ip 4120

均通信失败!!!

咦!我明明设置了安全组开放对应的端口,为什么不能正常通信呢?此时开始怀疑是否本机Deep Security进程出现问题,没有正常监视本机 4122 以及 4120 端口

于是在 manager 机器上我重新测试了本地的 4122 4120 端口

telnet localhost 4122
telnet localhost 4120

通信正常!本地没有问题,应用正常监听

此时已经大概猜到问题所在,想起 windows 其实自身也有一个防火墙在,如果我们回想本机上运行一些如 nginx 的应用程序监听本地端口时,经常会弹窗询问我们是否同意监听 8080 端口。其实这就是操作防火墙开放端口的询问。

于是我们在 manager 这台 windows 服务器上以管理员身份执行如下的命令来开放 4122,4120 的端口

netsh advfirewall firewall add rule name="ds_server" dir=in protocol=tcp localport=4122 action=allow
netsh advfirewall firewall add rule name="ds_server" dir=in protocol=tcp localport=4120 action=allow

开放本机防火墙之后,到 Agent 服务器上再次使用 telnet 测试与manager的通信,此时通信正常。

如今已经是云时代了,所有服务器都上云,由于云服务商为我们提供了很多的安全设置,很多时候我们容易忽略了服务器自身的防火墙,导致即使是在云服务商的管理平台上开放了端口,服务器仍然不能正常访问。

上一篇 下一篇

猜你喜欢

热点阅读