proFTPd com o MySQL Auth, por NAT - Falha ao recuperar a listagem de diretórios

1

Estou executando o proFTPd na minha VM do CentOS linux (que está por trás do NAT).

Esta é a minha configuração proftpd.conf até agora: link

Sempre que me conecto à conta ftp no cliente FileZilla, estou recebendo o seguinte:

Status: Connecting to 109.xxx.xx.xxx:2121...
Status: Connection established, waiting for welcome message...
Response:   220 FTP Server Ready.
Command:    USER exampleuser
Response:   331 Password required for exampleuser
Command:    PASS ******
Response:   230 User exampleuser logged in
Command:    SYST
Response:   215 UNIX Type: L8
Command:    FEAT
Response:   211-Features:
Response:    MDTM
Response:    MFMT
Response:    LANG ja-JP;ko-KR;bg-BG;zh-TW;en-US;ru-RU;it-IT;fr-FR;zh-CN
Response:    TVFS
Response:    UTF8
Response:    MFF modify;UNIX.group;UNIX.mode;
Response:    MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*;
Response:    REST STREAM
Response:    SIZE
Response:   211 End
Command:    OPTS UTF8 ON
Response:   200 UTF8 set to on
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is the current directory
Command:    TYPE I
Response:   200 Type set to I
Command:    PASV
Response:   227 Entering Passive Mode (109,xxx,xx,xxx,237,74).
Command:    MLSD
Error:  Connection timed out
Error:  Failed to retrieve directory listing

Eu procurei na pasta /var/log/proftpd/ e está vazia.

Encontrei o seguinte neste arquivo /var/log/messages :

Oct 29 12:34:33 mageDev proftpd[27542]: 127.0.0.1 - ProFTPD killed (signal 15)
Oct 29 12:34:33 mageDev proftpd[27542]: 127.0.0.1 - ProFTPD 1.3.3g standalone mode SHUTDOWN
Oct 29 12:34:34 mageDev proftpd[27560]: 127.0.0.1 - ProFTPD 1.3.3g (maint) (built Sat Sep 14 2013 20:13:10 UTC) standalone mode STARTUP
Oct 29 12:34:53 mageDev proftpd[27562]: 127.0.0.1 (::ffff:46.xx.xxx.xx[::ffff:46.xx.xxx.xx]) - FTP session opened.
Oct 29 12:34:53 mageDev proftpd[27562]: 127.0.0.1 (::ffff:46.xx.xxx.xx[::ffff:46.xx.xxx.xx]) - Preparing to chroot to directory '/ftp/exampleuser'

Como posso diagnosticar este erro / problema? Por que isso está jogando o erro Failed to retrieve directory listing ?

Esta é a pasta do servidor para este exampleuser :

Euperceboumaperguntasemelhantecomoestajáfeitaaqui: proftpd, IP dinâmico e filezilla: problemas de porta

Ao contrário deste usuário, se eu remover meu MasqueradeAddress , recebo este aviso e ainda o mesmo erro:

Status: Server sent passive reply with unroutable address. Using server address instead.
Command:    LIST
Error:  Connection timed out
Error:  Failed to retrieve directory listing
    
por Latheesan 01.11.2013 / 11:10

2 respostas

0

Você recebe a mensagem de erro "Falha ao recuperar a listagem de diretório" porque o cliente FTP não obtém a listagem de diretórios do servidor, provavelmente devido a um problema de firewall ou de rede.

O protocolo FTP foi inventado muito antes dos firewalls de rede e da Tradução de endereços de rede, e usa um canal de comando e um canal de dados separados para a comunicação.

Quando você faz login, apenas o canal de comando está em uso.

Quando você executa uma listagem de diretórios, o cliente e o servidor informam um ao outro no canal de comando sobre qual endereço IP e porta (60746 no exemplo) o canal de dados deve ser configurado dinamicamente para a transferência dos dados de listagem de diretórios .

Isso é feito com o comando FTP PORT ou PASV.

No seu caso, o cliente emite o comando PASV e o servidor responde com: 227 Entering Passive Mode (109,xxx,xx,xxx,237,74).

Os primeiros 4 octetos dentro dos parênteses fazem o endereço IP, e os dois últimos o número da porta (256 * 237 + 74 = 60746).

Você está executando o servidor FTP dentro de uma máquina virtual com um adaptador de rede no estilo NAT configurado para a máquina virtual (em oposição a Bridged )? Então, essa é provavelmente a causa de seus problemas, porque esses tipos de VM: s geralmente não podem ser acessados do "lado de fora", já que eles compartilham o endereço IP do host físico.

As portas 60000-65535 estão abertas no servidor? Sua configuração especifica esse intervalo a ser usado para conexões passivas. Você pode reduzi-lo a um intervalo menor para exigir menos portas abertas no firewall.

    
por 01.11.2013 / 11:54
0

1) Certifique-se de que sua VM seja executada no modo de rede Bridged para que você receba um IP do NAT do seu roteador e não seja NAT duas vezes.

2) Você precisa ativar a opção MasqueradeAddress na configuração do ProFTPd e digitar seu IP público lá (tente whatismyip.com )

3) Você precisa remover o comentário da opção Portas passivas na configuração do ProFTPd. Tem dois números lá, eles devem formar um intervalo FROM - TO. Você pode tornar o intervalo muito menor se quiser.

3) Você precisa encaminhar as seguintes portas do seu roteador para as portas correspondentes da VM FTP: 20, 21 e toda a gama de portas passivas.

    
por 01.11.2013 / 13:28