Estou usando o vsftpd em um servidor Debian por trás de outro firewall do Debian. O natting está correto e eu posso conectar ao servidor ftp do lado de fora. No entanto, quando o cliente emite o comando PASV
, o servidor ftp retorna seu IP interno (192.168.0.19).
Eu não tenho a diretiva pasv_address
definida dentro do arquivo conf para que "o endereço seja obtido do soquete conectado de entrada" (copiado de o manual ). Parece-me que, quando um cliente externo emite PASV
, o endereço IP externo do firewall deve ser retornado e, quando um cliente interno se conecta, o IP do servidor FTP interno deve ser retornado.
Quando defino a diretiva pasv_address
para o IP externo do firewall, tudo funciona externamente, mas depois quebra internamente. Quando eu o defino para o endereço IP interno ou comento o pasv_address
, os clientes internos funcionam, mas os externos não.
Alguém tem alguma ideia sobre isso?
Editar 1: Aqui está o arquivo de log do lado do servidor:
Thu Sep 7 10:36:15 2017 [pid 9093] FTP command: Client "x.x.x.x", "USER yyy"
Thu Sep 7 10:36:15 2017 [pid 9093] [yyy] FTP response: Client "x.x.x.x", "331 Please specify the password."
Thu Sep 7 10:36:15 2017 [pid 9093] [yyy] FTP command: Client "x.x.x.x", "PASS <password>"
Thu Sep 7 10:36:15 2017 [pid 9092] [yyy] OK LOGIN: Client "x.x.x.x"
Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP response: Client "x.x.x.x", "230 Login successful."
Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP command: Client "x.x.x.x", "OPTS utf8 on"
Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP response: Client "x.x.x.x", "200 Always in UTF8 mode."
Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP command: Client "x.x.x.x", "PWD"
Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP response: Client "x.x.x.x", "257 "/""
Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP command: Client "x.x.x.x", "CWD /DownloadProduction/"
Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP response: Client "x.x.x.x", "250 Directory successfully changed."
Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP command: Client "x.x.x.x", "TYPE A"
Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP response: Client "x.x.x.x", "200 Switching to ASCII mode."
Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP command: Client "x.x.x.x", "PASV"
Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP response: Client "x.x.x.x", "227 Entering Passive Mode (192,168,0,19,192,27)."
Editar 2: Consegui fazer isso funcionar usando o ProFTPD. Aqui está o caso serverfault para isso: O servidor ProFTPd atrás do firewall retorna o endereço IP interno para conexões WAN e LAN