Compreenda os modos ativo e passivo do FTP

O FTP se conecta apenas através de TCP e não há componente UDP para FTP. O que torna o FTP diferente de outros serviços é que ele usa duas portas, uma porta de dados e uma porta de comando ( ou porta de controle). Normalmente a porta 21 é a porta de comando e a porta 20 é a porta de dados. Quando o conceito de modo ativo/passivo é misturado, a porta de dados pode não ser 20.

FTP em modo ativo

No modo ativo, o cliente FTP se conecta à porta de comando do servidor FTP - porta 21 de qualquer porta não especial (N > 1023). Em seguida, o cliente escuta na porta N+1 (N+1 >= 1024) e envia comandos para o servidor FTP através da porta N+1 (N+1 >= 1024). O servidor, por sua vez, se conectará à porta de dados especificada localmente pelo usuário, como a porta 20.

Tomando o firewall do lado do servidor como ponto de partida, para suportar FTP em modo ativo, você precisa abrir as seguintes portas usadas na interação:

Porta de comando do servidor FTP (21) aceita qualquer porta do cliente (conexão inicial do cliente) 
Comando do servidor FTP (21) porta para porta do cliente (>1023) (o servidor responde ao comando do cliente) 
Dados do servidor FTP (20) porta para porta do cliente ( >1023) (os dados de inicialização do servidor estão conectados à porta de dados do cliente) 
A porta de dados do servidor FTP (20) aceita a porta do cliente (>1023) (o cliente envia um pacote ACK para a porta de dados do servidor)

O diagrama representa-o da seguinte forma:

Compreender os modos ativos e passivos do FTP Compreender os modos ativos e passivos do FTP

No passo 1, a porta de comando do cliente estabelece uma conexão com a porta de comando do servidor FTP e envia o comando “PORTA 1027”. Então, na etapa 2, o servidor FTP retorna um “ACK” para a porta de comando do cliente. No passo 3, o servidor FTP inicia uma conexão da sua própria porta de dados (20) com a porta de dados (1027) previamente especificada pelo cliente, e finalmente o cliente retorna um "ACK" ao servidor no passo 4.

O principal problema com o FTP em modo ativo está, na verdade, no lado do cliente. Na verdade, o cliente FTP não estabelece uma conexão com a porta de dados do servidor. Ele simplesmente informa ao servidor o número da porta que está escutando e o servidor então se conecta novamente à porta especificada do cliente. Para o firewall do cliente, trata-se do estabelecimento de uma conexão do sistema externo com o cliente interno, que normalmente fica bloqueada.

FTP em modo passivo

Para resolver o problema das conexões iniciadas pelo servidor aos clientes, foi desenvolvida uma forma diferente de conexão ao FTP. Isso é chamado de modo passivo, ou PASV, e é habilitado quando o cliente notifica o servidor que está em modo passivo.

No FTP em modo passivo, tanto a conexão de comando quanto a conexão de dados são gerenciadas pelo cliente, o que pode resolver o problema da conexão de entrada do servidor para a porta de dados do cliente ser filtrada pelo firewall. Ao abrir uma conexão FTP, o cliente abre duas portas locais arbitrárias e sem privilégios (N >; 1024 e N+1). A primeira porta está conectada à porta 21 do servidor, mas diferentemente do FTP ativo, o cliente não envia um comando PORT e permite que o servidor se conecte à sua porta de dados, mas envia um comando PASV. O resultado disso é que o servidor abrirá uma porta arbitrária sem privilégios (P >; 1024) e enviará o comando PORT P ao cliente. O cliente então inicia uma conexão da porta local N+1 com a porta P do servidor para transmitir dados.

Para firewalls do lado do servidor, o seguinte tráfego deve ter permissão para suportar FTP passivo:

A porta de comando do servidor FTP (21) aceita qualquer porta do cliente (conexão inicial do cliente) A 
porta de comando do servidor FTP (21) para a porta do cliente (>1023) (o servidor responde ao comando do cliente) A 
porta de dados do servidor FTP (>1023) aceita os dados do servidor FTP dos clientes porta (>1023) (o cliente inicializa a conexão de dados para qualquer porta especificada pelo servidor) 
Porta de dados do servidor FTP (>1023) para a porta do cliente (>1023) (o servidor envia resposta ACK e dados para a porta de dados do cliente)

O diagrama representa-o da seguinte forma:

Compreender os modos ativos e passivos do FTP Compreender os modos ativos e passivos do FTP

No passo 1, a porta de comando do cliente estabelece uma conexão com a porta de comando do servidor e envia o comando “PASV”. Então, na etapa 2, o servidor retorna o comando “PORT 2024” para informar ao cliente (servidor) qual porta usar para escutar conexões de dados. Na etapa 3, o cliente inicializa uma conexão de dados de sua própria porta de dados para a porta de dados especificada pelo servidor. Finalmente, o servidor retorna uma resposta “ACK” para a porta de dados do cliente na etapa 4.

O FTP passivo resolve muitos problemas do lado do cliente, mas também traz mais problemas para o lado do servidor. O maior problema é a necessidade de permitir conexões de qualquer terminal remoto à porta alta do servidor. Felizmente, muitos daemons FTP, incluindo o popular WU-FTPD, permitem que os administradores especifiquem o intervalo de portas usado pelo servidor FTP. Consulte o Apêndice 1 para obter detalhes.

O segundo problema é que alguns clientes suportam o modo passivo e outros não. Devemos considerar como apoiar esses clientes e fornecer soluções para eles. Por exemplo, a ferramenta de linha de comando FTP fornecida pelo Solaris não suporta o modo passivo e requer um cliente FTP de terceiros, como ncftp.

Com a grande popularidade da WWW, muitas pessoas estão acostumadas a usar navegadores da web como clientes FTP. A maioria dos navegadores suporta apenas o modo passivo ao acessar URLs como ftp://. Se isso é bom ou ruim, depende da configuração do servidor e do firewall.

Observação

Alguns leitores apontaram que quando um dispositivo NAT (Network Address Translation) acessa um servidor FTP em modo ativo, o dispositivo NAT não altera de forma inteligente o endereço IP no pacote FTP, impossibilitando o acesso ao servidor.

Resumir

O diagrama a seguir ajudará os administradores a lembrar como funciona cada método FTP:

FTP ativo:

Conexão de comando: cliente> porta 1023-> porta 21 do servidor 
Conexão de dados: cliente> porta 1023 <-porta 20 do servidor

FTP passivo:

Conexão de comando: cliente>porta 1023->porta do servidor 21 
Conexão de dados: cliente>porta 1023->servidor>porta 1023

O FTP ativo é bom para o gerenciamento do servidor FTP, mas ruim para o gerenciamento do cliente. Como o servidor FTP tenta estabelecer uma conexão com a porta aleatória alta do cliente, é provável que essa porta seja bloqueada pelo firewall do cliente. O FTP passivo é bom para o gerenciamento de clientes FTP, mas ruim para o gerenciamento do lado do servidor. Porque o cliente precisa estabelecer duas conexões com o servidor, uma das quais está conectada a uma porta altamente aleatória, e essa porta provavelmente será bloqueada pelo firewall do servidor.

Felizmente, existe um compromisso. Como os administradores de servidores FTP precisam que seus servidores tenham o máximo de conexões de clientes, o FTP passivo deve ser suportado. Podemos reduzir a exposição das portas altas do servidor especificando um intervalo de portas limitado para o servidor FTP. Assim, qualquer porta que não esteja nesta faixa será bloqueada pelo firewall do servidor. Embora isso não elimine todos os perigos para o servidor, reduz bastante os perigos.

Acho que você gosta

Origin blog.csdn.net/yaxuan88521/article/details/132927398
Recomendado
Clasificación