Aller au contenu

[TUTO] Lire le contenu de sa médiathèque sur un Raspberry Pi à distance, au travers d'un VPN


Langer

Messages recommandés

Bonjour,

j'ai offert un raspberry pi à ma belle famille pour se connecter sur mon NAS et avoir accès à son contenu de manière sécurisée, avec la possibilité de synchroniser directement les métadonnées des médias depuis une base de donnée MySQL tockée sur le NAS.

Ce tuto va se dérouler en 3 étapes :

1. Se connecter au NAS avec une connexion VPN

2. Monter une base de données centralisée MySQL

3. Se connecter à la base de donnée MySQL depuis le raspberry distant

 

Difficulté : Facile

Temps de mise en œuvre : 45 min

Prérequis :

- Un raspberry pi (2 ou 3, le 1 je n'ai pas testé) avec OSMC installé dessus et la connexion SAMBA activée (voir dans Programmes / My OSMC / Paquets / Samba)

Voici la version officielle : https://osmc.tv/

Personnellement, j'utilise un dual boot avec Retropie, pour jouer aux jeux rétros. Dans ce cas, il est nécessaire de mettre à jour OSMC avant de commencer l'étape 1 : http://www.multibootpi.com/builds/retropie-v4-0-2-osmc-2016-07-1-dual-boot/

- Le logiciel Putty pour se connecter en SSH

- Un NAS Synology à jour avec les droits d'administration

- Un compte utilisateur ayant accès au NAS Synology et aux différents dossiers auxquels il aura accès

 

1. Se connecter au NAS avec une connexion VPN

Se logguer en tant qu'administrateur pour pouvoir installer des paquets Synology.

Dans le centre de paquets, installer «WebDAV Serveur» pour que le NAS gère les transferts avec le protocole WebDav. S'assurer que le HTTPS est activé, on va conserver le port 5006 dans le tuto. S'assurer aussi que le nouvel utilisateur a accès à l'application «WebDAV Serveur» dans les privilèges

image.png.607717d3376ca9d83d909e012600c4e5.pngimage.png.b3200fca696ed3589274f4b3668f9bc9.png

Dans le centre de paquets, installer «VPN Serveur» pour que le NAS deviennent une plateforme serveur de connexion VPN. S'assurer que le nouvel utilisateur a accès à la connection OpenVPN dans la partie privilèges de l'application.

image.thumb.png.ca7dcfbbff7b678638e798c26a2592c6.png

Ensuite, activer le serveur OpenVPN dans la partie paramètres de l'application avec l'autorisation d'accès au server LAN activée. Le reste des paramètres est selon vos préférences.

image.thumb.png.a70356660028f0e7d84c1c61b04466d6.png

Exporter la configuration sur votre PC.

Pour que la connexion fonctionne, il est nécessaire d'ouvrir les ports dans le pare feu du NAS et de votre routeur. Panneau de configuration / Sécurité / Pare-feu / Modifier les règles, et ouvrir les ports 1194 et 5006 dans mon cas. Pour le routeur, seul le port du VPN est nécessaire.

image.png.6da1a4b342566f62f1c05875da8098d5.pngimage.png.a1e94b9562edf1ce813fc7a31328344f.png

La configuration sur le NAS est désormais terminée.

Aller dans l'explorateur windows puis Réseau et le Raspberry devrait s'afficher. Si non, taper le nom que vous avez donné dans les paramètres SAMBA du Pi, avec \\ avant le nom. Aller ensuite dans le répertoire «OSMC».

Créer le dossier «openvpn» et copier-y le fichier VPNConfig.ovpn. Éditer ce fichier pour intégrer l'adresse IP de votre connexion internet http://monip.org/ et changer l'adresse du fichier d'authentification à ligne 44 .

image.thumb.png.295a45cc32f200a130d84be2c1f40872.png

Dans le même dossier, il est nécessaire maintenant de créer un fichier .txt qui indique l'utilisateur et le mot de passe.

image.thumb.png.54340729edcb1a640f4a4a750d611958.png

 

Se connecter en SSH sur le Pi avec le logiciel PUTTY. Par défaut, le user et mot de passe sont osmc:osmc

Ajouter tout d'abord une petite sécurité sur le fichier auth.txt :

osmc@OSMC-PI:~$ chmod 600 /home/osmc/openvpn/auth.txt

Mettre à jour la liste des paquets puis installer le service OpenVPN  sur le Pi :

osmc@OSMC-PI:~$ sudo apt-get update
osmc@OSMC-PI:~$ sudo apt-get install openvpn

Ensuite copier et renommer le fichier de configuration VPNConfig dans le répertoire /etc/openvpn :

osmc@OSMC-PI:~$ sudo cp /home/osmc/openvpn/VPNConfig.ovpn /etc/openvpn/vpn.conf

Activer et lancer le service OpenVPN :

osmc@OSMC-PI:~$ sudo systemctl enable openvpn@vpn.service
osmc@OSMC-PI:~$ sudo systemctl start openvpn@vpn.service

Puis redémarrer le Raspberry Pi :

osmc@OSMC-PI:~$ sudo reboot

Une fois le Pi redémarrer, aller dans la console du NAS, dans l'application «VPN Serveur» pour vérifier si la connexion a bien été faite.

Pour simuler une connexion à distance, utiliser votre téléphone et faite un partage de connexion, puis connecter le Pi au réseau Wifi du téléphone. La connexion passera donc pour le réseau cellulaire.

image.thumb.png.1cf5da231ae44b8a579c381fe66374a4.png

Désormais, il est possible de chercher les répertoires partagés du NAS dans OSMC, comme si le Pi était dans le réseau local. Après quelques tests, il s'avère que le WebDAV est le protocole le plus rapide dans le VPN...

image.png.c27b85e934027485c2de161fd173079c.png

Fin de la partie 1.

 

2. Monter une base de données centralisée MySQL

Se logguer en tant qu'administrateur pour pouvoir installer des paquets Synology.

Dans le centre de paquets, installer «MariaDB 10» et «phpMyAdmin». Vérifier ensuite le port de MariaDB en cliquant sur l’icône du bureau DSM et son ouverture dans le pare-feu du Synology

image.png.2939277aefd15f05f7fee6cb842f7086.pngimage.png.69da17cbb96d213a9ff98005901c328a.png

Se rendre ensuite dans l'application «phpmyadmin» et se logguer en tant que root. Il n'y a pas de mot de passe par défaut.

Creér un nouvel utilisateur "kodi" avec le mot de passe "kodi" , et cocher les privilèges globaux

image.thumb.png.a211d326f48297e70e61a521d0a671ad.pngimage.thumb.png.347e39663cda8498e51344b202534781.png

Une fois la base de donnée paramétrée, il faut encore pouvoir mettre des choses dedans.

Créer un fichier advancedsettings.xml avec le code suivant :

<advancedsettings>
  <videodatabase>
    <type>mysql</type>
	<name>KODI-Video</name>
    <host>IP DU NAS</host>
    <port>3307</port>
    <user>kodi</user>
    <pass>kodi</pass>
  </videodatabase>
  <musicdatabase>
    <type>mysql</type>
	<name>KODI-Music</name>
    <host>IP DU NAS</host>
    <port>3307</port>
    <user>kodi</user>
    <pass>kodi</pass>
  </musicdatabase>
  <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
  </videolibrary>
</advancedsettings>

Ce fichier se place dans le userdata de OSMC/KODI pour chaque appareil que l'on souhaite lier à la base de données centralisée. Personnellement, j'utilise Kodi sur mon PC pour scrapper et gérer tous les médias disponibles sur mon NAS. Le Raspberry ne verra que le résultat de ce travail, en se synchronisant à chaque démarrage à la base de données. Voici les différent liens où copier le fichier :

Sur le Raspberry : \\NOM DU PI\osmc\.kodi\userdata

Sur le PC : C:\Users\NOM USER\AppData\Roaming\Kodi\userdata

Une fois le fichier copié et Kodi/OSMC lancés, on peut voir que des tables ont été ajoutées dans la base de données. Il ne reste plus qu'à la remplir avec les informations disponibles en faisant scrapper les répertoires avec TheTVDB par exemple

image.png.7083c5919cf68e3bbe9d27ee576488c0.pngimage.thumb.png.8d117b0a88a847b5fa8f21be4c8effe9.png

Normalement, ces informations seront disponibles sur toute autre machine sous Kodi/OSMC avec le advancedsettings.xml depuis le réseau local. Cependant, avec un Pi à distance et une connexion VPN, cela ne fonctionne pas encore.

Fin de la partie 2.

 

3. Se connecter à la base de donnée MySQL depuis le raspberry distant

Pour que le Raspberry hors du réseau local puisse avec accès à la base de données MySQL stockée sur le NAS, il faut que ce dernier se connecte au VPN avant que l'application OSMC ne se lance pendant le démarrage.

Pour ce faire, on retourne dans PUTTY en SSH sur le PI, puis on va créer un dossier  :

osmc@OSMC-PI:~$ sudo mkdir /lib/systemd/system/mediacenter.service.d

Puis créer le fichier suivant :

osmc@OSMC-PI:~$ sudo nano /lib/systemd/system/mediacenter.service.d/wait-for-tun0.conf

Et insérer :

[Service]
ExecStartPre = /usr/local/bin/wait-for-tun0.sh

Sauver avec CTRL+X puis Y puis enter

Ensuite, créer le script :

osmc@OSMC-PI:~$ sudo nano /usr/local/bin/wait-for-tun0.sh

Et insérer le code suivant pour que l'application OSMC démarre 60 secondes plus tard que la connexion VPN pour qu'elle est le temps d'être active :

#!/bin/bash
count=60
while [ $count -gt 0 ]; do
  if $(ip link show tun0 >/dev/null 2>&1); then break; fi
  sleep 1
  let count-=1
done
sleep 5

Sauver avec CTRL+X puis Y puis enter, et lancer le script :

osmc@OSMC-PI:~$ sudo chmod u+x /usr/local/bin/wait-for-tun0.sh

Redémarrer le Pi et normalement le démarrage sera plus long que d'habitude, permettant d'être connecté en VPN avant que OSMC ne se lance.

Les informations de la base de données devraient s'afficher à l'écran, comme dans le réseau local.

Voilà, c'est fini :D

 

PS : Le point négatif de cette méthode est que tout le flux du Pi passe par le VPN. Je cherche encore un moyen de ne pas faire passer par exemple le flux de youtube ou d'autres Addons de streaming pour ne pas surcharger le UP de la connexion au NAS inutilement. Si quelqu'un à une solution pour ça je suis preneur.

 

Sources :

https://www.youtube.com/watch?v=5MLDDg87Oqk

https://technotips.fr/132-kodi-xbmc-creer-base-donnees-centralisee/#prettyPhoto

http://kodi.wiki/view/Userdata_folder

https://discourse.osmc.tv/t/osmc-mysql-going-through-a-vpn-to-a-remote-server/54853

Modifié par Langer
Lien vers le commentaire
Partager sur d’autres sites

  • 6 mois après...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.