У меня есть сервер с IP 1.0.0.5/24. Это основной IP-адрес сервера, и теперь у меня есть два других IP-адреса для сервера, это 1.0.2.30/24 и 1.0.2.31/24. Я хочу сделать VirtualBox под управлением другой ОС доступной через Интернет и разрешить доступ к виртуальному ящику только указанному IP.
Я новичок в iptables, поэтому мне нужна базовая помощь и информация для начала работы по этому поводу.
Хостинг-провайдер не позволяет использовать более одного MAC-адреса на порт коммутатора, что означает, что я не могу установить мост, насколько мне известно.
Более того, я хочу, чтобы хост отклонял дополнительные IP-адреса, поэтому только VirtualBox / виртуальная машина принимает запросы на дополнительном IPS.
Я не тестировал это, но я бы попробовал.
Создайте новый мост на хосте с brctl
brctl addbr br0
Настройте виртуальную машину с помощью мостовая сеть подключен к этому мосту
Назначьте мосту частную подсеть и дайте хосту IP-адрес.
ip addr add 192.168.1.1/24 dev br0
ip route add 192.168.1.0/24 dev br0
Либо статически настройте виртуальную машину с IP-адресом в этом диапазоне (например, 192.168.1.2), либо настройте DHCP-сервер на хосте (например, dnsmasq или VirtualBox dhcpserver).
Прикрепите статический IP к eth0 на хосте
ip addr add 1.0.2.30/24 dev eth0
Убедитесь, что вы можете подключиться к хосту по дополнительному IP извне
Включить переадресацию IP на хосте
echo 1 > /proc/sys/net/ipv4/ip_forward
Настройте iptables для исходящих пакетов SNAT с виртуальной машины
iptables --table nat --append POSTROUTING --source 192.168.1.0/24 --jump SNAT --to 1.0.2.30
iptables --append FORWARD --source 192.168.1.0/24 --jump ACCEPT
Убедитесь, что виртуальная машина подключена к Интернету.
Настройте iptables для пакетов DNAT на дополнительный IP-адрес виртуальной машины
iptables --table nat --append PREROUTING --destination 1.0.2.30 --to-destination 192.168.1.2
iptables --append FORWARD --destination 192.168.1.2 --jump ACCEPT
Убедитесь, что вы можете подключиться к ВМ по дополнительному IP извне