Qual é a diferença entre FTP ativo e passivo?

Alguém me pode dizer qual é a diferença entre FTP activo e passivo? Qual deles é preferível?

 277
ftp
Author: okutane, 2009-11-09

5 answers

Activo e passivo são os dois modos em que o FTP pode rodar.

Para o fundo, o FTP usa de facto dois canais entre o cliente e o servidor, o comando e os canais de dados, que são na verdade ligações separadas TCP.

O canal de comando é para comandos e respostas, enquanto o canal de dados é para realmente transferir ficheiros.

Esta separação de informação de comandos e dados em canais separados é uma forma nifty de ser capaz de enviar comandos para o servidor sem ter que esperar pela transferência de dados atual para terminar. De acordo com o RFC, isso só é obrigatório para um subconjunto de comandos, como desistir, abortar a transferência atual e obter o status.


No modo activo, o cliente estabelece o canal de comando, mas o servidor é responsável por estabelecer o canal de dados. Isto pode ser realmente um problema se, por exemplo, a máquina cliente estiver protegida por firewalls e não permitir pedidos de sessão de partes externas.

No modo passivo , o cliente estabelece ambos os canais. Já sabemos que estabelece o canal de comando no modo activo e faz o mesmo aqui.

No entanto, ele então pede ao servidor (no canal de comando) para iniciar a ouvir numa porta (à discrição dos servidores) em vez de tentar estabelecer uma ligação de volta ao cliente.

Como parte disto, o servidor também devolve ao cliente o porto número selecionado para ouvir, para que o cliente saiba como se conectar a ele.

Uma vez que o cliente saiba disso, ele pode então criar com sucesso o canal de dados e continuar.

Mais detalhes estão disponíveis na RFC: https://www.ietf.org/rfc/rfc959.txt

 434
Author: paxdiablo, 2018-04-19 06:38:51
Recentemente encontrei esta questão no meu local de trabalho, por isso acho que devia dizer algo mais aqui. Vou usar a imagem para explicar como o FTP funciona como uma fonte adicional para a resposta anterior.

Modo activo:

active mode


Modo Passivo:

enter image description here


Numa configuração de modo activo, o servidor irá tentar ligar-se a uma porta aleatória do lado do cliente. É provável que esse Porto não seja um desses portos pré-definidos. Como resultado, uma tentativa para se conectar a ele será bloqueado pela firewall e nenhuma conexão será estabelecida.

enter image description here


Uma configuração passiva não terá este problema, uma vez que o cliente será o que iniciará a conexão. Claro, é possível para o lado do servidor ter uma firewall também. No entanto, uma vez que se espera que o servidor receba um maior número de pedidos de conexão em comparação com um cliente, então seria lógico que o administrador do servidor se adaptasse à situação e abra uma seleção de portas para satisfazer configurações de modo passivo.

Por isso seria melhor para si configurar o servidor para suportar o modo passivo FTP. No entanto, o modo passivo tornaria o seu sistema vulnerável a ataques porque os clientes são supostos de se conectar a portas de servidor aleatórias. Assim, para suportar este modo, não só o seu servidor deve ter várias portas disponíveis,como o seu firewall também deve permitir ligações a todas essas portas para passar!

Para atenuar os riscos, a boa solução seria especificar uma gama de portas em seu servidor e, em seguida, permitir apenas essa gama de portas em seu firewall.

Para mais informações, leia por favor o documento oficial .

 141
Author: Yuantao, 2015-04-20 01:08:48

Versão redigida do meu artigo modos de ligação FTP (activo vs. passivo):

O modo de ligação FTP (activo ou passivo) determina como é estabelecida uma ligação de dados. Em ambos os casos, um cliente cria uma conexão de controle TCP para uma porta de comando de servidor FTP 21. Esta é uma conexão de saída padrão, como qualquer outro protocolo de transferência de arquivos (SFTP, SCP, WebDAV) ou qualquer outra aplicação cliente TCP (por exemplo, navegador web). Assim, normalmente não há problemas quando a abrir a ligação de controlo.

Onde o protocolo FTP é mais complicado comparando com os outros protocolos de transferência de ficheiros são transferências de ficheiros. Enquanto os outros protocolos usam a mesma conexão tanto para o controle de sessão e transferência de arquivos (dados), o protocolo FTP usa uma conexão separada para as transferências de arquivos e listas de diretórios.

No modoactivo , o cliente começa a ouvir num porto Aleatório as ligações de dados recebidas do servidor (o cliente envia o Comando FTP PORT para informar o servidor em que porto está a ouvir). Atualmente, é típico que o cliente esteja por trás de uma firewall (por exemplo, firewall embutida no Windows) ou roteador NAT (por exemplo, modem ADSL), incapaz de aceitar conexões TCP recebidas.

Por esta razão o modopassivo foi introduzido e é usado principalmente hoje em dia. Usar o modo passivo é preferível porque a maior parte da configuração complexa é feita apenas uma vez no lado do servidor, pelo administrador experiente, ao invés de individualmente do lado do cliente, por (possivelmente) usuários inexperientes.

No modo passivo , o cliente usa a ligação de controlo para enviar um comando PASV para o servidor e, em seguida, recebe um endereço IP do servidor e o número de porto do servidor do servidor, que o cliente então usa para abrir uma ligação de dados para o endereço IP do servidor e o número de porto do servidor recebido.

Configuração da rede para o Modo Passivo

Com o modo passivo , A maior parte do a carga de configuração está do lado do servidor. O administrador do servidor deve configurar o servidor como descrito abaixo.

O firewall e o NAT do lado do servidor FTP têm de ser configurados não só para permitir/encaminhar as ligações recebidas na porta de FTP 21, mas também uma gama de portos para as ligações de dados recebidas. Normalmente, o software do servidor FTP tem uma opção de configuração para configurar uma gama de portas, que o servidor irá usar. E o mesmo alcance tem que ser aberto/roteado no firewall/NAT.

Quando o servidor FTP está por trás de um NAT, precisa de saber o seu endereço IP externo, para que possa fornecê-lo ao cliente em resposta ao comando PASV.

Configuração da rede para o modo activo

Com o modo activo , A maior parte da carga de configuração está do lado do cliente.

O firewall (por exemplo, Windows firewall) e o NAT (por exemplo, regras de roteamento do modem ADSL) do lado do cliente têm de ser configurados para permitir/encaminhar uma gama de portos para os dados recebidos conexao. Para abrir as portas no Windows, vá para Painel de controlo > Sistema e Segurança > Firewall do Windows > Configuração Avançada > regras de entrada > nova regra . Para encaminhar as portas no NAT (se houver), consulte a sua documentação.

Quando existe NAT na sua rede, o cliente FTP precisa de saber o seu endereço IP externo que o WinSCP precisa de fornecer ao servidor FTP usando o comando {[[0]}. Para que o servidor possa se conectar corretamente de volta ao cliente para abrir a conexão de dados. Cerca Os Clientes FTP são capazes de detectar automaticamente o endereço IP externo, alguns têm de ser configurados manualmente.

Firewalls Inteligentes / NATs

Alguns firewalls / Nat tentam abrir / fechar automaticamente as portas de dados, inspeccionando a ligação de controlo FTP e / ou traduzindo os endereços IP de ligação de dados no tráfego de ligação de controlo.

Com tal firewall / NAT, a configuração acima não é necessária para um FTP não cifrado. Mas isso não pode funcionar com FTPS, como a conexão de controle o tráfego é criptografado e o firewall/NAT não pode inspecioná-lo nem modificá-lo.

 11
Author: Martin Prikryl, 2017-09-17 15:06:17

Modo activo: - o servidor inicia a ligação.

Modo Passivo: - o cliente inicia a ligação.

 5
Author: Saeed Aliakbari, 2017-12-25 11:39:56

Modo activo-o cliente emite um comando portuário para o servidor sinalizando que irá" activamente " fornecer um IP e um número portuário para abrir a ligação de dados de volta ao cliente.

De Modo Passivo-O cliente emite um comando PASV para indicar que ele vai esperar "passivamente" para o servidor para fornecer um IP e número da porta, após o que o cliente irá criar uma Conexão de Dados para o servidor.

Existem muitas boas respostas acima, mas este post inclui alguns gráficos úteis e dá uma explicação bastante sólida: https://titanftp.com/2018/08/23/what-is-the-difference-between-active-and-passive-ftp/

 0
Author: DaveW2122, 2018-08-27 13:07:35