+ Responder ao Tópico



  1. Bom galera no ftp exsite dois modos de transferir dados , conhecido como ftp ativo e ftp passivo
    No ftp ativo a comunicação é feita na porta 21 e transfere dados na porta 20
    No ftp passivo a comunicação é feita na porta 21 mas a transferencia é feita numa porta aleatória acima da 1024.
    Resolvi isso criando algumas regrinhas além de levantar os modulos citados acima
    iptables -A FORWARD -s MINHAREDE -d 0/0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A FORWARD -s 0/0 -d MINHAREDE -m state --state RELATED,ESTABLISHED -j ACCEPT
    # Para o servidor que quero estabelecer FTP
    iptables -A FORWARD -s MINHAREDE -d 200.x.x.1 -p tcp --dport 21 -j ACCEPT

    Alguém pode supor ser uma falha de segurança, mas até o momento não tive problemas, por que só permiti pacotes estabelecidos, claro que existem outras regras de FORWARD, mas são essas que resolveram o problema com ftp.
    Abraços

  2. LION, pelo que um amigo mi explicou sobre conexoes NEW.
    Não é muito seguro. Fica muito aberto dessa forma pra rede.

    Tente melhorar as regras ou procurar informações sobre conexões
    ( NEW, RELATED, ESTABLISHED ) Apenas uma dica e não uma critica.

    Abraço






  3. 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
    modprobe ip_nat_ftp

    Vamos 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

    Valeu.

    Abraço

  4. Nesse caso, pelo que eu vi até agora.

    Não tem como fazer as requisições da porta 21 e 20 serem direcionadas para a porta 3128 do proxy junto com a porta 80.


    Estou com o problema agora do ftp.

    CAR.....



  5. #20
    maverick_cba
    Muito sábio a explicação do nosso amigo Lacier. A propósito estou de volta.

    Amigo, apesar do squid permitir, não é necessário direcionar conexões FTP para o proxy. Isso só sobrecarrega do bendito.

    Recomendo deixar o tráfego fluir direto pelas interfaces.
    A regra abaixo libera acesso para as estações internas acessarem servidores FTP externos permitindo que a conexão só possa ser iniciada apartir da rede interna.

    $IPT -A FORWARD -p tcp -i $IF_INTERNA -o $IF_EXTERNA -m multiport --dport 20,21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    $IPT -A FORWARD -p tcp -o $IF_INTERNA -i $IF_EXTERNA -m multiport --sport 20,21 -m state --state ESTABLISHED,RELATED -j ACCEPT

    Obs: Não se esqueça de carregar os módulos auxiliares citados em outras soluções.






Tópicos Similares

  1. não consigo acessar FTP com autenticação
    Por lfernandosg no fórum Servidores de Rede
    Respostas: 0
    Último Post: 02-08-2008, 13:54
  2. Respostas: 0
    Último Post: 22-11-2007, 13:47
  3. Proxy Transparente : Nao consigo acessar pop, smtp e nem dar ping
    Por master_foca no fórum Servidores de Rede
    Respostas: 7
    Último Post: 09-05-2006, 17:32
  4. Squid não deixa acessar java
    Por no fórum Servidores de Rede
    Respostas: 4
    Último Post: 16-08-2005, 10:44
  5. Não consigo acessar ftp
    Por ungisoft no fórum Servidores de Rede
    Respostas: 3
    Último Post: 21-10-2004, 12:01

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L