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://[email protected]/

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://[email protected]/%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