Indice

Esempio di utilizzo dei file PAC

Sommario

E'possibile utilizzare i moderni browser (Internet Explorer, Mozilla, Firefox, ….) con una configurazione automatica del proxy basata sulla posizione attuale della macchina che ospita il client e sul sito da contattare. Spesso infatti personale dotato di computer portatile si sposta fisicamente da una locazione all'altra ed ha necessità di cambiare di volta in volta le impostazioni per l'accesso ad Internet. Inoltre anche rimanendo nella solita locazione fisica è necessario cambiare le impostazioni di accesso al proxy via via che la configurazione della rete locale cambia (nuovi virtualhost, ristrutturazione della rete, nuovi domini, …..). Questo documento contiene una breve guida ai file PAC che sono un utile strumento per la configurazione dei browser per l'accesso ad Internet.

Funzionamento

Un file PAC (proxy auto configuration) è un normale file di testo che viene letto dal browser all'avvio e che viene utilizzato per decidere quale metodo utilizzare per collegarsi ad un opportuno sito; di norma per i siti della rete locale non si utilizza un proxy in quanto questi sono direttamente raggiungibili, i siti esterni invece necessitano di un opportuno proxy che funge da intermediario, Da notare che il file PAC deve essere “raggiungibile” dal browser quindi non deve stare “oltre il proxy”, di norma viene posizionato su di un server http della rete locale oppure sul filesystem di ogni pc.

All'interno del file PAC deve essere definita la funzione FindProxyForURL che viene invocata dal browser per decidere che tipologia di accesso ad Internet utilizzare. La funzione è così definita

function FindProxyForURL(url, host)

dove host è l'indirizzo IP del sito da contattare ed url è la URL completa richiesta dal browser. La funzione deve restituire una stringa che viene poi interpretata dai browser, questa stringa può essere

dove nomehostproxy e portaproxy sono l'hostname e la porta sulla quale gira il proxy. DIRECT indica che il collegamento è effettuata dirttamente senza alcun proxy.

All'interno della funzione possono essere eseguiti dei controlli sulla url e/o sull'host per decidere quale tecnica ed eventualmente quale proxy utilizzare. Vediamo un semplice esempio di un file PAC che utilizza il proxy 192.168.2.1 sulla porta 8080 per tutte le richieste a parte quelle relative alla rete 192.168.2.x.

function FindProxyForURL(url, host) {
 if (
  isInNet(host, "192.168.2.0", "255.255.255.0")      
)  return "DIRECT";
 else
    return "PROXY 192.168.2.1:8080";
}

Al fine di effettuare i controlli opportuni all'interno del file possono essere utilizzate alcune funzioni predefinite tra cui è bene citare

Esempi di utilizzo

Verranno mostrati di seguito alcuni esempi di file PAC. Valgono le seguenti assunzioni

Utilizzo del proxy ma non per la rete locale

function FindProxyForURL(url, host) {
 if (
  isInNet(host, "172.16.0.0", "255.255.0.0")        
  ||
 isInNet(host, "127.0.0.1", "255.255.255.255")
) return "DIRECT";
else return "PROXY  192.168.250.6:8080";
}

Utilizzo del proxy ma non per un particolare dominio

Supponendo di non volere utilizzare il proxy per il dominio esempio.it

function FindProxyForURL(url, host) {
 if (  shExpMatch(url, "*esempio.it*") ) return "DIRECT";
else eturn "PROXY  192.168.250.6:8080";
}

Connessione diretta ad internet quando il pc è fuori dalla rete aziendale

function FindProxyForURL(url, host) {
    if (
        isInNet(myIpAddress(), "172.16.103.0", "255.255.255.0")
    ) {
       // ....... impostazioni del proxy per la rete locale
    } else {
 
    return "DIRECT";
   }
}

Note

E' opporuno fare le seguenti precisazioni:

Riferimenti