netstat | grep http
昨天,我在 Azure Ubuntu VM 上运行时注意到了一些可疑活动:
类似这样的语句有 60 多行:
tcp 0 0 ser:http hosted-by.blazing:29248 SYN_RECV
tcp 0 0 ser:http hosted-by.blazingf:59438 SYN_RECV
tcp 0 0 ser:http 8.8.8.8:7057 SYN_RECV
# [SNIP]
我猜这是一次 SYN 洪水攻击,并且考虑到8.8.8.8
可能存在一些 IP 欺骗?我没有 Azure 的任何 DDOS 保护,只有标准的 Ubuntu VM。我尝试了一些方法:
取消注释该行net.ipv4.tcp_syncookies=1
并/etc/sysctl.conf
运行,sysctl -p
但上述数据包继续运行。
我已经有自己的了iptables 脚本到位,稍微锁定服务器。在检查此脚本时,我注意到以下几行不相关的代码/var/log/syslog
:
INFO Exception processing GoalState-related files: [ProtocolError]
[Wireserver Exception] [HttpError] [HTTP Failed]
GET http://168.63.129.16/machine/?comp=goalstate -- IOError
timed out -- 6 attempts made
对该 IP 进行调查后发现,Azure 基础设施的一部分,所以我继续将其添加到我的防火墙脚本中,以允许通过端口 80 向此 IP 发出传出流量。
突然间,早期的 SYN 流量停止了。
更新
好的,有些进一步的调查显示 Azure 提供了基本级别的 DDOS 防护:
基本:作为 Azure 平台的一部分自动启用。始终在线的流量监控和对常见网络级攻击的实时缓解,提供与 Microsoft 在线服务相同的防御措施。整个 Azure 全球网络可用于跨区域分发和缓解攻击流量。为 IPv4 和 IPv6 Azure 公共 IP 地址提供保护。
我想现在我的问题是,对于知情人士来说:允许传出 HTTP 流量是否168.63.129.16
是这种保护的关键部分,并解释我所看到的行为?
答案1
168.63.129.16 用于您的 VM 与内部 Azure 资源(如监控、来宾代理心跳、负载平衡器探测)进行通信,并向平台发出 VM 就绪状态信号。我无法找到使用该 IP 进行通信的所有内容的明确列表,但如果您不允许访问,您在 Azure 中的体验会降低,因此我建议您这样做。
无论它是否需要 DDOS 保护,我怀疑它可能不需要,因为大多数 DDOS 保护将在到达您的 VM 之前在网络级别完成,但是,可能会使用通过该路由发送的一些监控数据。