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

Re: Problemas com NAT: FTP, POP3 e SMTP



é, já disseram isso, mas de chutômetro fica difícil mesmo...
Mas, de antemão, posso tentar ajudar com o FTP. Hà uma dica do site Dicas-L da Unicamp que pode te ajudar... Mas depois, poste suas regras de firewall que dá pra gente te ajudar melhor... Por enquanto aí vai
 
um abraço
 
-----------------------------------------------------------------------------------
*** Pronus Engenharia de Software - Treinamentos em Gerência de Configuração ***
>> Rio de Janeiro
27/03 - Subversion: Controle de Versão de Software
29/03 - Trac: Controle de Mudança em Projetos
http://www.pronus.eng.br/DicasL
-----------------------------------------------------------------------------------


  FTP com Connection Tracking no IPTABLES
  =======================================

Colaboração: Mateus Ribeiro Mota

O FTP é um protocolo que dificulta muito a vida de quem implementa regras
de filtragem no IPTABLES. O motivo é a forma que o FTP estabelece suas
conexões, pois muitas vezes é impossível mapear quais portas serão feitas
as conexões. O Connection Tracking é um módulo do Linux utilizado para
acompanhar estas conexões "ajudando" o IPTABLES a saber que um determinado
pacote é relacionado a uma conexão já existente. Primeiramente vamos carregar
na máquina que irá fazer o FTP os módulos de Connection Tracking:


  modprobe ip_conntrack
  modprobe ip_conntrack_ftp


amos entender como funciona a conexão de um cliente em um servidor de FTP:
Primeiro o cliente envia um pedido de conexão através de uma porta alta
(>1024) com destino a porta 21 do servidor de FTP. O servidor de FTP então
responde este pedido utilizando a sua porta 21 na porta alta do cliente. Até
então o funcionamento é comum a outras conexões TCP conhecidas.

Porém o FTP precisa de uma conexão de dados que pode ser estabelecida de
duas formas: Utilizando FTP ATIVO ou PASSIVO.

No FTP ATIVO o cliente informa ao servidor uma porta alta através do comando
PORT. O servidor então abre uma conexão utilizando a porta 20 nesta porta alta
informada pelo cliente. NO FTP PASSIVO o servidor que informa ao cliente uma
porta alta através do comando PORT. O cliente por sua vez abre uma conexão
de uma porta alta nesta porta informada pelo servidor.

Enquanto no FTP ATIVO o servidor abre uma nova conexão de dados no cliente,
no PASSIVO as conexões são abertas sempre pelo cliente, dessa forma agregando
um pouco de segurança, porém temos pouco controle sobre quais portas serão
utilizadas na hora de implementar as regras de firewall. Vamos agora as
regras do IPTABLES:

Primeiro vamos liberar a saída da nova conexão para o servidor de FTP na porta 21:


  iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


Agora vamos liberar a resposta do servidor para o cliente:


  iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED, RELATED -j ACCEPT


Para o FTP ATIVO temos que liberar a conexão que o servidor abre para o
cliente, porém liberar novas conexões de entrada é considerado inseguro,
então o Connection Tracking consegue identificar que essa conexão é
relacionada a conexão na porta 21 que já foi feita anteriormente, então não
precisamos liberar o estado NEW:


  iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT


e a saída de retorno:


  iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT


Para o FTP PASSIVO temos que liberar conexões de uma porta alta para outra
porta alta, porém com o Connection Tracking também permitiremos que estas
conexões sejam estabelecidas somente se forem relacionadas a outra conexão
feita anteriormente:


  iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
  iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

--------------------------------------------------------------------
Veja também do arquivo da Dicas-L:

"Quem escreveu o Linux"
http://www.dicas-l.com.br/dicas-l/20040609.php

"Canivete suiço do profissional de Redes"
http://www.dicas-l.com.br/dicas-l/20050518.php

"Integrando Evolution com navegadores no KDE"
http://www.dicas-l.com.br/dicas-l/20050331.php

"Convertendo formatos estranhos de arquivos de áudio"
http://www.dicas-l.com.br/dicas-l/20050217.php

"TCP/UDP: Identificação de Portas Ativas"
http://www.dicas-l.com.br/dicas-l/20040616.php

--------------------------------------------------------------------
Colabore com a Dicas-L. Publique seu comentário sobre esta mensagem
em http://www.Dicas-L.com.br/dicas-l/20060322.php
--------------------------------------------------------------------
As mensagens da lista Dicas-L são veiculadas diariamente
para 25142 assinantes.

       Todas as mensagens da Dicas-L ficam armazenadas em
               http://www.Dicas-L.com.br/dicas-l/

A redistribuição desta e outras mensagens da lista Dicas-L pode
ser feita livremente segundo a licença Creative Commons
http://creativecommons.org/licenses/by-nc-sa/2.0/br/deed.pt

Dicas-L: Uma dica por dia desde 3 de março de 1997
--------------------------------------------------------------------

Reply to: