首页 > 解决方案 > 如何在 Google VM 上设置 SSH 防火墙规则,以便只有我的办公室计算机可以通过 SSH 访问 VM?

问题描述

在过去的几天里,我的谷歌虚拟机不断受到攻击,我收到警告并面临谷歌暂停虚拟机的情况,说“在虚拟机上发现了加密货币挖矿活动”。我怀疑有人入侵了我的虚拟机并进行了此活动。所以,现在我想创建一个带有安全 SSH 防火墙的新虚拟机,这样只有有限的计算机可以访问虚拟机。

我已经尝试在防火墙 ssh 允许规则上设置我的办公室路由器的 IP,但是在设置此规则后,与 VM 的 SSH 连接也会从其他 IP 地址建立。我只想在防火墙规则中指定两个 IP,但它需要 CIDR 格式的 IP 范围(我不清楚)。

我还发现了一些建议,我应该更改 VM 的 ssh 端口。

当这台计算机连接到路由器并且所有路由器的外部IP都相同时,任何人都可以解释如何将我的Google VM的访问权限限制在一组特定的计算机上?

谢谢

标签: google-cloud-platformfirewallvpc

解决方案


我了解到您想要创建一个具有安全防火墙 SSH 的新虚拟机,并且想要限制和允许来自您办公室路由器的特定 IP 地址的访问。

为此,您可以按照此处的说明创建防火墙规则1。要管理特定实例的访问,我建议您将网络标签用于防火墙规则2

回到您的担忧,即使您为特定 IP 地址创建防火墙规则,与 VM 的 SSH 连接也会从其他 IP 地址建立。造成这种情况的原因可能是这样的:

您在 GCP 中创建的每个项目都带有默认的防火墙规则。因此,您可能需要阻止一个 default-allow-ssh 规则,我想这可能会导致问题。请注意,默认网络包含一些覆盖此规则的附加规则,允许某些类型的传入流量。有关详细信息,请参阅随附的链接 [3][4]。

[3] https://cloud.google.com/vpc/docs/firewalls#default_firewall_rules [4] https://cloud.google.com/vpc/docs/firewalls#more_rules_default_vpc

您还可以添加访客级别的防火墙规则,例如使用“iptables”为您的 VM 实例添加另一个安全级别。但是,GCP 项目级防火墙规则负责在网络流量进入您的 VM 实例之前对其进行检查。操作系统防火墙阻止到任何端口 22 的所有互联网流量。

为了允许特定地址能够连接到您的 VM 实例,您可以在“default-allow-ssh”GCP 防火墙规则的“IP 范围”值上添加 /32 的 CIDR。例如,45.56.122.7/32 和 208.43.25.31/32。


推荐阅读