Guida sul come usare un Torrent Client in modo anonimo usando un servizio VPN. Il VPN provider usato in questo esempio è BTGuard.

La differenza tra l’usare un Proxy e un servizio VPN è che nel primo caso si imposta il BitTorrent Client o un Web Client ( come per esempio Firefox ) in modo da usare dei Proxy, mentre con VPN viene “anonimizzata” tutta la connessione.

Perché usare un servizio come BTGuard per scaricare torrents?

Il problema è il seguente: se si scarica o condivide qualcosa con un BitTorrent client ci si connette a un gruppo di utenti chiamato “swarm”. Tutti questi utenti sono in grado di vedere l’indirizzo IP delle persone a cui sono connessi – devono per potere instaurare una connessione. Ma ricorda che non solo altri utenti Torrent vedono queste informazioni. Gruppi che combattono la “pirateria informatica” – spesso pagati dalle industrie dell’intrattenimento – si connettono anche a questi “swarm” ma invece di condividere dei file o scaricare prendono nota degli indirizzi IP che trovano e informano i relativi ISP sulle loro attività.

Se si usa un BTGuard Proxy o VPN non è più possibile perché l’indirizzo IP usato per scaricare e condividere dei file sarà quello del VPN provider o del Proxy. Questi gruppi che combattono la “pirateria informatica” potrebbero chiedere al VPN provider di fornire loro informazioni su chi ha scaricato cosa?! In teoria si ma non se si usano buoni Proxy o VPN provider che appunto non tengono informazioni ( logs ) riguardo ai loro clienti.

BTGuard non tiene logs e quindi non registra le attività dei propri clienti. Se un abuso viene loro segnalato in tempo reale possono attivare uno sniffer e risalire a chi lo sta compiendo ma non vengono tenute informazioni ( chi ha scaricato cosa ecc. ) sulle abitudini degli utenti. In questo modo anche se vengono richieste queste informazioni non possono essere fornite da BTGuard perché non le hanno.

Creare un account su BTGuard

Per usare BTGuard VPN andare su btguard.com e crearsi un account. Per farlo cliccare su Join Now sotto VPN, vedi immagine sottostante.

Registrazione BTGuard VPN

Una volta cliccato su “Join Now” apparirà un formulario dove inserire il nome utente, la password e un indirizzo email. Scegliere se si vuole acquistare il servizio BTGuard VPN per un mese, 3 mesi, 6 mesi o un anno e poi cliccare su continue.

registrazione btguard vpn

E in fine effettuare il pagamento.

Installazione OPENVPN BTGuard Linux ( openSUSE )

Aprire una root shell ed eseguire il seguente comando:

# zypper in openvpn

Per ulteriori informazioni sul come installare OPENVPN correttamente con Linux ( openSUSE ) leggere la seguente guida: Guida all’installazione e configurazione di OpenVPN con Linux ( openSUSE )

Scaricare il certificato (CA) BTGuard eseguendo il seguente comando:

# wget -O /etc/openvpn/btguard.ca.crt http://btguard.com/btguard.ca.crt

Scaricare il file di configurazione di BTGuard OPENVPN eseguendo il seguente comando:

# wget -O /etc/openvpn/btguard.conf http://btguard.com/btguard.conf

Editare il file btguard.conf e aggiungere l’hostname. Usare eu.vpn.btguard.com per l’Europa.

# vi /etc/openvpn/btguard.conf
remote eu.vpn.btguard.com 1194

Aggiungere il metodo di verifica del certificato.

# vi /etc/openvpn/btguard.conf
remote-cert-tls server

Se non si aggiunge sta riga nel file si riceve il seguente errore:
WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.

Aggiungere il Server DNS 8.8.8.8 tra i propri DNS come segue.

# vi /etc/resolv.conf
nameserver 8.8.8.8

Se non si aggiunge il DNS Server la rete non è raggiungibile per problemi di DNS vediamo un esempio.

# nslookup google.ch
;; Got recursion not available from 212.71.111.250, trying next server
;; connection timed out; no servers could be reached
#

Come connettersi a BTGuard VPN con Linux

Per connettersi a BTGuard VPN tramite OPENVPN con Linux eseguire il seguente comando da root:

# openvpn /etc/openvpn/btguard.conf
Fri Apr 17 19:47:36 2015 OpenVPN 2.3.4 x86_64-suse-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on May  1 2014
Fri Apr 17 19:47:36 2015 library versions: OpenSSL 1.0.1k-fips 8 Jan 2015, LZO 2.08
Enter Auth Username: *********
Enter Auth Password: ************

Quando richiesto inserire il nome utente e la password dell’utente BTGuard creato in precedenza.

Usare sudo per eseguire OPENVPN

OPENVPN deve venire eseguito da root per potere apportare modifiche alla connessione che per motivi di sicurezza può fare solo l’amministratore.

Per poter eseguire openvpn da utente normale usare sudo. All’applicazione serve solo di potere eseguire il comando “ip” da root per cambiare le impostazioni di rete.

Come prima cosa creare un utente:

# useradd utenteopenvpn -p Pa$$word!!99

Poi creare uno script che esegue il comando “sudo ip”. Sudo viene usato per permettere a utenti normali di eseguire alcuni comandi con diritti d’amministratore.

# vi /usr/local/sbin/unpriv-ip
#!/bin/sh
sudo /sbin/ip $*

Usare il comando visudo per permettere all’utente utenteopenvpn di eseguire il comando ip da root.

# visudo
##
## User privilege specification
##
root ALL=(ALL) ALL
utenteopenvpn     ALL =(ALL) NOPASSWD: /sbin/ip

Ora editare il file di configurazione btguard.conf e aggiungere o modificare le seguenti righe:

# vi /etc/openvpn/btguard.conf
dev tun0
iproute /usr/local/sbin/unpriv-ip

E infine aggiungere due comandi nello script che viene eseguito all’avvio del sistema.

# vi /etc/init.d/boot.local
openvpn --rmtun --dev tun0
openvpn --mktun --dev tun0 --dev-type tun --user utenteopenvpn

Rinviare il sistema o eseguire i comandi manualmente.

Ora per usare openvpn senza diritti d’amministratore (root) eseguire il programma con l’utente creato, utenteopenvpn.

workstation1:~> su utenteopenvpn
Password: 
utenteopenvpn@workstation1:/home/utenteopenvpn> /usr/sbin/openvpn /etc/openvpn/btguard.conf
Sat Apr 18 23:09:19 2015 OpenVPN 2.3.4 x86_64-suse-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on May  1 2014
Sat Apr 18 23:09:19 2015 library versions: OpenSSL 1.0.1k-fips 8 Jan 2015, LZO 2.08
Enter Auth Username: ***********
Enter Auth Password: ************
Sat Apr 18 23:09:31 2015 Socket Buffers: R=[212992->131072] S=[212992->131072]
Sat Apr 18 23:09:31 2015 UDPv4 link local: [undef]
Sat Apr 18 23:09:31 2015 UDPv4 link remote: [AF_INET]109.201.137.162:1194
Sat Apr 18 23:09:31 2015 TLS: Initial packet from [AF_INET]109.201.137.162:1194, sid=a027f82c 4733b312
Sat Apr 18 23:09:31 2015 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Sat Apr 18 23:09:31 2015 VERIFY OK: depth=1, C=DE, ST=Hesse-Nassau, L=Frankfurt, O=BTGuard, CN=BTGuard CA, emailAddress=support@btguard.com
Sat Apr 18 23:09:31 2015 Validating certificate key usage
Sat Apr 18 23:09:31 2015 ++ Certificate has key usage  00a0, expects 00a0
Sat Apr 18 23:09:31 2015 NOTE: --mute triggered...
Sat Apr 18 23:09:36 2015 10 variation(s) on previous 3 message(s) suppressed by --mute
Sat Apr 18 23:09:36 2015 [server] Peer Connection Initiated with [AF_INET]109.201.137.162:1194
Sat Apr 18 23:09:38 2015 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Sat Apr 18 23:09:38 2015 PUSH: Received control message: 'PUSH_REPLY,dhcp-option DNS 85.131.129.163,dhcp-option DNS 38.109.161.201,redirect-gateway,route 192.168.0.1,topology net30,ping 10,ping-restart 120,ifconfig 192.168.0.186 192.168.0.185'
Sat Apr 18 23:09:38 2015 OPTIONS IMPORT: timers and/or timeouts modified
Sat Apr 18 23:09:38 2015 NOTE: --mute triggered...
Sat Apr 18 23:09:38 2015 3 variation(s) on previous 3 message(s) suppressed by --mute
Sat Apr 18 23:09:38 2015 ROUTE_GATEWAY 192.168.0.1/255.255.255.240 IFACE=eth0 HWADDR=00:25:22:d7:cd:3f
Sat Apr 18 23:09:38 2015 TUN/TAP device tun0 opened
Sat Apr 18 23:09:38 2015 Note: Cannot set tx queue length on tun0: Operation not permitted (errno=1)
Sat Apr 18 23:09:38 2015 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Sat Apr 18 23:09:38 2015 /usr/local/sbin/unpriv-ip link set dev tun0 up mtu 1500
Sat Apr 18 23:09:38 2015 /usr/local/sbin/unpriv-ip addr add dev tun0 local 192.168.0.186 peer 192.168.0.185
Sat Apr 18 23:09:38 2015 /usr/local/sbin/unpriv-ip route add 109.201.137.162/32 via 192.168.0.1
Sat Apr 18 23:09:38 2015 /usr/local/sbin/unpriv-ip route del 0.0.0.0/0
Sat Apr 18 23:09:39 2015 /usr/local/sbin/unpriv-ip route add 0.0.0.0/0 via 192.168.0.185       
Sat Apr 18 23:09:39 2015 /usr/local/sbin/unpriv-ip route add 192.168.0.1/32 via 192.168.0.185   
Sat Apr 18 23:09:39 2015 Initialization Sequence Completed

Installazione OPENVPN BTGuard Windows

Scaricare il programma qui: OPENVPN – Download

Eseguire il file di installazione e lasciare tutto com’è. Nella prima schermata accettare le condizioni e poi cliccare sempre su next e in fine install.

Una volta installato correttamente scaricare i file di configurazione di BTGuard VPN. File di configurazione BTGuard

Unzippare il file ed eseguirlo.

btguard-openvpn-configuration
btguard-openvpn-configuration2

Una volta finito il processo si dovrebbero avere dei file nella cartella conf del programma.

btguard openvpn configuration files

Una volta verificata la presenza dei dati di configurazione di BTGuard VPN impostare OPENVPN in modo da venire eseguito con diritti d’amministratore.

Cliccare sull’icona del programma presente sul Desktop con il tasto destro del mouse e scegliere “Apri percorso file”.

Poi cliccare sul file “openvpn-gui” con il tasto destro del mouse e scegliere proprietà.

Nella scheda Compatibilità mettere il visto in “Esegui questo programma come amministratore”. Vedi immagine sottostante.

eseguire openvpn da amministratore windows

Connettersi a BTGuard VPN con OPENVPN WINDOWS

Per connettersi a BTGuard con OPENVPN cliccare sull’icona presente sul Desktop. Una volta avviato il programma ci si potrà connettere cliccando in basso a destra sull’icona del programma poi su “Netherlands – BTGuard” connetti e inserire il nome utente e la password.

connessione btguard vpn

Controllare la configurazione di rete

Windows 7/8

Una volta connessi alla rete VPN di BTGuard si dovrebbe ricevere un indirizzo IP sul dispositivo TAP-Windows Adapter V9 a cui viene assegnata nel mio caso la scheda Ethernet numero 1.

C:\Users\Chit>ipconfig /all
Configurazione IP di Windows
Scheda Ethernet Ethernet0:   
   Suffisso DNS specifico per connessione:
   Descrizione. . . . . . . . . . . : Atheros AR8152 PCI-E Fast Ethernet Controller
   Indirizzo fisico . . . . . . : 00-25-22-D7-CD-3F
   DHCP attivo. . . . . . . . . . : Nein
   Configurazione automatica abilitata. . . : si
   IPv4-Adresse  . . . . . . . . . . : 192.168.1.15(Preferenziale)
   Subnet mask  . . . . . . . . . . : 255.255.255.0
   Standardgateway . . . . . . . . . :
   Server DNS  . . . . . . . . . . . : 212.71.111.250
   NetBIOS su TCP/IP . . . . . . . : Attivo

Scheda Ethernet Ethernet1:   
   Descrizione. . . . . . . . . . . : TAP-Windows Adapter V9
   Indirizzo fisico . . . . . . : 00-FF-8A-99-48-9D
   DHCP attivo. . . . . . . . . . : si
   Configurazione automatica . . . : si
   Indirizzo IPv4. . . . . . . . . . : 192.168.1.222(Preferenziale)
   Subnetzmaske  . . . . . . . . . . : 255.255.255.252
   Lease ottenuto. . . . . . . . . . : Martedi, 24. Marzo 2015 23:13:27
   Scadenza Lease. . . . . . . . . . : Mercoledi, 23. Marzo 2016 23:13:27
  Gateway predefinito . . . . . . . . . : 192.168.1.221
  Server DHCP . . . . . . . . . . . : 192.168.1.221
   Server DNS  . . . . . . . . . . . : 8.8.8.8
   NetBIOS su TCP/IP . . . . . . . : Attivo
C:\Users\Chit>

Perfetto come si vede dalle informazioni ricevute eseguendo il comando ci troviamo nella rete VPN di BTGuard, ci è stato assegnato un indirizzo IP, un indirizzo Gateway e il DNS server (8.8.8.8). Mentre la scheda numero 0, quella in uso normalmente, è senza indirizzo Gateway.

Linux

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:25:22:D7:CD:3F  
          inet addr:192.168.1.12  Bcast:192.168.1.15  Mask:255.255.255.240
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6947 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6737 errors:0 dropped:0 overruns:0 carrier:1
          collisions:0 txqueuelen:1000 
          RX bytes:6128944 (5.8 Mb)  TX bytes:1222767 (1.1 Mb)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:192.168.1.186  P-t-P:192.168.1.185  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:5958 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5902 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:4640010 (4.4 Mb)  TX bytes:663960 (648.3 Kb)
#

Testare la connessione con OPENVPN BTGuard VPN (Win e Linux)

Per testare la connessione e cioè se effettivamente tutto il traffico passi per la rete VPN BTGuard (o per i proxy, se si usano i proxy), usare il comando netstat, sia per Linux che per Windows.

Avviare il proprio client BitTorrent e mettere a scaricare qualcosa di normale giusto per testarlo.
Aprire un browser a un pagina di propria preferenza.

Una volta fatto eseguire il comando netstat –tan vedi esempio.

C:\Users\Chit>netstat -tan
Connessioni attive
  Proto  Indirizzo locale		Indirizzo esterno          Stato
  TCP    192.168.1.222:51499     XXX.XX.XXX.XX:24915   ESTABLISHED
  TCP    192.168.1.222:51988     XX.X.XXX.XX:48420      ESTABLISHED
  TCP    192.168.1.222:52101     XX.XXX.XXX.XX:443      ESTABLISHED
  TCP    192.168.1.222:52173     XXX.XXX.XXX.XXX:443    ESTABLISHED
  TCP    192.168.1.222:52269     XX.XX.XX.XX:80         ESTABLISHED
  TCP    192.168.1.222:52451     XX.XXX.XXX.XXX:42692   ESTABLISHED
  TCP    192.168.1.222:52453     XX.XX.X.XXX:20733      ESTABLISHED
  TCP    192.168.1.222:52661     XX.XXX.XXX.XXX:42692   ESTABLISHED
  TCP    192.168.1.222:52794     XX.XX.X.XXX:20733      ESTABLISHED
  TCP    192.168.1.222:52936     XX.XX.XXX.XX:51256    ESTABLISHED
  TCP    192.168.1.222:53008     XX.XX.XXX.XX:443       ESTABLISHED
  TCP    192.168.1.222:53064     XX.X.XX.XXX:51413      ESTABLISHED
  TCP    192.168.1.222:53065     XX.XX.X.XX:45846       ESTABLISHED
C:\Users\Chit>

Da come si può notare dall’esempio sono connesso a dei server tramite l’indirizzo della scheda ethernet 1, 192.168.1.222. Funziona! Le connessioni TCP con porte dai 1025 in su, sono le connessioni agli altri utenti BitTorrent di cui ho dovuto chiaramente censurare gli indirizzi IP, mentre quelle su porte 80 o 443, sono connessioni a siti web. Tutto il traffico passa per la rete VPN di BTGuard.

Controllare che le connessioni vengano effettuate tramite l’indirizzo IP giusto. In questo esempio l’indirizzo IP 192.168.1.222 non 192.168.1.15.

Testare se si sta navigando in modo anonimo

Un altro metodo per testare, per quanto riguarda il web, è controllare il proprio indirizzo IP esterno su un qualche sito come: whatismyipaddress.com.

Impostazioni BitTorrent client BTGuard VPN

Contrariamente all’altro metodo per scaricare anonimamente e cioè con dei proxy, usando BTGuard VPN o un altro servizio VPN non bisogna impostare niente visto che l’intera connessione è criptata e “anonima”.

Ipostare il BitTorrent client in modo da usare solo VPN

Buona cosa è quella di impostare il BitTorrent client per scaricare solo usando BTGuard VPN o un altro servizio VPN.

Il problema è che si dovesse per esempio avviare per sbaglio il proprio BitTorrent Client mentre non si è connessi a VPN si rischia di venire esposti.

Per evitare che succeda impostare il proprio BitTorrent client in modo da usare sempre e solo l’interfaccia tun0.

Esempio con Ktorrent

Per impostare Ktorrent in modo da usare solo tun0 (VPN) andare sotto rete -> interfaccia di rete e scegliere tun0.

ktorrent bittorrent client foce tun0 VPN