• S'enregistrer
  • Login
  • Forum   
  • Malice Fansub
    Visite guidée Projets futurs Dramas Films & SP Animes Clips + TV + Bonus Avancement La team Nous rejoindre Nous contacter
  • Sub'friends
    Byaoiline Drama Jinso Fansub Hana Miyabi Fansub Kumo no Toile Mangas-Arigatou Fansub misterdred Miyou Fansub Niwatori Subs The king Sejong
  • Médiathèque
    J-Dramas J-Films/SP Anime OST J-Dramas OST Films OST Animes
  • S'enregistrer
  • Login
  • Home
  • Members
  • Help
  • Search
Otarigato Machine à café Informatique Seedbox pas à pas debian

Messages globaux
Dernière niouze
Nouveaux messages

Derniers messages
Businessssu
Handwriting - recorded in...

Dernier : Businessssu
Il y a 4 minutes
Forum : Votre présentation
0 - 1
jonomesa
King's daughter Soo Baek ...

Dernier : jonomesa
01-05-2025, 19:57
Forum : Dramas
292 - 30,745
CatherineClaire
Kieta hatsukoi (My love m...

Dernier : CatherineClaire
01-05-2025, 05:25
Forum : Dramas
68 - 1,072
umi-chan
K-pop & K-Rock

Dernier : umi-chan
29-04-2025, 16:48
Forum : Miouzique
448 - 295,936
umi-chan
Thaï Pop, Rock, etc

Dernier : umi-chan
25-04-2025, 16:38
Forum : Miouzique
10 - 4,802
alexavignon
Fūrin kazan

Dernier : alexavignon
23-04-2025, 19:45
Forum : J-Dramas
6 - 8,967
Yami Shino
Saiki Kusuo no Ψ nan (The...

Dernier : Yami Shino
22-04-2025, 01:20
Forum : J-Films & SP
14 - 4,699
Shingo425
Jikō keisatsu hajimemashi...

Dernier : Shingo425
13-04-2025, 12:52
Forum : J-Dramas
3 - 5,187
Nyandzette
J-Pop & J-Rock

Dernier : Nyandzette
13-04-2025, 07:45
Forum : Miouzique
197 - 140,881
Kirinenko
Hello

Dernier : Kirinenko
31-03-2025, 21:39
Forum : Votre présentation
1 - 281

Utilisateurs en ligne
Applebot, Bing, Businessssu
Total : 161 (1 Membre(s) | 158 Visiteur(s))

Statistiques du Forum
Sujets du forum : 4457
Messages du forum : 33235
Membres : 1953
Dernier membre : Businessssu
Seedbox pas à pas debian
 
  • Moyenne : 0 (0 vote(s))
Description du topic
debian 10 + rtorrent + rutorrent + vpn
Kirinenko (Hors ligne)

Grumeau des Alpes
Otarie Team
Sub’friends
Arrivée : Oct 2011
Sujets : 334
Messages : 4,252
J'aime reçus : 493
#1
15-12-2020, 21:19 (Modification du message : 15-12-2020, 21:26 par Kirinenko.)
Index

message 1 : Lien direct
  • But
  • Préambule
  • Démarrage de la machine
  • Mise en place de sécurité
    • Porsentry
    • Iptables
    • Fail2ban
    • Mail
    • Mise à jour automatique

message 2 : Lien direct
  • Dépendances pour le client torrent
    • Installation apache
    • Ajout du https
    • Installation php

message 3 : Lien direct
  • Installation du client torrent et son interface
    • rtorrent
    • rutorrent

message 4 : Lien direct
  • VPN

message 5 : Lien direct
  • Accès web
  • Mode rescue ovh

But

Installer debian 10 et un client torrent avec vpn dessus.

Préambule

Voici un tutoriel pas à pas pour installer rtorrent + rutorrent sur debian 10. Dessus sera mis un vpn qui officiera seulement pour le client torrent. Le reste des connexions passera directement via le serveur.
J'espère passer à docker pour le prochain tuto de ce genre mais au moins on sait comment ça fonctionne sous le capot.

Démarrage de la machine

Bon ba on va installer une machine sous debian 10.
On prends une machine chez ovh - kimsufi : https://www.kimsufi.com/fr/.
Une fois reçu la machine on installe debian 10 via le panneau d'administration de kimsufi.
On va recevoir un mail qui nous donne un lien pour obtenir l'accès à la machine.
On se connecte en ssh depuis un terminal :
Code :
sudo ssh debian@ip.de.la.machine
Vous renseignez le mot de passe fournit par kimsufi dans l'email.
Et une fois connecté, on commence par changer ce mot de passe :
Code :
passwd

On vérifie qu'on a bien les dépôt contrib et non-free de mis :
Code :
sudo nano /etc/apt/sources.list
Il faut ajouter "contrib non-free" en fin de chaque ligne si pas présent.
Example :
deb http://deb.debian.org/debian/ buster main contrib non-free

On met à jour le système :
Code :
sudo apt update
sudo apt upgrade

Si vous avez le message :
Repository 'http://deb.debian.org/debian buster InRelease' changed its 'Version' value from '10.6' to '10.7'
Il faut faire :
Code :
sudo apt-get dist-upgrade

On installe nano au besoin :
Code :
sudo apt install nano

On change le port ssh :
Code :
sudo nano /etc/ssh/sshd_config

A la ligne Port, on décommente en enlevant le dièse en début de ligne et on spécifie le port qu'on veut utiliser :
Port 2653

On redémarre le service :
Code :
sudo /etc/init.d/ssh restart

Mise en place de sécurité

Porsentry

On installe portsentry :
Code :
sudo apt install portsentry
On répond oui avec la touche "Entrée" sur la pop-up d'un ancien temps qui nous informe de blabla.

On le configure :
Code :
sudo nano /etc/portsentry/portsentry.conf

On édite les lignes suivantes, soit en changeant une valeur, soit en décomentant en enlevant le dièse en début de ligne si présent :
BLOCK_UDP="1"
BLOCK_TCP="1"
KILL_ROUTE="/sbin/route add -host $TARGET$ reject"
KILL_ROUTE="/sbin/iptables -I INPUT -s $TARGET$ -j DROP"
On peut rechercher les termes en majuscules en faisant ctrl+w une fois dans l'éditeur nano.
Cela sert respectivement à :
  • blocage des ports UDP en cas de détection de scanne
  • blocage des ports TCP en cas de détection de scanne
  • blocage d’un scanne
  • ajout de l’IP qui scanne dans iptables (pare-feu)

On redémarre le service :
Code :
sudo /etc/init.d/portsentry restart

Iptables

On installe iptables :
Code :
sudo apt install iptables

On crée le fichier de configuration :
Code :
sudo nano "/home/${USER}/iptablesrules.sh"

Contenu à coller :
#!/bin/sh
### BEGIN INIT INFO
# Provides: iptablesrules
# Required-Start: $remote_fs $syslog $network
# Required-Stop: $remote_fs $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Base depuis IPtables Rules UpAndClear.org
### END INIT INFO

# Reinitialisation tables
iptables -t filter -F
iptables -t filter -X

# Blocage trafic entrant
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP

# Autorisation trafic sortant
iptables -t filter -P OUTPUT ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

#Activation routage
echo 1 > /proc/sys/net/ipv4/ip_forward

#Ne pas toucher au trafic entrant déjà autorisé
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Autorisation loopback
iptables -t filter -A INPUT -i lo -p all -j ACCEPT

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

#Protection syn flood
iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p udp -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT

#Protection scanne
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

#Autorisation SSH entrant
iptables -A INPUT -p tcp --dport 2653 -j ACCEPT

# Sauvegarder les regles pour qu elles soient chargees si reboot
iptables-save -c > /etc/iptables-save
Bien penser à changer le port dans la règle de "#Autorisation SSH entrant" pour celui que vous avez choisi (ici 2653).

On copie ce fichier dans "init.d"
Code :
sudo cp /home/${USER}/iptablesrules.sh /etc/init.d/iptablesrules

On rend le fichier exécutable :
Code :
sudo chmod +x /etc/init.d/iptablesrules

On le met à exécution à chaque démarrage de la machine :
Code :
sudo update-rc.d iptablesrules defaults

On peut mettre les règles en application :
Code :
sudo /etc/init.d/iptablesrules

Pour afficher les règles iptables en cours :
Code :
sudo iptables -L

On peut supprimer le premier fichier :
Code :
sudo rm -f /home/${USER}/iptablesrules.sh

Fail2ban

On installe fail2ban :
Code :
sudo apt install fail2ban

On change un ti truc :
Code :
sudo nano /etc/fail2ban/action.d/sendmail-whois-lines.conf
Et ajouter à la suite de Fail2Ban dans les sujets ce que vous voulez comme titre significatif. Utile si vous avez plusieurs machines.
Example :
actionban = ( printf %%b "Subject: [Fail2Ban-Serveur1] <name>: banned <ip> from <fq-hostname>

On dit à Fail2Ban de se lancer une fois les règles iptables en place :
Code :
sudo nano /etc/init.d/fail2ban
On change la ligne suivante :
# Required-Start: $local_fs $remote_fs $iptablesrules
On a ajouté "$iptablesrules" en fin de ligne.

On va configurer fail2ban
Source : https://doc.ubuntu-fr.org/fail2ban (archive : https://archive.is/eZgI4)

On crée donc le fichier suivant :
Code :
sudo nano /etc/fail2ban/jail.d/custom.conf

Dedans on met :
[DEFAULT]
ignoreip = 127.0.0.1
findtime = 3600
bantime = 86400
maxretry = 3
destemail = adresse@example.com
sender = mon_email@monisp.tld
action = %(action_mwl)s

[sshd]
enabled = true
port = 2653
logpath = /var/log/auth.log
maxretry = 5
  • Vous pouvez ajouter votre propre ip pour ne jamais être banni : 127.0.0.1, mon.ip.pas.banni
  • Mettez le bon port ssh (ici 2653)
  • adresse@example.com : l'adresse email qui va recevoir les notifications
  • mon_email@monisp.tld : l'adresse mail qui va transmettre les messages, on la configure juste en dessous. Il s'agit de votre boite mail chez votre fournisseur gmail ou gandi ici.
Si vous testez fail2ban en vous bannissant, changer le temps de bantime sinon vous devrez attendre 24 h (86400 s)...
/!\ Attention ! Si vous vous bannissez avec une durée de 120 s et que vous passez ensuite à 86400 s vous vous taperez le ban de 1 jour. faut faire la modif le lendemain. /!\

On peut relancer Fail2Ban :
Code :
sudo /etc/init.d/fail2ban restart

Mail
Sources : https://wiki.debian.org/nullmailer (archive : https://archive.is/j0y2I)
http://troubleshooters.com/linux/nullmailer/(archive : https://archive.vn/Ye9BM)


On installe de quoi envoyer des mails pour recevoir des alertes
Code :
sudo apt-get install nullmailer mailutils
On fait OK sur les pop-ups, on va modifier après.

Puis on fait :
Code :
sudo sh -c "echo $(hostname --fqdn) > /etc/nullmailer/defaultdomain"
sudo sh -c "echo 'adresse@example.com' > /etc/nullmailer/adminaddr"
sudo sh -c "echo 'URLsmtp.monisp.tld smtp --auth-login --port=587 --starttls --user=mon_email@monisp.tld --pass=your-password --starttls' > /etc/nullmailer/remotes"
sudo chmod 600 /etc/nullmailer/remotes
  • defaultdomain - contient le hostname de la machine
  • adminaddr - contient l'email du destinataire des mails
  • remotes - contient la configuration email de la boite mail faisant passerelle
  • on restreint les droits d'accès au fichier remotes qui contient donc nos identifiants mail
On met bien : la bon url pour le smtp de votre isp, le bon mail et le bon mot de passe associé à notre compte.
Exemple gmail :
sudo sh -c "echo 'smtp.gmail.com smtp --auth-login --port=587 --starttls --user=unmailquiestdispo@gmail.com --pass=UnMotDePasseDeLaMort666! --starttls' > /etc/nullmailer/remotes"

Pour gandi et non gmail : https://docs.gandi.net/fr/gandimail/conf...index.html
Dans ce cas, vous avez acheté un nom de domaine et associé une boite mail à ce dernier : https://www.gandi.net/fr/domain/email
Ce qui donne :
sudo sh -c "echo 'mail.gandi.net smtp --auth-login --port=587 --starttls --user=mon_email@mondomain.tld --pass=UnMotDePasseDeLaMort666! --starttls' > /etc/nullmailer/remotes"

Puis on modifie le fichier suivant et dedans on met l'isp qui transmet notre mail, dans le cas présent "gmail.com" ou "gandi.net"
Code :
sudo nano /etc/nullmailer/me

Puis on met dans un autre fichier :
Code :
sudo sh -c "echo $(hostname --fqdn) > /etc/nullmailer/defaulthost"

On relance nullmailer
Code :
sudo /etc/init.d/nullmailer restart

On teste la config de ce mail :
Code :
echo "error" | NULLMAILER_NAME="Testsytem check" mail -s "This is just a test with nullmailer" "adresse@example.com"

J'ai eu le message d'avertissement suivant dans les logs mails
On Debian systems, nullmailer's 'me' is disregarded; please use '/etc/mailname' instead.
Donc on modif :
Code :
sudo nano /etc/mailname
Dedans on met "gmail.com" ou "gandi.net".
Ou autre, comme pour le fichier "me" juste avant.

Et on backup le fichier me
Code :
sudo mv /etc/nullmailer/me /etc/nullmailer/me.back

Si soucis, pour débug vous pouvez regardez par là :
Code :
sudo tail -f /var/log/mail.log /var/log/mail.err
(ctrl+c pour en sortir)
ou :
Code :
sudo tail -n 30 /var/log/syslog

Les mails en attente sont dans /var/spool/nullmailer/queue/ pour les supprimer :
Code :
sudo rm -f /var/spool/nullmailer/queue/*
Vous aurez peut être besoin de passer en root avec la commande "su".

Mise à jour automatique

On veux pas s'emmerder à se connecter en ssh pour mettre cette machine à jour, elle doit pouvoir tourner tranquillement toute seule :)
On installe cron-apt :
Code :
sudo apt install cron-apt

On ne va mettre automatiquement que les mises à jour de sécurité. Pour cela, il faut créer un nouveau fichier list qui ne contiendra que les dépôts de sécurité.
Code :
sudo nano /etc/apt/sources.list

On copie puis on commente en mettant des dièses devant les lignes concernant les paquets de sécurité (y'a security dans l'url), exemple :
#deb http://security.debian.org/debian-security buster/updates main contrib non-free
#deb-src http://security.debian.org/debian-security buster/updates main contrib non-free

On crée un fichier pour copier ces lignes
Code :
sudo nano /etc/apt/sources.list.d/security.list

Et on colle, exemple :
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free

On configure donc maintenant cron pour qu'il installe tout seul les majs et nous envoie un recap :
Code :
sudo nano /etc/cron-apt/config
dedans on ajoute :
APTCOMMAND=/usr/bin/apt-get
OPTIONS="-o quiet=1 -o Dir::Etc::SourceList=/etc/apt/sources.list.d/security.list"
MAILTO="adresse@example.com"
MAILON="always"
(vous modifiez le mail hein °°)

On modifie ensuite un petit peu un autre fichier pour qu'il installe bien les mises à jour dispo :
Code :
sudo nano /etc/cron-apt/action.d/3-download
et dedans on enlève le "-d" pour que la seconde ligne devienne :
dist-upgrade -y -o APT::Get::Show-Upgraded=true

Ensuite on va mettre tout bien sa fréquence pour qu'il se lance lorsqu'on le désire :
Code :
sudo nano /etc/cron.d/cron-apt
et on commente la ligne d'exemple (avec un #) et on ajoute en fin de document cette nouvelle ligne :
#Mise a jour de securite
0 5 * * MON root /usr/sbin/cron-apt
La mise à jour se lancera tous les lundi à 5H du matin : https://crontab.guru/#0_5_*_*_MON

Vous pouvez faire un test en lançant la commande "sudo cron-apt" (peut prendre une ou deux minutes) et vous devriez recevoir directement le type de mail que vous aurez, du genre :
CRON-APT RUN [/etc/cron-apt/config]: Mon Sep 4 22:06:16 CEST 2017 CRON-APT ACTION: 0-update
CRON-APT LINE: /usr/bin/apt-get -o quiet=1 -o Dir::Etc::SourceList=/etc/apt/sources.list.d/security.list update -o quiet=2
CRON-APT ACTION: 3-download
CRON-APT LINE: /usr/bin/apt-get -o quiet=1 -o Dir::Etc::SourceList=/etc/apt/sources.list.d/security.list autoclean -y
Reading package lists...
Building dependency tree...
Reading state information...
Del nullmailer 1:1.13-1.2 [92.3 kB]
Del libperl5.24 5.24.1-3+deb9u1 [3524 kB]
Del perl-modules-5.24 5.24.1-3+deb9u1 [2723 kB]
Del sudo 1.8.19p1-2.1 [1055 kB]
Del perl 5.24.1-3+deb9u1 [219 kB]
Del libopts25 1:5.18.12-3 [68.0 kB]
Del ntp 1:4.2.8p10+dfsg-3 [556 kB]
Del cron-apt 0.10.0 [26.3 kB]
CRON-APT LINE: /usr/bin/apt-get -o quiet=1 -o Dir::Etc::SourceList=/etc/apt/sources.list.d/security.list dist-upgrade -y -o APT::Get::Show-Upgraded=true
Reading package lists...
Building dependency tree...
Reading state information...
Calculating upgrade...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Note : Le temps d'attente des messages peut-être assez long, 30min à 1H lorsque c'est en mode auto via cron. Alors qu'en faisant un test avec "cron-apt", je recevais le mail dans la minute. Ne prenez donc pas peur si vous recevez pas tout de suite le mail après avoir mis la tâche cron toutes les deux minutes pour voir si ça marchait bien.

Si vous avez en fin de message un truc du genre :
The following packages were automatically installed and are no longer required:
 libevent-2.1-6 libgnutls-dane0 libunbound8
Vous pouvez vous connecter en ssh à la machine et lancer la commande :
Code :
sudo apt autoremove
Cela va supprimer les paquets dont on a plus l'utilité.
Kirinenko a écrit :Je m'autoquote si je veux, d'abord.
Nyanyanyanyan . . . . . . . . . . . . . . . [Image: chat-moche-27c1d17.gif]
[Image: 4yi3an10-3858b7.gif]
Répondre

  •
 J'aime
Kirinenko (Hors ligne)

Grumeau des Alpes
Otarie Team
Sub’friends
Arrivée : Oct 2011
Sujets : 334
Messages : 4,252
J'aime reçus : 493
#2
15-12-2020, 21:21 (Modification du message : 15-12-2020, 21:30 par Kirinenko.)
Dépendances pour le client torrent

Si on veux transmission, j'ai recherché un peu, voici des liens
  • https://wiki.debian.org/Transmission
  • https://github.com/transmission-remote-gui/transgui
  • https://github.com/lupus78/feedtransmission

Mais on va mettre rtorrent avec l'interface rutorrent pour avoir des extensions et fonctionnalités rapidement dont le dl auto depuis un flux rss
  • https://github.com/rakshasa/rtorrent
  • https://rtorrent-docs.readthedocs.io/en/latest/
  • https://github.com/Novik/ruTorrent
  • https://terminal28.com/how-to-install-an...9-stretch/ (archive : https://archive.vn/J93bu)

Installation apache
Source : https://www.digitalocean.com/community/t...-debian-10 (archive : https://archive.vn/XIEkv)

On update la liste des paquets (et on maj en même temps)
Code :
sudo apt update
sudo apt upgrade

On installe apache :
Code :
sudo apt install apache2 apache2-utils

On ajoute des règles au parefeu
Code :
sudo nano /etc/init.d/iptablesrules

Et avant la dernière ligne, on ajoute :
#Autorisation apache
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT

On recharge iptables
Code :
sudo /etc/init.d/iptablesrules

On démarre le service
Code :
sudo systemctl start apache2

On peut vérifier que ça fonctionne en visitant la page avec firefox
ip.de.la.machine

Ajout du https

Si vous avez un nom de domaine : vous pouvez maintenant mettre en place un certificat pour le https en utilisant letsencrypt : https://letsencrypt.org/
Comme indiqué, vous pouvez utiliser CertBOT : https://certbot.eff.org/

Dans mon cas, n'ayant pas de nom de domaine je vais créer des certificats et il faudra accepter d'avoir une erreur de certificat pour le https car aucune autorité ne reconnaîtra ce certificat. Ce n'est pas un défaut de sécurité dans ce cas, car on crée nous même le certificat pour lequel on va faire confiance pour nos échanges. Cela permet d'avoir des échanges chiffrés et comme on va se connecter via l'ip, pas de soucis, ce sera bien la bonne machine. On pourra alors voir si le certificat est modifié lors de nos connexions.
Source : https://www.digitalocean.com/community/t...-debian-10

On génère les fichiers pour le certificat :
Code :
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
  • openssl: nom de la commande pour créer et gérer les certificats openssl, les clés et autres fichiers relatifs à cela.
  • req: cette sous-commande spécifie que l'on veux utiliser X.509 comme méthode de certification des requêtes (CSR).
  • -x509: cette option de commande dit que l'on va utiliser des certificats auto-signé et non pas générer une requête de signatures de certificat (cela aurait eu lieu si on utilisait une entités de certification).
  • -nodes: cette option de commande va dire à openssl de sauter l'étape de sécurisation du certificat avec une phrase de passe. Il faut que apache puisse lire ce certificat tout seul comme un grand au démarrage de la machine.
  • -days 365: cette option de commande donne la durée de la validité du certificat, ici 365 jours.
  • -newkey rsa:2048: cette option de commande spécifie que l'on veut ausi générer une clef avec ce certificat et que cette clef doit être une clef RSA de 2048 bits.
  • -keyout: cette option de commande donne à openssl l'emplacement de sauvegarde du fichier de la clef générée.
  • -out: cette option de commande done à openssl l'emplacement de sauvegarde du fichier du certificat créé.
Lors de l'exécution de cette commande, plusieurs questions vont vous être posée. Vous pouvez les passer et ne rien rentrer comme donnée en appuyant sur "Entrée" ou mettre un peu n'importe quoi :)
Les questions seront :
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:New York City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Bouncy Castles, Inc.
Organizational Unit Name (eg, section) []:Ministry of Water Slides
Common Name (e.g. server FQDN or YOUR name) []:server_IP_address
Email Address []:admin@your_domain.com

On a donc comme fichiers :
  • /etc/ssl/private/apache-selfsigned.key : la clef générée
  • /etc/ssl/certs/apache-selfsigned.crt : le certificat généré

On crée un fichier de configuration pour apache afin qu'il utilise les bons paramètres https.
Source : https://cipherli.st/ (archive : https://archive.fo/pkpAV)
Note : On désactive HSTS et on autorise X-Frame-Options pour SAMEORIGIN.
Code :
sudo nano /etc/apache2/conf-available/ssl-params.conf

et dedans on colle :
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
# Disable preloading HSTS for now.  You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
# Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Frame-Options SAMEORIGIN
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
SSLSessionTickets Off

On édite un autre fichier de configuration d'apache après l'avoir sauvegardé :
Code :
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak
sudo nano /etc/apache2/sites-available/default-ssl.conf

Vous recherchez les lignes suivantes et modifiez pour :
ServerAdmin webmaster@localhost
ServerName ip.de.la.machine
DocumentRoot /var/www/html

SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
La première est séparée des suivantes mais juste au-dessus ;) Et vous remplacez les chemins des fichiers crt et key selon la commande un poil plus haut.
Vous enregistrez les changements dans le fichier.

Tout cela est bien mais l'on peut encore visiter la page alors qu'on est pas en https, pour modifier ça automatiquement :
Code :
sudo nano /etc/apache2/sites-available/000-default.conf
Dans la section de "VirtualHost *:80", après DocumentRoot par exemple, vous modifiez :
DocumentRoot /var/www/html
Redirect "/" "https://ip.de.la.machine/"

On active les modules qu'il faut pour apache :
Code :
sudo a2enmod ssl
sudo a2enmod headers
sudo a2ensite default-ssl
sudo a2enconf ssl-params

Vous pouvez tester si tout est ok avec :
Code :
sudo apache2ctl configtest

On redémarre apache pour que cela prenne en compte cette modification :
Code :
sudo systemctl restart apache2

Voilà, maintenant vous devrez accepter le certificat sur la page d'avertissement de votre navigateur en cliquant sur "Avancé" et puis "Accepter le risque et poursuivre".

Installation php
Sources : https://geekmag.fr/blog/2020/01/25/insta...-debian-9/ (archive : https://archive.vn/ddJ9q)
https://computingforgeeks.com/install-ph...10-buster/
(archive : https://archive.vn/XIiME)

On met php
Code :
sudo apt install php php-common

On peut vérifier la version installée :
Code :
php -v

On installe les extensions php
Code :
sudo apt install php-geoip php-cli php-fpm php-json php-zip php-mbstring php-curl php-xml php-cgi

On active des trucs :
Code :
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.3-fpm

Faut encore installer quelques trucs
Code :
sudo apt install libapache2-mod-php

On active le module
Code :
sudo a2enmod php7.3

J'ai eu l'erreur suivante
sudo a2enmod php7.3
Considering dependency mpm_prefork for php7.3:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php7.3:
Module php7.3 already enabled

On fait
Code :
sudo a2dismod mpm_prefork
sudo a2dismod mpm_worker
sudo a2dismod mpm_event

De même pour
Code :
sudo apt install libapache2-mod-scgi
sudo a2enmod scgi

Et
Code :
sudo apt install libapache2-mod-xsendfile
sudo a2enmod xsendfile

On redémarre apache
Code :
sudo systemctl restart apache2

Et les dernières dépendances
Code :
sudo apt install unrar unzip ffmpeg mediainfo curl screen sqlite3 git net-tools sox
Kirinenko a écrit :Je m'autoquote si je veux, d'abord.
Nyanyanyanyan . . . . . . . . . . . . . . . [Image: chat-moche-27c1d17.gif]
[Image: 4yi3an10-3858b7.gif]
Répondre

  •
 J'aime Citer
Kirinenko (Hors ligne)

Grumeau des Alpes
Otarie Team
Sub’friends
Arrivée : Oct 2011
Sujets : 334
Messages : 4,252
J'aime reçus : 493
#3
15-12-2020, 21:21 (Modification du message : 15-12-2020, 21:37 par Kirinenko.)
Installation du client torrent et son interface

rtorrent

On va ajouter un utilisateur rtorrent avec son dossier home (/home/rtorrent)
Code :
sudo adduser --disabled-login --disabled-password --home /home/rtorrent --system --group rtorrent

On peut lire dans le wiki (https://github.com/rakshasa/rtorrent/wiki)
The rTorrent bittorrent client uses ncurses and is ideal for use with tmux, screen or dtach. Alternatively, version 0.9.7+ has a built-in daemon mode disabling the user interface, so you can only control it via XMLRPC. It supports saving of sessions, allows the user to add/remove torrents, and much more.

La dernière version stable offerte est :
  • http://rtorrent.net/downloads/libtorrent-0.13.6.tar.gz
  • http://rtorrent.net/downloads/rtorrent-0.9.6.tar.gz

et la dernière version en dev
  • http://rtorrent.net/downloads/libtorrent-0.13.8.tar.gz
  • http://rtorrent.net/downloads/rtorrent-0.9.8.tar.gz

Sur la machine, si on lance les commandes :
Code :
sudo apt-get update
sudo apt-cache policy rtorrent

On obtient :
rtorrent:
Installed: (none)
Candidate: 0.9.7-1
Version table:
0.9.7-1 500
Donc la version de rtorrent disponible par les paquets est la 0.9.7-1.

Sur la machine, si on lance la commande :
Code :
sudo apt-cache depends rtorrent

On obtient :
rtorrent
Depends: libc6
Depends: libcppunit-1.14-0
Depends: libcurl4
Depends: libgcc1
Depends: libncursesw6
Depends: libstdc++6
Depends: libtinfo6
Depends: libtorrent20
Depends: libxmlrpc-core-c3
|Suggests: screen
Suggests: dtach

On installe rtorrent :
Code :
sudo apt install rtorrent
Normalement donc libtorrent20 et libxmlrpc-core-c3 sont installés aussi.

On crée les dossiers pour rtorrent :
Code :
sudo mkdir -p /home/rtorrent/{session,watch,download}
sudo chmod 775 -R /home/rtorrent/{session,watch,download}
sudo chown rtorrent:rtorrent -R /home/rtorrent/{session,watch,download}

On ajoute un fichier de config pour rtorrent :
Code :
sudo nano /home/rtorrent/.rtorrent.rc
Dedans, on copie :
# Port SCGI
scgi_port = 127.0.0.1:5000

# This is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.

# Maximum and minimum number of peers to connect to per torrent.
#
throttle.min_peers.normal.set = 40
throttle.max_peers.normal.set = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
#
throttle.min_peers.seed.set = 10
throttle.max_peers.seed.set = 100

# Maximum number of simultanious uploads per torrent.
#
throttle.max_uploads.set = 15

# Global upload and download rate in KiB. "0" for unlimited.
#
throttle.global_down.max_rate.set_kb = 0
throttle.global_up.max_rate.set_kb = 0

# Default directory to save the downloaded torrents.
#
directory.default.set = /home/rtorrent/download

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
#
session.path.set = /home/rtorrent/session

# Watch a directory for new torrents, and stop those that have been
# deleted.
#
schedule2 = watch_directory,5,5,load_start=/home/rtorrent/session/*.torrent
schedule2 = untied_directory,5,5,stop_untied=

# Close torrents when diskspace is low.
#
schedule2 = low_diskspace,5,60,close_low_diskspace=2000M

# The ip address reported to the tracker.
#
#network.local_address.set = 127.0.0.1
#network.local_address.set = rakshasa.no

# The ip address the listening socket and outgoing connections is
# bound to.
#
#network.bind_address.set = 127.0.0.1
#network.bind_address.set = rakshasa.no

# Port range to use for listening.
#
network.port_range.set = 60006-60006

# Start opening ports at a random position within the port range.
#
network.port_random.set = no

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#
pieces.hash.on_completion.set = no

# Set whether the client should try to connect to UDP trackers.
#
trackers.use_udp.set = yes

# Alternative calls to bind and ip that should handle dynamic ip's.
#
#schedule2 = ip_tick,0,1800,ip=rakshasa
#schedule2 = bind_tick,0,1800,bind=rakshasa

# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
protocol.encryption.set = allow_incoming,enable_retry,prefer_plaintext
#protocol.encryption.set = require,require_RC4

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
#
dht.mode.set = auto

# UDP port to use for DHT.
#
dht.port.set = 60007

# Enable peer exchange (for torrents not marked private)
#
protocol.pex.set = yes

# Set downlad list layout style. ("full", "compact")
#
#ui.torrent_list.layout.set = "full"

Puis on fait :
Code :
sudo chown rtorrent:rtorrent /home/rtorrent/.rtorrent.rc
sudo chmod 775 /home/rtorrent/.rtorrent.rc
On a un fichier de config .rtorrent.rc
Source pour le session : https://github.com/rakshasa/rtorrent/wiki/Using-DHT

Note : Les liens magnets peuvent ne pas fonctionner si le chiffrement n'est pas activé :
Il faut mettre alors :
Code :
protocol.encryption.set = require,require_RC4
Source : https://rtorrent-docs.readthedocs.io/en/...yption-set

On va ouvrir ces ports dans iptables :
Code :
sudo nano /etc/init.d/iptablesrules

Et avant la dernière ligne, on ajoute :
#Autorisation p2p
iptables -t filter -A INPUT -p tcp --dport 60006 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 60007 -j ACCEPT

rutorrent

On l'installe via git :
Code :
sudo git clone https://github.com/Novik/ruTorrent.git /var/www/rutorrent/
sudo chown -R www-data:www-data /var/www/rutorrent

On édite la config de rutorrent pour refléter le fichier de téléchargement de l'utilisateur rtorrent :
Code :
sudo nano /var/www/rutorrent/conf/config.php

On modifie la ligne :
$topDirectory = '/home/rtorrent/download'; // Upper available directory. Absolute path with trail slash.

Vous pouvez aussi vérifier quelques chemins avec la commande "whereis", example :
Code :
whereis curl
qui donne :
curl: /usr/bin/curl /usr/share/man/man1/curl.1.gz
On ne prends que le premier chemin à chaque fois.

Dans le même fichier (config.php) on peut donc modifier la partie suivante avec les infos obtenus via "curl":
$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" => '/usr/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.
);

On essaie d'installer la reconnaissance du pays via l'ip
Sources : https://stackoverflow.com/questions/5409...-trying-to (archive : https://archive.vn/69rhe)
https://github.com/Novik/ruTorrent/issue...-207016405(archive : https://archive.vn/6QIcS)

Code :
sudo apt install geoip-database

Pour sécuriser l'accès à l'interface web, on crée un utilisateur avec son mot de passe pour y accéder :
Code :
cd /var/www/rutorrent
sudo htpasswd -c /var/www/rutorrent/.htpasswd utilisateur_rtorrent-web

On édite le .htaccess de rutorrent :
Code :
sudo nano /var/www/rutorrent/.htaccess

Et on ajoute :
AuthUserFile /var/www/rutorrent/.htpasswd
AuthName "Acceder à la source :"
AuthType Basic
require valid-user

A la page : https://github.com/Novik/ruTorrent/wiki/WebSERVER
On peut lire :
Also, a note on authentication. If you are password protecting your ruTorrent directory, make sure to set your SCGI mount point under that directory, or provide authentication for it as well.
Donc faudra bien mettre ça en place du coup.

On crée la conf d'apache pour mettre en place rutorrent :
Code :
sudo nano /etc/apache2/sites-available/rutorrent.conf

On ajoute :
# 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>
#===============================

On active l'interface web de rutorrent :
Code :
sudo ln -s /etc/apache2/sites-available/rutorrent.conf /etc/apache2/sites-enabled/rutorrent.conf

On active certains modules d'apache :
Code :
sudo a2enmod auth_digest
sudo a2enmod authn_file
sudo a2enmod xsendfile
sudo a2enmod scgi

On va sécuriser le dossier scgi(/rpc2), pour cela on commence par créer un répertoire pour avoir des mots de passes pour apache2 :
Code :
sudo mkdir -p /etc/apache2/passwords-{available,enabled}

On va dans le dossier des mots de passe disponibles et on en crée un pour un utilisateur :
Code :
cd /etc/apache2/passwords-available
sudo htpasswd -c rtorrentscgi scgi_utilisateur
Vous mettez n'importe quel mot de passe.

On fait le lien entre le fichier crée et la partie active :
Code :
sudo ln -s /etc/apache2/passwords-available/rtorrentscgi /etc/apache2/passwords-enabled/rtorrentscgi

On édite le fichier de conf pour scgi de rutorrent :
Code :
sudo nano /etc/apache2/sites-available/rtorrentscgi.conf

On ajoute cela :
#rTorrent SCGI Password Location
#===============================
<LocationMatch "/RPC2">
AuthType Basic
AuthName "scgi_utilisateur"
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

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

On active cette config :
Code :
sudo ln -s /etc/apache2/sites-available/rtorrentscgi.conf /etc/apache2/sites-enabled/rtorrentscgi.conf

On redémare apache :
Code :
sudo systemctl restart apache2

Note : vous pouvez avoir le message d'erreur suivant :
Failed to restart apache2.service: The name org.freedesktop.PolicyKit1 was not provided by any .service files See system logs and 'systemctl status apache2.service' for details.

Il nous manque un paquet :
Code :
sudo apt install policykit-1

On fini par mettre en place le démarrage de rtorrent avec la machine à l'aide de systemd :
Code :
sudo nano /etc/systemd/system/rtorrent.service

Dedans, on mets :
[Unit]
Description=rTorrent
After=network.target

[Service]
UMask=002
Type=forking
RemainAfterExit=yes
KillMode=none
User=rtorrent
ExecStartPre=-/bin/rm -f /home/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=/home/rtorrent/

[Install]
WantedBy=multi-user.target

On active cela :
/!\ Cela lance rtorrent au démarrage de la machine /!\
Code :
sudo systemctl enable rtorrent.service

Pour désactiver :
Code :
sudo systemctl disable rtorrent.service

On pourra utiliser les commandes suivantes :
Code :
sudo systemctl start rtorrent
sudo systemctl stop rtorrent
sudo systemctl restart rtorrent

On démarre le tout :
Code :
sudo systemctl start rtorrent

Pouvez alors voir que ça fonctionne bien avec la commande :
Code :
sudo netstat -npl | grep rtorrent
Vous avez accès à l'interface web via l'url "https://ip.de.la.machine/rutorrent/" et en utilisant le compte créé.

Il faut redemarrer apache :
Code :
systemctl restart apache2

On peut avoir une erreur avec le plugin _cloudfare
On va simplement virer le dossier du plugin de rutorrent :
Code :
sudo service rtorrent stop
sudo mv /var/www/rutorrent/plugins/_cloudflare /home/rtorrent/
sudo service rtorrent start
Kirinenko a écrit :Je m'autoquote si je veux, d'abord.
Nyanyanyanyan . . . . . . . . . . . . . . . [Image: chat-moche-27c1d17.gif]
[Image: 4yi3an10-3858b7.gif]
Répondre

  •
 J'aime Citer
Kirinenko (Hors ligne)

Grumeau des Alpes
Otarie Team
Sub’friends
Arrivée : Oct 2011
Sujets : 334
Messages : 4,252
J'aime reçus : 493
#4
15-12-2020, 21:21 (Modification du message : 15-12-2020, 21:31 par Kirinenko.)
VPN

On commence par installer openvpn si c'est pas déjà fait :
Code :
sudo apt install openvpn

Et on installe des dépendances :
Code :
sudo apt install resolvconf screen psmisc

Puis, on ajoute une nouvelle règle à la table de routage :
Code :
sudo nano /etc/iproute2/rt_tables

Et on rajoute en fin de fichier
# Route pour le vpn 1
1 VPNMULL

On crée l'interface lo:1, pour cela on édite le fichier suivant :
Code :
sudo nano /etc/network/interfaces

Et on ajoute les ligne suivantes à la fin du fichier avant de l'enregistrer :
# Une interface réseau pour le VPNMULL
auto lo:1
iface lo:1 inet static
address 192.168.0.1
netmask 255.255.255.255

On se rend sur notre vendeur d'accès vpn, perso je prends https://mullvad.net/, ils sont compétents de mon point de vue. Ils ont une large sélection de points de sortie, n'allez pas là où vous ne voudriez pas ;)
Pour une comparaison de vpn, voici un lien : https://docs.google.com/spreadsheets/d/1...t3bwg/edit
Vous télécharger les fichiers de configuration pour openvpn une fois conneté à votre compte sur le site.

On copie les fichiers suivants par sftp (pouvez utiliser filezilla : https://filezilla-project.org/ )
  • mullvad_ca.crt
  • mullvad_userpass.txt
  • update-resolv-conf
dans le dossier "/etc/openvpn/mullvad/files"
Puis le fichier :
  • mullvad_xx.conf
dans le dossier "/etc/openvpn/mullvad"

Vous pouvez aussi envoyer cela depuis un terminal linux. Au préalable, il faut créer les dossiers sur la machine :
Code :
sudo mkdir /etc/openvpn/mullvad
sudo mkdir /etc/openvpn/mullvad/files
Puis, depuis un terminal sur votre ordinateur situé dans le dossier qui contient les fichiers, on peut envoyer les fichiers avec ces commandes :
Code :
scp -P PORT-SSH -r mullvad_ca.crt login@ip.de.la.machine:/home/login
scp -P PORT-SSH -r mullvad_userpass.txt login@ip.de.la.machine:/home/login
scp -P PORT-SSH -r update-resolv-conf login@ip.de.la.machine:/home/login
scp -P PORT-SSH -r mullvad_xx.conf login@ip.de.la.machine:/home/login
Modifiez PORT-SSH pour le bon et le login (2 fois) et l'ip machine ;)
De retour sur le terminal ssh de la machine, vous déplacez ces fichiers au bon endroit :
Code :
sudo mv /home/login/mullvad_ca.crt /etc/openvpn/mullvad/files
sudo mv /home/login/mullvad_userpass.txt /etc/openvpn/mullvad/files
sudo mv /home/login/update-resolv-conf /etc/openvpn/mullvad/files
sudo mv /home/login/mullvad_xx.conf /etc/openvpn/mullvad


On met des droits au fichier de mdp :
Code :
sudo chmod 600 /etc/openvpn/mullvad/files/mullvad_userpass.txt
On active le mode exécutable pour un fichier au besoin :
Code :
sudo chmod +x /etc/openvpn/mullvad/files/update-resolv-conf

Puis on modifier le fichier de config
Code :
sudo nano /etc/openvpn/mullvad/mullvad_xx.conf

Il contenait :
client
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
remote-cert-tls server
ping 10
ping-restart 60
sndbuf 524288
rcvbuf 524288
cipher AES-256-CBC
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA
proto udp
auth-user-pass mullvad_userpass.txt
ca mullvad_ca.crt
tun-ipv6
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
fast-io
remote-random
remote se-mma-005.mullvad.net 1195
remote se-mma-019.mullvad.net 1195
remote se-mma-007.mullvad.net 1195
remote se-mma-112.mullvad.net 1195
remote se-mma-016.mullvad.net 1195
remote se-mma-021.mullvad.net 1195
remote se-mma-107.mullvad.net 1195
remote se-mma-109.mullvad.net 1195
remote se-mma-017.mullvad.net 1195
remote se-mma-020.mullvad.net 1195
remote se-mma-013.mullvad.net 1195
remote se-mma-023.mullvad.net 1195
remote se-mma-018.mullvad.net 1195
remote se-mma-022.mullvad.net 1195
remote se-mma-110.mullvad.net 1195
remote se-mma-002.mullvad.net 1195
remote se-mma-015.mullvad.net 1195
remote se-mma-014.mullvad.net 1195
remote se-mma-111.mullvad.net 1195
remote se-mma-001.mullvad.net 1195
remote se-mma-024.mullvad.net 1195
remote se-mma-006.mullvad.net 1195
remote se-mma-113.mullvad.net 1195
remote se-mma-003.mullvad.net 1195
remote se-mma-108.mullvad.net 1195
remote se-mma-004.mullvad.net 1195

Maintenant il contient :
client
dev tun
resolv-retry infinite
#nobind
persist-key
persist-tun
verb 3
remote-cert-tls server
ping 10
ping-restart 60
sndbuf 524288
rcvbuf 524288
cipher AES-256-CBC
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA
proto udp
route-nopull
auth-user-pass /etc/openvpn/mullvad/files/mullvad_userpass.txt
ca /etc/openvpn/mullvad/files/mullvad_ca.crt
#tun-ipv6
script-security 2
#up /etc/openvpn/update-resolv-conf
#down /etc/openvpn/update-resolv-conf
# Scripts vpn
up /etc/openvpn/mullvad/scripts/up.sh
down /etc/openvpn/mullvad/scripts/down.sh
fast-io
pull-filter ignore "ifconfig-ipv6"
pull-filter ignore "route-ipv6"
push "dhcp-option DNS 193.138.218.74"
remote-random
remote se-mma-005.mullvad.net 1195
remote se-mma-019.mullvad.net 1195
remote se-mma-007.mullvad.net 1195
remote se-mma-112.mullvad.net 1195
remote se-mma-016.mullvad.net 1195
remote se-mma-021.mullvad.net 1195
remote se-mma-107.mullvad.net 1195
remote se-mma-109.mullvad.net 1195
remote se-mma-017.mullvad.net 1195
remote se-mma-020.mullvad.net 1195
remote se-mma-013.mullvad.net 1195
remote se-mma-023.mullvad.net 1195
remote se-mma-018.mullvad.net 1195
remote se-mma-022.mullvad.net 1195
remote se-mma-110.mullvad.net 1195
remote se-mma-002.mullvad.net 1195
remote se-mma-015.mullvad.net 1195
remote se-mma-014.mullvad.net 1195
remote se-mma-111.mullvad.net 1195
remote se-mma-001.mullvad.net 1195
remote se-mma-024.mullvad.net 1195
remote se-mma-006.mullvad.net 1195
remote se-mma-113.mullvad.net 1195
remote se-mma-003.mullvad.net 1195
remote se-mma-108.mullvad.net 1195
remote se-mma-004.mullvad.net 1195
Notes :
  • Les chemins complets des fichiers sont renseignés.
  • On désactive tun-ipv6 pour désactiver l'ipv6.
  • D'autres scripts "up" et "down" seront utilisés, on va les créer plus loin.
  • On ajoute "route-nopull" pour éviter le changement automatique de la table de routage par le vpn.
  • "pull-filter" m'est utile car je désactive l'ipv6 et sinon ça plante (cf logs).
  • push "dhcp-option DNS 193.138.218.74" pour renseigner le dns de mullvad sur cette connexion

Afin que cette configuration se lance automatiquement, il lui faut un chemin depuis le dossier openvpn, pour cela un lien symbolique :
Code :
sudo ln -s /etc/openvpn/mullvad/mullvad_xx.conf /etc/openvpn/client_mull.conf

Et on passe aux scripts up.sh et down.sh en créant d'abord le dossier qui va les contenir :
Code :
sudo mkdir /etc/openvpn/mullvad/scripts

On commence par le script "up.sh" :
Code :
sudo nano /etc/openvpn/mullvad/scripts/up.sh

Dedans on mets :
#! /bin/bash
# This script enables policy routing after the tunnel interface is brought up
# Policy routing is used to make sure response packets go through the tunnel interface
# This is mandatory when your ISP has setup anti-spoofing filters

# Add a default route via tun0 into the VPN routing table
ip route add default dev $1 table VPNMULL

# Pass traffic from lo:1 (192.168.0.1) to the VPN routing table, using policy routing (ip rule commands)
ip rule add from 192.168.0.1/32 table VPNMULL

# Pass traffic from tun0 IP address to the VPN routing table
ip rule add from $4/32 table VPNMULL

#On ajoute les regles iptables pour faire le NAT

# Source NAT and destination NAT rules to make sure the incoming and ougoing packets on 192.168.0.1 are redirected
iptables -A PREROUTING -t nat -i $1 -p tcp --dport 1195 -j DNAT --to 192.168.0.1
iptables -A PREROUTING -t nat -i $1 -p udp --dport 1195 -j DNAT --to 192.168.0.1
iptables -A POSTROUTING -t nat -o $1 -j MASQUERADE
# Allow session continuation traffic
iptables -A INPUT -i $1 -m state --state RELATED,ESTABLISHED -j ACCEPT
# Allow Bittorrent traffic via tun0
#iptables -A SERVICES -p tcp --match multiport --dports 59XXX:59YYY -j ACCEPT
iptables -A SERVICES -p tcp --dport 60006 -j ACCEPT
iptables -A SERVICES -p udp --dport 60007 -j ACCEPT

# Disallow BitTorrent traffic via eth0 - Just to be extra safe
iptables -D FORWARD -s 192.168.0.1/32 -o eth0 -j DROP

#Demarrage de rtorrent
#/etc/init.d/utilisateur-rtorrent start
systemctl start rtorrent

#Resolveconf mullvad
/etc/openvpn/mullvad/files/update-resolv-conf

#Demarrage du script verifiant que le VPN est toujours actif
killall checkVPN
/usr/bin/checkVPN &
Notes :
  • La variable $1 contient le nom d’interface et la variable $4 l’adresse ip du tunnel. Ces deux variables sont transmises par openvpn aux scripts up et down.
  • Changer le port 1195 par le port utilisé par votre client openvpn (vu dans le fichier de configuration).
  • Changer 60006 et 60007 pour les ports renseignés dans votre config rtorrent.rc
  • Changer utilisateur-rtorrent par le nom de votre utilisateur mais garder -rtorrent (si vous avez mis transmission et non rtorent comme montré dans ce tuto)

On voit une chaîne SERVICES qui apparaît, elle doit être créée dans notre fichier iptables (et on va en profiter pour virer les lignes du client torrent et ajouter celle pour le vpn) donc :
Code :
sudo nano /etc/init.d/iptablesrules

Et en début de fichier, après le bloc:
# Autorisation trafic sortant
iptables -t filter -P OUTPUT ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

On ajoute :
# Ajout pour config vpn
iptables -N SERVICES

Et on ajoute en même temps l'autorisation pour le vpn avant la dernière ligne de ce même fichier :
# VPN
iptables -t filter -A INPUT -p udp --dport 1195 -j ACCEPT

Et on peux désactiver les autorisations des ports p2p car ça passe par le vpn (on rajoute un dièse en début de ligne) :
#Autorisation p2p
#iptables -t filter -A INPUT -p tcp --dport 6890 -j ACCEPT
#iptables -t filter -A INPUT -p udp --dport 6881 -j ACCEPT

Et on recharge les règles :
Code :
sudo /etc/init.d/iptablesrules

On crée le script down.sh :
Code :
sudo nano /etc/openvpn/mullvad/scripts/down.sh

Dedans on mets :
#! /bin/sh
# This script disables policy routing before the tunnel interface is brought down

killall checkVPN

#/etc/init.d/utilisateur-rtorrent stop
systemctl stop rtorrent

#On efface les regles iptables ajoutees

iptables -D FORWARD -s 192.168.0.1/32 -o eth0 -j DROP
#iptables -D SERVICES -p tcp --match multiport --dports 59XXX:59YYY -j ACCEPT
iptables -D SERVICES -p udp --dport 60007 -j ACCEPT
iptables -D SERVICES -p tcp --dport 60006 -j ACCEPT
iptables -D INPUT -i $1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -D POSTROUTING -t nat -o $1 -j MASQUERADE
iptables -D PREROUTING -t nat -i $1 -p udp --dport 1195 -j DNAT --to 192.168.0.1
iptables -D PREROUTING -t nat -i $1 -p tcp --dport 1195 -j DNAT --to 192.168.0.1

# Remove rule for the secondary loopback IP address (192.168.0.1)
ip rule del from 192.168.0.1/32 table VPNMULL

# Remove rule for tun0 IP address
ip rule del from $4/32 table VPNMULL

#Resolveconf mullvad
/etc/openvpn/mullvad/files/update-resolv-conf
Notes :
  • Changer le port 1195 par le port utilisé par votre client openvpn (vu dans le fichier de configuration).
  • Changer 60006 et 60007 pour les ports rensiegnés dans votre config rtorrent.rc
  • Changer utilisateur-rtorrent par le nom de votre utilisateur mais garder -rtorrent (toujours seulement si transmission et non rtorrent)

Dans les deux scripts qu'on vient d'ajouter, on voit qu'il faut ajouter un autre script qui vérifie que openvpn fonctionne toujours bien afin de couper rtorrent si ce dernier a lâché et qu'il ne l'a pas vu :)
Code :
sudo nano /usr/bin/checkVPN

On met ceci :
#! /bin/bash

#On fait un ping vers un des résolveurs dns de FDN toutes les 5min, et si aucun paquet n est reçu en retour (0 packets received, le 0 etant à la position 23 sur la ligne venant de ping) on relance le VPN
#

while [ 1 > 0 ]; do
sleep 300
T=`ping -I 192.168.0.1 -c 1 80.67.169.12 |grep "packets transmitted"`
if [[ ${T:23:1} != "1" ]]
then
/etc/init.d/openvpn restart
fi
done
Ou dns mullvad : 193.138.218.74 là ça doit être un dns fdn.

On donne des permissions aux scripts :
Code :
sudo chmod +x /etc/openvpn/mullvad/scripts/up.sh
sudo chmod +x /etc/openvpn/mullvad/scripts/down.sh
sudo chmod +x /usr/bin/checkVPN

On dit à openvpn de lancer la bonne config au démarrage, dans le fichier :
Code :
sudo nano /etc/default/openvpn

Vous changez la ligne (on décommente et on met un nom de fichier) :
AUTOSTART="client_mull"

Maintenant, afin que rtorrent soit relié à l'adresse lo:1 qu'on a crée, il faut éditer sa config.
Code :
sudo nano /home/rtorrent/.rtorrent.rc

Et vous modifiez la ligne :
network.bind_address.set = 192.168.0.1

On va désactiver complètement l'ipv6 :
Code :
sudo nano /etc/sysctl.conf

Et dedans on met à la fin :
# Desactivation de l ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.lo:1.disable_ipv6 = 1
net.ipv6.conf.tun0.disable_ipv6 = 1

Ne pas oublier de commenter la ligne concernant l'ipv6 de la localhost dans ce fichier aussi :
Code :
sudo nano /etc/hosts

On ajoute un dièse :
#::1 localhost ip6-localhost ip6-loopback

On ajoute openvpn au démarrage de l'ordi :
Code :
sudo update-rc.d openvpn defaults
sudo /etc/init.d/openvpn restart

Note : Alors j'avais des soucis. Je vais mettre quelques lignes sur ce que j'ai réalisé pour trouver la cause :
Dans le fichier "/etc/openvpn/mullvad/mullvad_##.conf", on peut ajouter :
status openvpn-status.log
log-append /var/log/openvpn.log
verb 4
Allez lire le fichier "/var/log/openvpn.log" pour les lire, ou pour avoir seulement les 100 dernières lignes de ce fichier :
Code :
sudo tail -n 100 /var/log/openvpn.log

Note Bonus :
  • Un site pour avoir son ip :https://icanhazip.com/
Via la connexion normale :
Code :
sudo curl https://icanhazip.com/
Via la connexion VPN :
Code :
curl --interface 192.168.0.1 https://icanhazip.com/
ou
curl --interface lo:1 https://icanhazip.com/
  • Pouvez voir que votre rutorrent se plante avec "sudo service openvpn stop" en ssh et l'interface web ne recharge plus :
Lien incorrect avec rTorrent. Vérifiez qu'il soit bien en cours d'exécution. Vérifiez la configuration de $scgi_port et de $scgi_host dans config.php et de scgi_port dans le fichier de configuration de rTorrent.
Pour relancer :
Code :
sudo service openvpn start
  • Vous pouvez vérifier votre ip en utilisant : https://ipleak.net/ et le lien magnet fourni :)
  • Ou celui ci : http://ipmagnet.services.cbcdn.com
Avec le site https://ipleak.net/ (view request dump) ou celui ci : http://ipmagnet.services.cbcdn.com on peut voir qu'on laisse passer l'ip du serveur : on envoie 2 ips aux trackers, l'ip du vpn et l'ip du serveur. C'est pas bien bon et ça rend un peu inutile l'utilisation du vpn. Pour n'envoyer que l'ip du vpn, il faut ajouter les lignes suivantes dans le fichier ".rtorrent.rc" :
Code :
sudo nano /home/rtorrent/.rtorrent.rc
Et on ajoute :
# Get public IP address without the need of having dynamic DNS service, also works from behind NAT, through tunnel
method.insert = get_public_ip_address, simple|private, "execute.capture=bash,-c,\"eval echo -n \$(curl --interface tun0 http://icanhazip.com/)\""
# The IP address reported to the tracker. (ip) This handles dynamic IP's as well.
schedule2 = ip_tick, 0, 1800, "network.local_address.set=(get_public_ip_address)"

Le fichier ".rtorrent.rc" contient tout ceci au final :
# Port SCGI
scgi_port = 127.0.0.1:5000
#ou
#network.scgi.open_port = 127.0.0.1:5000
#source : https://freedif.org/how-to-install-flood...-debian-10

# This is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.

# Maximum and minimum number of peers to connect to per torrent.
#
throttle.min_peers.normal.set = 40
throttle.max_peers.normal.set = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
#
throttle.min_peers.seed.set = 10
throttle.max_peers.seed.set = 100

# Maximum number of simultanious uploads per torrent.
#
throttle.max_uploads.set = 15

# Global upload and download rate in KiB. "0" for unlimited.
#
throttle.global_down.max_rate.set_kb = 0
throttle.global_up.max_rate.set_kb = 0

# Default directory to save the downloaded torrents.
#
directory.default.set = /home/rtorrent/download

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
#
session.path.set = /home/rtorrent/session
#ou
#session = /home/rtorrent/session
#Source pour le session : https://github.com/rakshasa/rtorrent/wiki/Using-DHT

# Watch a directory for new torrents, and stop those that have been
# deleted.
#
schedule2 = watch_directory,5,5,load_start=/home/rtorrent/session/*.torrent
schedule2 = untied_directory,5,5,stop_untied=

# Close torrents when diskspace is low.
#
schedule2 = low_diskspace,5,60,close_low_diskspace=2000M

# The ip address reported to the tracker.
#
#network.local_address.set = 127.0.0.1
#network.local_address.set = rakshasa.no
#network.local_address.set = 192.168.0.1
# Get public IP address without the need of having dynamic DNS service, also works from behind NAT, through tunnel
method.insert = get_public_ip_address, simple|private, "execute.capture=bash,-c,\"eval echo -n \$(curl --interface tun0 http://icanhazip.com/)\""
# The IP address reported to the tracker. (ip) This handles dynamic IP's as well.
schedule2 = ip_tick, 0, 1800, "network.local_address.set=(get_public_ip_address)"

# The ip address the listening socket and outgoing connections is
# bound to.
#
network.bind_address.set = 192.168.0.1
#network.bind_address.set = rakshasa.no

# Port range to use for listening.
#
network.port_range.set = 60006-60006

# Start opening ports at a random position within the port range.
#
network.port_random.set = no

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#
pieces.hash.on_completion.set = no

# Set whether the client should try to connect to UDP trackers.
#
trackers.use_udp.set = yes

# Alternative calls to bind and ip that should handle dynamic ip's.
#
#schedule2 = ip_tick,0,1800,ip=rakshasa
#schedule2 = bind_tick,0,1800,bind=rakshasa

# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
protocol.encryption.set = allow_incoming,enable_retry,prefer_plaintext
#protocol.encryption.set = require,require_RC4

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
#
dht.mode.set = auto

# UDP port to use for DHT.
#
dht.port.set = 60007

# Enable peer exchange (for torrents not marked private)
#
protocol.pex.set = yes

# Set downlad list layout style. ("full", "compact")
#
#ui.torrent_list.layout.set = "full"
Kirinenko a écrit :Je m'autoquote si je veux, d'abord.
Nyanyanyanyan . . . . . . . . . . . . . . . [Image: chat-moche-27c1d17.gif]
[Image: 4yi3an10-3858b7.gif]
Répondre

  •
 J'aime Citer
Kirinenko (Hors ligne)

Grumeau des Alpes
Otarie Team
Sub’friends
Arrivée : Oct 2011
Sujets : 334
Messages : 4,252
J'aime reçus : 493
#5
15-12-2020, 21:21 (Modification du message : 15-12-2020, 21:28 par Kirinenko.)
Accès web

Je ne détaillerais pas, regardez les anciens tutos, c'est du même genre.
Vous pouvez toujours répondre à ce topic si vous avez besoin d'aide.

J'utilise habituellemnt _h5ai qui propose une belle config : https://larsjung.de/h5ai/
Vous pouvez utiliser apaxy au lieu de _h5ai si vous voulez plus simple : https://oupala.github.io/apaxy/

Mode rescue ovh

Si vous avez bloqué votre machine avec une mauvaise configuration de votre pare-feu ou lors de la mise en place du vpn. Vous pouvez accéder à vos fichiers en redémarrant avec le mode rescue.
Vous recevrez un email vous donnant des informations de connexion pour un compte root.

Après faut faire ça : https://forum.kimsufi.com/showthread.php...ode-rescue (archive : https://archive.is/y3wjn)

On liste les disques
Code :
fdisk -l

On monte ce qu'il faut
Code :
mount /dev/md1 /mnt/
et enfin on monte la partition home
Code :
mount /dev/md2 /mnt/home

Si vous n'avez qu'un seul disque mettez sda au lieu de md.
Code :
mount /dev/sda1 /mnt/

On fait un chroot au cas où l'on ait besoin de modifier des fichiers systèmes
Code :
chroot /mnt/

Voilà enfin la fin de ce tuto, enjoy et bonne installation.

Les anciens avec limewire se souviendrons de cette chanson, mais peut être pas du clip de la série originale ;)
Kirinenko a écrit :Je m'autoquote si je veux, d'abord.
Nyanyanyanyan . . . . . . . . . . . . . . . [Image: chat-moche-27c1d17.gif]
[Image: 4yi3an10-3858b7.gif]
Répondre

  •
 J'aime Citer
Tchenss (Hors ligne)

Hell Master
Otarie Team
Team Malice Fansub
Arrivée : Nov 2011
Sujets : 815
Messages : 3,787
J'aime reçus : 1404
#6
16-12-2020, 17:30
Ah oui, c'est effectivement très long ^^;
J'espère que tu me pardonneras de ne pas lire, hein  Ffuuu
C'est la triste réalité de la vie !

[Image: htf10.jpg]
Répondre

  •
 J'aime Citer
Kirinenko (Hors ligne)

Grumeau des Alpes
Otarie Team
Sub’friends
Arrivée : Oct 2011
Sujets : 334
Messages : 4,252
J'aime reçus : 493
#7
16-12-2020, 17:47
Hein_quoi  Tu vas pas le lire ni l'appliquer ! What
Moi qui pensais que tu serais la première à faire des propositions de modifs Chaud
Kirinenko a écrit :Je m'autoquote si je veux, d'abord.
Nyanyanyanyan . . . . . . . . . . . . . . . [Image: chat-moche-27c1d17.gif]
[Image: 4yi3an10-3858b7.gif]
Répondre

  •
 J'aime Citer
Tchenss (Hors ligne)

Hell Master
Otarie Team
Team Malice Fansub
Arrivée : Nov 2011
Sujets : 815
Messages : 3,787
J'aime reçus : 1404
#8
16-12-2020, 18:01
Tu veux ma mort ?
J'peux éventuellement le lire, j'vais rien comprendre, mais si ça peut te faire plaisir, hein Lapin2
C'est la triste réalité de la vie !

[Image: htf10.jpg]
Répondre
1 otarie(s) aime(nt) ce message :
  • yorokobi58
 J'aime Citer
  Nouvelle réponse
« Sujet précédent | Sujet suivant »

Utilisateur(s) parcourant ce sujet : 1 visiteur(s)



  • S’abonner au sujet
  Discord

Malice Fansub
Avat6
Avancement
Fiche Dogaru
Page Facebook

Dernières sorties
La team est désormais fermée.

Todome no kiss
Todome no parallel
Épisodes 8 à 10 FIN
Todome

Kieta hatsukoi - SP
Kieta

Bokura wa koi
Ep 7 FIN
BokuraW

Tokyo revengers
LICENCIÉ
TokyoR

Mogura no uta
v2 - 1080p
Mogura

Mogura no uta 2
Mogura2

Sakamichi no Apollon
Sakamichi


Partenaires
partenaire logo

Choisissez Firefox
obtenir firefox

© Propulsé par MyBB et basé sur un design de D&D

Contact
Affichage linéaire
Affichage hiérarchique