Назад | Перейти на главную страницу

UFW 0.35 - Перенаправить входящий порт 2121 на порт 21 на виртуальной машине (другой интерфейс)

Я публикую здесь, потому что у меня есть сервер, и я хочу перенаправить порт 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 и NAT их к вашей виртуальной машине на порту 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 и я могу помочь дальше.

Надеюсь это поможет.