在我们的网络 (1.0/24) 上,我们有许多服务器。其中一台服务器运行 VMware ESX,它有三台虚拟机,用于托管面向外部的各种网站和应用程序。
当前,服务器和每个虚拟机在与网络其余部分相同的子网和物理交换机上都有自己的本地 IP 地址。
我想知道这是否安全。我希望确保自己没有留下任何安全漏洞。我推测,由于虚拟机处于在线状态并在网上发布广告,因此追踪本地 IP 并立即查看其他设备不会花费太多精力(假设入侵者具有合理的技能和知识水平)。
我知道我们使用的 Netgear prosafe 交换机支持 VLANS,并且我知道我们使用的 Draytek Vigor 2820 路由器支持 VLANS 和第二个子网(?)。
我想知道“正常”的解决方案是什么,以及我是否需要进一步设置 VLANS 或者某些防火墙规则是否可以做到这一点?
答案1
我不确定您是在寻求有关锁定系统的一般指导,还是在询问是否由于虚拟化而必须采取任何特殊措施,因此我将尝试解决这两个问题。
这里没有发生任何神奇的事情,无论是好是坏,只是因为这些机器是虚拟客户机;如果它们是物理服务器,您将如何保护它们?好吧,你仍然需要那(而我的版本的“那”概述如下)。
每个虚拟客户机都应像平常一样受到保护,并且应警惕在面向互联网的虚拟机上托管任何暴露虚拟主机工作原理的软件(例如,不要在其中一个虚拟机上安装 VMWare 管理控制台,不要直接地公开虚拟服务器存储等)。
通常情况下,你应该使用防火墙保护你的服务器,该防火墙采用“默认拒绝”(1) 策略,只向互联网公开你希望公开的服务。如果你没有合适的防火墙和/或你没有将其配置为“默认拒绝”配置,那么你需要这样做现在。
完成这些之后,您现在拥有一个最小的“攻击面”,这意味着您可以集中大部分精力来保护、监控和修补这些已暴露给外界的服务。
您的虚拟主机应该保持安全,因为您只在几个虚拟客户机上公开了几个服务,所以虚拟主机本身的 IP 地址不会暴露给互联网。
话虽如此,使用您提到的 VLAN 设施将您为面向互联网的虚拟客户机公开的 IP 地址放置在他们自己的隔离 VLAN 中,远离虚拟主机的任何管理接口以及您可能拥有的任何其他服务器/基础设施,这并不是一个坏主意。
也许还值得考虑以下工具绊线如果您担心的话,可以监控系统是否发生变化。
(1)默认拒绝是一套防火墙策略/规则,可确保默认情况下阻止所有内容,并且您只打开需要打开的端口/服务。这应该可以确保只公开绝对需要公开的服务,虽然它不是万能的安全方案,但它确实大大提高了您保护服务器和网络安全的机会。
答案2
您应该保护您的 VMWare 服务器。它应该只能通过物理上分离的后端管理网络访问。所提供的网络不应在该服务器上使用(即不要在那里放置任何 IP)。
VMWare 在访问图形内存方面存在一些弱点,这可能会导致权限升级,直至您在 VMWare 服务器而不是虚拟主机上执行代码。
我也没有看到任何可以追踪此类攻击的有用工具 - 尤其是如果它们是基于 RAM 且非持久性的(tripwire 不会在那里看到任何文件更改)。但也许你可以密切关注 VMWare 服务器进程的操作...
答案3
当您在互联网和本地网络之间拥有适当的防火墙时,没有人可以访问您的其他服务/计算机,除非在防火墙或您的公开服务中发现某种漏洞。
您可以尝试将虚拟服务器 NIC 保留在“管理”网络以外的其他 VLAN 上。
答案4
除了上述建议之外,为什么不将网络区域划分为多个特定用途:应用程序、数据库或基于客户区域,并用防火墙将它们分开。这样,一台服务器中的任何攻击都不会导致另一台服务器的攻击。
设置完成后,您可以将此网络分区推送到 ESX 主机。一个网络区域对应于 ESX 主机中的 1 个 NIC(或 2 个 NIC 用于组合)。自然,您的虚拟机也将享受此网络隔离的相同好处。