Google Cloud Platform Stackdriver正常运行时间检查TCP端口:3306

时间:2018-12-13 03:02:52

标签: google-cloud-platform google-cloud-stackdriver

我确实在GCP堆栈驱动程序上设置了正常运行时间检查以监视TCP端口3306,并且如果我通过在IP地址范围为0.0.0.0/0的端口3306中打开防火墙来设置GCP中的防火墙规则,则可以正常工作的机器人程序尝试攻击我们的MySQL服务器。

有人知道堆栈驱动程序运行正常运行时间检查的IP范围是什么吗?这样我就可以加入防火墙规则了。

谢谢

1 个答案:

答案 0 :(得分:2)

Google Cloud通过TXT DNS资源记录发布IP地址范围。

[2018年12月18日更新]。 Google现在发布一种获取StackDriver IP地址的方法:

client = monitoring_v3.UptimeCheckServiceClient()
ips = client.list_uptime_check_ips()
print(tabulate.tabulate(
    [(ip.region, ip.location, ip.ip_address) for ip in ips],
    ('region', 'location', 'ip_address')
))

Getting uptime-check IP addresses

[结束更新]

Google更改了IP地址,因此您将需要一个自动化的工具来处理更新。下面我展示了获取CIDR块的手动方法。在实践中,我将用Python编写一个Cloud Function来处理此列表,然后更新防火墙规则集。

我的信息来源是Google Qwiklabs。我是从其中一个实验室记录下来的-我不记得是哪个实验室的。

nslookup -q=TXT _cloud-netblocks.googleusercontent.com  8.8.8.8

这将返回TXT记录:

usercontent.com  8.8.8.8
Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Non-authoritative answer:
_cloud-netblocks.googleusercontent.com  text =

        "v=spf1 include:_cloud-netblocks1.googleusercontent.com include:_cloud-netblocks2.googleusercontent.com include:_cloud-netblocks3.googleusercontent.com include:_cloud-netblocks4.googleusercontent.com include:_cloud-netblocks5.googleusercontent.com ?all"

最后一行包括许多其他记录,以_cloud-netblocks1.googleusercontent.com

开头
nslookup -q=TXT _cloud-netblocks1.googleusercontent.com 8.8.8.8

这将返回您感兴趣的信息块。请注意,您需要对上面返回的每个_cloud-xxxx记录重复此操作。

Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Non-authoritative answer:
_cloud-netblocks1.googleusercontent.com text =

        "v=spf1 include:_cloud-netblocks6.googleusercontent.com include:_cloud-netblocks7.googleusercontent.com ip4:8.34.208.0/20 ip4:8.35.192.0/21 ip4:8.35.200.0/23 ip4:108.59.80.0/20 ip4:108.170.192.0/20 ip4:108.170.208.0/21 ?all"

注意上面的最后一行。它包含多个CIDR块。重复上述操作。

ip4:8.34.208.0/20 ip4:8.35.192.0/21 ip4:8.35.200.0/23 ip4:108.59.80.0/20 ip4:108.170.192.0/20 ip4:108.170.208.0/21