Rechercher dans ce blog

Serveur qBittorrent

Note : Un utilisateur de qBittorrent (Jesper Smith) a crée un script d’initialisation et de chargement au démarrage du serveur. disponible ici :
lien principal : http://launchpadlibrarian.net/38905385/qbittorrent
mirroir : https://pastebin.com/nvMZiAxQ
mirroir 2 : https://qbforums.shiki.hu/index.php/topic,3483.0.html

 Je conseille néanmoins "une installation à la main", afin d' en comprendre le mécanisme et dépanner plus facilement si un problème survient un jour.


 **INSTALLATION**


apt update && apt install qbittorrent-nox qttranslations5-l10n


**CREATION DU SERVICE**


on crée un fichier qui lancera qbitorrent au démarrage du système et on lui dit quel utilisateur lance le service.

nano /etc/systemd/system/qbittorrent.service

On y place (Changer la ligne User=mimi par votre compte utilisateur ou un autre crée pour qbittorrent):
[Unit]
Description=qBittorrent Daemon Service
After=network.target

[Service]
User=mimi
ExecStart=/usr/bin/qbittorrent-nox
ExecStop=/usr/bin/killall -w qbittorrent-nox

[Install]
WantedBy=multi-user.target

On l'active au démarrage

systemctl enable qbittorrent


**INITIALISATION ET SECURITE**


On se connecte à l'utlisateur qui lancera qBittorrent
su mimi

Puis on démarre qbittorrent pour accepter l’information légal
qbittorrent-nox

*** Information légale ***
qBittorrent est un logiciel de partage de fichiers. Lors de l'ajout d'un torrent, les données que vous téléchargez sont mises à disposition des autres utilisateurs. Vous êtes responsable du contenu que vous partagez.

Ce message d'avertissement ne sera plus affiché.

Appuyez sur la touche 'y' pour accepter et continuer…

Appuis sur y puis entrée pour confirmer


******** Information ********
Pour contrôler qBittorrent, accédez à l'interface web via http://localhost:8080
Le nom d'utilisateur de l'administrateur de l'interface web est : admin
Le mot de passe de l'administrateur de l'interface web est toujours celui par défaut : adminadmin
Ceci peut être dangereux, veuillez penser à changer votre mot de passe dans les options.


On se connecte à http://adressedevotreserveur:8080 via un navigateur internet

les logs par défaut sont mentionnés dans le message d'information d'avant

login : admin
mdp : adminadmin

On va aller directement dans les options, onglet WebUI pour changer et sécuriser tout ça

Normalement la langue est déjà sur Français sinon choisissez le.

changer le port : 28800
changer username : momo
changer password : Gnou@98BaBaC
J'ai mis n'importe quoi pour l'exemple.

SI vous avez créé des règles iptables manuellement ou paramétré un parefeu sur votre serveur, alors on décoche la case Use UPNP/NAT-PMP. Sinon (ou si vous ne voyez pas de quoi je parle) laissez le cocher.
Une fois cliquez sur sauvegarder, la page devient introuvable si on a changer le port, sinon il faut se loguer avec les changements effectués.

On repasse root sur le terminal
su

Pour ceux qui ont sécurisé un peu leur serveur avec IPTABLES (ou suivi mon installation de serveur), il faut ajouter ces nouvelles règles dans vos réglages.
Nous allons éditer notre fichier de configuration d'IPTABLES.
nano /etc/init.d/firewall

et on ajoute à la fin (à modifier en fonction du choix de port et de l'utilisateur)
#qBittorrent
iptables -t filter -A INPUT -p tcp --dport 57200 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 57200 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 40009 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 40009 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 40009 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 40009 -j ACCEPT
#Si utilisation de tracker public pour qBittorrent décommenter la ligne en dessous
#iptables -t filter -A OUTPUT -m owner --gid-owner stylou -j ACCEPT

On va voir si cela fonctionne en redémarrant le serveur (-r +1 pour redémarrer dans une minute, voir man shutdown)

shutdown -r +1


puis

exit
exit

pour se déconnecter du serveur. On attend patiemment puis on se reconnecte et on regarde le retour de

systemctl status qbittorrent


qui devrait afficher quelque chose comme ça

● qbittorrent.service - qBittorrent Daemon Service
   Loaded: loaded (/etc/systemd/system/qbittorrent.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-03-10 09:44:34 CET; 25s ago
 Main PID: 630 (qbittorrent-nox)
    Tasks: 10 (limit: 4915)
   CGroup: /system.slice/qbittorrent.service
           └─630 /usr/bin/qbittorrent-nox

mars 10 09:44:34 Totor systemd[1]: Started qBittorrent Daemon Service.
mars 10 09:44:37 Totor qbittorrent-nox[630]: ******** Information ********
mars 10 09:44:37 Totor qbittorrent-nox[630]: Pour contrôler qBittorrent, accédez à l'interface web via ht
mars 10 09:44:37 Totor qbittorrent-nox[630]: Le nom d'utilisateur de l'administrateur de l'interface web
lines 1-12/12 (END)

Tout est ok. Le daemon se lancera bien au démarrage du serveur. On tape CTRL+C pour quitter la vision.



**UTILISATION ET REGLAGE**
A suivre...

SEEDBOX : Règles IPTABLES

 Afin d'ouvrir les ports du pare feu du serveur, il faut éditer les règles que nous avions définis.

 On ouvre notre fichier
nano /etc/init.d/firewall

 Nous ajoutons à la suite (Décommenter # et changer les ports selon utilisation):

#Transmission
#iptables -t filter -A INPUT -p tcp --dport 3500 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 3500 -j ACCEPT
#iptables -t filter -A INPUT -p tcp --dport 35000 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 35000 -j ACCEPT
#iptables -t filter -A INPUT -p udp --dport 35000 -j ACCEPT
#iptables -t filter -A OUTPUT -p udp --dport 35000 -j ACCEPT
#Si tracker public pour transmission
#iptables -t filter -A OUTPUT -m owner --gid-owner debian-transmission -j ACCEPT

#qBittorrent
#iptables -t filter -A INPUT -p tcp --dport 8080 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 8080 -j ACCEPT
#iptables -t filter -A INPUT -p tcp --dport 36000 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 36000 -j ACCEPT
#iptables -t filter -A INPUT -p udp --dport 36000 -j ACCEPT
#iptables -t filter -A OUTPUT -p udp --dport 36000 -j ACCEPT
#Si tracker public pour qBittorrent
#iptables -t filter -A OUTPUT -m owner --gid-owner USER -j ACCEPT

#ruTorrent
#iptables -t filter -A INPUT -p tcp --dport 3700 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 3700 -j ACCEPT
#iptables -t filter -A INPUT -p tcp --dport 37000 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 37000 -j ACCEPT
#iptables -t filter -A INPUT -p udp --dport 37000 -j ACCEPT
#iptables -t filter -A OUTPUT -p udp --dport 37000 -j ACCEPT

#Deluge
#iptables -t filter -A INPUT -p tcp --dport 3800 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 3800 -j ACCEPT
#iptables -t filter -A INPUT -p tcp --dport 38000 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 38000 -j ACCEPT
#iptables -t filter -A INPUT -p udp --dport 38000 -j ACCEPT
#iptables -t filter -A OUTPUT -p udp --dport 38000 -j ACCEPT
#Si tracker public pour Deluge
#iptables -t filter -A OUTPUT -m owner --gid-owner USER -j ACCEPT

#PLEX
#iptables -t filter -A INPUT -p tcp --dport 32400 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 32400 -j ACCEPT

#Pour Downloadville.net et HDF.world (torrent)
#iptables -t filter -A INPUT -p tcp --dport 2710 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 2710 -j ACCEPT

#Pour YggTorrent (torrent)
#iptables -t filter -A INPUT -p tcp --dport 8080 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 8080 -j ACCEPT

#POUR TMG (Trident Media Guard ou MEDIAGUARD ou MEDIAGUARD)
#iptables -A INPUT -s 195.5.216.0/30 -j DROP
#iptables -A OUTPUT -d 195.5.216.0/30 -j DROP
#iptables -A INPUT -s 194.79.142.64/30 -j DROP
#iptables -A OUTPUT -d 194.79.142.64/30 -j DROP
#iptables -A INPUT -s 213.215.34.160/29 -j DROP
#iptables -A OUTPUT -d 213.215.34.160/29 -j DROP
#iptables -A INPUT -s 213.215.33.248/30 -j DROP
#iptables -A OUTPUT -d 213.215.33.248/30 -j DROP
#iptables -A INPUT -s 193.107.240.0/22 -j DROP
#iptables -A OUTPUT -d 193.107.240.0/22 -j DROP
#iptables -A INPUT -s 193.105.197.0/24 -j DROP
#iptables -A OUTPUT -d 193.105.197.0/24 -j DROP
#iptables -A INPUT -s 195.191.244.0/23 -j DROP
#iptables -A OUTPUT -d 195.191.244.0/23 -j DROP
#iptables -A INPUT -s 82.138.70.128/26 -j DROP
#iptables -A OUTPUT -d 82.138.70.128/26 -j DROP
#iptables -A INPUT -s 82.138.74.0/25 -j DROP
#iptables -A OUTPUT -d 82.138.74.0/25 -j DROP

#HADOPI
#iptables -A INPUT -s 90.80.100.192/28 -j DROP
#iptables -A OUTPUT -d 90.80.100.192/28 -j DROP
#iptables -A INPUT -s 5.23.42.12/30 -j DROP
#iptables -A OUTPUT -d 5.23.42.12/30 -j DROP
#iptables -A INPUT -s 195.5.217.72/29 -j DROP
#iptables -A OUTPUT -d 195.5.217.72/29 -j DROP


 On recharge notre fichier pour que les règles prennent effet.

/etc/init.d/firewall




**NOTE**

Pour les IP TMG et HADOPI
chercher IP ici : https://apps.db.ripe.net/db-web-ui/#/fulltextsearch
calculer le masque ici : http://www.hobbesworld.com/reseaux/calcip.php#rech

Il faut configurer iptables en sortie autorisée par rapport au processus (transmission-daemon ou qbittorent) pour avoir une ouverture des ports dynamiques.
Il faut premièrement récupérer l’id (Colonne USER) du processus avec la commande
lsof -ni

Puis rajouter aux regles IPTABLES

iptables -t filter -A OUTPUT -m owner --gid-owner debian-transmission -j ACCEPT
ou
iptables -t filter -A OUTPUT -m owner --gid-owner user -j ACCEPT

A adapter selon l'id obtenu (l'utilisateur qui a lancer la seedbox généralement)

** FIN NOTE **

IPTABLES : création fichier avec règles de base

Création d'un fichier avec les regles IPTABLES (firewall) sur un serveur Debian (valable aussi pour Ubuntu)



POUR RAPPEL :

    -t : vaudra par défaut « filter »

    -A : servira à indiquer le sens du trafic : INPUT (entrant) ou OUTPUT (sortant)

    -p : indique le protocole (TCP ou UDP en principe)

    --dport et --sport : respectivement port destination et port source (sur un serveur, nous utilisons principalement dport)

    -j : comment traiter le paquet avec ACCEPT (pour accepter) et DROP (pour refuser) le paquet


Création du fichier :

/etc/init.d/firewall



On insère toutes ces règles (Attention à changer le port SSH par le votre !!! 22 étant celui par défaut):


#!/bin/sh

# Vide les tables actuelles
iptables -t filter -F

# Vide les règles actuelles
iptables -t filter -X

# Bloque tout le trafic
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

# Autorise les connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Autorise "localhost" (loopback)
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

# Autorise ICMP (Ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT

# NTP (horloge du serveur)
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT

# SSH
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT

# HTTP
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT

# HTTPS
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT

# FTP
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT

# Mail SMTP
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT

# Mail POP3
iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT

# Mail POP3S
iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT

# Mail IMAP
iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT

# DNS
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT



Rendre le fichier exécutable

chmod +x /etc/init.d/firewall

Démarrage des règles (ou redémarre)

/etc/init.d/firewall

Ajout aux scripts appelés au démarrage

update-rc.d firewall defaults




Note : Si un jour on veut retirer ces règles du démarrage

update-rc.d -f firewall remove