Daily chess puzzle

Play chess online

my little experience in Information Tecnology.

02 luglio 2007

OpenVPN IP Routing ed HTTP Proxy

A pensarci bene, sono sicuro che disporre di una VPN basata su SSL è una gran cosa, prima di tutto perchè può essere utilizzata in ambienti dove i firewall sono restittivi. Mi riferisco in particolare ai firewall aziendalli che controllano il traffico uscente dei dipendenti per mezzo di ACL (access control list).

In molte aziende che ho visitato, il collegamento ad Internet avviene tramite un http proxy. Connessioni ad Internet di questo tipo non consentono l'impiego di protocolli diversi dall'HTTP. (niente SMTP, POP3, streaming UDP ecc.ecc.).
Per tale motivo, quando mi capita di fare assistenza in posti di questo genere la domande più frequente è:

Ma non c'è un modo per arginare il proxy?

Come dice la parola stessa, un HTTP proxy mastica solo il protocollo HTTP.
Potete immaginare quante persone ho visto accanirsi nel tentativo di instradare traffico di varia natura verso questi poveri proxy?
C'è una considerazione aggiuntiva da fare; nelle grandi organizzazioni, spesso oltre al limite del protocollo si aggiunge quello imposto dalle ACL. In alcuni casi quindi non è possibile visitare pagine web dal contenuto morale dubbio, siti di hacking, casinò e via dicendo.
A dire il vero non ho mai visto ACL implementate veramente bene. Spesso il sito non è raggiungibile mediante l'URL ma lo è se viene specificato l'indirizzo IP del server. Tranne in rari casi questo non è necessariamente un problema dal momento che l'url è indispensabile se sullo stesso server vengono ospitati più siti web (host virtuali).

Ma è veramente impossibile utilizzare i proxy HTTP senza queste limitazioni?

Direi proprio di no; esistono diversi tools che consentono di fare http tunneling. Il principio su cui si basano questi arnesi è veramente semplice. Si tratta di convertire tutto il traffico generato da un punto A in HTML e di dirigerlo verso un altro punto B passando attraverso il proxy. Nel punto B il traffico viene riportato allo stato originale ed instradato regolarmente.

Costruire un tunnel HTTP è relativamente semplice; basta avere un host oltre il proxy in grado di ricevere il traffico http e di smistarlo correttaemnte secondo le necessità.

Ci sono addirittura dei siti su Internet che offrono, più o meno gratuitamente, un tunnel HTTP anche per il traffico P2P.
Programmi dediti allo scopo ce ne sono veramente tanti, basta fare un giretto su Internet.
A volte però le ACL inibiscono pesantemente l'uso di questi software perchè con la scusa di voler restare anonimi, in realtà vengo utilizzati per navigare apertamente senza i limiti imposti dal proxy.

In questi casi non resta che costruire un sistema ad-hoc in grado di ricevere i pacchetti http da instradare. Questo vuol dire che è necessario disporre di almeno un host apero su Internet dotato di un IP pubblico.

Se invece la necessità si ferma all'invio e recezione di posta elettronica, esistono strumenti come html2pop3 che sono visti con meno astio da parte degli amministratori di sistema.