我正在为具有 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