У меня большая проблема. Позвольте мне объяснить. Я настроил две машины, одну с именем "fw", которая является брандмауэром, а другую, подключенную к этой, называемой "server", обе являются системами Debian 10 buster. Машина fw использует iptables для маскировки IP. "Public 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 = 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
Моя проблема в том, что я хочу иметь возможность открывать порты 1000:2000 только тогда, когда соединение связано с FTP-сервером, а не всегда. Я пробовал с -m state и -m conntrack, но, похоже, я что-то сделал не так. Есть идеи? Спасибо