Tags

, ,

Boa noite á todos !!!

Após longos mêses sem postagens, sem notebook novo (ta no conserto ainda, GRANDE LENOVO VIU ==/), TCC matando e Finalmente a boa notícia do meu tornozelo que logo vai melhorar sem precisar de cirurgia uhhuL ;).

Mas enfim, sei que tenho as pendências dos posts que preciso postar, mas creio que logo logo acaba toda essa correria e coloco muita coisa nova que estou guardando (dansguardian, samba, certificado digital + RADIUS para wi-fi, Especial LPI 2, etc.).

Quem nunca precisou configurar um proxy para um novo funcionário no Firefox que ele gosta, no Chrome que ele ama, no Safari que roda no lindo Mac Pro do patrão? Agora imagine implantar um novo proxy em sua rede e precisar configurar em todas as 1.000 máquinas, sendo que a sua política via GPO aplicará somente no IE =/, faltando apenas, o Firefox, Chrome, Safari, Opera, etc. etc.

Como dizem nossos amigos do “Casseta e planeta”, Seus problemas Acabaram! (Somente lembrando que este método não é novo). O WPAD mais conhecido como “Web Proxy Auto Discovery” que utiliza-se de scripts feitos em javascripts para configurar o servidor proxy e outras funcionalidades.

Não vou destrinchar todas as funcionalidades, porém a mais útil E QUE me salvou hoje no trabalho ; ).

Antes de começarmos há as seguintes ressalvas:

* Você precisa de um servidor Web para hospedar o script QUE SUPORTE javascript (Apache por exemplo)
** O WPAD não funcionará em servidores HTTPS
*** O navegador a ser configurado PRECISA interpretar javascript (Atualmente, todos que conheço já o fazem)

Há duas formas de se “entregar” o WPAD para a rede, via DNS ou via DHCP, mostrarei aqui via DHCP que pela minha opnião é a forma mais fácil e rápida.

Criaremos primeiramente o arquivo “wpad.dat” que ficará na raiz do servidor Web (DocumentRoot do Apache), segue abaixo o conteúdo:

1 function FindProxyForURL(url, host){
2 var proxy_yes = “IP DO PROXY:8080”;
3 var proxy_no = “DIRECT”;
4 if (shExpMatch(url, “localhost”)) { return proxy_no; }
5 if (shExpMatch(url, “http://*.vivaolinux.com.br/*”)) { return proxy_no; }
6 if (shExpMatch(url, “https://tinodiaadia.wordpress.com/*”)) { return proxy_no; }
7 if (shExpMatch(url, “http://*.microsoft.com/*”)) { return proxy_no; }
8 return proxy_yes;
9 }

Como podem ver, nada de impossível para entender, na primeira linha criamos a função e logo abaixo já definimos na linha 2 e 3 as opções mais importantes.

Na linha 2 definimos a variável “proxy_yes” que será o endereço IP do proxy e sua porta, da qual o servidor squid, ISA, etc. esteja ouvindo.

Na linha 3 definimos a variável “proxy_no” que utilizará o acesso direto à internet sem passar pelo proxy (lembrando que se em seu firewall a opção não estiver permitida, ocorrerá o erro 404 – Página não encontrada).

Nas linhas de 4 à 7 definimos os endereços que não se deve utilizar o proxy para se conectar (foi o que me salvou =D), lembrando que isto deve ser utilizado geralmente endereços locais, como sua intranet ou endereços externos que estejam liberados pelo firewall.

E para finalizar, caso o site acessado não se enquadre nas regras das linhas 4 à 7, o proxy será configurado de acordo com a variável que definimos no início.

Após ter criado o arquivo, dê a permissão de leitura para qualquer usuário e mova ou copie o arquivo para a raiz do servidor web.

Agora vamos disponibilizar para toda a rede nosso arquivo de auto configuração (conhecido como PAC – Proxy Auto Configuration), caso utilize um servidor DHCP em um servidor Linux/*nix/*BSD, somente acrescente as linhas ao dhcpd.conf:

1 option wpad code 252 = WPAD;
2 option wpad “http://servidorweb.com.br/wpad.dat\n”;

O que realmente é importante citarmos é o número “252” que é um atributo enviado ao cliente, do qual é associado justamente ao WPAD, funcionando de forma universal para qualquer sistema.

No caso do servidor DHCP do Windows não haverá o número “252” em “Standard Options” dentro de “Scope Options”, para tê-lo funcionando, será necessário criarmos.

Simplesmente pode selecionar com o botão direito o servidor DHCP e selecione a opção “Predefined Options”, mantenha a opção “DHCP Standard Options” e clique no botão “ADD”.

Coloque um nome (wpad por exemplo) e altere o campo “data string” para “string”, em código coloque o que citamos anteriormente “252” e por último coloque a mesma informação da linha 2 (apontando para http://servidorweb.com.br/wpad.dat) da configuração pra Linux.

PRONTO! Somente agora reinicie seu servidor DHCP e teste para ver se consegue visualizar o arquivo “wpad.dat” de seu servidor Web, após certificar que está funcionando, faça logoff da máquina (Windows) ou tente obter novamente um endereço IP, de modo que o Servidor DHCP enviará o atributo do código 252 contendo ONDE encontrar a configuração do proxy.

A configuração foi testada com os navegadores:

Internet Explorer 6,7 e 8
Mozilla Firefox 3
Chrome o mais atual
Opera
Safari

E ainda utilizando autenticação NTLM 😉 para não precisar digitar o usuário e senha, um single-sign-on realmente.

Para mais informações, segue abaixo as referências:

1. http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol
2. http://www.isaserver.org/tutorials/Configuring-WPAD-Support-ISA-Firewall-Web-Proxy-Firewall-Clients.html
3. http://www.vivaolinux.com.br/artigo/Configuracao-automatica-(mesmo)-de-proxy-com-WPAD?pagina=3
4. http://www.yolinux.com/TUTORIALS/LinuxTutorialMozillaConfiguration.html

Espero que tenham gostado, geralmente coloco figuras, mas como estou sem note próprio, estou sem minhas VM’s =D.

Grande abraço !

Att.
Heitor Lessa

Anúncios