Installation d’un client VPN pour utiliser transmission (gestion de torrents) de façon anonyme

Ayant trouvé ce tutoriel plutôt bien fait :

https://mondedie.fr/d/5933-Tuto-Faire-passer-le-traffic-bitTorrent-dans-un-tunnnel-VPN,

Je m’en suis inspiré  pour décrire comment installer correctement un client VPN avec un abonnement PureVPN et pour l’utilisation de transmission sur Ubuntu Server (sur un serveur HC1 de Hardkernel) :

1) Installer openvpn sur le serveur :

eric@boston:/home/eric$ sudo apt-get install openvpn

2) Créer une table de routage pour le VPN :

eric@boston:/home/eric$ mv /etc/openvpn eric@boston:/etc/openvpn$ sudo echo 1 VPN >> /etc/iproute2/rt_tables 

 

3) Editer le fichier /etc/network/interfaces :

eric@boston:/etc/openvpn$ sudonano /etc/network/interfaces

A supposer que votre réseau interne est en 192.168.1.x, il faut créer une deuxième boucle locale sur un autre réseau non accessible du principal, par ex. 192.168.0.x ou 10.0.0.x etc. Dans ce cas, ajouter le bloc ci-dessous dans le fichier interfaces :

auto lo:1
        iface lo:1 inet static
        address 192.168.0.1
        netmask 255.255.255.255

4) Télécharger les fichiers de conf de PureVPN :

eric@boston/etc/openvpn$ sudo wget 'https://s3-us-west-1.amazonaws.com/heartbleed/linux/linux-files.zip

5) Extraire le fichier linux-files.zip dans /etc/openvpn et renommer le dossier PureVPN :

eric@boston/etc/openvpn$ sudo unzip linux-files.zip && mv Linux\ OpenVPN\ Updated\ Files PureVPN 

6)  Créer les lien symbolique suivant dans le répertoire /etc/openvpn :

eric@boston:/etc/openvpn$ sudo ln -s PureVPN/UDP/Belgium-udp.ovp client.conf

Le lien est ici en exemple sur le serveur UDP belge mais on peut bien entendu choisir n’importe lequel des serveurs du dossier (ou du côté TCP c’est possible aussi).

5) Créer le répertoire scripts dans /etc/openvpn et créer les scripts checkVPN, up.sh et down.sh :

eric@boston:/etc/openvpn$ sudo mkdir scripts
eric@boston:/etc/openvpn$ sudo vi scripts/checkVPN 
eric@boston:/etc/openvpn$ sudo vi scripts/up.sh
eric@boston:/etc/openvpn$ sudo vi scripts/down.sh
eric@boston:/etc/openvpn$ sudo chmod +x scripts/

Insérer le contenu de checkVPN  dans checkVPN, celui de down dans down.sh et celui de up dans up.sh. Il faut bien entendu adapter la valeur du réseau de la boucle locale dans ces fichiers en fonction de votre propre configuration, cf point 3) ci-dessus.

6) Créer un fichier pass.txt et un lien symbolique sur ce fichier qui contiendra les informations de connexion fournies par PureVPN :

eric@boston:/etc/openvpn$ sudo vi PureVPN/pass.txt
eric@boston:/etc/openvpn$ sudo ln -s PureVPN/pass.txt PureVPN/pass

Contenu de pass.txt sur deux lignes, la première étant le login et la deuxième le pot de passe, par exemple  :

purevpnXYZabc
VPN123456

7) Sécuriser le fichier pass.txt :

eric@boston:/etc/openvpn$ sudo chmod 700 PureVPN/pass.txt

8) Adapter la configuration du fichier de conf du serveur :

client
dev tun
proto udp
route-nopull
script-security 2
up /etc/openvpn/scripts/up.sh
down /etc/openvpn/scripts/down.sh
remote be1-ovpn-udp.pointtoserver.com 53
resolv-retry infinite
keepalive 10 60
persist-key
persist-tun
ns-cert-type server
ca /etc/openvpn/PureVPN/ca.crt
tls-auth /etc/openvpn/PureVPN/Wdc.key 1
cipher AES-256-CBC
auth-user-pass /etc/openvpn/PureVPN/pass
auth-retry nointeract
comp-lzo
verb 1
explicit-exit-notify 2
mute 20
ifconfig-nowarn

9) Configurer transmission-daemon pour qu’il utilise le tunnel VPN :

a) Arrêter le daemon :

eric@boston:/etc/openvpn$ sudo service transmission-daemon stop

b) Editer la configuration de transmission. Le fichier settings .json peut éventuellement se situer à un autre endroit.

eric@boston:/etc/openvpn$ sudo nano /var/lib/transmission-daemon/.config/transmission-daemon/settings.json

c) Modifier la configuration « bind-address-ipv4 » pour y déclarer la boucle locale mise en place dans le point 3) :

"bind-address-ipv4": "192.168.0.1",

 

10) Lancer le serveur openvpn :

eric@boston:/etc/openvpn$ sudo service openvpn start

En théorie, le serveur openvpn se lance, se connecte au serveur de PureVPN, et lance automatiquement le serveur transmission-daemon. Il est toujours possible de vérifier que tout fonctionne bien :

1) en tentant une connexion de l’extérieur (d’internet) sur la box (si celle-ci a une adresse dynamique par exemple), elle doit être accessible. Sinon cela signifie que tout le réseau passe par le VPN et pas seulement transmission.

2) En démarrant un téléchargement de torrent « CheckMyTorrent » :

https://torguard.net/checkmytorrentipaddress.php?hash=5b7c19bd6b427b8fb87f80c74e5c1e6e441f31ba

Le torrent, dans le programme de gestion de torrent (transmission-remote dans mon cas par exemple) doit afficher un message d’erreur (normal) ainsi qu’une adresse IP  : si cette adresse n’est pas celle de la box internet, c’est gagné !