Visualizzazione post con etichetta squid. Mostra tutti i post
Visualizzazione post con etichetta squid. Mostra tutti i post

26 feb 2009

Proxy e Browser Headers : alcuni case test

I server proxy sono utili, riducono il traffico in azienda, possono filtrare il traffico, bla bla bla....
ma potrebbero anche rilevare informazioni "preziose".

se ne sai poco e vuoi chiarirti le idee, Paolo Attivissimo ha scritto un articolo qui

Sicuramente tra i software open Squid è uno dei più utilizzati.

Normalmente si modificano poche direttive del file squid.conf e non ci si preoccupa di altro.
Vediamo subito andando sul sito
http://andylangton.co.uk/online-tools/check-browser-headers
quali sono le informazioni che forniamo al sito remoto.


Sappiamo che il pc fa parte di una rete di classe C, che usa un proxy Squid 2.6STABLE21 sulla porta 3128, che il nome del proxy e' lucifer.
Le altre informazioni vengono fornite dal client: viene usato Firefox 3.0.6 su Windows, con supporto per la lingua italiana ed inglese, l'ultima pagina visitata e' stata google.com dove e' stata fatta una ricerca con i termini "ip address browser headers".

Modificando invece la configurazione di squid, seguendo alcune indicazioni di "squid-proxy-anonymous-browsing", le cose cambiano.


Non viene piu' individuato il proxy che stiamo usando, non c'e' traccia di Squid, della sua versione e dell'ip interno.
Le informazioni del client sono state camuffate grazie all'aggiunta al file squid.conf
header_replace User-Agent Mozilla/5.0 (Linux Via) Gecko Debian Stable
Anche le informazioni circa l'ultima pagina visitata e' sparita.

Questo potrebbe bastare, ma si potrebbe anche scegliere Tor + privoxy per "nascondere il nostro ip".
Per l'installazione e configurazione si puo' vedere la doc presente sul sito del progetto https://www.torproject.org/documentation.html.it
Mantenendo le impostazioni standard del file di configurazione si ottiene



I vantaggi di Tor sono appunto l'anonimato: IP della richiesta e' quello di un nodo tor situato in .pl polonia

Lo svantaggio di Tor e' la sua lentezza ed il fatto che i dati passano attraverso nodi che potrebbero sniffare il traffico (vedi un altro mio post).
Inoltre utilizzando Tor a volte cercando di effettuare ricerche su google appare il seguente messaggio:


Da ultimo utilizzo TinyProxy al posto di Squid ed ho impostato che le richieste passino tramite un proxy internet "aperto" localizzato in USA



Viene indicato IP del proxy USA e del server da cui e' partita la connessione; viene utilizzato tinyproxy versione 1.6.4
Le informazioni degli header browser sono visibili.

5 gen 2009

VPN furba - Kit di "scasso aziendale"

E' proprio vero che la necessità aguzza l'ingegno... mi sono trovato improvvisamente da un cliente con l'accesso ad internet bloccato quasi del tutto.
Questo potrebbe indicare anche che viene filtrato e controllato/censurato ogni accessso/sito.

Inoltre la stessa configurazione può essere utilizzata per configurare una VPN aziendale/casalinga quando si è in remoto e si vuole accedere al proprio ufficio/pc di casa.

Ecco da qui nasce questo documento, dove indico cosa ho fatto per poter avere un accesso FULL, senza controlli ad internet.

risorse necessarie:
  • una linuxbox, ovvero un bel pc con gnu/linux anche di poca potenza che sarà il server
  • una linea adsl (possibilmente di buona qualità) collegata al server
  • il pc aziendale/portatile che si userà in remoto
In alternativa una soluzione come una vps poco costosa anche oltreoceano è molto valida, ed evita i costi del mantenimento di una linuxbox e della adsl (consumi, backup, disponibilità al 99,9% ).

Il software necessario da installare è:

Come poter accedere quindi alla nostra macchina?
Creeremo una VPN verso la linuxbox sulla porta 443, https, la quale poi ci permetterà di ridirigere tutto il nostro traffico verso l'esterno.
La porta 443, che useremo con protocollo TCP, non viene filtrata in quanto le informazioni che passano sono criptate tra il client ed il server remoto.
E' necessario utilizzare un servizio come noip o dyndns per puntare sempre alla propria linuxbox con un indirizzo facile da ricordare e soprattutto nel caso non si avesse un ip statico fornito dal proprio ISP.

Ho scelto di creare una sotto-rete locale per le macchine che si connettono tramite VPN, che avranno come IP 10.8.0.X, assegnato in modo dinamico da OpenVpn server.
Per quasi tutti i programmi server si dovrà abilitare anche le ACL relative alla sotto-rete della VPN, oltre che quelle della nostra rete locale.

Configurazione
Indicherò le modifiche ai file di configurazione che ho effettuate rispetto allo standard.

Per OpenVpn consiglio di seguire le seguenti guide:
Quindi procediamo alla modifica del file di configurazione del server openvpn come segue:
#cat /etc/openvpn/server.conf
dev tun
ca /usr/share/openvpn/easy-rsa/2.0/keys/ca.crt
cert /usr/share/openvpn/easy-rsa/2.0/keys/server.crt
key /usr/share/openvpn/easy-rsa/2.0/keys/server.key
dh /usr/share/openvpn/easy-rsa/2.0/keys/dh1024.pem
verb 3
mute 10
proto tcp-server
lport 443
server 10.8.0.0 255.255.255.0
client-to-client
comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
Molto interessante per poter dirigere tutto il traffico solo attraverso la vpn creata questa guida.

Per i client openvpn si devono generare gli opportuni certificati e copiati sui pc dove si è installato openvpn client (il client che uso è una macchina con OS di Guglielmo Cancelli)
client
dev tun
proto tcp
remote serverino.homelinux.org 443
ca ca-mobile1.crt
cert mobile1.crt
key mobile1.key
comp-lzo
Se utilizzare iptables come firewall, è necessario aprire le porte per permettere la connessione in entrata alla VPN, nel nostro caso la 443.

A questo punto ci si può connettere da remoto alla linuxbox tramite vpn :)

Navigazione e IM tramite Squid proxy
Ora abilitiamo tramite Squid server la navigazione, porte 80 443, ed anche l'utilizzo dei comuni programmi per istant message, come ICq, Msn e jabber/GTalk - porte 5222 5190 1863.
#cat /etc/squid/squid.conf
acl im_ports port 5190 5222 1863
http_access allow CONNECT im_ports
acl our_networks src 10.8.0.0/24
http_access allow our_networks
icp_access allow our_networks
Per navigare ora basterà impostare il proxy porta 3128 sul proprio browser preferito (Firefox o Chrome) e sul client IM Pidgin. Consiglio di aggiungere in firefox qualche plugin che permetta il cambio di proxy al volo, come MM3-ProxySwitch o simili.

Socks server
Per poter aver accesso a qualsiasi altra cosa, senza dover ogni volta configurare la porta specifica, consiglio di installare un Sockd server, come Dante.
La sua configurazione è la seguente.
#cat /etc/sockd.conf
client pass {
from: 10.8.0.0/8 port 1-65535 to: 0.0.0.0/0
}

pass {
from: 10.0.0.0/8 to: 0.0.0.0/0
protocol: tcp udp
log: connect error
}
Sul client si imposterà l'utilizzo del socks server sulla porta 1080.
Io lo uso per poter accedere tramite Pop3 Imap, alla mia posta.

Per la posta consiglio caldamente thunderbird che permette l'utilizzo di un server socks; inoltre con l'utilizzo di un add-on come MM3-ProxySwitch in un click si può cambiare il proxy/socks utilizzato.

Dns Relay ed altri utili servizi
Se si usa il DNS della propria linuxbox si evita di lasciare le richieste sulla rete aziendale; per semplicità è possibile impostare bind in modalità relay come indicato in questa guida. Ricordarsi di permettere l'accesso anchegli ip 10.8.0.0 dei client che accedono in VPN.

Inoltre visto che le risorse sarebbe meglio condividerle, magari è doveroso avere anche
- un server tor (magari configurato anche come exit-node)
- privoxy
- un client bittorrent/emule, come mldonkey (controllabile tramite web, telnet e client grafico)

Sia tor che mldonkey devono essere modificati per poter essere utilizzati anche dai client VPN.
#cat /etc/tor/torrc
SocksPolicy accept 10.8.0.1/16
#cat downloads.ini
allowed_ips = [
"192.168.9.0/24";
"127.0.0.1";
"10.8.0.0/24";]
Ho volontariamente omesso la distribuzione utilizzata, ma considerate che la linuxbox sarà esposta su internet e quindi è meglio avere qualcosa di solido e sicuro.