Mettre en place un démon torrent sous Debian
BitTorrent, ou encore Torrent, est un protocole de partage de données de type P2P (pair à pair ou peer-to-peer). Il jouit d’une mauvaise réputation dû à diverses utilisations illégales de celui-ci (téléchargement de films, musiques ou logiciels sous licence propriétaire) mais Torrent sert, aussi, à partager des distributions Linux. C’est la raison de cet article.
Le P2P apporte d’énormes avantages par rapport aux systèmes de partage de fichiers centralisés. C’est un mode de distribution décentralisé, c’est à dire que les fichiers partagés ne sont pas contenu sur un seul et unique serveur mais par un ensemble de nœuds. Pour simplifier la chose, chaque client qui télécharge un fichier, distribue en parallèle ce même fichier. L’avantage de cette solution est que plus le fichier est téléchargé plus il est facile de le télécharger contrairement à une solution de stockage comme le FTP ou plus le nombre de client est important et moins la bande passante allouée à chaque client est importante. Il est donc fortement conseillé d’utiliser ce système pour transmettre des fichiers volumineux (comme des distributions Linux) à un grand nombre de personnes.
Transmission est un client BitTorrent qui fonctionne sous OSX et Linux. Il existe sous différents formes : des clients lourds QT et GTK, en version terminal seul ou encore en version client WEB.
Installation de transmission
La version packagé étant la dernière version stable, nous utiliserons le système de package pour l’installation de ce démon.
# apt-get install transmission-daemon
Par défaut l’ensemble des fichiers téléchargés sont placés dans /var/lib/transmission-daemon/downloads/
, nous souhaitons changer cet emplacement par /home/torrent
. À la fin l’installation le serveur étant démarré. Nous devons l’éteindre afin de modifier le fichier de configuration.
# service transmission-daemon stop
Nous créons l’espace de stockage et l’attribuons à debian-transmission
utilisateur réservé à l’utilisation de transmission.
# mkdir -p /home/torrent/incomplete # chown -R debian-transmission: /home/torrent
Modification du fichier de configuration
Par mesure de sécurité, nous faisons une copie du fichier dans son état d’origine afin de pourvoir revenir dessus en cas de mauvaise manipulation.
# cp /etc/transmission-daemon/settings.json /etc/transmission-daemon/settings.json.1
Nous modifions les variables liées à l’emplacement de stockage. Dans notre cas, les fichiers en cours de téléchargement seront dans /home/torrent/incomplete
. Une fois téléchargé, ils seront déplacé automatiquement dans /home/torrent
.
"download-dir": "/home/torrent", "incomplete-dir": "/home/torrent/incomplete", "incomplete-dir-enabled": true,
Nous nous occupons aussi de l’authentification sur l’interface web.
"rpc-authentication-required": true, "rpc-bind-address": "127.0.0.1", "rpc-enabled": true, "rpc-password": "Mon mot de passe", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "monnom", "rpc-whitelist": "127.0.0.1", "rpc-whitelist-enabled": true,
Nous demandons au serveur d’écouter seulement sur le localhost
car nous intégrerons un reverse proxy Apache qui nous permettra de spécifier un nom d’host pour transmission, par exemple torrent.domaine.fr
, au lieu d’avoir à spécifier un port. Cela permet aussi de n’avoir qu’un seul et unique port ouvert vers l’extérieur.
Mise en place du reverse proxy Apache
La mise en place du reverse proxy est déjà décrite dans l’article un reverse proxy Apache avec mod_proxy. Je ne détaillerais donc pas sa mise en place complète. Cependant vous trouverez le contenu du virtualHost pour notre configuration actuelle ci-dessous.
<VirtualHost *:80> ServerName torrent.domaine.fr ProxyPass / http://127.0.0.1:9091/ ProxyPassReverse / http://127.0.0.1:9091/ </VirtualHost>
Voila vous avez maintenant un daemon transmission accessible depuis http://torrent.domaine.fr auquel il ne vous reste plus qu’à ajouter vos torrents. De plus vous pouvez maintenant contribuer à l’effort collectif de distribution des systèmes Linux et nous vous en remercions d’avance.
Principale source d’inspiration : https://www.guillaume-leduc.fr/la-seedbox-facile-sous-debian-avec-transmission.html