我正在设置一个以边界线偏执安全为目标的新家庭服务器。
这样,所有可以在VM中使用的具有开放端口的事物都将获得自己的VM。我使用Ubuntu Server作为主机,因为我喜欢免费的无重启免内核修补程序。
我已经设置了四个Debian VM,它们连接到默认的虚拟网桥接口。现在,我可以看到并访问应从主机打开的端口,但是当我尝试从网络访问它们时,我将失败。用nmap观察它们时,它们显示为“已过滤”。
如何使这些端口可从更广泛的网络访问?我可以将端口从物理接口转发到网桥上的子网,还是更好地以某种方式让客户机使用我的实际路由器作为其网关,而不是内置在KVM中的路由器?
还是以某种方式使访客使用我的实际路由器作为网关,而不是内置于KVM的网关更好?
KVM中没有内置网关(也没有“默认桥”)。您的VM主机本身就是网关–如果您使用的是libvirt,则它仅激活Linux内核的常规IP转发功能(并为您创建virbr0)。
这也意味着您的VM guest虚拟机无法直接访问您的实际LAN路由器-它们不在同一以太网上。这将是可能的,但你需要把物理以太网接口了(eth0)在同一个网桥作为你的虚拟机。
由您决定使用哪种方法:
通过将LAN配置为识别VM子网(即使用指定为网关的VM主机添加静态路由),可以使主机成为简单的路由器。其他设备将能够连接到虚拟机的地址。
通过将DNAT规则添加到iptables或nftables中,可以使主机成为具有端口转发功能的路由器。
通过将主机的eth0接口放置在VM桥中(IP链接设置eth0主virbr0),可以使主机成为桥–这将直接将所有VM放置在您的主LAN子网中。
(但是原则上,除非绝对必要,否则我将避免在网络中间进行NAT /端口转发,例如,如果主LAN使用的“路由器”不支持添加静态路由,或出于其他一些不正常的原因。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句