Firewall bloqueando FTP [RESOLVIDO]

1. Firewall bloqueando FTP [RESOLVIDO]

Tiago Martins
TSM

(usa Debian)

Enviado em 28/05/2008 - 12:48h

Olá amigos do vol, estou com um problema sério, o problema é o seguinte:
Tenho um servidor de internet, que está trabalhando com proxy transparente (Squid), as outras máquinas acessam normal a internet, porém não estou conseguindo acessar as portas 20 e 21 (ftp) da internet dá o seguinte erro:

200 Type set to A
500 Invalid PORT Command

OBS: nas regras de firewall está tudo liberado, e o problema continua mesmo quando eu desabilito o proxy transparente, deixando apenas as regras de compartilhamento do firewall. Quando conecto o pc direto no modem funciona normal.

Por favor preciso da vossa ajuda, desde já obrigado!


  


2. MELHOR RESPOSTA

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 29/05/2008 - 13:29h

FTP é um protocolo TINHOSO que é MUITO complicado em NAT. Ele envolve diversas portas, não apenas a 20 e 21 o que necessita que o firewall faça verdadeiros marabalismos para deixar passar. No iptables, basicamente, a diretiva RELATED do modulo state consegue seguir uma conexão FTP e abrir as portas necessárias.

O NAT precisa ALTERAR OS DADOS do cabeçalho FTP para funcionar. SIM, ISTO MESMO, alterar OS DADOS, ao menos no modo ativo (e o iptables FAZ isto se tiver com o modulo ftp ativo).

Duas formas básicas de FTP:

1) Ativo: esta é a forma clássica de operação. Nela o cliente (quem se conectou na porta 21 do servidor) abre uma porta alta para escuta. O servidor faz um início de conexão no cliente! É a forma mais complicada pois o firewall precisa abrir esta porta alta e permitir entrada de SYN.

O cliente informa qual porta está escutando através do comando PORT, exemplo:

PORT 10,1,4,3,165,98

Observe a sintaxe! Cada octeto separado por virgula!
No caso temos que pegar os decimais 165,98 para descobrir que o cliente está na porta 42338.

Duas coisas o firewall nat precisa fazer neste caso:

a) Liberar acesso VINDO DO SERVIDOR para a porta 42338 do cliente (diretiva RELATED do iptables faz isto)

b) Mexer, EDITAR, o comando PORT, pois ao passar pelo NAT, o ip privado mudará para um IP público, podendo INCLUSIVE mudar a porta. Supondo que não mudou a porta, como exemplo, o nat precisa EDITAR o comando PORT para:

PORT 200,200,200,1,165,98

Isto é um HORROR e me admira que os desenvolvedores do iptables tomaram coragem para implementar. Horror porque os dados ficaram MAIORES! O nat vai agora ficar a vida toda (durante a conexão) brincando de ajustar sequencial number e ack number dos cabeçalhos!! Mas o Iptables FAZ ISTO SE ESTIVER COM O MODULO ftp ativo!

2) Passivo: nesta forma o servidor NÃO SE CONECTA de volta no cliente, mas sim o cliente é quem se conecta novamente em uma porta do servidor.

O firewall agora não precisa abrir uma porta a mais no cliente. Veja este exemplo de uma conexão FTP passiva sniffada:

PASV
227 Entering Passive Mode (200,200,200,1,238,26).

Agora é o servidor quem informa o cliente que a porta de conexão é 51226. E mais, como o nat é apenas no cliente, o nat também não precisará converter dados, o HORROR que falei (bom, se o servidor estiver atrás de um nat estático, ele informaria o seu ip privado no Passive Mode e tem-se o mesmo problema. Mas servidores terem ips privados é incomum).

RESUMO DA OPERA: será que teu firewall está com o modulo ftp ativo? Está com a diretiva RELATED? (RELATED + modulo ftp é necessário para ftp ATIVO).

modprobe ip_nat_ftp
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

3. Re: Firewall bloqueando FTP [RESOLVIDO]

Marcos Miras
marcosmiras

(usa CentOS)

Enviado em 28/05/2008 - 16:57h

Quando você roda suas políticas de firewall você limpa as regras antigas?


4. Re: Firewall bloqueando FTP [RESOLVIDO]

Tiago Martins
TSM

(usa Debian)

Enviado em 29/05/2008 - 08:39h

Sim limpo todas elas, as unicas regras que tem é a que compartilha a conexão com MASQUERADE e a que redireciona o trafego da porta 80 para a porta do proxy; mesmo assim continua bloqueando sites FTP.


5. Re: Firewall bloqueando FTP [RESOLVIDO]

Bruno Araujo
bjaraujo

(usa Ubuntu)

Enviado em 29/05/2008 - 09:31h

Cara libere em seu firewall tanto a entrada(input) quanto o encaminhamento(forward) das portas FTP.

Vc fez NAT em td né?


6. Re: Firewall bloqueando FTP [RESOLVIDO]

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 29/05/2008 - 09:46h

Este erro é de APLICAÇÃO!!

Isto quer dizer que não é nada com iptables, mas pode ser com o proxy.

Tentou acessar FTP Passivo?

Em linha de comando se consegue isto com o comando "passive"



7. Re: Firewall bloqueando FTP [RESOLVIDO]

Tiago Martins
TSM

(usa Debian)

Enviado em 29/05/2008 - 12:31h

Sim está tudo liberado tanto input como output, forward e outros.
Elgio mesmo sem o proxy em funcionamento o problema continua, vou ser mais específico, esta máquina está conectando todas as outras máquinas da rede na internet, porém o dono da empresa quer um relatório do que os funcionários andão acessando, daí entra em cena o proxy transparente (Squid) e o Sarg, até aí tudo bem, porém tem um programa usado na empresa que envia propostas de seguro via ftp, e observei que o ftp deles não é passivo por este motivo é que está dando erro. Mesmo sem o proxy em funcionamento e só com as regras de compartilhamento do firewall continua com o mesmo erro, por isso eu acredito que não seja o proxy.


8. Re: Firewall bloqueando FTP [RESOLVIDO]

Bruno Araujo
bjaraujo

(usa Ubuntu)

Enviado em 29/05/2008 - 13:20h

Você quer acessar o FTP da empresa fora dela, é isso?
Nesse caso vc deve encaminhar as conexões de entrada para o servidor.


9. tsctsc

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 29/05/2008 - 13:33h

Falei, falei, falei, mas não disse o mais importante!!

modprobe ip_nat_ftp
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT




10. Re: Firewall bloqueando FTP [RESOLVIDO]

Tiago Martins
TSM

(usa Debian)

Enviado em 29/05/2008 - 17:33h

Não Elgio o modulo ftp não estava ativo, mas irei fazer os testes, e postarei o resultado, e desde já agradeço a todos que estão colaborando.

Valeuuuu.


11. Re: Firewall bloqueando FTP [RESOLVIDO]

Leandro Almeida
almeidasgt

(usa Ubuntu)

Enviado em 31/05/2008 - 22:35h

Posso estar falando besteira, afinal não sou geek, mas não custa nada dar uma olhada no /etc/services. As duas portas que estão dando problema tem que estar lá.

ftp-data 20/tcp
ftp 21/tcp


12. ftp com proxy nao funciona

Felipe Rossi dos Santos
feliperossi

(usa Debian)

Enviado em 03/12/2008 - 15:14h

ola li todas as sugestoes possiveis e nao consigo resolver um problema
e estou tento com ftp via proxy
tenho um servidor firewall com proxy funcionando tudo ok
mas qdo preciso acessar um servidor FTP fora
da erro com o proxy desabilitado funciona normalmente
agora qdo habilito o proxy aparece o seguinte
erro

ERRO
A URL solicitada n􏻣o pode ser recuperada

--------------------------------------------------------------------------------

Ocorreu erro no protocolo FTP
Na tentativa de recuperar a URL: ftp://positiva_cascavel@ftp.positiva.ind.br/

Squid emitiu o seguinte comando FTP:


NLST

e recebeu esta resposta


Isto pode ter como causa uma URL de FTP com caminho absoluto (que n􏻣o est􏻡 de acordo com a RFC 1738). Se a causa for essa, ent􏻣o o arquivo pode ser encontrado em ftp://positiva_cascavel@ftp.positiva.ind.br/%2f/.



--------------------------------------------------------------------------------

Generated Wed, 03 Dec 2008 17:04:51 GMT by proxy.by.Grafica_Positiva (squid/2.6.STABLE22)



o que pode ser, segui as instruções do elgio
mas ainda nao deu certo
tentei deixar como no_cache no squid tambem nao deu
certo

se puderem dar uma força agradeço
desde já.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts