Linux

如何在帶有 NAT 的 OpenVPN 上允許 FTP?

  • September 2, 2011

我將這些 iptables 規則用於具有 1 個 NIC (eth0) 的 OpenVPN 伺服器

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 規則應該是怎樣的呢?

根據您上面給出的規則,主動和被動模式 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

引用自:https://serverfault.com/questions/307552