não pode listar o diretório ao acessar o servidor ftp remotamente

4

eu instalei vsftpd e tudo está funcionando bem ao acessá-lo localmente, mas não consigo visualizar as pastas ao acessá-lo remotamente.

usando o filezilla no meu PC remoto, eu entendo:

status: connecting to 192.x.x.x
status: connection established, waiting for welcome message
response: welcome 
command: user admin
response: specify pass
command: pass ****
response: 230 login successful
command: opts utf8 on
response: 200 always in utf8 mode
status: connected
status: retrieving directory listing..
command: pwd
response: 257 "/var/ftp"
command: type I
response: 200 switching to binary mode
command: PASV
response: 227 entering passive mode (192.168.8.5,59,0).
command: list

e ele pára ali, depois o tempo limite da conexão, não consigo visualizar as pastas ou os diretórios no servidor ftp.

No meu iptables -L -n

ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21  
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:20

Meu /etc/vsftp/vsftp.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES
idle_session_timeout=120
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
ftpd_banner= Welcome 
#deny_email_enable=YES
#chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
#ls_recurse_enable=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES 
    
por user1933824 06.05.2013 / 13:26

5 respostas

2

O problema é muito provável que você tenha solicitado o modo passivo - no qual o cliente precisa abrir uma nova conexão de dados com o servidor, na porta especificada -, mas você não permitiu essas portas através do seu firewall. Por exemplo, a conexão de dados acima é esperada na porta TCP / 15104 (59 * 256 + 0), mas você só permitiu entrada TCP / 21 e TCP / 20 (ou, pelo menos, é tudo o que você nos contou sobre ).

Não podemos saber com certeza até vermos todo o conjunto de regras do firewall; Você poderia alterar a pergunta para incluir a saída inteira de iptables -L -n -v ?

    
por 06.05.2013 / 17:30
1

Neste ponto, o servidor FTP está esperando que o cliente abra uma nova conexão para transferir os dados conectando via TCP na porta 15014 (59 * 256 + 0) - o firewall no servidor ou o cliente (ou entre ) está provavelmente rejeitando esta conexão.

IIRC O wsftp tem algumas configurações que controlam o intervalo de portas nas quais pode esperar conexões de dados. Verifique o que você é (ou defina-os explicitamente para um intervalo de sua escolha) e, em seguida, abra essas portas em suas regras de firewall como você já tem para as conexões de controle FTP.

Se você não estivesse usando o modo passivo, haveria um problema semelhante na outra direção: o servidor precisaria ser capaz de abrir uma conexão com o cliente em uma porta especificada por comandos anteriores.

Essa divisão das conexões de controle e dados geralmente causa problemas de firewall. Se você não tiver um requisito específico para FTP (compatibilidade com um serviço existente que não pode ser alterado ou usuários que tenham acesso somente a um cliente FTP ou similar), recomendo vivamente usar o SFTP / SCP conforme fornecido pela maioria dos daemons SSH - isso remove o problema de várias conexões arbitrárias (tudo é feito em uma conexão TCP duplex, geralmente na porta 22), e é significativamente mais seguro também.

Atualizar

As configurações para controlar as portas de conexão de dados são pasv_min_port e pasv_max_port , embora isso não seja necessário. Se você carregar o módulo ip_conntrack_ftp, ele poderá rastrear as conexões de controle FTP e marcar conexões de dados de entrada como "relacionadas" - assim você pode adicionar uma regra iptables para permitir pacotes de conexões "relacionadas" nas portas 1024 ou superiores, bem como aceitar aquelas para conexões "estabelecidas". Veja link para um exemplo disso.

Eu ainda recomendaria SFPT / SCP via OpenSSH ou similar - é mais seguro e fácil de gerenciar.

    
por 07.05.2013 / 12:18
0

Se tudo estiver OK, parece que a conexão de rede foi anulada. Tente usar o sniffer de pacotes nos dois lados da conexão para checar, todos os lados recebem todos os pacotes enviados para ela.

Tente também ativar o registro detalhado no servidor e verifique o que acontece.

    
por 06.05.2013 / 13:45
0

Parece um pouco que o seu servidor estava expondo o endereço IP da LAN (em oposição ao IP da WAN).

Você poderia tentar confirmar isso usando o cliente do modo ativo (esteja ciente de que requer que seu cliente esteja acessível, então você não pode ficar oculto atrás de um firewall). / p>

tente adicionar uma linha pasv_address=<external ip address> ao seu vsftpd.conf. Consulte o manual para obter mais detalhes.

    
por 06.05.2013 / 13:57
-2

Vá para a configuração de firewall do seu servidor e coloque o TCP / 15104 como porta TCP_IN e TCP_OUT permitida

    
por 05.07.2016 / 10:32

Tags