Introduction

Le protocole BitTorrent permet de télécharger et de partager des fichiers en peer-to-peer c'est à dire sans serveur central contenant les données à télécharger. Un même fichier peut être présent chez plusieurs personnes du réseau bit-torrent. Lorsque vous voulez télécharger ce fichier, chaque personne le possédant et le partageant vous envoie des morceaux de ce fichier. De ce fait, si de nombreuses personnes possèdent ce fichier, le téléchargement sera très rapide. C'est bien évidemment valable réciproquement et lorsque l'on installe un logiciel de torrents, on accepte de partager un peu de ses données. L'ensemble est totalement sécurisé dans le sens où les seules données accessibles aux autres utilisateurs sont les données explicitement partagées.

Pour en savoir plus sur le fonctionnement général de l'échange pair à pair, vous pouvez vous rendre sur cette documentation

Le fait d'avoir un service de torrents tournant 24h/24 permet de pouvoir lancer des téléchargements depuis n'importe quelle machine puis de laisser votre machine serveur faire le travail. Ainsi, lorsque vous aurez éteind votre ordinateur personnel, les échanges pair à pair continuerons de tourner sur votre serveur et vos téléchargements s'effectueront sans que vous ayez à vous en soucier.

Toute la suite prend en compte que vous êtes authentifié en root sur votre serveur et que vous êtes sur un système Debian ou dérivé.


Deluge

Installation

apt-get install deluged deluge-webui

Créer un utilisateur spécifique à Deluge avec son répertoire personnel dans /var/lib

adduser --disabled-password --system --home /var/lib/deluge --group deluge

Lancer une première fois le serveur pour générer les fichiers de configuration

su --shell /bin/bash --login deluge
deluged
killall deluged

Répertoire de téléchargement

Choisir un répertoire où seront stockés les téléchargements et le rendre accessible en écriture à Deluge (lors de l'installation, un utilisateur système nommé deluge a été créé).

Afin que ce répertoire puisse être accessible à d'autres utilisateurs (par exemple, pour écrire dedans ou pour récupérer les fichiers) on pourra choisir un groupe propriétaire judicieusement, ici ce sera le groupe maison (voir la section dédiée aux droits et permissions).

Créer un répertoire, nommé par exemple incoming se trouvant si possible sur un disque dur différent du système (qui contient le répertoire /media/data dans cet exemple):

mkdir /media/data/incoming

Ajout de l'utilisateur deluge en propriétaire :

chown -R deluge /media/data/incoming

Ajout du groupe maison en propriétaire :

chgrp -R maison /media/data/incoming

Ajout des permissions en écriture pour le groupe :

chmod -R 775 /media/data/incoming

Configuration

  • Autorisations d'accès

On va commencer par gérer les autorisations d'accès à Deluge en créant un ou des utilisateurs. En étant connecté sous l'utilisateur deluge, lancer cette commande en remplaçant username le nom de l'utilisateur, password par le mot de passe et level par le niveau de droits désiré pour l'utilisateur (0 = aucun droit ; 1 = lecture seule ; 5 = normal ; 10 = administrateur).

 echo "username:password:level" >> ~/.config/deluge/auth
  • Lancer Deluge au démarrage du serveur sous l'utilisateur deluge

Éditer le fichier /etc/default/deluge-daemon pour y mettre :

# Configuration for /etc/init.d/deluge-daemon

# The init.d script will only run if this variable non-empty.
DELUGED_USER="deluge"             # !!!CHANGE THIS!!!!

# Should we run at startup?
RUN_AT_STARTUP="YES"
  • Configuration

On va réaliser le reste de la configuration sous l'utilisateur deluge

su --shell /bin/bash --login deluge    

Éditer le fichier /var/lib/deluge/.config/deluge/core.conf à sa guise. Nous allons détailler quelques lignes interessantes

"move_completed_path": "/media/data/incoming", 
"move_completed": true, 

Répertoire où iront les fichiers en fin de téléchargement

"daemon_port": 58846, 

Le choix du port sur lequel Deluge va fonctionner

"allow_remote": true, 

Pour pouvoir contrôler Deluge depuis un autre programme sur une autre machine

"download_location": "/media/data/incoming/00-temp", 

Le répertoire temporaire de téléchargement

"max_upload_speed": 300, 
"max_download_speed": 800, 

Vitesse maximum de partage et de téléchargement en KiB/s. Cela permet à ce Deluge n'utilise pas tout votre débit de connexion Internet. Ceci est à tester. Une vitesse de -1 signifie illimité.

"autoadd_location": "/media/data/incoming/00-torrents", 

Pour utiliser un répertoire de dépôt de fichiers torrents. Chaque fichier torrent qui sera enregistré dans ce répertoire se lancera automatiquement. Si vous avec un partage de fichier sur le réseau, cela peut-être intéressant car il suffira, sur sa machine, de télécharger un fichier torrent et de l'enregistrer dans ce répertoire partagé pour que le téléchargement commence sur le serveur.

Ouverture et redirection de ports

Afin que Deluge puisse échanger, il faut ouvrir et rediriger le port 58848.

  • Ouvrir ce port si vous avez un firewall.

  • Rediriger les connexions du port 58846 vers votre serveur si vous êtes derrière un routeur (box) utilisant du NAT (voir la section dédiée).

Contrôler Deluge

L'un des avantages de Deluge est qu'il peut être contrôlé par son client Web mais également par l'interface graphique classique de Deluge qui agira comme une télécommande depuis votre machine personnelle vers votre serveur. Il dispose également d'un contrôle en mode console que nous ne détaillerons pas ici.

Client Web

Par défaut, Deluge-web écoute sur le port 8112, ce qui veut dire que si on veut accéder au contrôle de Deluge par l'interface web, il faut taper dans son navigateur http://adresse-du-serveur:8112. On voudra peut-être accéder par une URL plus sympathique comme par exemple http://torrents.example.org. Pour cela, il faut configurer un VirtualHost comme présenté dans cette section (nous utiliserons un exemple basé sur Apache).

Attention : Cette documentation propose une version non sécurisée pour accéder à l'interface de gestion de Deluge. Nous vous conseillons d'utiliser une version sécurisée (en https) dont la documentation se trouve ici.

  • Installation et configuration

L'installation du client Web a déjà été réalisée via la commande :

apt-get install deluge-web
  • Configurer un sous-domaine

Afin de faciliter l'accès (se souvenir facilement de l'adresse), on peut configurer un sous-domaine (voir la section dédiée).

  • Configurer le serveur Web

Il faudra rediriger les connexions du port 80 (ou 443) vers le port 8112. (nous prendrons l'exemple de torrents.example.org). Pour cela il faut créer un Virtual Host pour Apache (que l'on nommera ici torrents):

nano /etc/apache2/sites-available/torrents

et mettre cela dedans :

<VirtualHost *:80>
    ServerName torrents.xilm.org
    ProxyPass / http://localhost:8112/
    ProxyPassReverse / http://localhost:8112/
</VirtualHost>

Si on veut plutôt utiliser un alias qu'un sous-domaine (url du type http://example.org/torrents), il faudra faire un VirtualHost de ce type :

ProxyPass /deluge http://localhost:8112/

<Location /deluge>
    ProxyPassReverse /
    ProxyPassReverseCookiePath / /deluge               
    RequestHeader set X-Deluge-Base "/deluge/"          
    Order allow,deny
    Allow from all
</Location>

Ne pas oublier d'activer ce VirtualHost :

a2ensite torrents

Activer aussi les modules suivants au cas où ce ne soit pas le cas :

a2enmod proxy proxy_http proxy_html headers

Recharger Apache :

service apache2 restart

Il ne vous reste plus qu'à vous connecter à http://torrents.example.org et à rentrer l'identifiant et le mot de passe choisis plus haut. Par la suite, l'interface est assez bien faite et vous arriverez très facilement à changer les paramètres de l'interface ainsi que les paramètres du serveur.

Pour en savoir plus, vous pouvez consulter la documentation complète de Deluge.

Application Deluge

  • Installation

Sur sa machine personnelle, il suffit d'installer le logiciel Deluge

apt-get install deluge
  • Configuration

Par défaut, le logiciel Déluge fonctionne comme un client bittorrent et va donc télécharger et partager des fichier depuis la machine sur laquelle il est installé. Ici, nous voulons utiliser cette application comme un gestionnaire distant de notre instance Deluge installée sur notre serveur. Pour faire cela, il faut décocher l'affichage classique : Éditer > Préférences > Catégorie "interface" > décocher le mode classique.

Il faudra ensuite ajouter les paramètres de notre client distant dans le gestionnaire de connexion (Éditer > Gestionnaire de connexions). Exemple de configuration :

- Nom d'hôte : torrents.example.org
- Port : 58846
- Nom d'utilisateur et mot de passe : les identifiants que l'on a choisi
  plus haut dans la partie configuration de Deluge.

Extension pour Firefox

Une extension pour Firefox bien pratique permet d'ajouter automatiquement un torrent à la file de téléchargement dans Deluge du moment où le client Web est activé et fonctionnel. Dès lors, il suffit de cliquer sur un lien de téléchargement d'un fichier .torrent ou d'un lien magnet pour que celui-ci se lance sur votre serveur.

page de l'extension

Gestionnaire pour Android

Transdroid permet de contrôler Transmission depuis son smartphone. Ce logiciel n'a pas été testé pour les besoin de ce tuto mais voici certaines de ses fonctionnalités :

  • Contrôler ses torrents : démmarer, arrêter, supprimer, mettre des priorités, etc…
  • Changer les vitesses maximum de transfert
  • Recherche integrée de torrents sur différents sites
  • Notifications par RSS et alarmes pour les torrents ajoutés ou terminés.
  • Ajout rapide de torrent

Quelques captures d'écran ici.

Un autre gestionnaire Android existe (Transdrone) mais notre confiance se porte plus sur Transdroid étant donné que ce dernier est absent du Google Play Store ce qui nous plait bien !


Transmission

Installation

apt-get install transmission-cli transmission-common transmission-daemon

Créer un utilisateur système spécifique à transmission

adduser --disabled-password --system --home /var/lib/debian-transmission --group debian-transmission

Répertoire de téléchargement

Choisir un répertoire où seront stockés les téléchargements et le rendre accessible en écriture à Transmission (lors de l'installation, un utilisateur système nommé debian-transmission a été créé).

Afin que ce répertoire puisse être accessible à d'autres utilisateurs (par exemple, pour écrire dedans ou pour récupérer les fichiers) on pourra choisir un groupe propriétaire judicieusement (voir la section dédiée aux droits et permissions).

Créer un répertoire, nommé par exemple incoming se trouvant si possible sur un disque dur différent du système (qui contient /media/data dans cet exemple):

mkdir /media/data/incoming

Ajout de l'utilisateur debian-transmission en propriétaire :

chown -R debian-transmission /media/data/incoming

Ajout du groupe maison en propriétaire :

chgrp -R maison /media/data/incoming

Ajout des permissions en écriture pour le groupe :

chmod -R 775 /media/data/incoming

Configuration

Lancer le service une fois afin de générer un fichier de configuration :

service transmission-daemon start

Pour manipuler le fichier de configuration, il est indispensable d'arrêter le démon :

service transmission-daemon stop

Puis, en root :

nano /etc/transmission-daemon/settings.json

C'est dans ce fichier que tout se passe. Cependant, vous pourrez configurer certaines choses par l'interface web. Nous allons détailler les éléments importants ci-dessous.

Note : tous les termes commençant par alt correspondent aux vitesses en mode limité. En effet, Transmission possède une fonction permettant de passer en mode "tortue" afin de limiter l'utilisation de la bande passante par Transmission.

On indique où vont se retrouver les fichiers recupérés et partagés :

"download-dir": "/chemin/vers/le/répertoire/de/téléchargement", 

Nombre maximum de téléchargement descendants simultanés :

"download-limit": 100,

Pour activer cette limite (0 si inactif, true si actif) :

"download-limit-enabled": 0,

Port utilisé pour les échanges de fichiers. Laisser celui-ci :

"peer-port": 51413,

Droits par défaut. Par défaut, la valeur est de 18 ce qui signifie que les fichiers auront comme droits 755 (seul le propriétaire a les droits en écriture, le groupe et les autres n'ont que les droits en lecture et execution). Mettre 2 permet aux fichiers d'être en lecture et écriture pour le propriétaire et le groupe. Mettre 0 laissera tous les droits (lecture, écriture, exécution) pour tout le monde. Pour mieux comprendre le fonctionnement de umask, consultez cette documentation sur ce sujet :

"umask": 2,

Limite de vitesse (en ko/s) de download (ce que vous prenez sur l'Internet) afin de ne pas saturer votre accès Internet :

"speed-limit-down": 500, "speed-limit-down-enabled": true,

Limite de vitesse (en ko/s) d'upload (ce que les autres prennent chez vous) afin de ne pas saturer votre accès Internet

"speed-limit-up": 30, "speed-limit-up-enabled": true, 

Note : Comment fixer les valeurs de limite selon la connexion dont on dispose ?

Une connexion ADSL « Standard » fait du 8 Mbps (méga-bits par seconde) en débit descendant (download) et moins de 1 Mbps en débit montant.

Pour convertir en ko/s (kilo-octet par seconde), on a donc 8 Mbps qui sont équivalents à 1000 ko/s. Il faut donc choisir des valeurs qui vous permettront de récupérer vos documents assez rapidement, mais sans saturer la ligne (typiquement, on peut choisir un tiers de la totalité de la bande passante pour la limite en débit download et entre un trentième et un dixième pour la limite de débit un upload). Pour connaître le débit réel de votre ligne, tapez « test débit » dans votre moteur de recherche préféré.

Ouverture et redirection de ports

Afin que transmission puisse échanger, il faut ouvrir et rediriger le port 51413.

  • Ouvrir ce port si vous avez un firewall.

  • Rediriger les connexions du port 51413 vers votre serveur si vous êtes derrière un routeur (box) utilisant du NAT (voir la section dédiée).

Contrôler Transmission

On aura vu plus haut que le contrôle de Transmission se fait par ligne de commande ou par l'interface web.

Il peut être plus pratique de contrôler Transmission par un logiciel dédié à cela. Divers exemples sont disponibles ici.

Client Web

  • Configuration de Transmission-webui

Pour activer l'interface web, éditer le fichier /etc/transmission-daemon/settings.json :

"rpc-enabled": true,

Mettre ici le mot de passe pour accéder à l'interface web. Il sera automatiquement chiffré et remplacé à cet endroit lors du prochain lancement du démon :

"rpc-password": "xxxxxx", 

Port sur lequel l'interface web sera accessible :

"rpc-port": 9091, 

URL sur laquelle l'interface Web sera accessible. Laissez cela ainsi :

"rpc-url": "/transmission/", 

Nom d'utilisateur qu'il faudra mettre pour accéder à l'interface web (à remplacer par le user de votre choix) :

"rpc-username": "xxxx", 

Pour démarrer les torrents dès leur ajout :

"start-added-torrents": true, 

Attention : Cette documentation propose une version non sécurisée pour accéder à l'interface de gestion de Transmission. Nous vous conseillons d'utiliser une version sécurisée (en https) dont la documentation se trouve ici.

Afin d'accéder à l'interface web, cela se fait par l'adresse suivante :

http://adresse-ip-du-serveur:9091 ou http://www.example.org:9091, bref, on accède au port 9091.

On peut donc accéder à l'interface Web de Transmission en redirigeant un port sur son routeur comme indiqué ici.

Afin de faciliter l'accès (se souvenir facilement de l'adresse), on peut configurer un sous-domaine (voir la section dédiée). On partira de ce principe pour la suite mais il nous faudra configurer notre serveur Web.

  • Configuration du serveur Web

Il faudra rediriger les connexions du port 80 vers le port 9091. (nous prendrons l'exemple de torrents.example.org). Pour cela il faut créer un Virtual Host pour Apache (que l'on nommera ici torrents) (voir la page dédiée pour plus d'explication sur les VH) :

/etc/apache2/sites-available/torrents

et mettre cela dedans en l'adaptant à votre domaine :

<VirtualHost *:80>
    RewriteEngine On 
    ServerName torrents.example.org
    Redirect permanent / http://torrents.example.org/transmission/web/
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass /transmission http://127.0.0.1:9091/transmission
    ProxyPassReverse /transmission http://127.0.0.1:9091/transmission
</VirtualHost>

Ne pas oublier d'activer ce VirtualHost :

a2ensite torrents

Activer aussi les modules suivants au cas où ce ne soit pas le cas :

a2enmod rewrite proxy proxy_http

Note : le module rewrite permet d'activer la réécriture d'URL dans les virtual hosts et les modules proxy et proxy_http permettent d'activer la fonction proxy d'Apache ce qui nous permet de réaliser ce qui est indiqué plus haut

Recharger Apache :

 service apache2 restart

Il ne vous reste plus qu'à vous connecter à http://torrents.example.org et à rentrer l'identifiant et le mot de passe choisi. Par la suite, l'interface est assez bien faite et vous arriverez très facilement à changer des paramètres.

Pour en savoir plus, vous pouvez consulter ce tutoriel sur l'utilisation de l'interface Web.

Transmission-remote-gui

Ce logiciel est intéressant dans la mesure où il permet de déplacer ses fichiers dans l'arborescence du serveur sans que le partage des fichiers soit arrêté. En effet, avec le temps, les fichiers s'accumulent dans le répertoire de téléchargement et on a parfois envie de ranger tout cela comme il faut. Le problème est que si l'on déplace les fichiers, le torrent continue de tourner et va envoyer une erreur du type "fichiers absents" et le partage ne peut plus se faire. Transmission-remote-gui permet donc d'indiquer d'autres répertoires de stockage de vos fichiers et de pouvoir déplacer ceux-ci sans arrêter le partage.

  • Installation

Rendez-vous sur cette page. Télécharger l'archive zip et extraire les fichiers dans votre répertoire personnel. Une solution assez pratique peut-être de stocker cela dans un répertoire nommé bin (comme binaire) situé dans votre répertoire personnel /home/<user>/. Ce répertoire a donc comme fonction d'accueillir tous les programmes ne s'installant pas par la méthode classique sous Debian et dérivés ou vos scripts personnels.

Une fois le logiciel stocké sur votre machine, il suffit de faire un raccourci vers le fichier nommé transgui (clic-droit > "Créer un lien"). Placez ensuite ce raccourci où bon vous semble.

à noter que sous l'interface gnome3, il suffit de lancer le logiciel puis de "fixer" le lanceur dans la barre des raccourcis situé à gauche avec un clic-droit > "ajouter aux favoris"

  • Configuration

Au premier lancement, il faudra configurer votre accès en accédant au menu "Torrent" > "se connecter à transmission" > "nouvelle connexion". Rentrez ensuite les paramètres d'accès à votre serveur Transmission comme configuré ci-dessus.

Pour déplacer vos torrents, il faut faire un clic-droit sur le torrent puis choisir "définir l'emplacement des données" (ou touche F6 une fois le torrent sélectionné). Ensuite, il faut indiquer le chemin vers le répertoire de votre serveur (!!) où vous voulez stocker ce(s) ficher(s). Par la suite, une liste de répertoires s'affichera sur la droite de la fenêtre de transmission-remote-gui.

Extension pour Firefox

Une extension pour Firefox bien pratique permet d'ajouter automatiquement un torrent à la file de téléchargement dans Transmission du moment où le client Web est activé et fonctionnel. Dès lors, il suffit de cliquer sur un lien de téléchargement d'un fichier .torrent ou d'un lien magnet pour que celui-ci se lance sur votre serveur.

page de l'extension

Extension pour Gnome3

L'interface Gnome3 (interface par défaut de Debian) permet d'ajouter des extensions diverses et variées.

Ces extensions sont installables directement à partir du site gnome-shell-extensions. Il suffit ensuite d'activer l'extension via la page web et celle-ci sera installée et activée sur votre interface Gnome3.

Il existe une très bonne extension pour contrôler votre serveur Transmission. Celle-ci ajoute une petite icône dans la barre supérieure de votre écran et permet d'avoir les contrôles de base pour vos torrents. Allez sur la page de l'extension puis activez-la. Par la suite, il faut configurer l'extension avec vos paramètres de votre serveur Transmission.

gnome-shell extension
transmission

Gestionnaire pour Android

Transdroid permet de contrôler Transmission depuis son smartphone. Ce logiciel n'a pas été testé pour les besoin de ce tuto mais voici certaines de ses fonctionnalités :

  • Contrôler ses torrents : démmarer, arrêter, supprimer, mettre des priorités, etc…
  • Changer les vitesses maximum de transfert
  • Recherche integrée de torrents sur différents sites
  • Notifications par RSS et alarmes pour les torrents ajoutés ou terminés.
  • Ajout rapide de torrent

Quelques captures d'écran ici.

Un autre gestionnaire Android existe (Transdrone) mais notre confiance se porte plus sur Transdroid étant donné que ce dernier est absent du Google Play Store ce qui nous plait bien !