google-cloud-platform - 如何在 Google VM 上设置 SSH 防火墙规则,以便只有我的办公室计算机可以通过 SSH 访问 VM?
问题描述
在过去的几天里,我的谷歌虚拟机不断受到攻击,我收到警告并面临谷歌暂停虚拟机的情况,说“在虚拟机上发现了加密货币挖矿活动”。我怀疑有人入侵了我的虚拟机并进行了此活动。所以,现在我想创建一个带有安全 SSH 防火墙的新虚拟机,这样只有有限的计算机可以访问虚拟机。
我已经尝试在防火墙 ssh 允许规则上设置我的办公室路由器的 IP,但是在设置此规则后,与 VM 的 SSH 连接也会从其他 IP 地址建立。我只想在防火墙规则中指定两个 IP,但它需要 CIDR 格式的 IP 范围(我不清楚)。
我还发现了一些建议,我应该更改 VM 的 ssh 端口。
当这台计算机连接到路由器并且所有路由器的外部IP都相同时,任何人都可以解释如何将我的Google VM的访问权限限制在一组特定的计算机上?
谢谢
解决方案
我了解到您想要创建一个具有安全防火墙 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。
推荐阅读
- c# - 编写单元测试时出现 System.UnauthorizedAccessException
- python - python JSON RPC请求响应403
- android - 谷歌地图 SDK 地理编码
- ssjs - 在云页面中使用 ampscript 或 SSJS 添加延迟
- ubuntu - 从 Ubuntu 存储库和官方 Docker 存储库安装 Docker 的区别?
- ios - UITabBar 最佳实践
- html - 元素不会相互堆叠
- java - 仅使用 SAS 令牌连接到 Azure 存储帐户?
- linux - git log 不显示所有项目
- gpsd - AIS 位置信息完成 UTC 获取