Quais portas de firewall eu preciso abrir ao usar o FTPS?


33

Preciso acessar um servidor FTPS (vsftpd) no site de um fornecedor. O fornecedor possui um firewall na frente do servidor ftps. Eu tenho um firewall na frente do meu cliente FTPS.

Entendo que as portas 990, 991 e talvez 989 precisam ser abertas para controlar o tráfego.

Eu tenho algumas questões:

  1. Ao analisá-lo da perspectiva do firewall do fornecedor, essas portas devem ser abertas para o tráfego de entrada e de saída?
  2. E as portas para o canal DATA?
  3. Tenho que abrir todas as portas acima de 1000?
  4. Devo fazê-lo para tráfego de entrada e saída?

Respostas:


19

Meu entendimento do FTP sobre SSL (ftps) é que ele não funciona bem com firewalls e NAT. Em uma sessão FTP comum, as informações sobre as conexões de dados são lidas e, para o NAT modificado, pelo firewall para que ele abra dinamicamente as portas necessárias. Se essas informações estiverem protegidas por SSL, o firewall não poderá lê-las ou alterá-las.

O uso do SFTP, ou scp, facilita muito o trabalho do administrador da rede - tudo acontece na porta 22 do servidor e a transação segue o modelo normal de cliente / servidor.

Uma coisa não mencionada é se o firewall está executando o NAT ou não e se é NAT estático ou dinâmico. Se a sua máquina cliente tiver um endereço estático ou estiver sendo estaticamente NAT, talvez não seja necessário fazer alterações no firewall, desde que você permita todo o tráfego de saída e o servidor opere apenas no modo Passivo (PASV).

Para saber exatamente quais portas você precisará abrir, você precisará:

a) converse com o fornecedor para obter detalhes sobre como o sistema foi configurado.

b) Use um analisador de protocolo, como tcpdump ou wireshark, para examinar o tráfego, de fora e de dentro do firewall.

Você precisa descobrir qual porta é a conexão de controle. Você lista 3, o que me parece estranho. Supondo que o servidor funcione apenas no modo PASV (passivo), você precisa descobrir como o servidor está configurado para alocar portas DATA. Eles bloquearam o canal DATA em uma única porta de entrada? Eles bloquearam o canal DATA em um pequeno intervalo ou portas?

Com essas respostas, você pode começar a configurar seu firewall.


3
o modo passivo O FTPS usaria uma porta de controle sobre a porta 1024 e, portanto, funcionaria melhor com um firewall do que não passivo. o cliente informa à porta 21 qual porta de limite superior abrir e, portanto, você pode configurar o cliente para dizer "o controle está na porta 2000 ou 2001" e, em seguida, o servidor abrirá a porta de saída 2000 ou 2001. a maioria dos clientes FTP suporta a definição de um intervalo específico de portas para "controle" estar ativado e isso facilita as definições de firewall.
djangofan

27

Acredito que as portas em torno de 990 eram para SSL implícito, que era uma maneira antiga e não padrão de executar FTP / SSL. A maneira "correta" atualmente é SSL explícito, o que significa que você ainda se conecta na porta 21 e depois negocia o SSL antes de enviar seus presentes. Para oferecer suporte a conexões por meio de um firewall, você precisa usar o modo PASV e definir com precisão as portas de dados a serem usadas.

Eu acredito que você precisa de pelo menos uma porta por conexão de dados que deseja oferecer suporte. Se for apenas você, você provavelmente estará bem apenas abrindo algumas portas extras. Especificamente para mim, uso 21000-21010.

No vsftpd.conf, tenho essas duas linhas (junto com todas as outras coisas para dar suporte ao SSL):

pasv_min_port=21000

pasv_max_port=21010

No meu firewall, eu tenho um IP estático público com NAT um para um / estático para o IP interno e apenas as portas TCP 21, 21000-21010 abertas.


10

Eu sei que este é um tópico extremamente antigo, no entanto ..

Observe que o SFTP é completamente diferente do FTPS. (SSH vs SSL)

O FTPS piora de duas maneiras. Explícito e implícito. Explícito é menos seguro, porque depois que o handshake inicial ignora a criptografia durante a transferência de dados [se a criptografia de dados é mantida é configurável no servidor com o PROT P], enquanto o Implicit também mantém a criptografia dos dados após o handshake. A porta FTPS explícita padrão é 21. A porta implícita padrão é 990 (após o handshake, ela mudará automaticamente para 989 para transmissão de dados, se não for configurada de maneira diferente). Embora a porta 21 seja geralmente aceita como EXPLICIT FTPS e 990 como IMPLICIT FTPS, na realidade, qualquer porta que você configurar, exceto 990/989, levará a EXPLICIT FTPS enquanto APENAS 990/989 será aceito como IMPLICIT FTPS.

Portanto, para responder à sua pergunta: - dependendo da configuração do servidor FTPS, você precisará abrir a porta 21 ou 990/989. No entanto, apenas para ter certeza, você deve entrar em contato com o administrador do servidor FTPS e solicitar instruções. Além disso, lembre-se de que, no modo passivo, como em todos os outros softwares de FTP, você terá que abrir portas adicionais (TCP / UDP), geralmente algo entre 64000 e 65000.


2

Basicamente, o ftps é quase inútil, porque você deve fazer solicitações embaraçosas aos administradores do firewall. O conselho para restringir as portas para 10 é bom. Muito mais, torna-se patético.

O sftp é muito melhor em teoria. Mas você precisa de um servidor sftp viável, por exemplo, um servidor que restrinja os clientes ao seu próprio diretório pessoal.

Dependendo do aplicativo, considere HTTPS. Um upload de arquivo é realmente simples e um download obviamente também. Se você estiver criando o FTP de qualquer maneira, provavelmente será mais fácil criar um script para o upload de um arquivo HTTPS.

FTP automatizado é um sinal de um problema de design. Percebi isso ao lidar com um total de cerca de uma dúzia de fornecedores que 'exigiam' um local em que trabalhei para realizar o FTP automatizado (para coisas MUITO importantes) e ao fazer com que dezenas de clientes o fizessem na mesma loja (uma falha de design por aproximadamente 20 usos distintos que testemunhei). Foi fácil convencer a maioria dos caras do aplicativo a usar HTTPS (geralmente, na menção, eles disseram "espere, não há razão para não apenas obtê-los com HTTPS no servidor da web em que já estamos servindo dados?" ), exceto algumas que deram respostas como "bem, já temos esses scripts que parecem funcionar, e ninguém em nossa equipe é muito bom em scripts, portanto não podemos fazer alterações" (uma equipe de 5 a 10 programadores,


1

O fornecedor poderá configurar um intervalo de portas estreito para as portas de conexão DATA, se ainda não o tiverem. Em seguida, você pode abrir o mesmo intervalo para os hosts que precisam desse acesso. O modo PASV deve ser usado.


-1

A porta 22 é padrão, já que o daemon SSH no UNIX possui um módulo SFTP que você pode ativar para criar basicamente um servidor SFTP explícito. Se você deseja executar um servidor FTP implícito com o Filezilla, pode executá-lo em qualquer porta que desejar, mas existe um problema: se você usar o cliente FileZilla, precisará especificar o URL do site ftp como ftps: //mysite.com: 8086 em vez de colocar a porta no campo de porta separada que o cliente FileZilla fornece.

Para a opção explícita, você só precisa de UMA porta: 22. Para a opção implícita, você só precisa ter o firewall aberto para a porta de controle: 8086 (que encaminha internamente para a porta 21 no servidor filezilla).


6
A pergunta feita sobre o FTPS, não sobre o SFTP.
Michael Lang

-7

se ftps for o mesmo que sftp , você precisará acessar a porta 22 no site do fornecedor.

Na sua extremidade, você deve configurar seu firewall para permitir a saída da porta 22 e o tráfego de entrada relacionado . Isso permitirá a comunicação em qualquer porta de entrada relacionada à conexão de saída inicial na porta 22.


11
SFTP não é o mesmo que ftps ( codeguru.com/csharp/.net/net_general/internet/article.php/… ). SFTP é o protocolo de transferência de arquivos usado com SSH. O FTPS é FTP com SSL, o FTPS inicia uma nova conexão de DADOS em uma nova porta aleatória, o que dificulta a implantação por trás de firewalls, mas não consigo remover o firewall nessa situação.

2
Desculpa, então. Vou deixar este post, no entanto, caso outros tenham a mesma confusão.
Brent

É uma confusão extremamente comum. Do lado do firewall, o sftp é muito mais fácil de ser permitido, exceto pelo fato de ele ter sido construído em um protocolo destinado ao acesso de login. Negligente para grupos de segurança independentes permitirem sem validação independente significativa. Difícil para os administradores de sistemas encontrarem / configurarem um servidor sftp razoável para clientes não confiáveis. Qualquer discussão sobre sftp ou ftps deve mencionar o outro protocolo, porque a confusão é MUITO comum.
Carlito
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.