Am o problemă mare. Lasă-mă să explic. Am configurat două mașini, una numită „fw” care este firewall-ul și cealaltă conectată la aceasta numită „server”, ambele sunt sisteme Debian 10 buster. Mașina fw folosește iptables pentru a masca IP-ul. „IP public”: 88.20.100.2, interval local: 192.168.150.0/24
Aceasta este configurația serverului meu FTP, vsftpd să aibă modul pasiv
pasv_enable=Da
pasv_max_port=2000
pasv_min_port=1000
pasv_address=88.20.100.2
Orice special. Funcționează dacă am acest iptables activat pe 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
Problema mea este că vreau să pot deschide porturile 1000:2000 doar când conexiunea este legată de serverul FTP, nu întotdeauna. Am încercat cu -m state și -m conttrack, dar cred că am greșit ceva. Vreo idee? Mulțumiri