Professor: Claudio Cavalcante
Configuração de arquivo PAC
( Proxy Auto-Configuration)
e
WPAD (Web Proxy Auto-Discovery Protocol)
Teórico e Prático
Curso Completo pfSense
CavalcanteTrein@mentos
Agenda
1 – Entender o que é um arquivo PAC
2 – Exemplo de arquivo PAC
3 – Entender o que é WPAD
4 – Operação do WPAD nos principais browsers (IE, Chrome e
firefox).
5 – Implementação do WPAD por DHCP
6 – Implementação do WPAD por DNS
7 – Configuração no pfsense 2.3
O que são arquivos PAC ( Proxy Auto-Configuration )
 São arquivos escritos na linguagem javascript, interpretados
pelos browsers, que definem um conjunto de regras que
determinam como o browser enviará uma requisição,
podendo ser através de um proxy ou diretamente.
 Este tipo de configuração possui algumas vantagens como:
balanceamento de carga entre proxies, failover de proxy,
definição de rotas (HTTP, HTTPs e FTP) e facilidade de
mudanças na configuração.
Exemplo de arquivo PAC
function FindProxyForURL(url, host) {
// If the hostname matches, send direct.
if (dnsDomainIs(host, "intranet.domain.com") ||
shExpMatch(host, "(*.abcdomain.com|abcdomain.com)"))
return "DIRECT";
// If the protocol or URL matches, send direct.
if (url.substring(0, 4)=="ftp:" ||
shExpMatch(url, "http://abcdomain.com/folder/*"))
return "DIRECT";
Exemplo de arquivo PAC
// If the requested website is hosted within the internal network,
//send direct.
if (isPlainHostName(host) ||
shExpMatch(host, "*.local") ||
isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0") ||
isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0") ||
isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0") ||
isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0"))
return "DIRECT";
Exemplo de arquivo PAC
// If the IP address of the local machine is within a defined
// subnet, send to a specific proxy.
if (isInNet(myIpAddress(), "10.10.5.0", "255.255.255.0"))
return "PROXY 1.2.3.4:8080";
// DEFAULT RULE: All other traffic, use below proxies,
//in fail-over order.
return "PROXY 4.5.6.7:8080; PROXY 7.8.9.10:8080";
}
Funcionalidade WPAD
Web Proxy Auto-Discovery Protocol
Este protocolo permite localizar onde está o
arquivo PAC, através de registros do DNS ou
de opções DHCP.
WPAD nos principais browsers
Alguns browsers suportam WPAD tanto por DHCP como por DNS.
Estes browsers primeiro tentarão encontrar o PAC por informações
obtidas por DHCP e caso não tenham sucesso utilizarão o DNS.
Internet Explorer – DHCP -> DNS -> Netbios
Google Chrome – DHCP -> DNS
Mozilla Firefox - DNS
http://findproxyforurl.com/browser-support/
* Configure sempre das duas formas, DHCP e DNS.
Implementação WPAD por DHCP
 Crie um escopo DHCP que possua a opção
252, do tipo string, que apontará para a
localização do arquivo PAC.
Exemplo:
Option 252 string “http://pfsense.localdomain.local/proxy.pac”
Implementação WPAD por DNS
 Crie um registro DNS do tipo A com o nome wpad dentro da zona
com domínio da rede. Aponte o registro para o IP do servidor Web
que armazena o arquivo do tipo PAC, com o nome wpad.dat.
Exemplo (domínio da estações) - localdomain.local
wpad A 192.168.1.1
No exemplo acima, o browser tentará encontrar o arquivo pac na URL
http://wpad.localdomain.local/wpad.dat .
Configuração no pfSense
 Desabilitar https no acesso a WEB GUI
 Criar e copiar arquivo PAC para o diretório /usr/local/www
 Configurar mime types
 Criar links simbólicos para o arquivo PAC
 Configurar registros DNS
 Configurar opção DHCP
 Configurar regras de firewall
 Realizar testes com ferramentas específicas
 Realizar testes pelo Browser
Desabilitar https na Web GUI
Criar arquivo PAC no diretório /usr/local/www
Editar arquivo PAC no diretório /usr/local/www/proxy.pac
Configurar mime type
Criar links simbólicos para arquivo PAC
Configurar registros DNS
Configurar opção DHCP
Configurar regras de firewall
Realizar testes
Fazer download das ferramentas de testes:
http://findproxyforurl.com/official-toolset/
https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.t
echnet.com/telligent.evolution.components.attachments/01/10093/00/00/03/6
0/80/47/autoprox.zip
https://blogs.technet.microsoft.com/emeaie/2013/11/04/optimizing-performance-with-
automatic-proxyconfiguration-scripts-pac/
Mais informações:
Realizar testes nos browsers
 Acessar um site com a opção habilitada “detectar automaticamente as
configurações do proxy” .
 Acessar um site com a opção desabilitada “detectar automaticamente as
configurações do proxy” .
 Realizar testes no Internet Explorer, Google Chrome e Firefox.
Gostou – Curti e Compartilha
Torne-se um aluno VIP:
http://www.cavalcantetreinamentos.com.br
É só se cadastrar em nossa lista

pfSense - Proxy com arquivo arquivo pac e wpad

  • 1.
    Professor: Claudio Cavalcante Configuraçãode arquivo PAC ( Proxy Auto-Configuration) e WPAD (Web Proxy Auto-Discovery Protocol) Teórico e Prático Curso Completo pfSense CavalcanteTrein@mentos
  • 2.
    Agenda 1 – Entendero que é um arquivo PAC 2 – Exemplo de arquivo PAC 3 – Entender o que é WPAD 4 – Operação do WPAD nos principais browsers (IE, Chrome e firefox). 5 – Implementação do WPAD por DHCP 6 – Implementação do WPAD por DNS 7 – Configuração no pfsense 2.3
  • 3.
    O que sãoarquivos PAC ( Proxy Auto-Configuration )  São arquivos escritos na linguagem javascript, interpretados pelos browsers, que definem um conjunto de regras que determinam como o browser enviará uma requisição, podendo ser através de um proxy ou diretamente.  Este tipo de configuração possui algumas vantagens como: balanceamento de carga entre proxies, failover de proxy, definição de rotas (HTTP, HTTPs e FTP) e facilidade de mudanças na configuração.
  • 4.
    Exemplo de arquivoPAC function FindProxyForURL(url, host) { // If the hostname matches, send direct. if (dnsDomainIs(host, "intranet.domain.com") || shExpMatch(host, "(*.abcdomain.com|abcdomain.com)")) return "DIRECT"; // If the protocol or URL matches, send direct. if (url.substring(0, 4)=="ftp:" || shExpMatch(url, "http://abcdomain.com/folder/*")) return "DIRECT";
  • 5.
    Exemplo de arquivoPAC // If the requested website is hosted within the internal network, //send direct. if (isPlainHostName(host) || shExpMatch(host, "*.local") || isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0") || isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0") || isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0") || isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0")) return "DIRECT";
  • 6.
    Exemplo de arquivoPAC // If the IP address of the local machine is within a defined // subnet, send to a specific proxy. if (isInNet(myIpAddress(), "10.10.5.0", "255.255.255.0")) return "PROXY 1.2.3.4:8080"; // DEFAULT RULE: All other traffic, use below proxies, //in fail-over order. return "PROXY 4.5.6.7:8080; PROXY 7.8.9.10:8080"; }
  • 7.
    Funcionalidade WPAD Web ProxyAuto-Discovery Protocol Este protocolo permite localizar onde está o arquivo PAC, através de registros do DNS ou de opções DHCP.
  • 8.
    WPAD nos principaisbrowsers Alguns browsers suportam WPAD tanto por DHCP como por DNS. Estes browsers primeiro tentarão encontrar o PAC por informações obtidas por DHCP e caso não tenham sucesso utilizarão o DNS. Internet Explorer – DHCP -> DNS -> Netbios Google Chrome – DHCP -> DNS Mozilla Firefox - DNS http://findproxyforurl.com/browser-support/ * Configure sempre das duas formas, DHCP e DNS.
  • 9.
    Implementação WPAD porDHCP  Crie um escopo DHCP que possua a opção 252, do tipo string, que apontará para a localização do arquivo PAC. Exemplo: Option 252 string “http://pfsense.localdomain.local/proxy.pac”
  • 10.
    Implementação WPAD porDNS  Crie um registro DNS do tipo A com o nome wpad dentro da zona com domínio da rede. Aponte o registro para o IP do servidor Web que armazena o arquivo do tipo PAC, com o nome wpad.dat. Exemplo (domínio da estações) - localdomain.local wpad A 192.168.1.1 No exemplo acima, o browser tentará encontrar o arquivo pac na URL http://wpad.localdomain.local/wpad.dat .
  • 11.
    Configuração no pfSense Desabilitar https no acesso a WEB GUI  Criar e copiar arquivo PAC para o diretório /usr/local/www  Configurar mime types  Criar links simbólicos para o arquivo PAC  Configurar registros DNS  Configurar opção DHCP  Configurar regras de firewall  Realizar testes com ferramentas específicas  Realizar testes pelo Browser
  • 12.
  • 13.
    Criar arquivo PACno diretório /usr/local/www
  • 14.
    Editar arquivo PACno diretório /usr/local/www/proxy.pac
  • 15.
  • 16.
    Criar links simbólicospara arquivo PAC
  • 17.
  • 18.
  • 19.
  • 20.
    Realizar testes Fazer downloaddas ferramentas de testes: http://findproxyforurl.com/official-toolset/ https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.t echnet.com/telligent.evolution.components.attachments/01/10093/00/00/03/6 0/80/47/autoprox.zip https://blogs.technet.microsoft.com/emeaie/2013/11/04/optimizing-performance-with- automatic-proxyconfiguration-scripts-pac/ Mais informações:
  • 21.
    Realizar testes nosbrowsers  Acessar um site com a opção habilitada “detectar automaticamente as configurações do proxy” .  Acessar um site com a opção desabilitada “detectar automaticamente as configurações do proxy” .  Realizar testes no Internet Explorer, Google Chrome e Firefox.
  • 22.
    Gostou – Curtie Compartilha Torne-se um aluno VIP: http://www.cavalcantetreinamentos.com.br É só se cadastrar em nossa lista

Notas do Editor

  • #2 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #3 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #4 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #5 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #6 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #7 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #8 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #9 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #10 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #11 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #12 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #13 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #14 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #15 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #16 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #17 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #18 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #19 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #20 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #21 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #22 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos
  • #23 Slide 1 – Apresentar a ideia geral do projeto. Mostrando que há um caminho interessante na Carreira Linux. 30 segundos