Tentando responder minha própria pergunta em um caso de uso limitado
O limite é: somente 1 cliente de ftp em modo ativo atrás do nat server (ele não funciona com mascaramento)
- cliente de ftp: 10.60.10.11
- nat server: 10.254.254.203
- ip público: 1.2.3.4
Primeiro, inicie o comando nat no servidor nat, porta local 21, convertendo todos os pacotes contendo "PORT 10,60,10,11" para "PORT 1,2,3,4" (deixando assim os números de porta inalterados ):
./netsed tcp 21 0 0 s/PORT%2010,60,10,11,/PORT%201,2,3,4,
Em segundo lugar, redirecione o tráfego do cliente ftp para o netsed:
iptables -t nat -A PREROUTING -p tcp --dport 21 -j REDIRECT --to 21
Isso tornará o servidor ftp "feliz" e tentará efetivamente abrir uma nova conexão da porta 20 para o IP público . O IGW vai deixar passar, mas o servidor NAT não sabe como lidar com a conexão (não é no CT, é uma nova conexão).
Então, tão feia quanto possível, , agora encaminhe todo o tráfego de entrada da porta 20 para o cliente FTP interno:
iptables -t nat -A PREROUTING -p tcp -d 10.254.254.203 --sport 20 --dport 1024:65535 -j DNAT --to-destination 10.60.10.11:1024-65535
Isso está funcionando !!
Mas, uma parte de ser um hack, parece que é limitado a apenas 1 ftp-client.
Obrigado ao @Steffen por apontar que o estado da CT não foi definido.