E' possibile proteggere da occhi indiscreti la nostra rete utilizzando Squid. Per motivi legati alla sicurezza è fondamentale anonimizzare l'indirizzamento IP della LAN/WAN ed eventualmente proteggere altre informazioni come quelle relative al client web utilizzato dagli utenti.
Con il TAG forwarded_for Squid può includere il Vostro indirizzo IP o il nome dell'host che inoltra con le sue richieste HTTP, il valori sono [on|off]. La situazione generica è molto simile a questa
X-Forwarded-For: 192.168.2.3 |
è comunque possibile disabilitare questa funzione per far apparire un messaggio generico unitamente all'inoltro della richiesta http verso il server web del tipo
X-Forwarded-For: unknown |
per disabilitare l'inoltro dell'indirizzo IP da cui parte la richiesta diretta verso il server web Il TAG da abilitare è
forwarded_for off |
se correttamente configurato Squid può anonimizzare le intestazioni inoltrate tramite la richiesta HTTP, per eseguire questa misura di sicurezza deve essere utilizzando il TAG anonymize_headers. Nel caso che analizzeremo in seguito, verrà modificato l'header relativo allo User-Agent ovvero il browser web utilizzato dagli utenti della rete che sono a valle del proxy. Utilizzo
anonymize_headers allow|deny header_name |
l'opzione anonymizer_headers consente di eseguire configurazioni molto accurate: è infatti possibile specificare esattamente quali intestazioni autorizzare. Ci sono due metodi per utilizzare questa features
specificare le intestazioni autorizzate
dettagliare gli header permessi.
Per riprodurre le opzioni di base, già previste nelle vecchie versioni di Squid con il l'opzione http_anonymizer standard dovrà essere utilizzato il seguente TAG
anonymize_headers deny From Referer Server anonymize_headers deny User-Agent WWW-Authenticate Link |
per riprodurre la vecchia funzione http_anonymizer paranoid è invece necessario utilizzare il seguente TAG
anonymize_headers allow Allow Authorization Cache-Control anonymize_headers allow Content-Encoding Content-Length anonymize_headers allow Content-Type Date Expires Host anonymize_headers allow If-Modified-Since Last-Modified anonymize_headers allow Location Pragma Accept anonymize_headers allow Accept-Encoding Accept-Language anonymize_headers allow Content-Language Mime-Version anonymize_headers allow Retry-After Title Connection anonymize_headers allow Proxy-Connection |
Nota: non è possibile utilizzare ambedue le regole allow e deny. Tutte le linee anonymize_headers devono avere sempre lo stesso secondo argomento. La regola base è che tutte le intestazioni sono autorizzate, quindi nessuna funzionalità di anonymizing viene eseguita, con questo TAG è anche possibile anonimizzare lo user-agent ovvero il browser web
anonymize_headers deny User-Agent |
vediamo ora il TAG fake_user_agent. Se viene resa anonima l'intestazione dello User-Agent utilizzando TAG anonymize_headers molti server web potrebbero rifiutare la richiesta HTTP inoltrata da Squid. Per evitare questo disdicevole inconveniente è possibile utilizzare degli artifizi, ecco un esempio concreto
fake_user_agent Nutscrape/1.0 (Commodore Vic20; 8-bit) # ( da un'idea di Paul Southworth - pauls@etext.org ) |
vediamo, dopo aver effettuato la cura intensiva, come si presenta il nostro browser 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 |