Я настроил очень простой гипервизор с использованием Alpine Linux, и моя виртуальная машина видит весь трафик, поступающий с IP-адреса гипервизора.
Это также означает, что если fail2ban пытается блокировать атаки, он всегда блокирует IP гипервизора.
Как сделать так, чтобы виртуальная машина видела реальные IP-адреса, а не только IP-адрес гипервизора?
Настройка интерфейса
На HV ( 192.168.5.5
) у меня есть мостовой интерфейс br0
, который работает нормально.
# tun1 setup script on Hypervisor
iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
iptables -P FORWARD ACCEPT
ip tuntap add dev tap1 mode tap user root
ip link set dev tap1 up
ip link set tap1 master br0
qemu-system-x86_64 [..non related parameters removed ..] \
-device virtio-net-pci,netdev=network0,mac=02:1f:ba:26:d7:56 \
-netdev tap,id=network0,ifname=tap1,script=no,downscript=no
У виртуальной машины есть доступ в Интернет, но весь трафик, который она видит, поступает с IP-адреса гипервизора.
VM видит только IP-адреса HV
Кто-то даже пытается использовать мой сервер для атаки с усилением DNS (хотя исходящий трафик заблокирован на моем брандмауэре PFSense)
решение1
Причиной этого является правило iptable после маршрутизации.
После удаления iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
с помощью команды iptables -t nat -D POSTROUTING -o br0 -j MASQUERADE
все работает.