UFW 0.35 - 将传入端口 2121 重定向到 VM 上的端口 21(其他接口)

UFW 0.35 - 将传入端口 2121 重定向到 VM 上的端口 21(其他接口)

我在这里发帖是因为我有一台服务器,并且我想将主接口(eth0)的端口 2121 重定向到辅助接口(virbr0)的端口 21。

这是我的配置:

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

注意:虚拟机已连接到互联网,由于某些原因,我想访问安装在其端口 21 上的 FTP(Typsoft)服务器。

我的服务器的端口 21 已被其他设备使用。我想使用端口 2121 访问虚拟机上的 ftp 服务器。

你能帮助我吗 ?

答案1

我从未使用 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

它的作用是接受 IP 91.121.XXX.XXX:2121 上的 TCP 连接,并将它们 NAT 到端口 21 上的 VM。

假设您的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,我可以提供进一步的帮助。

希望这可以帮助。

相关内容