谷歌云 - 阻止传入连接

5

有没有一种方法可以阻止特定一组IP地址访问Google Cloud?

我们公司的网站托管在GCE上,我想阻止当前正在爬取我们网站的几个IP地址。我在GCE控制台的“防火墙”部分中找不到任何选项。

谢谢! Alex

3个回答

4
GCE中的防火墙用于“允许”传入流量,不幸的是无法用于创建“阻止”规则。总之,默认情况下几乎所有内容都被阻止,您需要创建规则以允许传入流量。
相反,您可以使用VM本身的防火墙。例如,如果您正在运行Linux实例,则可以查看iptables。这是关于它的维基百科文章,但我强烈建议您通过手册了解详细信息。这样,您就可以创建一个规则来阻止一个特定的IP地址。

这正是我最终采取的做法(使用iptables)。谢谢。 - Alex2326
2
这个解决方案已经不再必要。在Google Cloud Platform控制台的VPC网络 > 防火墙规则下,现在可以封锁特定IP地址集的流入流量。请参见https://dev59.com/VIPba4cB1Zd3GeqPzO8Q#49938304。 - Simon Watson
你能否更改被接受的答案,@Alex2326? - Greg Dubicki

1
在Linux上,最有效的阻止方式是使用ipset,比使用iptables更快。
命令:
sudo ipset -N BLOCK nethash
sudo ipset -q -A BLOCK 35.192.0.0/12
sudo ipset -q -A BLOCK 35.208.0.0/12
sudo ipset -q -A BLOCK 35.240.0.0/13
sudo ipset -q -A BLOCK 35.224.0.0/12
sudo ipset -q -A BLOCK 35.184.0.0/13
sudo iptables -A INPUT -m set --match-set BLOCK src -j DROP
  1. 第一行在ipset中创建一个IP和范围列表,称为BLOCK
  2. 接下来的五行将Google Cloud IP范围阻止到BLOCK ipset中
  3. 最后一行告诉iptables阻止与匹配BLOCK ipset的任何地址之间的任何请求

据我所知,这些是撰写时的Google Cloud IP范围。您可以通过WHOIS查询它们进行检查;尽管我认为可能发生的唯一变化是添加更多IP而不是删除当前IP。


1
现在可以在Google Cloud平台控制台的VPC网络>防火墙规则下阻止特定一组IP地址的流量。这意味着您可以将一个阻止规则应用于所有位于同一VPC网络上的GCE实例。以下是我用来阻止特定一组IP地址的规则设置:优先级900(需要比您的允许规则更低的数字,以便在匹配被阻止的IP地址时覆盖您的允许规则),方向为入站,匹配后动作为拒绝,源过滤器为IP地址或IP地址范围的逗号分隔列表,协议和端口为全部拒绝,强制执行为启用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接