我家用的台式电脑有两块网卡。一块用于个人上网,另一块则打算另辟蹊径。我打算在虚拟机上创建一个 SOCKS/VPN 服务器,专门用备用网络网卡,并为其分配自己的公共静态 IP 地址。我目前有一个网关“路由器”和一个调制解调器作为独立组件。
这个计划有两个方面对我来说仍然是个谜。
我可以将虚拟机流量隔离到其中一个 NIC,但是如何将主机流量隔离到另一个 NIC?
最安全和最便宜的设置方法是什么?
据我了解,我可以获得一个可使用 dd-wrt 或 OpenWrt 刷新的路由器,这样我就可以使用 1:1 NAT 并公开两个 IP。然后,我可以将现有网关放在主机的 NIC 和路由器之间,以提供额外的安全层。随着虚拟机的使用越来越频繁,它可能还需要在路由器内部设置一个硬件安全层。
或者,我可以买一个交换机和另一个网关。我以前没有买过交换机,我不确定在这种情况下要寻找什么。
我是否错过了其他可能性?
答案1
您可以通过不为该 NIC 的 roothost 接口启用/配置 L3 来隔离 roothost(假设虚拟机管理程序通过桥接的 L2 接口为 VM 提供网络)。这将提供流量分离和基本安全性(即不将 roothost 暴露给 VM)。
至于更严格的安全性,您真正的要求/担忧是什么?
从根主机到 VM,这始终是一件可疑的事情。
在虚拟机和网络之间,您实际上不需要更多硬件。您可以使用 OpenWrt 或任何其他启用了安全性的路由器部署另一个虚拟机,然后通过它传输流量。然后将外部桥接的 L2 连接到路由器虚拟机,并通过单独的虚拟交换机将目标虚拟机连接到路由器虚拟机。
但是,当您可以在目标虚拟机的操作系统上使用内部防火墙时,为什么还要考虑外部防火墙呢?
从安全角度来看,我不会真正使用 1:1 NAT,而只会公开/转发所需的端口。为您提供更多控制权,并提供额外的安全/复杂性层以抵御攻击者。
答案2
如果 ISP 将第二个地址配置为“路由”至您的主 IP 地址(或者如果您从路由器的 Internet 上行链路是某种点对点技术,例如 PPPoE):
您可以将IP地址分配给路由器,并对服务器的内部地址执行DNAT。
如果路由器支持自定义静态路由,则 1:1 NAT 毫无用处 - 您可以将第二个 IP 地址的静态路由添加到服务器的 LAN 地址或 LAN 接口本身,然后将该地址(作为 /32)直接分配给服务器。
如果您从路由器上行的互联网是标准以太网(而不是 PPPoE)和如果 ISP 将第二个地址配置为“on-link”:
您可以在路由器的 WAN 端口前面放置一个通用交换机,并将服务器连接到它。非托管交换机就可以了。在这种情况下,您需要使用服务器自己的防火墙,非常小心不要意外地将 iLO/iDRAC 等暴露到互联网上。
您可以将IP地址分配给路由器,并对服务器的内部地址执行DNAT,与上述相同。
您可以将 IP 地址直接分配给服务器,然后启用代理 ARP 并在路由器上为该地址添加静态路由(除了代理 ARP 之外,与上面相同)。
无论如何,端口白名单可以通过路由器或服务器上的防火墙完成,与 NAT 或路由模式无关。