Publicado por: Rafael Guedes | 21 outubro 2010

Autoconfiguração de Proxy

Depois de algum tempo sem postar, vou falar hoje sobre um assunto que tomou praticamente o meu dia hoje, a configuração automática de Proxy. Ao falar deste assunto temos alguns conceitos envolvidos, como o de servidor Proxy, servidor DNS, servidor DHCP, porém estes assuntos não serão tratados neste artigo por fugir do escopo, porém se alguém tiver alguma dúvida na instalação/configuração destes servidores, por favor pergunte!

Quais são as vantagens ao se usar uma configuração automática de Proxy?

  • Não há a necessidade de passar de máquina em máquina e configurar o proxy no navegador.
  • Você pode planejar com tranquilidade uma mudança de endereço do servidor.
  • Dispensa regras de redirecionamento no Firewall/Router.
  • Você pode usar um proxy autenticado de forma transparente.
  • Quando o usuário sair da rede ele não precisa alterar nada em seu navegador.

Existem dois conceitos que devem ser entendidos neste cenário:

Arquivo PAC (proxy auto-config)
Este arquivo define como o browser pode escolher automaticamente o servidor proxy a ser usado num acesso à uma URL. Ele contém uma função Java Script que retorna
uma string com uma ou mais especificações de método de acesso. Estas especificações fazem tanto o browser usar um servidor Proxy específico para um acesso, quanto acessar diretamente a requisição (sem o uso de nenhum proxy). Este arquivo deve ficar armazenado num servidor WEB. A sintaxe deste artigo será abordada mais adiante.

WPAD (Web Proxy Auto Discovery)
Existem algumas formas de se fazer a configuração do servidor proxy no navegador. Dentre elas:

  • Configuração Manual: é especificado um servidor proxy , bem como sua porta para o acesso à todas as URLs. A maioria dos navegadores ainda permite a configuração de uma lista de domínios os quais irão bypassar o proxy.
  • PAC: neste caso será necessário informar manualmente a URL de acesso ao arquivo PAC.
  • E por fim, o WPAD: o WPAD é um protocolo utilizado para que o browser descubra automaticamente a localização do arquivo PAC. Isto pode ser feito via DNS e/ou DHCP.

Então espero que tenha ficado claro, o WPAD é o método utilizado pelos clientes para localizarem de forma automática, via DNS e/ou DHCP, onde está localizado o arquivo PAC, que por sua vez é o arquivo onde estão contidas as definições de utilização de Proxy, bypass de domínios, acessos diretos, etc.

Aplicando o WPAD:

Via DNS

O seu servidor DNS deve ter um resource record do tipo A wpad.seu.dominio apontando para o IP do servidor WEB que está disponibilizando o arquivo PAC. O arquivo PAC deve obrigatoriamente chamar-se wpad.dat. O sufixo DNS nas estações da sua rede deve corresponder ao domínio utilizado no servidor DNS, isto pode ser difundido via DHCP usando a opção domain-name. Exmplo: eu tenho um domínio interno chamado intranet.bigualinux.corp. Devem ser seguidos os seguintes passos a fim de aplicar o WPAD neste cenário:

  • Faça com que suas estações usem o sufixo DNS intranet.bigualinux.corp
  • Crie uma entrada A chamada wpad na zona intranet.bigualinux.corp apontado para o servidor WEB no qual deverá estar o arquivo wpad.dat
  • O arquivo wpad.dat deve estar na raiz da URL . http://wpad.intranet.bigualinux.corp/wpad.dat

Via DHCP

O servidor DHCP deve ser configurado para disponibilizar a URL onde está localizado o arquivo wpad.dat. Caso o seu DHCP server seja Linux, adicione o seguinte bloco ao seu dhcpd.conf:

option wpad code 252 = text;
option wpad “http://wpad.intranet.bigualinux.corp/wpad.dat\n”;

NOTAS

  • O método via DHCP tem precedência ao uso de DNS.
  • O Chrome e o Firefox suportam apenas o uso de DNS.
  • Sempre que usar DNS não esqueça que o nome deve ser wpad.seu.dominio, se usar DHCP você escolhe.
  • Sempre que usar DNS não esqueça que o nome do arquivo deve ser wpad.dat, se usar DHCP você escolhe.
  • Embora eu não tenha tido problemas com isso, o tipo MIME do arquivo wpad.dat deve ser “application/x-ns-proxy-autoconfig”.
  • O arquivo wpad.dat deve estar no root directory do servidor WEB.
  • Existem alguns problemas ao utilizar Virtual Host, logo tenha certeza de que o arquivo wpad.dat está no Virtual Host Default, ou então não utilize Virtual Host.
  • Existe uma questão ao criar uma entrada wpad no DNS do Windows Server. Veja o link com a resolução do problema nas referências.

Sintaxe do Arquivo PAC:

O arquivo PAC é um arquivo de texto que define no mínimo uma função Java Script, FindProxyForURL(url, host). Um simples exemplo de Arquivo PAC:

function FindProxyForURL(url, host) { return “PROXY proxy.intranet.bigualinux.corp:3128; DIRECT”;

Esta função instrui o browser à buscar todas as páginas através de proxy na porta 3128 do servidor proxy.intranet.bigualinux.corp. Se este servidor Proxy não responder, o browser buscará as páginas diretamente, sem usar Proxy. Outro exemplo, agora com mais opções:

function FindProxyForURL(url, host) {
if(isPlainHostName(host))
return “DIRECT”;
else
return “PROXY proxy.intranet.bigualinux.corp:3128″;
}

Neste exemplo, caso a URL a ser acessada contenha o mesmo sufixo DNS da máquina o acesso será direto , sem proxy. E qualquer outra URL será redirecionada ao proxy proxy.intranet.bigualinux.corp na porta 3128.  Um outro exemplo mostrando mais algumas funções:

function FindProxyForURL(url, host) {
if (shExpMatch(url,”*.caixa.gov.br/*”))                  {return “DIRECT”;}
if (shExpMatch(url, “*.caixa.gov.br:*/*”))               {return “DIRECT”;}

if (isInNet(host, “192.168.0.0”,  “255.255.255.0”))    {

return “PROXY proxyalt.intranet.bigualinux.corp:8080”;

}

return “PROXY proxy.intranet.bigualinux.corp:3128; DIRECT”;

}

Neste caso , primeiro foi usada expressão regular , de modo que o acesso ao domínio caixa.gov.br deve ser direto, e não utilizando Proxy. Após isto é verificado se o host de destino pertence à rede 192.168.0.0/24, caso seja o acesso será redirecionado para o Proxy proxyalt.intranet.bigualinux.corp na porta 8080. Todas as outras requisições são encaminhadas ao Proxy proxy.intranet.bigualinux.corp na porta 3128, e caso este falhe o acesso será feito de forma direta.

Configurando no Cliente:

Internet Explorer:

  • Navegue no menu Ferramentas – Opções da Internet.
  • Na aba Conexões acesse Configurações da LAN.
  • Selecione APENAS a opção “Detectar automaticamente as configurações”.

Firefox:

  • Navegue no menu Ferramentas – Opções.
  • Navegue na Aba Avançado – Rede.
  • Clique no botão Configurações e selecione a opção “Autodetectar as configurações de proxy para esta rede”.

Conclusão

Espero que possa estar ajudando alguém que esteja trilhando o mesmo caminho que trilhei para me munir de informações sobre este assunto, que é relativamente novo para mim e então é possível que eu tenha me expressado de maneira errada , ou mesmo escrito algo inconsistente. Se alguém tiver o conhecimento e verificar alguma informação errada por favor me avise. Desculpas também caso não tenha sido conciso o suficiente, por favor me avisem caso tenha ficado. Aceito sugestões, e caso tenha alguma dúvida por favor comente! Eu estarei respondendo na medida do tempo disponível e até onde estiver ao meu alcance.

Referências:

http://www.vivaolinux.com.br/artigo/Configuracao-automatica-%28mesmo%29-de-proxy-com-WPAD?pagina=1
http://technet.microsoft.com/en-us/library/cc794902%28WS.10%29.aspx
http://configuration-guide.com/dns-error-event-id-6268-global-query-block-list-wpad-isatap/
http://en.wikipedia.org/wiki/Proxy_auto-config#Further_reading
http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol

function FindProxyForURL(url, host) { return "PROXY proxy.example.com:8080; DIRECT"; }

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Categorias

%d blogueiros gostam disto: