PROXY SQUID
In questa sezione si vuole dare un accenno alle potenzialità di Squid e sopratutto in riferimento a come rendere Squid un proxy anonimo. Squid è stato realizzato da Duane Wessels membro del Laboratorio Nazionale di Ricerca, esso è comunque il risultato del lavoro di moltissime persone della comunità mondiale di Internet. Squid è un programma libero che può essere ridistribuito e modificato secondo la licenza pubblica GNU. Squid è uno dei proxy server più utilizzati, esso supporta i protocolli FTP, GOPHER ed HTTP e consente di utilizzare anche SSL. Squid mette a disposizione una memoria cache per salvare i documenti maggiormente richiesti, in questo modo vengono velocizzati gli accessi fra client e Squid e viene di conseguenza ridotta la banda delle richieste verso l'esterno. Squid consente il controllo degli accessi grazie alle sue potenzialità di logging.
Tutti i file di log di Squid sono contenuti nella cartella /var/log/squid, in esso sono contenuti i log della cache, degli accessi e il file store.log. In particolare, il file access.log tiene traccia delle richieste fatte dai client inserendo una voce per ogni richiesta HTTP fatta dal proxy server, l'indirizzo IP del client, il metodo usato per la richiesta, l'URL richiesto ed altri parametri. In questo modo il file access.log può essere usato per fare analisi sugli accessi. Programmi come Webalizer, Sarg, Calamaris, Squid-Log-Analyzer e Analog consentono l'interpretazione visiva dei log generando dei report di norma in formato HTML. I report possono essere basati sugli utenti, sugli indirizzi IP, sui siti visitati, etc.. Ad esempio al sito http://cord.de/tools/squid/calamaris/calamaris-2.html è possibile vedere un esempio dell'output ottenuto dall'esecuzione del programma Calamaris.
Il percorso ed il nome del file di questi file può esser cambiato per mezzo delle seguenti opzioni:
cache_access_log
Per il file access.log
cache_log
Per il file cache.log
cache_store_log Per il file store.log (Store
manager)
pid_filename Per il file
che regista il PID del processo.
tuttavia ponendo none è possibile disabilitare la creazione di questi file.
Squid è composto oltre che da un'applicazione di proxy server vera e propria anche da diversi programmi esterni, come ad esempio il DNS lookup che consente la traduzione del nome internet nel corrispettivo indirizzo IP e/o viceversa. Dalla versione 2.3 il DNS lookup viene demandato al server DNS presente sulla LAN oppure quello di proprietà dell'ISP. Una nuova funzionalità è quella di utilizzare Squid come un server SSL per instradare connessioni cifrate e creare un'amministrazione controllata dei certificati del richiedente. Per la prevenzione di eventuali attacchi viene anche fornita la funzionalità di gestire la banda del traffico internet e anche la possibilità di gestione la banda per il download, ma è anche possibile limitare il download di alcuni file specificandolo nell'ACL(Access Control List). Squid pertanto ha molte funzionalità ma quella che più di tutte ci interessa è quella che consente un ottimo grado di anonimato. Infatti è possibile nascondere la nostra rete interna e proteggere informazioni come quelle relative al client della rete internai. Anche in questo caso Squid può far ricorso a programmi esterni in grado di filtrare cookies e banner pubblicitari come Internet Junkbuster. Ma come già detto, Squid consente di anonimizzare le connessioni verso l'esterno. Infatti con il tag forwarded_ for on|off Squid può includere il vostro indirizzo IP o il nome dell'host che inoltra con le sue richieste HTTP, ad esempio:
X-Forwarded-For: 192.168.2.3
oppure disabilitare questa funzione facendo apparire un messaggio generico
X-Forwarded-For: unknown
per disabilitare l'inoltro dell'indirizzo IP verso il server web
forwarded_for off
Se correttamente configurato consente anche di nascondere le intestazioni inoltrate tramite la richiesta HTTP, tutto ciò è reso possibile attraverso il tag:
anonymize_headers allow|deny header_name
grazie a questo Tag è possibile
specificare esattamente quali intestazioni autorizzare. Tuttavia è possibile
anche modificare l'header relativo allo User-Agent, ovvero il browser web
utilizzato dagli utenti della rete interna utilizzando:
Tuttavia se viene resa anonima l'intestazione dello User-Agent, molti Web server potrebbero rifiutare la richiesta HTTP, per evitare ciò, Squid utilizza un artificio ovvero utilizzando il tag:
fake_usaer_agent modifica dell'header
in questo modo viene modificato lo User-Agent in maniera appropriata ad esempio con
fake_user_agent Nutscrape/1.0 (Commodore Vic20; 8-bit) # ( da un’idea di Paul Southworth - pauls@etext.org )
il nostro browser si presenterà così sul web:
Accept:
image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png,
*/*
Accept-Encoding: gzip
Accept-Language: it,en
Accept-Charset: iso-8859-1,*,utf-8
User-Agent: Nutscrape/1.0 (Commodore Vic20; 8-bit)
Via: 1.0 proxy.merlino.bbs:3128 (Squid/2.3.STABLE1)
X-Forwarded-For: unknown
Host: www.delegate.org
Cache-Control: max-age=259200
Connection: keep-alive
E' possibile utilizzare Squid come proxy con funzionalità di anonimato in internet attraverso i seguenti settaggi nel file di configurazione /etc/squid.conf:
cache_store_log
none #non
loggare quello che finisce in cache
client_netmask 0.0.0.0
#per sicurezza tutti gli ip eventualmente (anche se gli abbiamo
detto di non loggarli) loggati vengono messi a 0.0.0.0 http_access allow all #tutti possono accedere al proxy forwarded_for off #disabilita la comunicazione al server richiesto dell'identita'
del richiedente. In pratica e' l'anonymizer. client_db off #ossia non fare statistiche sui client che si connettono
Per informazioni più approfondite consultare http://merlino.merlinobbs.net/Squid-Book/