阻止 IP 访问 Google Compute Engine 实例
Block IP from accessing Google Compute Engine instance
我试图阻止某个 IP 地址或范围访问我的 Google Compute Engine 服务器上配置的 WordPress 服务器。
我知道我可以通过 Apache 阻止它,但即使我这样做了,我的 access_logs 仍然会收到来自该 IP 的请求的 403 错误。
有什么方法可以完全阻止 IP,甚至不让它到达 Apache?
在此先感谢您的帮助。
默认情况下,除了允许访问的端口和 IP 范围外,所有进入 GCE 的流量都被阻止。 GCE 防火墙不支持除特定 IP 或 IP 地址范围外允许所有内容连接。作为解决方法,您可以设置一个负载均衡器,并只允许从 LB IP 地址到实例的传入流量。您可以在此 Help Center article 中获得更多信息。
如果您想阻止单个 IP 地址,但允许所有其他流量,最简单的选择可能是在主机上使用 iptables
。 GCE firewall rules 旨在控制哪些 IP 地址可以访问您的实例,但允许 Internet 上除一个地址之外的所有内容可能写起来很烦人。
至block a single IP address with iptables
:
iptables -A INPUT -s $IP_ADDRESS -j DROP
或者只删除 HTTP(而不是 HTTPS 或其他协议):
iptables -A INPUT -s $IP_ADDRESS -p tcp --destination-port 80 -j DROP
请注意,在任何一种情况下,您都需要 运行 以 root 身份执行上述命令。
是的,您可以使用 Gcloud 防火墙阻止它。
尝试从命令行或登录 Google Cloud 创建防火墙规则。
示例:
gcloud compute firewall-rules create tcp-deny --network example-network --source-ranges 10.0.0.0/8 --deny tcp:80
以上规则将阻止从 10.0.0.0/8 到端口 80 (tcp) 的范围。
可以通过 tcp 和 udp 阻止其他 IP 范围。
有关更多信息,请查看:glcoud network config
这里是 Bitnami 开发者
如果你想屏蔽某个IP,你可以使用iptables
,正如post中所指出的那样。
此外,如果您希望在重启计算机时激活 iptables
规则,则必须执行以下操作:
sudo su
iptables-save > /opt/bitnami/iptables-rules
crontab -e
现在编辑文件并在末尾包含这一行:
@reboot /sbin/iptables-restore < /opt/bitnami/iptables-rules
这样,在每次启动时,系统都会加载 iptables 规则并应用它们。
要阻止违规IP,有一些不同级别的方法可以做到。从性能的角度来看,一般是:
网络防火墙 > 虚拟机 iptables > 虚拟机网络服务器 > 虚拟机应用程序。
- Google云有内置防火墙,免费。
例如,这个 gcloud 命令创建一个可以阻止 1 个或多个 ips 的防火墙规则。
gcloud compute --project=your-project-id firewall-rules create your-firewall-rule-name --direction=INGRESS --priority=900 --network=default --action=DENY --rules=all --source-ranges=ip1,ip2,ip3…
命令参数参考见这里https://cloud.google.com/sdk/gcloud/reference/compute/firewall-rules/create
也可以使用Google云控制台或者restapi创建,但是在控制台输入很多ips并不容易
内置防火墙的当前限制:
- 一个项目可以创建100条防火墙规则。
- 一个防火墙规则可以阻止 256 个 ip 源。
如果有10个其他防火墙规则,你可以阻止90x256=23040个独立ips,这对一般情况来说足够了。
注意:Google云应用引擎防火墙与内置防火墙分离。
- Linux iptables
查看其他答案。
- 网络服务器
Apache, Nginx 也可以屏蔽ip
- 申请
这里不推荐屏蔽ip。但是应用可以帮助分析哪些ip需要屏蔽,比如多次登录失败。
如果您希望系统自动阻止 GCP 防火墙中的所有错误 IP 地址,您可以查看 Gatekeeper for Google Cloud Firewall。
它分析您的网络连接和 WordPress/Apache 动态记录并创建适当的规则来抵御 DoS 和 DDoS 攻击以及间谍机器人。
我试图阻止某个 IP 地址或范围访问我的 Google Compute Engine 服务器上配置的 WordPress 服务器。
我知道我可以通过 Apache 阻止它,但即使我这样做了,我的 access_logs 仍然会收到来自该 IP 的请求的 403 错误。
有什么方法可以完全阻止 IP,甚至不让它到达 Apache?
在此先感谢您的帮助。
默认情况下,除了允许访问的端口和 IP 范围外,所有进入 GCE 的流量都被阻止。 GCE 防火墙不支持除特定 IP 或 IP 地址范围外允许所有内容连接。作为解决方法,您可以设置一个负载均衡器,并只允许从 LB IP 地址到实例的传入流量。您可以在此 Help Center article 中获得更多信息。
如果您想阻止单个 IP 地址,但允许所有其他流量,最简单的选择可能是在主机上使用 iptables
。 GCE firewall rules 旨在控制哪些 IP 地址可以访问您的实例,但允许 Internet 上除一个地址之外的所有内容可能写起来很烦人。
至block a single IP address with iptables
:
iptables -A INPUT -s $IP_ADDRESS -j DROP
或者只删除 HTTP(而不是 HTTPS 或其他协议):
iptables -A INPUT -s $IP_ADDRESS -p tcp --destination-port 80 -j DROP
请注意,在任何一种情况下,您都需要 运行 以 root 身份执行上述命令。
是的,您可以使用 Gcloud 防火墙阻止它。
尝试从命令行或登录 Google Cloud 创建防火墙规则。
示例:
gcloud compute firewall-rules create tcp-deny --network example-network --source-ranges 10.0.0.0/8 --deny tcp:80
以上规则将阻止从 10.0.0.0/8 到端口 80 (tcp) 的范围。 可以通过 tcp 和 udp 阻止其他 IP 范围。
有关更多信息,请查看:glcoud network config
这里是 Bitnami 开发者
如果你想屏蔽某个IP,你可以使用iptables
,正如post中所指出的那样。
此外,如果您希望在重启计算机时激活 iptables
规则,则必须执行以下操作:
sudo su
iptables-save > /opt/bitnami/iptables-rules
crontab -e
现在编辑文件并在末尾包含这一行:
@reboot /sbin/iptables-restore < /opt/bitnami/iptables-rules
这样,在每次启动时,系统都会加载 iptables 规则并应用它们。
要阻止违规IP,有一些不同级别的方法可以做到。从性能的角度来看,一般是:
网络防火墙 > 虚拟机 iptables > 虚拟机网络服务器 > 虚拟机应用程序。
- Google云有内置防火墙,免费。
例如,这个 gcloud 命令创建一个可以阻止 1 个或多个 ips 的防火墙规则。
gcloud compute --project=your-project-id firewall-rules create your-firewall-rule-name --direction=INGRESS --priority=900 --network=default --action=DENY --rules=all --source-ranges=ip1,ip2,ip3…
命令参数参考见这里https://cloud.google.com/sdk/gcloud/reference/compute/firewall-rules/create
也可以使用Google云控制台或者restapi创建,但是在控制台输入很多ips并不容易
内置防火墙的当前限制:
- 一个项目可以创建100条防火墙规则。
- 一个防火墙规则可以阻止 256 个 ip 源。
如果有10个其他防火墙规则,你可以阻止90x256=23040个独立ips,这对一般情况来说足够了。
注意:Google云应用引擎防火墙与内置防火墙分离。
- Linux iptables
查看其他答案。
- 网络服务器
Apache, Nginx 也可以屏蔽ip
- 申请
这里不推荐屏蔽ip。但是应用可以帮助分析哪些ip需要屏蔽,比如多次登录失败。
如果您希望系统自动阻止 GCP 防火墙中的所有错误 IP 地址,您可以查看 Gatekeeper for Google Cloud Firewall。 它分析您的网络连接和 WordPress/Apache 动态记录并创建适当的规则来抵御 DoS 和 DDoS 攻击以及间谍机器人。