Ldfa Posté(e) le 30 décembre 2019 Partager Posté(e) le 30 décembre 2019 Veuillez rapporter les bugs dans ce topic merci. TODOLIST : CHANGELOG : systemctl & apt le 25/07/19 rTorrent 0.9.8 le 21/07/19 Debian 10 le 15/07/19 Fonctionne pour Debian 10.x version 64bits. Afin de vous assurez que vous êtes sous Debian 10, voici les étapes à suivre: Tout d'abord, assurez-vous de la présence du fichier debian_version dans /etc/debian_version, s'il n'y est pas, vous n'êtes pas sous Debian. Si vous avez ce fichier, faites cat /etc/debian_version. Si vous voyez affichez quelque chose comme 10.x ou plus, vous êtes éligibles à ce tutoriel. Ce tuto est basé sur le serveur web nginx, plus léger que son confrère apache2. Il vous expliquera également comment bien protéger son interface ruTorrent avec une authentification. Étant optimisé pour les novices, il vous suffira de copier/coller les commandes. Il est cependant recommander de prêter suffisamment d'attention, voire de se renseigner sur le fondement de ces commandes, pour vous permettre de gagner en autonomie en cas de problème futur ou pour le cas où vous souhaiteriez intervenir vous-même ultérieurement sur votre serveur. Un générateur de mot de passe en ligne : Générateur N’essayez pas d’accéder à ruTorrent avant d’arriver à la conclusion, ça ne marchera pas si tout n’est pas correctement fait. Pour se connecter à un serveur dédié distant, le protocole SSH est le plus souvent utilisé. Les logiciels compatibles sont nombreux, mais le plus utilisé reste PuTTy avec sa variante portable : KiTTy. Télécharger KITTY 2 choses importantes à savoir avec les terminaux SSH : Les mots de passe n’apparaissent pas à l’écran quand on les tape (pas de * non plus) Pas de CTRL+C/CTRL+V pour copier/coller, pour copier : on fait une sélection et cette dernière est automatiquement copier; pour coller : bouton droit. Simple comme bonjour non ? Maintenant, connectons-nous: Host Name (or IP adress) : Adresse IP du serveur Port : On laisse à 22 et Connexion type SSH (Port 22 : port par défaut pour le protocole SSH) Pour ne pas avoir à retaper ces informations, on peut enregistrer notre session. Pour cela, on clique sur ‘Saved Sessions’, puis on tape le nom de la session (ex: "Ma Seedbox") et on clique sur Save.Bien mettre le format de caractère en UTF-8 pour ne pas avoir des soucis de copier/coller Il ne nous reste plus qu’à cliquer sur Open pour ouvrir la session. Et voilà, vous êtes loggés dans votre serveur via SSH. Sous mac et linux Ouvrir un terminal puis lancer cette commande : ssh root@XX.XX.XX.XX -p 22 On commence par mettre à jour le serveur apt update && apt upgrade -y On ajoute les dépôts : apt install -y apt-transport-https gnupg2 echo "#Depot sury-php deb https://packages.sury.org/php/ buster main" >> /etc/apt/sources.list.d/sury-php.list echo "#Depot paquets proprietaires deb http://ftp2.fr.debian.org/debian/ buster main non-free deb-src http://ftp2.fr.debian.org/debian/ buster main non-free" >> /etc/apt/sources.list.d/non-free.list echo "#Depot multimedia deb http://www.deb-multimedia.org buster main non-free" >> /etc/apt/sources.list.d/multimedia.list echo "#Depot nginx deb http://nginx.org/packages/debian/ buster nginx deb-src http://nginx.org/packages/debian/ buster nginx" >> /etc/apt/sources.list.d/nginx.list echo "#Depot mediainfo deb http://mediaarea.net/repo/deb/debian/ buster main" >> /etc/apt/sources.list.d/mediainfo.list Ajout de la clé du deb-multimedia, nginx et mediainfo cd /tmp wget https://packages.sury.org/php/apt.gpg -O sury.gpg && apt-key add sury.gpg wget http://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key wget http://mediaarea.net/repo/deb/debian/pubkey.gpg -O mediainfo.gpg && apt-key add mediainfo.gpg apt update -oAcquire::AllowInsecureRepositories=true apt install -y --allow-unauthenticated deb-multimedia-keyring Puis on remet à jour le système : apt update Installation des paquets nécessaires apt install -y \ apache2-utils \ automake \ htop \ build-essential \ curl \ ffmpeg \ gawk \ git \ libcppunit-dev \ libcurl4-openssl-dev \ libncurses5-dev \ libsigc++-2.0-dev \ libsox-fmt-all \ libsox-fmt-mp3 \ libssl-dev \ libtool \ mediainfo \ mktorrent \ net-tools \ nginx \ php7.3 \ php7.3-cli \ php7.3-common \ php7.3-curl \ php7.3-fpm \ php7.3-json \ php7.3-mbstring \ php7.3-opcache \ php7.3-readline \ php7.3-xml \ php-geoip \ pkg-config \ psmisc \ python-pip \ rar \ screen \ subversion \ unrar \ unzip \ sox \ vim \ zip \ zlib1g-dev Installation de xmlrpc (note : xmlrpc sera utilisé afin de commander rTorrent via sa WebUI, ruTorrent) cd /tmp git clone https://github.com/mirror/xmlrpc-c.git cd xmlrpc-c/stable/ ./configure make make install Installation de libTorrent 0.13.8 Avant d’installer libTorrent/rTorrent, vérifiez le numéro de la dernière version stable ici. cd /tmp git clone https://github.com/rakshasa/libtorrent.git cd libtorrent git checkout v0.13.8 ./autogen.sh ./configure --disable-debug make make install Installation de rTorrent 0.9.8 cd /tmp git clone https://github.com/rakshasa/rtorrent.git cd rtorrent git checkout v0.9.8 ./autogen.sh ./configure --with-xmlrpc-c --with-ncurses --disable-debug make make install Actualisation des liens symboliques pour rTorrent : ldconfig Installation de ruTorrent mkdir /var/www cd /var/www git clone https://github.com/Novik/ruTorrent.git rutorrent Installation cloudscraper pour plugin _cloudflare pip install cloudscraper Installation du plugin ruTorrent ratiocolor cd /var/www/rutorrent/plugins/ git clone https://github.com/Micdu70/rutorrent-ratiocolor.git ratiocolor Installation du plugin ruTorrent Logoff cd /var/www/rutorrent/plugins/ wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/rutorrent-logoff/logoff-1.3.tar.gz tar xzfv logoff-1.3.tar.gz rm logoff-1.3.tar.gz Installation du plugin GeoIP2 cd /var/www/rutorrent/plugins/ rm -R geoip git clone https://github.com/Micdu70/geoip2-rutorrent.git geoip2 cd /tmp wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz tar xzfv GeoLite2-City.tar.gz cd /tmp/GeoLite2-City_* mv GeoLite2-City.mmdb /var/www/rutorrent/plugins/geoip2/database/GeoLite2-City.mmdb Installation du plugin ruTorrent pausewebui cd /var/www/rutorrent/plugins/ wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/rutorrent-pausewebui/pausewebui.1.2.zip unzip pausewebui.1.2.zip rm -R __MACOSX pausewebui.1.2.zip Installation du plugin ruTorrent filemanager (gestionnaire de fichiers en ligne) cd /tmp git clone https://github.com/Micdu70/rutorrent-thirdparty-plugins.git cd rutorrent-thirdparty-plugins mv filemanager /var/www/rutorrent/plugins/filemanager Changement de propriétaire des fichiers web chown -R www-data:www-data /var/www/rutorrent Configuration du plugin create nano /var/www/rutorrent/plugins/create/conf.php et replacer les valeurs ci-dessous : $useExternal = 'mktorrent'; $pathToCreatetorrent = '/usr/bin/mktorrent'; Configuration du plugin filemanager nano /var/www/rutorrent/plugins/filemanager/conf.php et remplacer : $pathToExternals['rar'] = ''; $pathToExternals['zip'] = ''; $pathToExternals['unzip'] = ''; $pathToExternals['tar'] = ''; $pathToExternals['gzip'] = ''; $pathToExternals['bzip2'] = ''; par : $pathToExternals['rar'] = '/usr/bin/rar'; $pathToExternals['zip'] = '/usr/bin/zip'; $pathToExternals['unzip'] = '/usr/bin/unzip'; $pathToExternals['tar'] = '/usr/bin/tar'; $pathToExternals['gzip'] = '/usr/bin/gzip'; $pathToExternals['bzip2'] = '/usr/bin/bzip2'; Configuration de php 7.3 modification du php.ini ( correction de la date, et suppression de X-Powered-By dans l'entête http) nano /etc/php/7.3/fpm/php.ini Trouver les lignes suivante et remplacer par ces valeurs upload_max_filesize = 8M date.timezone = Europe/Paris et on redémarre php-fpm systemctl restart php7.3-fpm Configuration du serveur web nginx mkdir /etc/nginx/passwd mkdir /etc/nginx/ssl touch /etc/nginx/passwd/rutorrent_passwd Modification du fichier nginx.conf rm /etc/nginx/nginx.conf nano /etc/nginx/nginx.conf et copier/coller le nouveau fichier de configuration user www-data; worker_processes auto; pid /var/run/nginx.pid; events { worker_connections 1024; use epoll; # gestionnaire d'évènements epoll (kernel 2.6+) } http { include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log combined; error_log /var/log/nginx/error.log error; sendfile on; keepalive_timeout 15; keepalive_disable msie6; keepalive_requests 100; tcp_nopush on; tcp_nodelay off; server_tokens off; gzip on; gzip_comp_level 5; gzip_min_length 512; gzip_buffers 4 8k; gzip_proxied any; gzip_vary on; gzip_disable "msie6"; gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/x-javascript application/json application/xml application/rss+xml application/vnd.ms-fontobject font/truetype font/opentype image/svg+xml; include /etc/nginx/sites-enabled/*.conf; } Configuration du vhost ruTorrent Création du vhost pour ruTorrent dans le fichier seedbox.conf mkdir /etc/nginx/sites-enabled nano /etc/nginx/sites-enabled/seedbox.conf server { listen 80 default_server; server_name _; charset utf-8; index index.html index.php; client_max_body_size 10M; access_log /var/log/nginx/rutorrent-access.log combined; error_log /var/log/nginx/rutorrent-error.log error; error_page 500 502 503 504 /50x.html; auth_basic "seedbox"; auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd"; root /var/www; location = /50x.html { root /usr/share/nginx/html; } location = /favicon.ico { access_log off; log_not_found off; } location /rutorrent { try_files $uri $uri/ /index.html; } location ~ ^/rutorrent/(conf|share)/(.+)$ { deny all; } location ~ \.php$ { fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/run/php/php7.3-fpm.sock; } location ~* \.(jpg|jpeg|gif|css|png|js|map|woff|woff2|ttf|svg|eot)$ { expires 30d; access_log off; } } on redémarre nginx systemctl restart nginx Configuration de SSH Editer le fichier de config ssh : nano /etc/ssh/sshd_config commenter les lignes suivantes (placer un # devant comme ceci) : #UsePAM yes #Subsystem sftp /usr/lib/openssh/sftp-server Puis ajouter en dessous : Subsystem sftp internal-sftp Pour uniformiser votre installation, on va convenir d’un format d’écrire des utilisateurs : 1 – Le nom d’utilisateur => <username>2 - Le nom d’utilisateur en majuscule => <USERNAME> Par exemple, pour l’utilisateur magicalex : <username> = magicalex et <USERNAME> = MAGICALEX !!! ATTENTION !!! Pour être valide, le nom d’utilisateur doit être entièrement en minuscules et sans caractères accentués On créé quelques répertoires pour votre utilisateur : mkdir --parents /home/<username>/{torrents,watch,.session} On créé l’utilisateur de rTorrent : useradd --shell /bin/bash --home /home/<username> <username> passwd <username> On bloque l’utilisateur dans son home en SFTP : nano /etc/ssh/sshd_config Et coller vers la fin : Match user <username>,<username2>,<username3> # etc... note : pas d'espace entre les virgules ChrootDirectory %h On redémarre le serveur SSH pour valider les modifications : systemctl restart ssh A noter que cette manipulation aura pour effet de bloquer l’accès au SSH à cet utilisateur. Il convient donc d’ignorer ce paragraphe si ce dernier remplace l'utilisateur root pour la connexion SSH. On créé le fichier de configuration de rTorrent : nano /home/<username>/.rtorrent.rc Copier/coller ceci : network.scgi.open_port = 127.0.0.1:500x encoding.add = UTF-8 network.port_range.set = 45000-65000 network.port_random.set = no pieces.hash.on_completion.set = no directory.default.set = /home/<username>/torrents session.path.set = /home/<username>/.session protocol.encryption.set = allow_incoming, try_outgoing, enable_retry schedule2 = watch_directory,1,1,load.start=/home/<username>/watch/*.torrent schedule2 = untied_directory,5,5,stop_untied=/home/<username>/watch/*.torrent schedule2 = espace_disque_insuffisant,1,30,close_low_diskspace=500M trackers.use_udp.set = yes dht.mode.set = off protocol.pex.set = no throttle.min_peers.normal.set = 40 throttle.max_peers.normal.set = 100 throttle.min_peers.seed.set = 10 throttle.max_peers.seed.set = 50 throttle.max_uploads.set = 15 execute2 = {sh,-c,/usr/bin/php /var/www/rutorrent/php/initplugins.php <username> &} Attention !!! remplacez 500x par 5001 ou 5002 mais chaque utilisateur doit avoir un port différent Exemple de commande pour remplacer par le port 5001 sed -i 's/127.0.0.1:500x/127.0.0.1:5001/g' /home/<username>/.rtorrent.rc Exemple de commande pour remplacer <username> par le pseudo magicalex sed -i 's/<username>/magicalex/g' /home/<username>/.rtorrent.rc Rendez-vous sur le site de l'auteur pour personnaliser votre .rtorrent.rc On applique les bonnes permissions : chown --recursive <username>:<username> /home/<username> chown root:root /home/<username> chmod 755 /home/<username> On configure le serveur web : nano /etc/nginx/sites-enabled/seedbox.conf et ajouter entre ceci : 1 <username> 1 <USERNAME> à remplacer et indiquer le bon port 500x location = /<USERNAME> { include scgi_params; scgi_pass 127.0.0.1:500x; auth_basic "seedbox"; auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd_<username>"; } faire cette étape pour chaque utilisateur On spécifie le mot de passe pour le serveur web et on indique le mot de passe pour cette utilisateur :note : l'option -B utilise bcrypt pour chiffrer les mots de passe.1 <username> à remplacer htpasswd -s /etc/nginx/passwd/rutorrent_passwd <username> Vous devez taper deux fois de suite le mot de passe pour le vérifier, ensuite :2 <username> à remplacer sed --regexp-extended --quiet '/<username>:/p' /etc/nginx/passwd/rutorrent_passwd > /etc/nginx/passwd/rutorrent_passwd_<username> On applique les bonnes permissions aux fichiers mots de passe : chmod 640 /etc/nginx/passwd/* chown --changes www-data:www-data /etc/nginx/passwd/* Redémarrer le serveur web à chaque modification de ce fichier : systemctl restart nginx On créé le répertoire de configuration de ruTorrent : 1 <username> à remplacer mkdir /var/www/rutorrent/conf/users/<username> On édite le fichier de configuration : 1 <username> à remplacer nano /var/www/rutorrent/conf/users/<username>/config.php On colle les valeurs : 1 <username> 1 <USERNAME> à remplacer et indiquer le bon port 500x <?php $pathToExternals = array( "curl" => '/usr/bin/curl', "stat" => '/usr/bin/stat', "php" => '/usr/bin/php7.3', "pgrep" => '/usr/bin/pgrep', "python" => '/usr/bin/python2.7' ); $topDirectory = '/home/<username>'; $scgi_port = 500x; $scgi_host = '127.0.0.1'; $XMLRPCMountPoint = '/<USERNAME>'; Désactivation de certain plugin inutile : nano /var/www/rutorrent/conf/users/<username>/plugins.ini Copier/coller ceci : [default] enabled = user-defined canChangeToolbar = yes canChangeMenu = yes canChangeOptions = yes canChangeTabs = yes canChangeColumns = yes canChangeStatusBar = yes canChangeCategory = yes canBeShutdowned = yes [ipad] enabled = no [httprpc] enabled = no [retrackers] enabled = no [rpc] enabled = no [rutracker_check] enabled = no [geoip] enabled = no Vous pouvez désactiver les plugins de votre choix, il y a aussi le fichier acccess.ini qui permet de désactiver certaine option de ruTorrent Création d’un script de démarrage de rTorrent : 2 <username> à remplacer cd /etc/init.d/ wget --output-document=<username>-rtorrent https://gist.githubusercontent.com/Magicalex/8850ac8539d89af2f21f/raw/923ee22f9300bd3a186704b17e3b88a7583756d9/gistfile1.sh chmod +x <username>-rtorrent 2 <username> à remplacer nano /etc/init.d/<username>-rtorrent Vous pouvez proposer vos améliorations ici. Le script est très très light. On rend le script exécutable : 1 <username> à remplacer chmod +x /etc/init.d/<username>-rtorrent On fait en sorte que le script s'exécute au démarrage du serveur.A chaque redémarrage rtorrent sera exécuté automatiquement.1 <username> à remplacer update-rc.d <username>-rtorrent defaults Reboot du serveur obligatoire à ce niveau avant de pouvoir vous connecter sur la box systemctl reboot Vous devriez pouvoir maintenant vous connecter à ruTorrent. ruTorrent WebuiURL : XXX.XXX.XXX.XXX/rutorrent SFTPIP : XXX.XXX.XXX.XXXPort : 22 Détails des dossiers : /watch = Dossier scanné régulièrement par rTorrent afin d'ajouter des torrents sans devoir se connecter via ruTorrent. /torrents = Dossier contenant nos torrents. /.session = Dossier enregistrant les sessions rTorrent. Pour redémarrer rTorrent : systemctl restart <username>-rtorrent Pour mettre à jour ruTorrent via le dépôt github : Attention des conflits peuvent apparaître cd /var/www/rutorrent/ git pull origin master Pour mettre à jour les paquets (à faire de temps en temps) apt update apt upgrade Sources : Tutoriel inspiré par ceux de Nicobubulle & Magicalex, complété par différentes informations des documentations officielles. Exécuter juste: cd /tmp git clone https://github.com/exrat/Script-Debug-MonDedie cd Script-Debug-MonDedie chmod a+x Script-Debug-Mondedie.sh && ./Script-Debug-Mondedie.sh Coller juste le lien que le script vous fournira, en détaillant le plus possible vos problèmes. Afficher l’article complet Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.