FolioPierEstudos de TI

Portas negociadas dinamicamente (Transporte)

Nota 31 de 54 · 3 min de leitura
Nesta página
  1. Duas conexões em vez de uma
  2. Por que esse funcionamento falha com NAT e firewall

Alguns serviços usam uma porta inicial e, depois, combinam outra porta com o cliente. Esse comportamento muda o que precisa ser liberado no roteador e no firewall, e engana o teste de porta.

Duas conexões em vez de uma

O exemplo clássico é o FTP, protocolo de transferência de arquivos, no modo chamado passivo. A comunicação acontece em duas conexões:

  1. O cliente se conecta ao servidor na porta conhecida e fixa do serviço, a porta 21.
  2. O cliente pede uma sessão de transferência de dados.
  3. O servidor responde informando uma segunda porta, escolhida no momento, como a porta 51742.
  4. O cliente abre uma segunda conexão nessa porta.
  5. Os dados trafegam pela segunda conexão.

Alguns sistemas corporativos funcionam da mesma forma, e a documentação desses sistemas indica a faixa de portas que precisa ser liberada. Quando o servidor fica atrás de NAT, o servidor também precisa informar ao cliente o seu endereço público, e não o endereço privado, na resposta em que indica a segunda porta.

Por que esse funcionamento falha com NAT e firewall

  • O teste na porta conhecida dá um falso positivo. A porta 21 responde, o técnico conclui que a rede está funcionando, e o problema está na segunda conexão, que não foi testada.
  • O firewall stateful não resolve sozinho. O firewall stateful libera automaticamente as respostas das conexões já abertas, mas a segunda conexão é uma conexão nova e, em geral, é tratada como tráfego não solicitado.
  • A faixa inteira de portas precisa ser liberada, tanto no encaminhamento de portas do roteador quanto no firewall do servidor.
  • O sintoma costuma ser intermitente. Com apenas parte da faixa liberada, a comunicação funciona ou falha conforme a porta escolhida em cada sessão, e o relato é de que às vezes funciona.

Uma alternativa estrutural é a VPN. Dentro do túnel da VPN, as duas redes se comunicam diretamente, sem NAT entre elas, e a segunda conexão segue o mesmo caminho da primeira.

No suporte

Quando o teste da porta principal é bem-sucedido, mas o sistema não funciona, e a documentação menciona a liberação de uma faixa de portas, a causa provável é a negociação de portas. Convém liberar a faixa inteira no roteador e no firewall do servidor ou avaliar o uso de uma VPN.

Para guardar

  • Nem todo serviço usa uma única porta.
  • Testar apenas a porta inicial pode levar a uma conclusão errada.
  • As portas negociadas exigem a liberação da faixa inteira ou o uso de uma VPN.
  • A liberação parcial da faixa produz falhas intermitentes.
A porta 21 de um servidor de arquivos responde a partir da filial, mas as transferências não funcionam, e a documentação do servidor manda liberar as portas de 50000 a 55000. O que acontece?

O servidor negocia uma segunda conexão em uma porta dessa faixa. A primeira conexão passa, e a segunda é bloqueada. A solução é liberar a faixa no encaminhamento de portas e no firewall do servidor, ou usar uma VPN.

Depois de liberar apenas as portas de 50000 a 51000, o mesmo serviço passou a funcionar em algumas tentativas e a falhar em outras. Por quê?

Porque o servidor escolhe a segunda porta em toda a faixa de 50000 a 55000. Quando a porta escolhida está dentro do trecho liberado, a transferência funciona. Quando está fora, a transferência falha.

Publicado a partir do Obsidian · FolioPier