如何使用 NAT 允许 OpenVPN 运行 FTP?

如何使用 NAT 允许 OpenVPN 运行 FTP?

我正在为具有 1 个 NIC(eth0)的 OpenVPN 服务器使用这些 iptables 规则

iptables -I INPUT -i eth0 -p udp --dport 1194 -j ACCEPT
iptables -I FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

这当然太开放了。

但我希望能够通过 VPN 连接使用 FTP。

我想我必须把

modprobe ip_conntrack
modprobe ip_conntrack_ftp

在我的 iptables 脚本的顶部。

但是实际的 iptables 规则应该是什么样的呢?

答案1

根据上面给出的规则,主动和被动模式 FTP 现在都应该可以工作。

如果你想要更精确地接受 ftp 控制和数据连接,并假设客户端位于 OpenVPN 接口上,你可以将两个常规接受替换为

iptables -A FORWARD -i tun0 -o eth0 -p tcp --dport 21 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -p tcp -m state --state ESTABLISHED -j ACCEPT

相关内容