防止劫持 KVM/libvirt 中的 IP

use*_*748 6 vps routing libvirt qemu kvm-virtualization

如何防止 VM 用户/客户端访问他不拥有但通过 KVM/Libvirt 上的同一网桥路由的 IP 地址?

IP 地址路由到由 /24 254 可用地址组成的 cisco 交换机 vLan,例如。105.100.1.0/24。

这是设置的示例。

VM1 - 105.100.1.5
VM2 - 105.100.1.6
VM3 - 105.100.1.7
Run Code Online (Sandbox Code Playgroud)

如何防止 VM1 访问他不拥有的地址?

Mic*_*ton 11

您不能在 Cisco 上使用交换机端口安全,因为所有 VM 将共享一个物理交换机端口。而且您不能使用 Linux,iptables因为流量是通过虚拟机管理程序机器进行桥接而不是路由的。但是您可以使用 Linux 模拟虚拟机管理程序上的交换机端口安全性ebtables,这是 Linux 桥上鲜为人知的第 2/3 层防火墙。一个快速而肮脏的例子(可能不完整;我通常不会为此烦恼):

# First allow some obvious stuff; might need other things I forgot about
ebtables -A FORWARD -p IPv4 -m ip --ip-source 0.0.0.0 -j ACCEPT
ebtables -A FORWARD -p IPv6 -m ip6 --ip6-source :: -j ACCEPT

# Prevent a source MAC address from using a wrong source IP
ebtables -A FORWARD -p IPv4 -s 52:54:00:70:C1:99 -m ip --ip-source ! 192.0.2.5 -j DROP
ebtables -A FORWARD -p IPv4 -s 52:54:00:A3:09:3F -m ip --ip-source ! 192.0.2.6 -j DROP
ebtables -A FORWARD -p IPv4 -s 52:54:00:18:65:2A -m ip --ip-source ! 192.0.2.7 -j DROP
Run Code Online (Sandbox Code Playgroud)