Installer sa seedbox

Installer sa seedbox d’accord, mais c’est quoi une seedbox ?

Une seedbox qu’est-ce que c’est ?

Attention, je ne partage pas cette solution pour cautionner vos futurs téléchargements illégaux.

Avant tout, une petite mise au point, je ne veux pas partir sur le débat concernant Hadopi, chacun à le droit d’avoir son opinion sur la chose. Par conséquent, vous devez être tout à fait au courant et bien conscient que le piratage des œuvres audiovisuelles c’est mal. En d’autres termes je ne saurais être responsable de vos agissements concernant ce système de téléchargement.

Une Seedbox est un serveur informatique privé qui est dédié au stockage, au téléchargement et à l’envoi de fichiers numériques.

Généralement, une Seedbox utilise le protocole BitTorrent pour envoyer et recevoir les données. Les Seedbox connectées à des réseaux à très haut débit et sont normalement capables de télécharger de très gros fichiers en quelques minutes.

Installer sa seedbox – On commence par le choix du serveur

En premier lieu, pour installer notre seedbox il nous faut un serveur. Suivant l’utilisation que nous voulons faire de cette seedbox le serveur peut prendre plusieurs formes.

  • Premièrement un serveur de récupération installé chez soi.
  • Deuxièmement un serveur dédié chez un hébergeur externe.
  • Troisièmement un hébergement mutualisé chez un hébergeur externe aussi.
  • Finalement un serveur VPS toujours chez un hébergeur externe.

Le premier besoin d’une seedbox, c’est d’avoir une bande passante la plus large possible, afin de pouvoir télécharger le plus rapidement possible les fichiers. Donc on va oublier le premièrement.

Il ne faudrait pas non plus que cette solution nous coûte les yeux de la tête, et puis on a pas besoin d’une machine de guerre pleine de RAM avec un processeur de folie et gavée de Tera octets. Donc on va oublier aussi le deuxièmement.

Le troisièmement je ne vais pas le retenir non plus. La raison est très simple, depuis le début je cherche une bande passante maximale, ce n’est pas pour la partager avec les autres sur un serveur mutualisé, aussi puissant soit il.

Il ne reste donc plus que le quatrièmement, le serveur VPS. Si vous cherchez un peu, vous trouverez des serveurs VPS aux environs de 5 Euros par mois. J’ai choisis un VPS SSD1 de chez OVH (la publicité est totalement gratuite), il coûte 2€99 HT par mois.

Bien sûr ce n’est pas un avion de chasse il n’a qu’un seul core avec 2 Go de Ram et le disque dur ne fait que 20 Go, mais c’est du SSD et si cela ne suffit pas à mon utilisation je peux toujours ajouter un disque dur supplémentaire. Par contre la bande passante est de 100 Mbps avec le trafic illimité. Et la cherry sur le cake, il peut être hébergé dans plusieurs pays d’Europe ou d’Amérique du Nord. Voila donc le produit que je vais utiliser pour Installer sa seedbox.

Installer sa seedbox – On continue avec les softs

Lorsque vous louez un VPS chez un hébergeur, on vous demande en général quel est le système d’exploitation que vous désirez parmi un grand nombre disponible. J’utilise Debian dans sa dernière version stable.
Pourquoi ? —–> Parce que je le connais et que les habitudes sont difficile à changer à mon age avancé.

Création d’un nouvel utilisateur et de son répertoire home

root@vpsXXXXX:~#adduser --disabled-login --disabled-password --home /opt/rtorrent --system rtorrent
root@vpsXXXXX:~#addgroup rtorrent
root@vpsXXXXX:~#adduser rtorrent rtorrent

Mise à jour du serveur et du système

root@vpsXXXXX:~#apt update
root@vpsXXXXX:~#apt upgrade

Installation des dépendances: Apache2, PHP7 etc.

root@vpsXXXXX:~#apt -y install php php-geoip php7.0-cli php7.0-json php7.0-curl php7.0-cgi php7.0-mbstring libapache2-mod-php libapache2-mod-scgi libapache2-mod-xsendfile apache2 unrar unzip libav-tools ffmpeg mediainfo curl screen sqlite3 git net-tools sox

Installation de rtorrent.

root@vpsXXXXX:~#apt -y install rtorrent libtorrent19 libxmlrpc-core-c3 

Création des répertoires indispensables au fonctionnement de rtorrent.

root@vpsXXXXX:~#mkdir -p /opt/rtorrent/{session,watch,download}
root@vpsXXXXX:~#chmod 777 -R /opt/rtorrent/{session,watch,download}
root@vpsXXXXX:~#chown rtorrent:rtorrent -R /opt/rtorrent/{session,watch,download}

Mise en place du fichier .rtorrent.rc dans le répertoire de l’utilisateur de rTorrent.

root@vpsXXXXX:~#nano /opt/rtorrent/.rtorrent.rc
scgi_port = 127.0.0.1:5000
throttle.min_peers.normal.set = 40
throttle.max_peers.normal.set = 100
throttle.min_peers.seed.set = 10
throttle.max_peers.seed.set = 100
throttle.max_uploads.set = 15
throttle.global_down.max_rate.set_kb = 0
throttle.global_up.max_rate.set_kb = 8
directory.default.set = /opt/rtorrent/download
session.path.set = /opt/rtorrent/session
schedule2 = watch_directory,5,5,load_start=/opt/rtorrent/session/*.torrent
schedule2 = untied_directory,5,5,stop_untied=
schedule2 = low_diskspace,5,60,close_low_diskspace=2000M
network.port_range.set = 6890-6999
network.port_random.set = no
pieces.hash.on_completion.set = no
trackers.use_udp.set = yes
protocol.encryption.set = allow_incoming,enable_retry,prefer_plaintext
dht.mode.set = auto
dht.port.set = 6881
protocol.pex.set = yes

Ctrl+x puis Y ou O pour enregistrer Entrée pour finir

Installation et configuration de ruTorrent.

root@vpsXXXXX:~#git clone https://github.com/Novik/ruTorrent.git /var/www/rutorrent/
root@vpsXXXXX:~#chown -R www-data:www-data /var/www/rutorrent

Mise à jour du répertoire de téléchargement dans le fichier de config de rtorrent

root@vpsXXXXX:~#nano /var/www/rutorrent/conf/config.php
$topDirectory = '/opt/rtorrent/download';

Selon votre distribution, les programmes utilisés par rTorrent sont dans des répertoires différents. Utilisez le service « whereis » suivi du nom de l’exécutable pour connaître sa position.

root@vpsXXXXX:~#whereis gzip
$pathToExternals = array(
"php" => '/usr/bin/php', // Something like /usr/bin/php. If empty, will be found in PATH.
"curl" => '/usr/bin/curl', // Something like /usr/bin/curl. If empty, will be found in PATH.
"gzip" => 'bin/gzip', // Something like /usr/bin/gzip. If empty, will be found in PATH.
"id" => '/usr/bin/id', // Something like /usr/bin/id. If empty, will be found in PATH.
"stat" => '/usr/bin/stat', // Something like /usr/bin/stat. If empty, will be found in PATH.
);

Sécurisation de l’acces à ruTorrent

On va créer le fichier .htpasswd file.

root@vpsXXXXX:~#cd /var/www/rutorrent
root@vpsXXXXX:~#htpasswd -c /var/www/rutorrent/.htpasswd utilisateur

Il faudra donner un mot de passe deux fois. Utilisez un mot de passe fort.

Afin de créer des mots de passe les plus sécurisés, j’utilise le site: https://www.motdepasse.xyz/

Pour finir, on va éditer le fichier /var/www/rutorrent/.htaccess pour que le répertoire soit protégé par un mot de passe.

root@vpsXXXXX:~#nano /var/www/rutorrent/.htaccess
AuthUserFile /var/www/rutorrent/.htpasswd
AuthName "ruTorrent_login"
AuthType Basic
require valid-user

Configuration de l’accès a ruTorrent.

Tout d’abord on va modifier le fichier /etc/apache2/sites-available/rutorrent pour ajouter un alias en début de fichier afin de rediriger les visiteurs vers le répertoire sécurisé par un mot de passe.

root@vpsXXXXX:~#nano /etc/apache2/sites-available/rutorrent.conf
# ruTorrent
#===========================================================================
<IfModule alias_module>

Alias /rutorrent        /var/www/rutorrent/ 

        <Directory /var/www/rutorrent/>
                Options +Indexes +Includes +FollowSymLinks +MultiViews
                AllowOverride all
                Require all granted
        </Directory>

</IfModule>
#===========================================================================

En second lieu on active le site ruttorrent.conf.

root@vpsXXXXX:~#a2ensite rutorrent.conf

En dernier lieu, il reste à lancer les modules dont Apache2 aura besoin.

root@vpsXXXXX:~#a2enmod auth_digest
root@vpsXXXXX:~#a2enmod authn_file
root@vpsXXXXX:~#a2enmod xsendfile
root@vpsXXXXX:~#a2enmod scgi

Sécurisation du répertoire SCGI(/RPC2).

D’abord on va créer les répertoires pour les mots de passe dans /etc/apache2.

root@vpsXXXXX:~#mkdir -p /etc/apache2/passwords-{available,enabled}

On va passer dans le repertoire /etc/apache2/passwords-available pour créer un nouveau fichier contenant le mot de passe pour SCGI.

root@vpsXXXXX:~#cd /etc/apache2/passwords-available
root@vpsXXXXX:~#htpasswd -c rtorrentscgi utilisateur

Comme plus haut on va vous demander deux fois le mot de passe. Utilisez encore un mot de passe fort.

Maintenant il reste à activer ce mot de passe.

root@vpsXXXXX:~#ln -s /etc/apache2/passwords-available/rtorrentscgi /etc/apache2/passwords-enabled/rtorrentscgi

Ensuite on va modifier le fichier /etc/apache2/sites-available/rtorrentscgi pour ajouter la position du fichier contenant le mot de passe.

root@vpsXXXXX:~#nano /etc/apache2/sites-available/rtorrentscgi.conf
#rTorrent SCGI Password Location
#===========================================================================
        <LocationMatch "/RPC2">
                AuthType        Basic
                AuthName        "rtorrentscgi"
                AuthUserFile    /etc/apache2/passwords-enabled/rtorrentscgi
                Require         valid-user
                BrowserMatch    "MSIE"  AuthDigestEnableQueryStringHack=On
                Require ip 127.0.0.1
        </LocationMatch>
#===========================================================================

# SCGI PORT
#===========================================================================

#LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so
SCGIMount /RPC2 127.0.0.1:5000

#===========================================================================

Activation du site rtorrentscgi

root@vpsXXXXX:~#a2ensite rtorrentscgi.conf

Pour finir cette partie, on redémarre le serveur Apache2.

root@vpsXXXXX:~#systemctl restart apache2

Démarrage automatique de rTorrent avec systemd.

Pour commencer il faut créer un fichier rtorrent.service dans le répertoire system.

root@vpsXXXXX:~#nano /etc/systemd/system/rtorrent.service
[Unit]
Description=rTorrent
After=network.target

[Service]
UMask=002
Type=forking
RemainAfterExit=yes
KillMode=none
User=rtorrent
ExecStartPre=-/bin/rm -f /opt/rtorrent/session/rtorrent.lock
ExecStart=/usr/bin/screen -d -m -fa -S rtorrent /usr/bin/rtorrent
ExecStop=/usr/bin/killall -w -s 2 /usr/bin/rtorrent
WorkingDirectory=/opt/rtorrent/

[Install]
WantedBy=multi-user.target

Pour finir, il reste à activer ce service.

root@vpsXXXXX:~#systemctl enable rtorrent.service

À partir de là, rTorrent démarrera automatiquement avec le système dans un shell séparé en utilisant screen.

root@vpsXXXXX:~#systemctl start rtorrent     - Démarrage
root@vpsXXXXX:~#systemctl stop rtorrent      - Arrêt
root@vpsXXXXX:~#systemctl restart rtorrent   - Redémarrage

Il ne reste plus qu’à démarrer le service, pas besoin de redémarrer tout le systeme

root@vpsXXXXX:~#systemctl start rtorrent

En fin de compte on peut vérifier si tout s’est bien passé

root@vpsXXXXX:~#systemctl status rtorrent

Voila tout fonctionne normalement. Il ne reste plus qu’à vous connecter avec un navigateur sur l’adresse

http://IP_addresse/rutorrent

ou bien

http://nom-de-domain/rutorrent

On va vous demander votre nom d’utilisateur et le mot de passe que vous avez donné au début. Ensuite c’est à vous de voir.

Bien sûr, maintenant que les fichiers sont téléchargés sur ce serveur, il faut aller les chercher et les rapatrier sur notre pc.
Pour ça on peut utiliser un client FTP comme Firefox (c’est juste un exemple), avec lequel on se connecte sur ce serveur en FTPS.

Ou alors on va créer un tunnel VPN entre notre PC et le serveur chez OVH.

Ça va Faire l’objet d’un prochain article.