Conteúdo:

  • Introdução
  • O Básico
  • FTP Ativo
  • FTP Ativo Exemplo
  • FTP Passivo
  • FTP Passivo Exemplo
  • Outras Notas
  • Resumo
  • Apêndice 1: Configuração do Comum, Servidores de FTP
  • Apêndice 2: Configuração de Firewall Guia

Introdução

Um dos mais comumente visto perguntas ao lidar com firewalls e outras problemas de conectividade da Internet é a diferença betweenactive e FTP passivo e como melhor suporte a um ou ambos os ofthem., Esperemos que o seguinte texto ajude a esclarecer uma parte da confusão sobre como apoiar FTP em um ambiente firewalled.

esta pode não ser a explicação definitiva, como o título afirma, no entanto, eu já ouvi bastante bom feedback e vi este documento ligado em lugares suficientes para saber que muitas pessoas o acharam útil. Estou sempre à procura de maneiras de melhorar as coisas, porém, e se você encontrar algo que não é muito claro ou precisa de mais explicação, por favor, me avise!, As adições recentes a este documento incluem os exemplos de sessões FTP activas e passivas da linha de comandos. Estes exemplos de sessão devem ajudar a tornar as coisas um pouco mais claras. Eles também fornecem uma imagem agradável sobre o que acontece nos bastidores durante uma sessão FTP. Passemos agora à informação…

o básico

FTP é um serviço baseado em TCP exclusivamente. Não existe nenhum componente UDP toFTP. FTP é um serviço incomum na medida em que utiliza duas portas, uma porta de ‘dados’ e uma porta de ‘comando’ (também conhecida como a porta de controle)., A tradição diz respeito ao porto 21 para o porto de comando e ao porto 20 para o dataport. A confusão começa no entanto, quando descobrimos que, dependendo do código, a porta de dados nem sempre está no porto 20.

FTP activo

no modo activo FTP o cliente liga-se a partir de um porto Aleatório não protegido (N > 1023) à porta de comandos do servidor de FTP, porta 21. Em seguida, o Client começa a ouvir o porto n+1 e envia o comando FTP PORTN+1 para o servidor FTP., O servidor então se conectará de volta à porta de dados especificada do cliente a partir de sua porta de dados local, que é a porta 20.,21 para portas > 1023 (Servidor responde toclient de controle da porta)

  • do servidor de FTP porta 20 para portas > 1023 (Servidor inicia dataconnection ao cliente, porta de dados)
  • do servidor de FTP porta 20 de portas > 1023 (Cliente envia ACKs toserver da porta de dados)
  • Quando retirado, a conexão aparece da seguinte forma:

    No passo 1, o cliente de comando da porta de contatos de comando do servidor portand envia o comando

    PORT 1027., O servidor então envia anACK de volta para a porta de comando do cliente no Passo 2. Na Etapa 3, o servidor inicia uma conexão em sua porta de dados local para a porta de dados que o cliente especificou anteriormente. Finalmente, o cliente envia um ACK de volta como mostrado no step4.

    O principal problema com o modo ativo FTP realmente cai no lado do cliente. O cliente FTP não faz a ligação real à porta de dados do servidor–ele simplesmente diz ao servidor em que porta está a ouvir e o servidor liga-se de volta à porta indicada no cliente., A partir da firewall lateral, este parece ser um sistema externo iniciando uma conexão com um cliente interno — algo que normalmente é bloqueado.

    exemplo FTP ativo

    abaixo é um exemplo real de uma sessão FTP ativa. As únicas coisas que foram alteradas são os nomes dos servidores, endereços IP e nomes de usuário. Neste exemplo, uma sessão FTP é iniciada a partir de testbox1.slacksite.com (192.168.150.80), uma caixa de linux executando o padrão de FTP do cliente de linha de comando, para testbox2.slacksite.com (192.168.150.90), um linux executando o ProFTPd 1.2.2RC2., A bandeira de depuração (-d) é usada com o cliente de FTP para mostrar o que está acontecendo nos bastidores. Tudo em vermelho é a saída de depuração que mostra os comandos FTP reais que estão sendo enviados para o servidor e as respostas geradas a partir desses comandos. A saída Normal do servidor é mostrada a preto, e a entrada do Utilizador está a negrito.

    Existem algumas coisas interessantes a considerar sobre esta janela. Notice that when the PORT command is issued, it specifies a port on the client (192.168.150.80) system, rather than the server., Veremos o comportamento oposto quando usarmos FTP passivo. Enquanto estamos no assunto, uma nota rápida sobre o formato do comando PORT. Como você pode ver no exemplo abaixo ele é formatado como uma série de seis números separados por vírgulas. Os primeiros quatro octetos são o endereço IP, enquanto os dois últimos octetos compõem a porta que será usada para a conexão de dados. Para encontrar a porta real multiplicar o quinto octeto por 256 e, em seguida, adicionar o sexto octeto ao total. Assim, no exemplo abaixo o número de porto é ( (14*256) + 178), ou 3762., Uma verificação rápida com netstat deve confirmar esta informação.

    FTP passivo

    a fim de resolver a questão do servidor iniciando a conexão ao cliente um método diferente para conexões FTP foi desenvolvido. Isto foi conhecido como modo passivo, ou PASV, após o comando usado pelo cliente para dizer ao servidor que está em Modo Passivo.

    no modo passivo FTP o cliente inicia ambas as conexões para o servidor, resolvendo o problema de firewalls filtrando a portconnection de dados recebidos para o cliente a partir do servidor., Ao abrir uma ligação FTP, o cliente abre duas portas não protegidas aleatoriamente localmente (n > 1023 andN+1). A primeira porta contata o servidor na porta 21, mas em vez de então emitir um ID

    comando e permitir que o servidor conecte a sua porta de dados, o cliente emitirá o comandoPASV. O resultado disso é que o servidor, em seguida, abre uma randomunprivileged porta (P > 1023) e enviaPde volta para o cliente em resposta aoPASVcomando., O cliente então inicia a conexão de portN+1 para port P no servidor para transferir dados.,para o cliente’scontrol porta)

  • do servidor de FTP portas > 1023 partir de qualquer local (Cliente inicia dataconnection a porta aleatória especificado pelo servidor)
  • do servidor de FTP portas > 1023 portas remotas > 1023 (Servidor sendsACKs (e) os dados do cliente, porta de dados)
  • Quando desenhados, de um modo passivo FTP conexão se parece com isso:

    No passo 1, o cliente contata o servidor com o comando da porta e issuesthePASVcomando., O servidor então responde no Passo 2 comPORT 2024, dizendo ao cliente qual porta Ele está escutando para a conexão de dados. Na Etapa 3, o cliente então inicia a conexão de dados de sua porta de dados para a porta de dados do servidor especificado. Finalmente, o servidor envia de volta um ACK no Passo 4 para a porta de dados do cliente.

    enquanto o modo passivo FTP resolve muitos dos problemas do lado do cliente, ele abre uma série de problemas no lado do servidor. O biggestissue é a necessidade de permitir qualquer conexão remota a portas numeradas altas no servidor., Felizmente, muitos daemons FTP, incluindo o popular WU-FTPDallow o administrador para especificar uma gama de portas que o servidor FTP vai usar. Ver Apêndice 1 para mais informações.

    a segunda edição envolve o apoio e resolução de problemas de clientes que suportam (ou não) o modo passivo. Como exemplo, o utilitário FTP de linha e comando fornecido com o Solaris não suporta passivemode, necessitando de um cliente FTP de terceiros, como o ncftp.
    Nota: Este não é mais o caso — use o -p opção com o modo passivo de acesso ao cliente FTP Solaris!,com a enorme popularidade da World Wide Web, muitas pessoas preferem usar seu navegador web como um cliente FTP. A maioria dos navegadores só suporta o modo de suporte ao acessar ftp: / / URLs. Isto pode ser bom ou mau para o que os servidores e firewalls são configurados para suportar.

    exemplo de FTP passivo

    abaixo é um exemplo real de uma sessão de FTP passiva. As únicas coisas que foram alteradas são os nomes dos servidores, endereços IP e nomes de usuário. Neste exemplo, uma sessão FTP é iniciada a partir de testbox1.slacksite.com (192.168.150.,80), uma caixa linux rodando o cliente de linha de comando FTP padrão, para testbox2.slacksite.com (192.168.150,0), uma caixa linux rodando ProFTPd 1.2.2RC2. A bandeira de depuração (-d) é usada com o cliente de FTP para mostrar o que está acontecendo nos bastidores. Tudo em vermelho é a saída de depuração que mostra os comandos FTP reais que estão sendo enviados para o servidor e as respostas geradas a partir desses comandos. A saída Normal do servidor é mostrada a preto, e a entrada do Utilizador está a negrito.,

    Notice the difference in the PORT command in this example as opposed to the active FTP example. Aqui, vemos uma porta sendo aberta no Sistema servidor (192.168.150,0), em vez do cliente. Veja a discussão sobre o formato do comando PORT acima, na secção de exemplo de FTP activo.,

    Outras notas

    a reader, Maarten Sjouw, apontou que FTP ativo não vai funcionar quando usado em conjunto com um cliente-lado NAT (Network Address Translation) dispositivo que não é inteligente o suficiente para alterar a informação de endereço IP em pacotes FTP.

    Resumo

    O gráfico a seguir deve ajudar administradores a se lembrar de como cada FTP funciona de modo:

     Active FTP : command : client >1023 -> server 21 data : client >1023 1023 -> server 21 data : client >1024 -> server >1023

    Um rápido resumo dos prós e contras da ativa vs. passiva FTP é também:

    FTP Ativo é benéfico para o FTP server admin, mas prejudicial para o lado do cliente de administração., O servidor FTP tenta fazer conexões com portas altas aleatórias no cliente, o que quase certamente seria bloqueado por um firewall no lado do cliente. FTP passivo é benéfico para o cliente, mas prejudicial para o administrador do servidor FTP. O cliente fará ambas as conexões para o servidor, mas uma delas será para uma porta alta aleatória, que quase certamente seria bloqueada por um firewall no lado do servidor.felizmente, há um certo compromisso., Uma vez que os administradores que executam servidores FTP terão de tornar os seus servidores acessíveis ao maior número de clientes, eles quase certamente terão de suportar FTP passivo. A exposição de portas de alto nível no servidor pode ser minimizada, especificando uma gama de portas limitada para o servidor FTP para usar. Assim, tudo exceto para esta gama de portas pode ser firewalled no lado do servidor. Embora isso não elimine todos os riscos para o servidor, ele diminui tremendamente. Ver Apêndice 1 para mais informações.,

    uma excelente referência sobre como vários protocolos de internet funcionam e as questões envolvidas na sua firewalling podem ser encontradas no Livro O’Reilly andAssociates, construindo Firewalls na Internet, 2nd Ed, por BrentChapman e Elizabeth Zwicky.Nota 2012: este livro é muito antigo e as informações nele contidas podem estar desatualizadas!

    Deixe uma resposta

    O seu endereço de email não será publicado. Campos obrigatórios marcados com *