Il Web Proxy Autodiscovery Protocol è un protocollo di livello 7 che è stato elaborato da un gruppo di produttori software (Microsoft, RealNetworks, Sun Microsystem ed InkTomi.....) che consente all'utente finale di configurare il proprio browser web in maniera trasparente, ovvero senza fare ricorso ad alcuna configurazione manuale. In particolare, tramite la modalità di autoconfigurazione, è possibile definire automaticamente l'accesso al proxy server principale all'interno di un dominio (FQDN).
Il principio è molto semplice: il browser web, che implementa il protocollo WPAD, inizia la sua indagine interrogando il sistema di risoluzione dei nomi, il Domain Name System (ISC Bind), alla ricerca del nome host wpad.
ecco un esempio di record A - ADDRESS (indirizzo IP)
wpad IN A 192.168.1.200 |
ecco un esempio di record CNAME (canonical name)
proxy IN A 192.168.1.100 wpad IN CNAME proxy |
se esiste un record A (address) o un record CNAME (canonical name) corrispondente a tale nome host nell'ambito di un dominio qualificato, il browser web cercherà di caricare il file di configurazione automatica direttamente dalla URLs
http://wpad/wpad.dat |
Il server Web corrispondente al nome host wpad ha memorizzato nella sua Document root il file wpad.dat, Il browser web cercherà di leggere quella URLs per auto configurarsi. Il browser web esegue le direttive scritte in Java script che sono contenute in quel file. Naturalmente un browser web che non supporta Java o Java script non sarà in grado di autoconfigurarsi.
In tutti i casi un file wpad.dat o il file proxy.pac, per poter essere utilizzato, deve essere messo in linea su un server web opportunamente configurato. Per far si che il browser web sia in grado di autoconfigurarsi è necessario aggiungere un particolare tipo di mime-type che consente il caricamento e l'esecuzione del file wpad.dat come Javascript autoconfigurante.
Nel caso si utilizzi come server Web il comunissimo e potentissimo Apache è sufficiente editare il file /etc/mime.types aggiungendo la seguente riga
application/x-ns-proxy-autoconfig pac dat |
vediamo di seguito un esempio concreto di file proxy.pac o wpad.dat
function FindProxyForURL( url, host )
{
if( isPlainHostName( host ) || // no domain specification
dnsDomainIs( host, "mynet.com" ) || // MyNet local domain
shExpMatch( url, "https*" ) || // secure protocols
shExpMatch( url, "snews*" ) )
return "DIRECT";
else
return "PROXY calimero.mynet.com:3128; " +
"PROXY rocco.mynet.com:3128; " +
"DIRECT";
}
|
il file di autoconfigurazione punta su 2 proxy server diversi, vediamo ancora un esempio per la configurazione del DNS (ISC Bind)
www IN A 192.168.10.25 ; wpad IN CNAME www |
l'host www corrisponde all'indirizzo IP 192.168.10.25 ed il suo nome canonico (o alias) è wpad.
Attualmente, solo il browser Microsoft Internet Explorer supporta le funzionalità WPAD e l'Internet Draft che ne descrive le carratteristiche é scaduto. Per maggiori dettagli sulla scrittura degli scripts riferirsi a Navigator Proxy Auto-Config File Format (http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html).
Questi script di autoconfigurazione sono comunque supportati correttamente in modalità manuale dalla maggior parte dei Browser Internet (Mozilla, Opera, Konqueror, etc.).