Encaminhamento de tráfego FTP passivo para IP público externo com iptables

0

Eu tenho algumas regras iptables em um host, com o objetivo de encaminhar o tráfego FTP passivo vindo da Internet para um servidor FTP localizado dentro da mesma sub-rede. As regras são as seguintes:

iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to-destination $ftp_host:21
iptables -t nat -A PREROUTING -p tcp --dport 20 -j DNAT --to-destination $ftp_host:20
iptables -t nat -A PREROUTING -p tcp --dport $pasv_min_port:$pasv_max_port -j DNAT --to-destination $ftp_host:$pasv_min_port-$pasv_max_port
iptables -A FORWARD -s $ftp_host -p tcp --sport 20 -j ACCEPT
iptables -A FORWARD -s $ftp_host -p tcp --sport 21 -j ACCEPT
iptables -A FORWARD -s $ftp_host -p tcp --sport $pasv_min_port:$pasv_max_port -j ACCEPT

iptables -A OUTPUT -p tcp --sport $pasv_min_port: --dport $pasv_min_port: -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport $pasv_min_port: --dport $pasv_min_port: -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT: --dport 1024: -m st$
iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport $pasv_min_port: --dport $pasv_min_port: -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

iptables -t nat -A POSTROUTING -j MASQUERADE

Isso funciona muito bem. O problema é quando tento redirecionar o tráfego ftp para um servidor ftp externo, com ip público (colocando em $ftp_host ).

Nesse caso, posso conectar-me ao servidor remoto, mas ele pára quando começa a listar o diretório e, em seguida, desconecta o tempo limite.

Preciso modificar algo nas regras do iptables?

    
por Carlo Pane 23.11.2017 / 14:41

0 respostas