Я публикую здесь, потому что у меня есть сервер, и я хочу перенаправить порт 2121 моего основного интерфейса (eth0) на порт 21 моего вторичного интерфейса (virbr0
Это моя конфигурация:
Physical server OS : Ubuntu Server 16.04 LTS,
Firewall software : UFW v.0.35
Virtual Machine OS : Windows 7 Professional
Hypervisor : OpenStack KVM (QEMU).
Конфигурация IP сервера:
eth0
address 91.121.XXX.XXX
netmask 255.255.255.0
network 91.121.XXX.0
broadcast 91.121.XXX.255
gateway 91.121.XXX.254
virbr0
address 192.168.122.1
gateway 192.168.122.1
Конфигурация маршрутов сервера:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 91.121.XXX.254 0.0.0.0 UG 0 0 0 eth0
91.121.XXX.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Конфигурация UFW:
I have followed these instructions :
NAT and FORWARD with Ubuntu’s ufw firewall - https://gist.github.com/kimus/9315140
Конфигурация IP виртуальной машины:
IP address : 192.168.122.59
GATEWAY : 192.168.122.1
Это то, что я хочу сделать:
redirect 91.121.XXX.XXX:2121 to 192.168.122.59:21 (VM).
eth0:2121 -> virbr0:21
Запись : Виртуальная машина подключена к Интернету, по некоторым причинам я хочу получить доступ к серверу FTP (Typsoft), установленному на нем на порту 21.
Порт 21 моего сервера уже используется другим устройством. И я хочу использовать порт 2121 для доступа к ftp-серверу, присутствующему на виртуальной машине.
Вы можете мне помочь?
Я никогда не использовал UFW для настройки iptables. Я всегда использовал командные строки iptables/bash скриптов для выполнения брандмауэра. Поэтому мой ответ здесь будет в этом формате.
Это правило выполняет NAT, который вы хотите:
iptables -t nat -A PREROUTING -d 91.121.XXX.XXX -p tcp --dport 2121 -j DNAT --to 192.168.122.59:21
Оно принимает TCP соединения на IP 91.121.XXX.XXX:2121 и транслирует их на вашу виртуальную машину на порт 21.
Предположив, что ваша FORWARD
политика установлена на DROP
, вам также нужно убедиться, что вы разрешаете соединения к вашей виртуальной машине снаружи:
iptables -A FORWARD -d 192.168.122.59 -p tcp --dport 21 -j ACCEPT
Оба этих правила ЗАПИСАНЫ для правильной работы NAT/переадресации в вашем сценарии (хотя, если ваша политика FORWARD
имеет значение ACCEPT
, то второе правило в цепочке FORWARD
ненужно).
Если они не работают, то, пожалуйста, выведите вывод iptables -vnL
, а также iptables -t nat -vnL
, и я могу помочь в дальнейшем.
Надеюсь, это поможет.
.