被動 ftp 無法在 nat 後面工作

被動 ftp 無法在 nat 後面工作

我有一個大問題。讓我解釋。我配置了兩台機器,一台稱為“fw”,即防火牆,另一台連接到這台稱為“伺服器”,兩台機器都是 Debian 10 buster 系統。 fw機器使用iptables來偽裝IP。 「公共IP」:88.20.100.2,本地範圍:192.168.150.0/24

這是我的 FTP 伺服器的配置,vsftpd 有被動模式

pasv_enable=Yes
pasv_max_port=2000
pasv_min_port=1000
pasv_address=88.20.100.2

有什麼特別的。如果我在防火牆上啟用了此 iptables,它就可以工作(enp0s9 = 互聯網,enp0s3 = LAN)

iptables -P FORWARD DROP
iptables -A FORWARD -p tcp --dport 21 -i enp0s9 -o enp0s3 -d 192.168.150.98 -j ACCEPT
iptables -A FORWARD -p tcp --sport 21 -i enp0s3 -o enp0s9 -s 192.168.150.98 -j ACCEPT
iptables -A FORWARD -p tcp --dport 1000:2000 -d 192.168.150.98 -i enp0s9 -o enp0s3 -j ACCEPT
iptables -A FORWARD -p tcp --sport 1000:2000 -s 192.168.150.98 -i enp0s3 -o enp0s9 -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o enp0s9 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to-destination 192.168.150.98:21
iptables -t nat -A PREROUTING -p tcp --destination-port 1000:2000 -j DNAT --to-destination 192.168.150.98

我的問題是,我希望只有在連接與 FTP 伺服器相關時才能打開 1000:2000 端口,但並非總是如此。我嘗試過使用 -m state 和 -m conntrack 但我想我做錯了什麼。任何想法?謝謝

相關內容