Pure-FTPd enviando resposta pasv direita, mas IP errado recebido

1

Eu comecei meu servidor ftp com pure-ftpd -l puredb:/etc/pure-ftpd/pureftpd.pdb -E -j -R -P 67.68.xxx.xx -s -A -j -Z -H -4 -E -R -G -X -x -d -d -U 113:000 -p 30000:30009 -c 50 -C 5

No meu arquivo de log Pure-FTPd, tenho:

[DEBUG] Command [pasv] [] 227 Entering Passive Mode (67,68,xxx,xx,117,54)

No entanto, meu cliente ftp recebe isso:

---> PASV 227 Entering Passive Mode (192,168,2,23,231,6) ftp: connect: No route to host

Por que isso está acontecendo e como posso receber o endereço IP correto? Obrigado.

lracicot
fonte
Então o seu servidor FTP não está na sua rede local, certo? Qual dispositivo está em 192.168.2.23?
Daniel B
É um servidor ftp público que testo remotamente. 192.168.2.23 não existe. Na verdade, o servidor FTP não tem nenhuma interface em 192.168
lracicot
3
Tente criptografar a conexão FTP. Provavelmente, é um ajudante de FTP do NAT que está em fuga.
Daniel B
Criptografar a conexão funcionou. Obrigado!
lracicot
@DanielB você pode adicionar sua solução como resposta para que eu possa aceitá-la.
lracicot

Respostas:

2

Porque o FTP envia endereços IP e portas dentro mensagens como esta (não apenas nos cabeçalhos dos pacotes), não é um protocolo compatível com NAT.

Devido a isso, os gateways NAT geralmente têm código especial para lidar com FTP. Esse código é conhecido como FTP "Application-Layer Gateway" ou ALG. Os ALGs FTP procuram mensagens como o comando PASV e reescrevem o endereço IP para representar o endereço IP público do gateway NAT, a fim de fazer a comunicação funcionar.

Se o seu cliente FTP estiver por trás de um gateway NAT e seu servidor FTP não estiver, o uso do modo passivo é uma maneira de contornar um gateway NAT incorreto que não possui um ALG FTP.

Se o seu cliente FTP estiver NÃO atrás de um gateway NAT, mas o seu servidor FTP É , então você pode usar o FTP ativo normal sem um problema, mas o modo passivo realmente quebraria neste caso se o gateway NAT na frente do servidor FTP não tivesse um bom ALG de FTP. Muitos gateways NAT têm ALGs de FTP meio quebrados que só fazem o FTP ativo funcionar para clientes FTP atrás do NAT, mas não lidam com o "FTP servidor por trás do caso NAT ". Aparentemente, muitos fornecedores de gateway NAT não pensam ou se preocupam com o caso do servidor por trás do NAT.

Se tanto o seu cliente FTP quanto o seu servidor FTP estiverem por trás de gateways NAT separados que não possuem ALGs FTP, o FTP ativo será bloqueado pelo NAT do cliente. e O FTP passivo será bloqueado pelo NAT do servidor, portanto você não poderá fazer FTP simples nesse caso, e precisará configurar algum tipo de túnel ou outra solução alternativa. A mudança para o FTP criptografado funcionará porque os protocolos FTP criptografados foram desenvolvidos depois que os gateways NAT eram comuns, e os autores sabiam que um gateway NAT não seria capaz de ver ou mexer com os componentes internos do protocolo, então eles tinham que projetá-lo para funcionar em todos os vários cenários NAT.

Spiff
fonte
“Como o FTP envia endereços IP e portas dentro de mensagens como esta (não apenas nos cabeçalhos dos pacotes), não é um protocolo compatível com NAT.” - O problema é, na verdade, com as conexões de dados dinâmicas. Ter que enviar endereços e portas é apenas um resultado disso.
Daniel B
Obrigado @Spiff pela explicação detalhada. Meu cliente e meu servidor estavam atrás do NAT separado, então eu criptografei a conexão e ela funciona.
lracicot