FolioPierEstudos de TI

O proxy

Nota 7 de 9 · 5 min de leitura
Nesta página
  1. O que o proxy faz
  2. O HTTPS pelo proxy
  3. As configurações do Windows
  4. Os programas com configuração própria
  5. Os erros do proxy

Em muitas redes, o acesso à internet passa por um proxy, um servidor intermediário que recebe as requisições dos computadores e as repassa aos sites e aos serviços. Uma integração que funciona no navegador e falha no serviço do Windows, o código 407 e a internet que funciona para um usuário e não para outro costumam ter o proxy no meio.

O que o proxy faz

O proxy fica entre os computadores da rede e a internet e pode:

  • liberar ou bloquear o acesso por usuário, por site ou por categoria;
  • registrar os acessos;
  • guardar cópias de conteúdos frequentes, o chamado cache;
  • exigir usuário e senha antes de liberar a saída.

Existem três tipos comuns:

  • Proxy explícito: o programa conhece o endereço e a porta do proxy, como a 3128 ou a 8080, e envia as requisições para ele;
  • Proxy transparente: a rede desvia o tráfego para o proxy sem nenhuma configuração no computador;
  • Proxy reverso: fica na frente de um serviço e recebe as conexões que chegam da internet, e não as que saem da rede.

O HTTPS pelo proxy

No HTTPS, o programa pede ao proxy um túnel até o serviço, com o método CONNECT e o nome e a porta do destino, como api.example.com:443. Com o túnel aberto, o proxy só repassa os dados protegidos: ele conhece o nome do destino, mas não vê o conteúdo, a menos que faça a inspeção de HTTPS.

As configurações do Windows

O Windows guarda duas configurações de proxy separadas:

  • A configuração do usuário: fica em Configurações, Rede e Internet, Proxy, vale para a conta conectada e é usada pelos navegadores e pela maior parte dos programas abertos pelo usuário;
  • A configuração do WinHTTP: vale para o computador inteiro e é usada por muitos serviços do Windows e por programas que rodam como serviço.

A configuração do usuário tem três formas, que podem ser combinadas:

  • Detectar configurações automaticamente: o Windows procura na rede um script de configuração, pelo protocolo WPAD;
  • Usar script de configuração: o endereço de um arquivo PAC, que define qual proxy usar para cada destino;
  • Usar um servidor proxy: o endereço e a porta informados à mão, com a lista de exceções e a opção de não usar o proxy para os endereços locais.

A lista de exceções define os destinos que não passam pelo proxy. Os endereços internos, como o servidor da loja, o servidor geral e a faixa 192.168.1.*, ficam nas exceções, para que as chamadas HTTP entre os computadores da rede não passem pelo proxy.

Alguns comandos consultam e ajustam o WinHTTP, e os que alteram a configuração pedem o prompt de comando aberto como administrador:

  • netsh winhttp show proxy: mostra o proxy do WinHTTP, e a resposta de acesso direto indica que não há proxy configurado;
  • netsh winhttp show advproxy: mostra a configuração completa do WinHTTP nas versões mais novas do Windows;
  • netsh winhttp import proxy source=ie: copia para o WinHTTP o proxy configurado para o usuário que executa o comando;
  • netsh winhttp reset proxy: volta o WinHTTP para o acesso direto.

Os programas com configuração própria

Alguns programas têm um campo de proxy na própria configuração, e algumas ferramentas leem o proxy de variáveis de ambiente, como HTTPS_PROXY e NO_PROXY. O curl não segue a configuração de proxy do Windows e usa a opção -x ou essas variáveis. Quando a rede da filial 01 usa um proxy, como um firewall no endereço 192.168.1.1 com o proxy na porta 3128, dois testes comparam os caminhos:

  • curl -v -x http://192.168.1.1:3128 https://api.example.com: faz a chamada pelo proxy, e a saída mostra o pedido CONNECT e a resposta do proxy;
  • curl -v --noproxy "*" https://api.example.com: faz a chamada direta, sem o proxy.

Os erros do proxy

As falhas mais comuns se separam assim:

  • Código 407: o proxy exige autenticação e não recebeu uma credencial válida, e a resposta traz o cabeçalho Proxy-Authenticate com a forma de autenticação esperada;
  • Códigos 502 e 504 gerados pelo proxy: o proxy recebeu uma resposta inválida do destino ou não recebeu resposta a tempo;
  • Página de bloqueio: o proxy recusou o destino pela política de acesso e devolveu uma página própria no lugar do site;
  • Falha só no serviço: o serviço roda com outra conta, que não tem a configuração de proxy do usuário.

No suporte

Diante de uma integração que funciona no navegador e falha no serviço, convém comparar o proxy usado em cada caso: a configuração do usuário, a do WinHTTP e a do próprio programa. O teste com o curl pelo proxy e sem ele separa um problema da rede de um problema do proxy, e a resposta 407 mostra que a requisição parou no proxy, antes de chegar ao serviço.

Para guardar

  • O proxy recebe as requisições dos computadores e as repassa à internet, com controle, registro e cache.
  • No HTTPS, o proxy abre um túnel com o método CONNECT e não vê o conteúdo sem a inspeção.
  • O Windows tem a configuração de proxy do usuário e a do WinHTTP, usada por serviços.
  • O código 407 indica que o proxy exige autenticação.
  • Os endereços internos ficam na lista de exceções, fora do proxy.
A integração de preços funciona quando o técnico testa pelo navegador do servidor da loja, mas falha quando roda como serviço, com tempo esgotado na conexão. A rede usa um proxy explícito. O que conferir?

A configuração de proxy usada pelo serviço. O navegador segue o proxy configurado na conta do usuário, e o serviço roda com outra conta, sem essa configuração. O comando netsh winhttp show proxy mostra o proxy do WinHTTP, e a configuração do próprio programa pode ter um campo de proxy à parte.

Um teste com o curl para o endereço da integração, no caixa 01, recebe o código 407. O que esse código indica?

Que a requisição chegou a um proxy que exige autenticação. A resposta vem do proxy, e não do serviço, e o cabeçalho Proxy-Authenticate mostra a forma de autenticação esperada. O acerto fica com o responsável pela rede, que fornece a credencial do proxy para a integração ou libera o destino sem autenticação.

Publicado a partir do Obsidian · FolioPier