Regolare Accesso di Software in Rete con Squid

In una rete locale aziendale un grosso problema può essere quello di impedire che gli utenti della rete utilizzino programmi che sfruttano la rete Internet per scopi non attinenti con l’attività lavorativa, e che soprattutto possono creare problemi legali o d’immagine all’azienda. Ad esempio, pensiamo a quei programmi come i software di instant messagging (che comunque possono essere anche usati a scopo lavorativo), e soprattutto ai programmi di file sharing, la cui utilità in campo lavorativo è nulla, e che anzi tendono a saturare la banda disponibile sulla connessione Internet.

Per ovviare a questi problemi, è possibile utilizzare un server proxy, in particolare gli esempi esposti in seguito sono stati testati con un client Windows XP e con un server Windows Server 2003 con installato Squid 2.6. Per conseguire i nostri scopi, dobbiamo configurare i client in modo tale che non accedano alla rete tramite un router, ma esclusivamente tramite un proxy; ciò è possibile configurando in modo opportuno un server DHCP e impedendo tramite policy che gli utenti possano modificare le loro impostazioni TCP/IP. Purtroppo questo passo si rende necessario in quanto su Windows non è possibile far agire Squid come transparent proxy, così come invece accade su Linux.

Già facendo questi pochi passi, si eliminano gran parte delle connessioni indesiderate verso Internet, infatti la maggior parte degli utenti non sa nemmeno cos’è un server proxy e non è quindi in grado di impostare la connessione di un software verso Internet utilizzando un server proxy. Queste considerazioni però non portano molto lontano, poiché bisogna sempre considerare la possibilità di avere a che fare con un utente smanettone, che ad esempio, potrebbe sapere che programmi come Emule possono usare un server proxy per la connessione (che comunque in questa situazione non avverrà mai con ID alto), e potrebbe essere a conoscenza del fatto che Emule funziona anche in modalità standalone, e che quindi può funzionare anche senza essere installato sulla macchina e in assenza dei privilegi di amministratore.

Con Squid ho testato (solo in un ambiente di test, finora) con successo due metodi, uno che funziona anche se non molto flessibile, l’altro invece molto più adattabile a diverse situazioni. Il primo metodo consiste nell’abilitare solamente certe porte ad uscire verso il Web su protocollo HTTP, tramite una ACL simile a questa:

acl porteConcesse port 21 80 443

Questa ACL descrive quelle connessioni a server che rispondono sulle porte 21, 80 e 443 (tipicamente FTP e navigazione Web), per cui, dovremo specificare che le uniche connessioni concesse sono quelle verso le porte citate in precedenza, utilizzando questa regola d’accesso:

http_access deny !porteConcesse

che significa “nega tutto ciò che si connette su porte diverse da quelle indicate nella ACL porteConcesse”. In questo caso, applicazioni come Emule non possono connettersi ai vari server che tipicamente rispondono su porte diverse da quelle indicate e superiori alla 1024, mentre con queste impostazioni continua ad essere accessibile la rete Messenger per l’utilizzo di Windows Live Messenger.

Un altro metodo consiste nell’intercettare gli user-agent utilizzati dai vari software che si connettono via proxy, ed abilitare solo quei software che contengono nella stringa identificativa dello user-agent solo determinate parole; ad esempio se prendiamo in esame la seguente ACL

acl userAgent browser Mozilla

notiamo che sono definiti tutti quei software che si identificano con uno user-agent che contiene la parola Mozilla al suo interno, come i browser Internet Explorer e Firefox. Prendendo quindi spunto da questa ACL, andiamo a definire una regola d’accesso che consente agli utenti della rete locale di connettersi verso Internet solamente con programmi con user-agent contenenti la sottostringa Mozilla:

http_access deny !useragent

In questo modo Emule continua a non connettersi, mentre continua ad essere possibile la navigazione sul Web; rimane possibile anche connettersi con Windows Live Messenger, poiché anche il suo user-agent contiene la parola Mozilla, per cui, se si vuole evitare questo tipo di connessione, bisogna creare una ulteriore ACL:

acl messenger browser Messenger

con la conseguente regola d’accesso che vieta la connessione alla rete Messenger, regola d’accesso che deve essere posizionata prima della precedente regola d’accesso legata alla acl userAgent:

http_access deny messenger

In questo modo, anche l’accesso a Messenger è vietato, ed inoltre, si può gestire con una buona flessibilità l’accesso al Web di diverse altre applicazioni. Da notare comunque che Squid è esclusivamente un proxy HTTP ed FTP, e che quindi consente l’accesso ad Internet solamente a quei software in grado di usare i due protocolli HTTP ed FTP; tanto per fare un esempio, non sarà possibile utilizzare nella rete locale programmi come Outlook, Outlook Express o Thunderbird che cercano di scaricare o inviare posta tramite SMTP o POP3, ma ci dovrà essere un server di posta elettronica posto all’interno della rete locale.