Respostas:
Ativo e passivo são os dois modos nos quais o FTP pode ser executado.
Como pano de fundo, o FTP realmente usa dois canais entre cliente e servidor, os canais de comando e dados, que na verdade são conexões TCP separadas .
O canal de comando é para comandos e respostas, enquanto o canal de dados é para transferir arquivos.
Essa separação de informações e dados de comando em canais separados é uma maneira bacana de poder enviar comandos para o servidor sem ter que esperar a transferência de dados atual terminar. De acordo com o RFC, isso é obrigatório apenas para um subconjunto de comandos, como sair, interromper a transferência atual e obter o status.
No modo ativo , o cliente estabelece o canal de comando, mas o servidor é responsável por estabelecer o canal de dados. Na verdade, isso pode ser um problema se, por exemplo, a máquina cliente estiver protegida por firewalls e não permitir solicitações de sessão não autorizadas de terceiros.
No modo passivo , o cliente estabelece os dois canais. Já sabemos que ele estabelece o canal de comando no modo ativo e faz o mesmo aqui.
No entanto, ele solicita que o servidor (no canal de comando) comece a escutar em uma porta (a critério do servidor) em vez de tentar estabelecer uma conexão de volta ao cliente.
Como parte disso, o servidor também retorna ao cliente o número da porta que ele selecionou para escutar, para que o cliente saiba como se conectar a ele.
Depois que o cliente souber disso, ele poderá criar com sucesso o canal de dados e continuar.
Mais detalhes estão disponíveis no RFC: https://www.ietf.org/rfc/rfc959.txt
Recentemente, eu me deparei com essa pergunta no meu local de trabalho, então acho que devo dizer algo mais aqui. Usarei a imagem para explicar como o FTP funciona como uma fonte adicional para a resposta anterior.
Modo ativo:
Modo passivo:
Em uma configuração do modo ativo, o servidor tentará se conectar a uma porta aleatória do lado do cliente. Portanto, é provável que essa porta não seja uma dessas portas predefinidas. Como resultado, uma tentativa de conexão a ele será bloqueada pelo firewall e nenhuma conexão será estabelecida.
Uma configuração passiva não terá esse problema, pois será o cliente que iniciará a conexão. Obviamente, é possível que o servidor também tenha um firewall. No entanto, como é esperado que o servidor receba um número maior de solicitações de conexão em comparação com um cliente, seria lógico que o administrador do servidor se adapte à situação e abra uma seleção de portas para satisfazer as configurações do modo passivo.
Portanto, seria melhor configurar o servidor para suportar o FTP no modo passivo. No entanto, o modo passivo tornaria seu sistema vulnerável a ataques porque os clientes deveriam se conectar a portas aleatórias do servidor. Portanto, para oferecer suporte a esse modo, não apenas o servidor deve ter várias portas disponíveis, mas também o firewall deve permitir conexões com todas essas portas!
Para atenuar os riscos, uma boa solução seria especificar um intervalo de portas no servidor e permitir apenas esse intervalo de portas no firewall.
Para mais informações, leia o documento oficial .
Versão editada do meu artigo Modos de conexão FTP (ativo x passivo) :
O modo de conexão FTP (ativo ou passivo) determina como uma conexão de dados é estabelecida. Nos dois casos, um cliente cria uma conexão de controle TCP com uma porta de comando do servidor FTP 21. Essa é uma conexão de saída padrão, como qualquer outro protocolo de transferência de arquivos (SFTP, SCP, WebDAV) ou qualquer outro aplicativo cliente de TCP (por exemplo, navegador da web). ) Portanto, geralmente não há problemas ao abrir a conexão de controle.
Onde o protocolo FTP é mais complicado, em comparação com outros protocolos de transferência de arquivos, são as transferências de arquivos. Enquanto os outros protocolos usam a mesma conexão para controle de sessão e transferência de arquivos (dados), o protocolo FTP usa uma conexão separada para transferências de arquivos e listagens de diretório.
No modo ativo , o cliente começa a escutar em uma porta aleatória as conexões de dados de entrada do servidor (o cliente envia o comando FTP PORT
para informar ao servidor em qual porta está escutando). Atualmente, é típico que o cliente esteja protegido por um firewall (por exemplo, firewall interno do Windows) ou roteador NAT (por exemplo, modem ADSL), incapaz de aceitar conexões TCP de entrada.
Por esse motivo, o modo passivo foi introduzido e é usado principalmente hoje em dia. É preferível usar o modo passivo , porque a maior parte da configuração complexa é feita apenas uma vez no servidor, por administrador experiente, e não individualmente no cliente, por (possivelmente) usuários inexperientes.
No modo passivo , o cliente usa a conexão de controle para enviar um PASV
comando ao servidor e, em seguida, recebe um endereço IP e um número da porta do servidor, que o cliente usa para abrir uma conexão de dados com o endereço IP e o servidor. número da porta recebido.
Com o modo passivo , a maior parte da carga de configuração está no lado do servidor. O administrador do servidor deve configurar o servidor conforme descrito abaixo.
O firewall e o NAT no lado do servidor FTP devem ser configurados não apenas para permitir / rotear as conexões de entrada na porta FTP 21, mas também um intervalo de portas para as conexões de dados de entrada. Normalmente, o software do servidor FTP tem uma opção de configuração para configurar um intervalo de portas que o servidor utilizará. E o mesmo intervalo deve ser aberto / roteado no firewall / NAT.
Quando o servidor FTP está protegido por um NAT, ele precisa saber seu endereço IP externo, para poder fornecê-lo ao cliente em uma resposta ao PASV
comando.
Com o modo ativo , a maior parte da carga de configuração está no lado do cliente.
O firewall (por exemplo, firewall do Windows) e o NAT (por exemplo, regras de roteamento de modem ADSL) no lado do cliente devem ser configurados para permitir / rotear um intervalo de portas para as conexões de dados recebidas. Para abrir as portas no Windows, vá para Painel de Controle> Sistema e Segurança> Firewall do Windows> Configurações Avançadas> Regras de Entrada> Nova Regra . Para rotear as portas no NAT (se houver), consulte a documentação.
Quando há NAT em sua rede, o cliente FTP precisa saber seu endereço IP externo que o WinSCP precisa fornecer ao servidor FTP usando o PORT
comando Para que o servidor possa se conectar corretamente ao cliente para abrir a conexão de dados. Alguns clientes de FTP são capazes de detectar automaticamente o endereço IP externo, outros precisam ser configurados manualmente.
Alguns firewalls / NATs tentam abrir / fechar automaticamente as portas de dados inspecionando a conexão de controle FTP e / ou convertendo os endereços IP da conexão de dados no tráfego de conexão de controle.
Com esse firewall / NAT, a configuração acima não é necessária para um FTP simples e não criptografado. Mas isso não pode funcionar com o FTPS, pois o tráfego da conexão de controle é criptografado e o firewall / NAT não pode inspecionar nem modificá-lo.
Modo ativo: -server inicia a conexão.
Modo passivo: -client inicia a conexão.
Modo ativo - O cliente emite um comando PORT para o servidor, sinalizando que ele "ativamente" fornecerá um número de IP e porta para abrir a conexão de dados de volta ao cliente.
Modo passivo - O cliente emite um comando PASV para indicar que aguardará "passivamente" o servidor fornecer um número de IP e porta, após o qual o cliente criará uma conexão de dados com o servidor.
Há muitas boas respostas acima, mas este post do blog inclui alguns gráficos úteis e fornece uma explicação bastante sólida: https://titanftp.com/2018/08/23/what-is-the-difference-between-active-and -passivo-ftp /