
Il Progetto Winston Smith - scolleghiamo il Grande Fratello

--- Come realizzare un proxy anonimizzatore per il surfing anonimo ---

----------------------------------------------
Copyright (c) 2002 del Progetto Winston Smith.
E` garantito il permesso di copiare,
 distribuire e/o modificare questo documento
 seguendo i termini della GNU General Public
 License, Versione 2.0, pubblicata dalla
 Free Software Foundation.
----------------------------------------------

1) Realizzare un proxy anonomizzatore con Anonweb

Una anon proxy molto facile da installare e configurare  costituita da "Anonweb", scritto in PHP e scaricabile dal sito: http://dividuum.de

Ovviamente il web server dovr avere il supporto per PHP, e ad esempio per Apache nel file di configurazione httpd.conf dovranno esserci le seguenti righe:

DirectoryIndex index.phtml index.html index.php  
( importante index.php, in modo che carichi la pagina index.php se non
esiste un index.html, come in questo caso)   
AddType application/x-httpd-php .php3 .php .php4 .phtml 
( importante il .php, in modo che le pagine che terminano con l'estensione .php siano correttamente gestite dal web server). 

Per l'installazione ho creato la sottodirectory proxy1 nella cartella htdocs dove risiedono le pagine web di apache, 
e ci ho copiato dentro l'archivio compresso (proxy1 sar il virtualhost, quindi il proxy sar raggiungibile ad un indirizzo come proxy1.mioserver.org)
Dopodich ho decompresso il file con un

tar -xzvf anonweb-0.4.tar.gz  

A questo punto ci si trova davanti a 6 files php.

Due di questi vanno leggermente modificati:

il primo  config.php alla riga 24, dove bisogna definire la variabile ANONWEBBASEURL in modo che punti all'indirizzo web del proxy, in questo caso https://proxy.mioserver.org

il secondo  index.php che si pu modificare a piacimento per creare una
pagina in cui si trover presente il form in cui scrivere l'indirizzo web 
del sito che si vuole andare a visitare in modo anonimo.

L'installazione  completa, adesso bisogna solo creare il virtualhost nella configurazione di apache.
Bisogna forzare la connessione sulla porta 443 in modo che avvenga criptata, in caso di tentato accesso
ad http://proxy.mioserver.org il proxy risulta inaccessibile in quanto la connessione tra l'utente e il 
proxy non  criptata e compare un messaggio di errore con un link alla pagina in https.

Questo proxy filtra le immagini, senza possibilit di configurazione.




2) Realizzare un proxy anonomizzatore con Squid

Installare squid normalmente e poi modificare il file /etc/squid.conf alle seguenti voci:

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'identit del richiedente. In pratica  l'anonymizer.
client_db off                   #ossia non fare statistiche sui client che si connettono


Squid, una volta impostato nelle preferenze del browser (vedi sotto) gestisce la comunicazione tra il client e il sito web che si va a visitare e con queste modifiche al file di configurazione nasconde l'indirizzo IP del client al server web.

Il problema  che la connessione avviene per in chiaro (non crittata) tra il client e il server su cui gira squid, e quindi se c' qualcuno "in ascolto" in questo tratto di rete pu intercettare le richieste del client e registrare quali sono i siti web visitati dall'utente. Quindi bisognerebbe crittare questo passaggio di dati dal client allo squid.
(Se qualcuno fosse in ascolto invece tra lo squid e il server visitato capirebbe solo che qualcuno si sta collegando ad un certo sito, ma non saprebbe chi).

Per fare in modo che la comunicazione tra il client e squid sia crittata si pu usare il software stunnel ( incluso nella debian, oppure  scaricabile da www.stunnel.org).

Quindi innanzitutto installate stunnel sul server.

Se decidete di farlo partire da inetd questa  la riga di configurazione da inserire in /etc/inetd.conf per avviarlo in automatico al boot: 

sproxy          stream  tcp     nowait  root    /usr/sbin/stunnel stunnel -r proxy

In questo modo stunnel resta in attesa di connessioni sulla porta 3129.


La parte di installazione lato server a questo punto  completa. 


Per quanto riguarda i client se volete collegarvi allo squid senza sfruttare la connessione criptata (magari perch non avete o non potete installare stunnel (che esiste anche per windows)), dovete impostare il vostro browser in modo che si connetta al proxy.

Impostazioni dei browser pi comuni:

Come esempio ho indicato il sito fittizio server.org che andr sostituito con il nome del server che intendete utilizzare e che fornisce questo servizio (un esempio  autistici.org):

Netscape: Menu Edit - Preferences, clicca su "Advanced" (2 volte) o sul triangolino che c' prima della A. A questo punto clicca su "Proxies" e seleziona "Manual proxy configuration", poi clicca su "View" e nella voce HTTP proxy inserisci "server.org" (senza virgolette) e di fianco specifica come Port: "3128". Clicca su Ok in fondo e il gioco  fatto.

Lynx(2.8.4): cercate nel file lynx.cfg la riga contenente http_proxy, decommentatela e modificatela in questo modo:
http_proxy:http://server.org:3128/

Links (0.9.6): nel file ~/.links/links.cfg modificate la riga per il proxy in
http_proxy server.org:3128

Opera 5: Menu File - Preferences, clicca sulla sezione "Network", poi seleziona il menu "proxy server" in alto a destra, metti il segno di spunta prima di HTTP, inserisci "server.org" come nome del server e "3128" come porta.

Mozilla (0.8): Menu Edit - Preferences, nella colonna di sinistra clicca due volte su "Advanced", comparir un altro menu, clicca su Proxies e ora guarda la sezione a destra. Devi cliccare su "Manual proxy configuration" e dove c' "HTTP proxy" devi inserire "server.org" (senza virgolette) e di fianco dove dice "Port" inserisci 3128. Clicca su Ok in basso.

Galeon (0.10.6): Menu Settings - cliccare su enable proxy, poi sempre nel menu Settings cliccare su Preferences, nella finestra che si apre nella sezione di sinistra cliccare due volte su Advanced (l'ultima voce in fondo), poi su Network. A questo punto nella sezione a destra inserire come HTTP proxy server.org e come porta cambiare 8080 in 3128 e cliccare su Ok in basso.

Konqueror (2.1.1): Menu Settings - cliccare sull'ultima voce in fondo "Configure Konqueror".  Nella finestra che si apre cliccare sulla voce Proxies nella sezione a sinistra, poi a destra in alto cliccare su "Use proxy" e inserire in "HTTP proxy" server.org e cambiare la porta da 8080 a 3128.

Explorer 4: Menu View, seleziona "Internet Options", seleziona "Connection", clicca su "Use a proxy server", inserisci "http://server.org" nella casella "Address", e inserisci "3128" nella casella "Port".

Explorer 5: Menu Tools, seleziona "Internet Options", seleziona "Connections", seleziona "LAN Settings", clicca su "Use a proxy server" e inserisci "http://server.org" nella casella "Address", e "3128" nella casella "Port".


Se invece volete usare lo stunnel dovete installarlo anche sul vostro PC, questo perch Stunnel, come dice il nome, crea un tunnel e quindi  necessario che il tunnel parta dal client e arrivi al server.
Quindi installatevi stunnel e in un file di configurazione dell'avvio (ad esempio /etc/rc.d/rc.local se avete una slackware) mettete:

stunnel -c -d 3128 -r server.org:3129

Se avete una connesisone dial-up questo comando non andr messo al boot ma andr specificato nel momento in cui entrate in rete, quindi o a mano ogni volta, oppure in uno script che avvia la connessione ppp.


In questo modo il tunnel partir dalla vostra porta 3128 e andr a finire sulla porta 3129 del server; lo stunnel in ascolto girer la connessione alla porta 3128 del server da dove lo squid si occuper di gestire la comunicazione col server web di destinazione.
Tutto chiaro ?
Manca solo una cosa, in questo caso dovete configurare il vostro browser in modo che nella sezione proxy della configurazione non vada a cercare server.org sulla porta 3128, bens il vostro PC (localhost) sulla porta 3128 (dove ascolta lo stunnel).
Quindi per le configurazioni illustrate in precedenza basta sostituire server.org con localhost.

