Le but est de faire passer le flux plex via un relais ssh, pour éviter un mauvais peering
Prérequis
Une machine Linux avec un accès ssh qui servira de relais
Un accès ssh sur votre machine plex (avec des droits root)
Depuis le serveur plex, je fais tout en root, mais c’est adaptable
Préparation
Sur le relais, il faut modifier la configuration ssh, et mettre
GatewayPorts yes
Redémarrer ensuite le démon ssh
systemctl restart sshd
Si vous n’en avez pas encore, il faut générer une paire de clé ssh depuis votre serveur plex : https://support.google.com/youtube/answer/3071034?hl=fr#zippy=%2Cpour-g%C3%A9n%C3%A9rer-une-paire-de-cl%C3%A9s-ssh-sur-un-ordinateur-macintosh-ou-linux-proc%C3%A9dez-comme-suit
Il faut envoyer la clé ssh publique du serveur plex vers le serveur relais
ssh-copy-id user-du-relais@ip-du-relais
Il va demander le password de user-du relais.
Il faut vérifier après qu’on peut faire du ssh direct sans mot de passe :
ssh user-du-relais@ip-du-relais
doit vous permettre d’ouvrir une session sans password
Il faut installer sur le serveur plex autossh :
sudo apt install autossh
Mise en place du service
il faut créer le fichier /etc/systemd/system/relais-plex.service, en changeant lesvaleurs de user-du-relais@ip-du-relais
[Unit]
Description=AutoSSH tunnel service Plex on local port 32400
After=network.target
[Service]
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -M 40584 -o "compression=no" -o "cipher=aes128-gcm@openssh.com" -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -NR 32400:localhost:32400 user-du-relais@ip-du-relais
[Install]
WantedBy=multi-user.target
Ensuite, il faut recharger, lancer et mettre le service en disponible
systemctl reload-daemon
systemctl start relais-plex
systemctl enable relais-plex
A partir de là, on peut tester que le port 32400 sur le relais est accessible, depuis une autre machine
nc -zv ip-du-relais 32400
Doit mettre un « connexion succeded ». Si « no route to host », regarder les cas particulier en bas de page (notamment le VPS Oracle)
Informer plex du relais
Dans l’interface d’admin de plex, dans le menu de gauche, cliquez sur « réseau », et aller dans « URL personnalisées pour accéder au serveur »
De là, il faut saisir deux entrées séparée par une virgule : http://ip-relais:3200, https://ip-relais:32400
On peut saisir autant d’entrée que l’on veut et avoir plusieurs relais, plex basculera de l’un à l’autre en cas d’indisponibilité du relais
Bloquer le trafix direct plex sur la seedbox
Le but est d’empêcher plex de faire de la lecture directe depuis le serveur. On va bloquer le port 32400 pour tout le monde, sauf pour les relais
/usr/sbin/iptables -I DOCKER-USER -i eth0 -p tcp --dport 32400 -j REJECT
/usr/sbin/iptables -I DOCKER-USER -i eth0 -s ip-relais/32 -p tcp --dport 32400 -j ACCEPT
La dernière ligne est à répéter pour chaque relais
Cas particulier pour les VPS ORacle
Il ne faut pas utiliser ufw pour ouvrir le port, mais firewalld
apt update
apt install firewalld
firewall-cmd --permanent --zone=public --add-port=32400/tcp
firewall-cmd --reload
Penser à gérer les security groups