[Tuto] Utilisation de l’accès à distance officiel (DNS Jeedom) avec un Docker Synology

Bonjour,

Le but de ce tuto est de pouvoir utiliser l’accès à distance officiel (via les DNS Jeedom) sur un Docker si vous avez acheté un Pack Jeedom (pack Power ou Ultimate).

Pour ma part, je ne souhaite pas exposer mon Jeedom sur Internet. Du coup, j’utilisais jusqu’à présent un VPN.
Par contre, c’est pénible à utiliser et s’il n’y a pas de VPN configuré sur l’équipement depuis lequel on veut accéder à Jeedom, c’est galère!

Mon idée était donc d’activer cet accès plus simplement.
L’idée est de simplement demander à Alexa (via l’application installé sur mon mobile) d’activer l’accès à distance ou de le couper.
Bien plus simple!

Par contre, comme vous le savez certainement, Docker n’est pas officiellement supporté par Jeedom.

L’installation d’OpenVPN va poser un problème. Voici ce que l’on va retrouver dans les logs du démon :

ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)




On va donc y remédier.

Pour cela, créez le script tun.sh (vous pouvez installer un éditeur de texte via les packages Synology) avec le contenu (script trouvé sur le net) :

#!/bin/sh

# Create the necessary file structure for /dev/net/tun
if ( [ ! -c /dev/net/tun ] ); then
  if ( [ ! -d /dev/net ] ); then
    mkdir -m 755 /dev/net
  fi
  mknod /dev/net/tun c 10 200
fi

# Load the tun module if not already loaded
if ( !(lsmod | grep -q "^tun\s") ); then
  insmod /lib/modules/tun.ko
fi

# Load iptables mangle is not already loaded
if ( !(lsmod |grep -q "^iptable_mangle\s") ); then
  insmod /lib/modules/iptable_mangle.ko
fi

Pour ma part, je l’ai enregistré dans : `/volume1/docker/tun/`

Ensuite, il faut ajouter ce script dans le planificateur de tâches pour qu’il s’exécute au démarrage.

Cela se passe ici : Panneau de configuration > Planificateur de tâches > Créer > Tâche déclenchée > Script défini par l’utilisateur :

  • Tâche : Saisir un nom pour votre script
  • Utilisateur : root
  • Evénement : Démarrage
  • Cocher « Activé »

Sous l’onglet « Paramètres de tâche »
Sous « Script défini par l’utilisateur » :
/volume1/docker/tun/tun.sh
(Correspond à l’emplacement et au nom de votre script bien entendu).

Vous n’avez pas besoin de redémarrer votre NAS. Il suffit de sélectionner le script (dans le planificateur de tâches) et de l’exécuter manuellement.

Vous n’avez plus qu’à relancer le démon OpenVPN (ou attendre) dans Jeedom et vérifier les logs.

A ce stade, le démon ne devrait plus générer d’erreur mais Jeedom sera redirigé vers le port 80 de votre interface de NAS.
Il va donc falloir faire des redirections.

Pour cela, allez dans : Panneau de configuration > Applications > Portail des applications > Proxy inversé
Et rajouter deux règles :

Règle 1 :

  • Description : Ce que vous voulez… Ici on parle de redirection du port 80
  • Source Protocole : HTTP
  • Source Nom d’hôte : votre adresse externe de Jeedom (ex : monlogin123.dns53.jeedom.com)
  • Source Port : 80
  • Destination Protocole : HTTP
  • Destination nom d’hôte : localhost
  • Destination Port : le port Apache de votre Docker

Règle 2 :

  • Description : Ce que vous voulez… Ici on parle de redirection du port 443
  • Source Protocole : HTTPS
  • Source Nom d’hôte : votre adresse externe de Jeedom (ex : monlogin123.dns53.jeedom.com)
  • Source Port : 443
  • Destination Procole : HTTPS
  • Destination nom d’hôte : localhost
  • Destination Port : le port Apache de votre Docker

Et voilà… Normalement vous devriez avoir accès à votre Jeedom sous Docker Syno depuis l’extérieur.
En espérant que cela va aider au moins une personne ;)

1 J'aime