Téléchargement Torrent / Magnet avec WebUI et VPN

Voici une petite présentation de mon serveur de téléchargement autonome accessible par interface web (uniquement depuis le réseau local) qui me sert à télécharger et partager des fichiers sur internet.

Matériel et Logiciel

Le serveur est virtualisé par VMware sur mon ordinateur de bureau, il accède au Core i7 860, et a droit à 256Mo de mémoire vive sur les 8GB disponibles. Le disque virtuel fait 10GB (tout est stocké sur un partage NFS ensuite).

  • OS : Debian Squeeze 6.0 amd64
  • Client bitorrent / magnet : transmission-daemon
  • VPN : OpenVPN + Psilo.fr

Configuration

Stockage

Debian est installé sur le disque virtuel VMware de 10GB, en revanche sur /srv/Torrent j'ai monté un partage nfs, avec l'entrée /etc/fstab suivante :

192.168.10.50:/srv/Torrent/     /srv/Torrent/   nfs     defaults,user,auto,noatime,intr 0 0

Transmission

J'ai modifié les deux paramètres suivants dans /etc/transmission/settings.json :

"download-dir": "/srv/Torrent",
"rpc-whitelist": "127.0.0.1,192.168.10.*,192.168.1.*",

Ceci afin d'autoriser l'accès au WebUI depuis mes deux réseaux, et définir le bon répertoire de stockage des fichiers. Note : vous devez arrêter le daemon transmission avant de faire ces changements, sinon ils seront perdus.

OpenVPN

Il suffit de coller dans /etc/openvpn les fichiers fournis par le prestataire du vpn. Pour ma part j'ai renommé le fichier de configuration en "psilo.conf" pour être certain qu'il soit pris en compte.

Accès à l'interface

Dans un navigateur web, entrez l'IP du serveur suivi du port 9091. Un utilisateur et mot de passe seront demandés : transmission / transmission.

Cliquez sur "Open" pour pouvoir envoyer votre fichier .torrent ou directement coller l'URL. Même procédure avec les magnets. Après quelques secondes le téléchargement devrait débuter.

Astuces

Error: No data found! Au démarrage

Au démarrage du serveur, il se peut que tous les fichiers soient en gris avec l'indication "Error: No data found! Reconnect any disconnected drives, use "Set Location", or restart the torrent to re-download". Il faut aller faire un clic droit sur chaque fichier et sélectionner "Verify Local Data". Mais cela peut être pénible quand il y en a beaucoup, aussi on peut utiliser une commande :

# transmission-remote -n transmission:transmission --torrent all --verify

Cette erreur est probablement due au fait que transmission se lance avant le montage NFS. Il y a probablement des solutions plus propres, je suis preneur ! En attendant, la commande que je donne peut être mise dans un script.

Déconnexion du VPN

Un VPN est tout sauf fiable, il arrive très fréquemment que la connexion soit perdue, ce qui a pour conséquence de faire passer les téléchargements en clair sur internet... et sur transmission il semble impossible de forcer l'utilisation de l'interface tun0. Des manipulations sont sans doute possibles avec SELinux ou Apparmor, mais beaucoup trop complexes pour ce que l'on veut faire.

Alors, avec mon ami Etenil, nous avons concocté un petit bidouillage sous forme de script :

#!/bin/sh

if [ ! -e /sys/devices/virtual/net/tun0 ]
then
        transmission-remote -n transmission:transmission --torrent all --stop
        mail -s "VPN down" xavier@domaine.org
fi

Grossomodo, le script vérifie la présence du fichier tun0, qui est là si le VPN est connecté. Si ce n'est pas le cas, il arrête tous les téléchargements, et envoie une alerte par mail. Ce script est à placer en tâche cron afin qu'il s'exécute régulièrement. Personnellement je lui demande de se lancer toutes les minutes... mais attention, si votre VPN est déconnecté pendant 1 heure, toutes les minutes le script enverra un mail... vous vous retrouverez donc avec 60 mails !

La aussi une solution plus propre est sans doute possible.

Récupérer les fichiers téléchargés

Vous pouvez le faire en installant openssh-server, et en vous connectant en sftp via nautilus, dolphin, filezilla ou autre. Vous pouvez aussi vous amuser à configurer un partage samba ou un accès ftp. Les possibilités sont nombreuses.

Vus : 1892
Publié par Maniatux : 95