hel*_*y27 5 networking iptables ubuntu linux-kvm libvirt
我正在设置一个新的家庭服务器,以边缘偏执的安全为目标。
因此,所有可以进入虚拟机的开放端口都拥有自己的虚拟机。我使用 Ubuntu Server 作为主机,因为我喜欢免费的无需重新启动的内核修补。
我已经设置了四个 Debian VM,连接到默认的虚拟桥接口。我现在可以看到并访问应该从主机打开的端口,但是当我尝试从网络访问它们时,我失败了。当使用 nmap 查看它们时,它们显示为“已过滤”。
如何使这些端口可以从更广泛的网络访问?我可以将端口从物理接口转发到网桥上的子网吗?还是让访客使用我的实际路由器(而不是 KVM 内置的路由器)作为网关会更好?
\n\n\n或者以某种方式让客人使用我的实际路由器作为他们的网关,而不是 KVM 内置的路由器,是否更好?
\n
KVM 中没有内置网关(也没有“默认桥”)。如果您使用 libvirt,您的 VM 主机本身就是网关 \xe2\x80\x93,那么它只会激活 Linux 内核的常规 IP 转发功能(并为您创建一个 virbr0)。
\n\n这也意味着您的 VM 来宾无法直接访问您的实际 LAN 路由器\xe2\x80\x93,它们不在同一以太网上。这是可能的,但您需要将物理以太网接口 (eth0) 与虚拟机放在同一网桥中。
\n\n使用哪种方法取决于您:
\n\n您可以通过配置 LAN 来识别 VM 子网(即添加静态路由并将 VM 主机指定为网关),让主机成为一个简单的路由器。其他设备将能够连接到虚拟机的地址。
您可以通过向 iptables 或 nftables 添加 DNAT 规则,让主机成为具有端口转发功能的路由器。
您可以让主机成为一个网桥,通过将其 eth0 接口放置在 VM 网桥 (ip link set eth0 master virbr0) \xe2\x80\x93 中,这将直接将所有 VM 放置在您的主 LAN 子网中。
(但原则上我会避免在网络中间使用 NAT/端口转发,除非绝对必要,例如,如果主 LAN 使用 \xe2\x80\x9crouter\xe2\x80\x9d 不支持添加静态路由,或其他一些不寻常的原因。)
\n| 归档时间: |
|
| 查看次数: |
13378 次 |
| 最近记录: |