[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Res: Vsftpd nao conecta fora da empresa



Caros,

O que acontece eh o seguinte:

O FTP eh um protocolo notoriamente problematico para trabalhar com NAT. Isso se deve ao fato do servidor informar no payload do pacote o endereco IP ao qual o cliente devera se conectar. Nisso ele acaba passando o IP real que esta configurado na eth, e nao o IP de NAT que deveria ser visto pelo mundo externo.
Porem, adicionando os modulos ip_nat_ftp e ip_conntrack_ftp o seu firewall ira fazer o "fix up" do endereco em questao, ou seja, ele ira trocar o IP que foi passado no pacote para o IP que esta configurado na regra de NAT.
Ate aqui, nenhum problema... mas... o  que acontece quando vc criptografa a conexao? Isso mesmo, TODO payload do pacote sera criptografado, incluindo o endereco IP que deveria ser trocado no firewall! Dessa forma o firewall nao "acha" o IP e consequentemente nao o troca.
Isso acontece em todas implementacoes de FTPS (FTP + crypto). Existem alguns workarounds (gambiarras) para sanar esse problema, porem recomendo a vc utilizar o SFTP nativo do ssh pois nele nao existe o problema relatado, alem de ser bem documentado e com ferramental open source disponivel para diversas plataformas.

Acho que eh so.

Alexandre Joanelli


De: Leandro Moreira <leandro@leandromoreira.eti.br>
Para: Anderson Silva <abnerdoom@gmail.com>
Cc: d-u-p <debian-user-portuguese@lists.debian.org>
Enviadas: Domingo, 15 de Novembro de 2009 19:55:13
Assunto: Re: Vsftpd nao conecta fora da empresa

Caros,
Foi so eu desativar a parte do ssl que p ftp funcionou sem problema, vou deixar sem o ssl por enquanto e estudar essa configuração.
So mais uma duvida, essas configurações de ssl no vsftpd ele encripta a conexão de forma a dificultar o escanenamento de pacotes?

Att.

Leandro Moriera


2009/11/15 Anderson Silva <abnerdoom@gmail.com>
Leandro,

o seu problema parece ser de um firewall do lado do cliente que não é esperto o suficiente para alterar os endereços dos clientes nos pacotes ftp ou o firewall do lado do cliente está bloqueando as tentativas do servidor ftp de se conectar a uma porta alta do lado do cliente.

Talvez uma solução possível seja configurar a sessão ftp no lado do cliente como passiva.

Veja uma explanação sobre o protocolo ftp aqui:
http://slacksite.com/other/ftp.html

2009/11/15 Leandro Moreira <leandro@leandromoreira.eti.br>

Caros,
Eu tenho no meu firewall uma regra de nat, redirecionando porta 20 e 21 tcp e upd para o meu servidor interno, como podem ver o log abaixo eu consigo logar no ftp:

Sun Nov 15 16:37:38 2009 [pid 18355] CONNECT: Client "201.73.248.83"
Sun Nov 15 16:37:38 2009 [pid 18354] [lmoreira] OK LOGIN: Client "201.73.248.83"

Ele so nao ta listando o diretório,:

tatus:    Conectando com XXX.XXX.XXX.XXX:21...
Status:    Conexão estabelecida, esperando a mensagem de boas vindas...
Resposta:    220 Bem vindo a Selva
Comando:    AUTH TLS
Resposta:    234 Proceed with negotiation.
Status:    Inicializando TLS...
Status:    Verificando o certificado...
Comando:    USER lmoreira
Status:    Conexão TLS/SSL estabelecida.
Resposta:    331 Please specify the password.
Comando:    PASS ***********
Resposta:    230 Login successful.
Comando:    OPTS UTF8 ON
Resposta:    200 Always in UTF8 mode.
Comando:    PBSZ 0
Resposta:    200 PBSZ set to 0.
Comando:    PROT P
Resposta:    200 PROT now Private.
Status:    Conectado
Status:    Recuperando a listagem de pastas...
Comando:    PWD
Resposta:    257 "/"
Comando:    TYPE I
Resposta:    200 Switching to Binary mode.
Comando:    PORT 172,16,0,254,12,62
Resposta:    500 Illegal PORT command.
Erro:    Falhou em recuperar a listagem de diretórios

Configurei o filezila para usar ftp ativo, como foi sugerido o uso do tcpdum, ja tinha feito anteriormente e repeit o teste, loguei as conexões em direção ao meu servidor de ftp com o iptables, elas estao passando normalmente pelos meus 2 firewalls (tenho um firewall de borda e um para a DMZ), inclusios modulos sugeridos pelo Thiago ja estavam levantados no 2 firewalls

firewall de borda:

Nov 15 17:14:39 atena kernel: FTPIN=eth0 OUT=eth1 SRC="" DST=172.20.0.143 LEN=40 TOS=0x00 PREC=0x00 TTL=117 ID=20360 DF PROTO=TCP SPT=3188 DPT=21 WINDOW=16201 RES=0x00 ACK URGP=00

Forewall DMZ:
Nov 15 17:08:37 frankwall kernel: FTPIN=eth0 OUT=eth2 SRC="" DST=172.20.0.143 LEN=40 TOS=0x00 PREC=0x00 TTL=116 ID=21549 DF PROTO=TCP SPT=3196 DPT=21 WINDOW=16201 RES=0x00 ACK URGP=0

E no servidor FTP conforme o log acima a conexao esta funcionando, o cliente autentica ele ta com problemas para lista o conteudo do diretorio, abaixo segue a minha configuração do ftp

tipo de servidor: ftpes - ftp sobre tls/ssl explicito
Modo: Ativo

Agradeço a atenção.

Att.

Leandro Moreira


2009/11/15 Thiago Silveira de Oliveira <thiagocpv@ig.com.br>
Queridão, adiciona no seu firewall.....
 
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
Isso já deve resolver seu problema...
 
 
 
Abraços!!!!

2009/11/14 Leandro Moreira <leandro@leandromoreira.eti.br>

Caros,
Instalei um servidor ftp usando vsftpd com TLS, na empresa conecta sem problema algum, fora da empresa quanto mando conectar ele me retorna a seguinte mensage:

Falhou em recuperar a listagem de diretórios

No log do vsftpd vi a seguinte mensagem:

Sat Nov 14 22:18:33 2009 [pid 14765] [lmoreira] OK LOGIN: Client "187.16.186.247"

Pelo que entendi ele conecta no servidor mas nao lista o conteudo do diretórios, estou usando nodo ativo para o ftp, com as devidas portas liberadas nos firewall, abaixo segue o meu vsfptd.conf:

listen=YES
local_max_rate=100000
anonymous_enable=NO
syslog_enable=no
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
ftpd_banner=Bem vindo a Selva
use_localtime=YES
chroot_local_user=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/ftpusers
max_per_ip=3
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.pem

Agradeço desde ja a atenção.

Att.

--
Leandro Moreira
Linux Administrator: LPIC-1
e-mail/msn: leandro@leandromoreira.eti.br
Tel.: + 55(32) 9906-5713




--
Leandro Moreira
Linux Administrator: LPIC-1
e-mail/msn: leandro@leandromoreira.eti.br
Tel.: + 55(32) 9906-5713




--
Leandro Moreira
Linux Administrator: LPIC-1
e-mail/msn: leandro@leandromoreira.eti.br
Tel.: + 55(32) 9906-5713


Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes
Reply to: