Eu tenho um grande problema. Deixe-me explicar. Configurei duas máquinas, uma chamada "fw" que é o firewall e a outra conectada a esta chamada "servidor", ambas são sistemas Debian 10 buster. A máquina fw usa iptables para mascarar o IP. "IP público": 88.20.100.2, intervalo local: 192.168.150.0/24
Esta é a configuração do meu servidor FTP, vsftpd para ter modo passivo
pasv_enable=Yes
pasv_max_port=2000
pasv_min_port=1000
pasv_address=88.20.100.2
Qualquer coisa especial. Funciona se eu tiver esse iptables habilitado no firewall (enp0s9 = internet, 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
Meu problema é que quero poder abrir as portas 1000:2000 apenas quando a conexão for relacionada ao servidor FTP, nem sempre. Eu tentei com -m state e -m conntrack mas acho que cometi algo errado. Qualquer ideia? Obrigado