Dés qu’on commence à avoir plusieurs appareils connectés chez soi et que l’on désire pouvoir y accéder de l’extérieur, cela peut vite devenir un casse tête. Notamment dans le cadre de la domotique où les objets connectés peuvent vite envahir la maison et bien évidemment pour les objets non clouds l’accès depuis l’extérieur peut vite devenir un casse tête pour certains. Je lis souvent des personnes se poser la question tout en constatant qu’elles possèdent un Nas Synology. C’est la raison pour laquelle j’ai décidé aujourd’hui de vous parler de reverse proxy sur Nas Synology et SSL. Alors il y a un tas de manière pour mettre en place un Reverse Proxy notamment avec un simple Raspberry Pi mais ce sera l’objet d’un autre article.

Reverse Proxy sur Nas Synology

Définition du reverse Proxy sur Nas Synology

Alors ma définition à mon habitude sera simple. L’idée est de comprendre facilement pas de détailler techniquement le fonctionnement (il y a Wikipedia pour cela). Donc un reverse proxy permet de manière simple de diriger les communications extérieures vers un équipement de votre maison. Rien ne vaut un exemple, admettons que mon adresse externe est :  demoblog.maison.com le reverse proxy permettra :

  • de diriger  jeedom.demoblog.maison.com vers ma box jeedom
  • camera.demoblog.maison.com vers ma camera
  • nas.demoblog.maison.com vers mon nas
  • kodi.demoblog.maison.com vers mon kodi
  • etc…..

Donc vous l’avez compris le reverse proxy permet d’agir comme un policier qui ferait la circulation.

Reverse Proxy sur Nas Synology

Un autre gros avantage du reverse proxy est de ne pas à avoir à ouvrir un nombre incalculable de port sur votre routeur ou votre box internet. Ce qui évite que votre accès externe ne ressemble à ceci

Reverse Proxy sur Nas Synology

Super mais comment on met en place un reverse proxy sur Nas Synology ?

Alors vous pouvez être rassuré, tout est natif sur Synology. (très probablement à partir de DSM6 à confirmer)

Reverse Proxy sur Nas Synology

Il suffit de se rendre dans le panneau de configuration.

Reverse Proxy sur Nas Synology

Ensuite il suffit de cliquer sur “Portail des applications” même si je vous avoue être perturbé par le fait que la fonction de reverse proxy soit cachée dans ce menu.

Reverse Proxy sur Nas Synology

Et voilà on retrouve enfin notre menu “Proxy inversé” pour “Reverse Proxy”

Reverse Proxy sur Nas Synology

Bref continuons !!

Reverse Proxy sur Nas Synology

Ensuite en toute logique il suffit de cliquer sur “Créer”

Reverse Proxy sur Nas Synology

On retrouve ensuite une page de configuration pour notre règle de reverse proxy :

  • Description : ici on donnera un nom à notre règle
  • Protocole Source :  ici on choisira si notre connexion externe (entrante) sera en HTTP ou en HTTPS
  • Nom d’hôte :  ici ce sera l’adresse complète externe de la route que l’on va créer : Exemple :   jeedom.demoblog.maison.com
  • Port : c’est le port du Nas vers lequel vous avez configuré votre routeur ou votre box internet pour rediriger les connections entrantes (oui il faudra bien configurer votre routeur ou box pour orienter tout ce qui sera port 80 (HTTP) et port 443 (HTTPS) vers un des ports du NAS.

Mais au final vous redirigerez uniquement le port 80 et le port 443. Derrière c’est le reverse proxy du Nas qui fera le reste

  • Activer HSTS et HTTP/2 sont des options uniquement utiles dans le cas de HTTPS que je vous conseille de cocher
  • Protocole Destination : là on parle du protocole de redirection interne à votre réseau local (donc en l’occurrence ici il n’est pas risqué de faire toutes les routes locales en HTTP
  • Nom d’hôte destination : ici ce sera l’adresse IP du device sur votre réseau local
  • Port destination : tout comme précédemment ici ce sera le port sur votre réseau local (généralement 80 si HTTP et 443 si HTTPS)

Reverse Proxy sur Nas Synology

Compliqué !!

Exemple

Alors rien ne vaut un exemple car là je dois l’avouer il est très difficile par écrit de rendre le tout clair. On va prendre un de mes “Reverse Proxy”, celui me permettant d’accéder à mon Jeedom :


Reverse Proxy sur Nas Synology

Voilà à quoi ressemble la configuration. Donc pour schématiser à partir de là ce qu’il va se passer voici le cheminement :

  • Je suis à l’extérieur de chez moi et je me connecte sur : https://jeedom.demoblog.maison.com (donc le port 443)
  • Ma box ou mon routeur redirige tout cela sans s’en occuper vers le Nas sur le port 5001 (configuration à faire de votre côté)
  • Le nas reçoit sur son port 5001 une demande d’accès pour https://jeedom.demoblog.maison.com
  • Le nas est content il connait une règle pour https://jeedom.demoblog.maison.com sur le port 5001
  • La règle lui dit de rediriger ça sur l’équipement local en HTTP avec l’IP 192.168.1.148 (qui est l’adresse locale de mon jeedom)
  • Moi en tant qu’utilisateur je vois  mon Jeedom à l’écran de manière limpide alors que “la vache” il s’en est passé des choses.

Reverse Proxy sur Nas Synology

Epaté !!

J’insiste sur un point il faut bien évidemment que demoblog.maison.com soit configuré en DynDnS. Mais comme tout possesseur de Synology vous avez obligatoirement un DNS externe. Après cela peut-être un no-ip ou quoique ce soit d’autres.

Alors maintenant que vous avez une règle. Sachez que vous pouvez en créer autant que vous voulez sur la même base en changeant juste le premier mot avant  demoblog.maison.com.

  • kodi
  • camera
  • nas
  • un service spécial du nas comme videostation
  • etc….

SSL mise en place

Alors pour peaufiner votre accès externe vous avez tous entendu parler de HTTPS

Reverse Proxy sur Nas Synology

AHHH Si Si j’en parle au dessus dans l’article 😉

Le HTTPS c’est bien c’est sécurisé, mais l’inconvénient c’est qu’il faut un certificat valide sous peine d’avoir un joli message sur votre navigateur vous avertissant : “BLABLABLA Certificat non valide voulez vous balbalbalba continuer”. Vous avez tous déjà croisé ce message qui ressemble à ça :

Reverse Proxy sur Nas Synology

C’est là qu’intervient  Let’s Encrypt. Je ne vais pas vous détailler ce que c’est, notre ami Lunarok l’a déjà fait ICI. Par contre il est bon de noter que Synology intègre directement la configuration d’un certificat Let’s Encrypt en natif.

Ah bon où ?

Reverse Proxy sur Nas Synology

On se rend de nouveau sur le panneau de configuration.

Reverse Proxy sur Nas Synology

On clique sur l’onglet “Sécurité” puisqu’en effet la création d’un certificat est relative à la sécurité.

Reverse Proxy sur Nas Synology

Ensuite il nous suffit de se rendre sur l’onglet certificat.

Reverse Proxy sur Nas Synology

Et de cliquer sur “AJOUTER”

Reverse Proxy sur Nas Synology

Deux options se proposent à nous :

  • Créer un nouveau certificat
  • Remplacer un certificat existant

C’est bien entendu la première qui nous intéresse ici.

Reverse Proxy sur Nas Synology

De nombreuses options, comme l’import d’un certificat ou la création d’un certificat directement depuis un site spécialisé sont disponibles. On notera l’apparition depuis quelques versions déjà de l’option “Let’s Encrypt” qui est celle qui va nous intéresser ici.

Reverse Proxy sur Nas Synology

Finalement on retrouve la dernière fenêtre qui est celle de configuration :

  • Nom de domaine : dans notre exemple jeedom.demoblog.maison.com
  • Une adresse mail : obligatoire et très importante puisque c’est sur celle-ci que vous recevrez l’éventuel statut d’expiration de votre certificat.
  • Le dernier champ quant à lui je n’ai jamais eu à m’en servir

Voilà une fois fait vous aurez un certificat valide pour le nom de domaine

IMPORTANT :

  • la validation du certificat à la création nécessite une vérification au travers du port 80 et du port 443, il est donc nécessaire de router (depuis votre routeur ou votre box internet) ces deux ports pour la création et la génération de votre certificat. Si il y a un soucis une fenêtre vous détaillera ce qui ne va pas
  • il faut créer AUTANT de certificat que vous avez besoin. Si vous voulez accéder à kodi, à votre caméra, à Jeedom en https et avoir un certificat valide il faudra réitérer les étapes précédentes pour chacun des domaines.

PETITE ASTUCE D’UN COMMENTAIRE

Petite astuce complémentaire que j’utilise : plutôt que de faire autant de certificats SSL que de services à joindre, un seul certificat unique pour les certifier tous, en créant un certificat SAN (Subjetc Alterenate Name), ce que supporte letsencryppt:
Au moment de créer le certificat, mettre tous les noms séparés par des point-virgules dans le champ “Autre nom de l’objet”… C’est ultra pratique et fait gagner un temps fou pour tout ce qui est renouvellement de certificat 😉

Conclusion

On arrive à la fin de cet article. Alors je suis conscient que c’est un article un peu linéaire. Mais je voulais vous donner au moins les pistes de mise en place pour un premier article. Je pense que je reviendrai plusieurs fois sur le sujet HTTPS et reverse proxy, que ce soit sur mon article SqueezeBox, ou l’article final de la baie de brassage. En attendant vous avez avec cet article les pistes d’investigations pour essayer de votre côté et voir le potentiel énorme et le côté confortable de cette mise en place.



Partager sur :

Infos de l'auteur

Je m’appelle Ludovic Sarakha j’ai 32 ans et je suis habitant de Clermont-Ferrand. Concernant les études il faut savoir que bien que j’ai travaillé dans l’informatique (SSII internationale) et maintenant dans la domotique, j’ai un doctorat de Chimie des matériaux. Je suis un autodidacte passioné d'informatique, de domotique et de tout ce qui tourne autour des objets connectés

86 commentaires

  1. Bonjour et merci pour le tuto.

    Je m’aperçois que cela fonctionne avec le dsn fournit par synology ( *.synology.me ) mais pas avec mon nom de domaine habituel. A creuser.

  2. Bonjour Ludovic
    Dans la partie des certificats, tu indiques qu’il faut router les ports 80 et 443. Mais vers où faut-il les router?
    Je l’ai fait sur le même port que le port d’écoute du NAS pour le reverse proxy, mais j’ai une erreur à la création de certificat.
    Merci d’avance

  3. dans ton routeur, tu fais des regles de transmission de port pour 80 et 443 vers l’ip de ton nas. il faut verifier le parefeu du routeur pour qu’il laisse passer ces ports vers ton nas et le parefeu de ton nas egalement pour pas qu’il les bloque

  4. Bonjour,
    j’ai naté les ports 80 et 443 de ma box vers les 5000 et 5001.
    un nom de domaine public est déclaré
    l’accès à DSM fonctionne très bien de cette manière

    j’ai créé des alias DNS nas, drive, ….
    et déclaré ces alias dans le reverse proxy du portail d’application
    puis déclaré les destinations

    et il ne se passe rien quand j’accède aux URL à part qu’il me renvoie sur DSM et sur rien d’autre

    help

  5. Bonjour à tous !
    article très instructif avec une approche simple pour moi qui trouve que mon SYNO est une usine à gaz !

    Est ce que cette solution “reverse proxy” me permettrais de me connecter à DSM en ne tapant que mon nom de domaine sans y mettre de port derrière ? idem pour tous les services du SYNO ?
    J’ai tenté une redirection chez mon registrar (OVH) en ciblant le domaine avec le port, mais le Syno devient injoignable lorsque ma connexion VPN client est activé sur le NAS.

    Merci

  6. Bonjour,

    merci beaucoup pour ce tutoriel.

    Je rencontre des difficultés pour générer mon certificat letsencrypt.

    Voici ma configuration :
    Divers sous domaines chez ovh qui pointent vers ma livebox,
    La livebox route les ports 80 et 443 vers un Nas Synology,
    Le nas joue le rôle de reverse proxy et renvoie les requêtes de mon sous domaine Jeedom (port 443) sur un raspberry pi sur le port 80.

    Letsencrypt ne parvient pas à générer un certificat pour le sous domaine consacré à jeedom.

    Je précise que j’ai des certificats valides pour tous mes sous domaines liés à des services fournis par le nas (DSM, disk station, etc…). Le seul sous domaine posant problème est celui là.

    Avez-vous des idées ?

    Loïc

  7. Bonjour,

    Merci du tuto.
    Afin de limiter les problèmes de certificats sur l’URL et de création de CNAME chez le registrar, plutôt qu’attaquer le reverse proxy en identifiant la destination par la racine de l’URL (ex: Jeedom.mondomaine.fr et cameraXX.mondomaine.fr…), pourrait’on le faire sur l’extension de l’URL (ex: maison.mondomaine.fr/Jeedomm et maison.mondomaine.fr/cameraXX) ?

    Cdlt

  8. J’ai besoin d’un petit conseil, tout fonctionne bien pour jeedom avec le reverse proxy, y compris telegram mais je viens de remarquer qu’en extérieur, je n’ai pas besoin de mettre le code à double facteur pour entrer dans jeedom. j’en déduis qu’il pense que je suis sur le réseau local du coup. Avez-vous le même souci ou bien comment avez-vous fait pour régler ce problème. Je ne suis pas sous Synology mais HPGen 8 avec OpenMediaVault 3. Mais pour les réglages, ça se rejoint.

  9. Bonsoir,
    Super tuto. Bravo !!
    En revanche as tu une astuce pour que chaque nas utilise son propre certificat ssl dans le cas où tu à 2 nas nas1.exemple.fr et nas2.exemple.com derrière un box orange . Nginx sur nas1 qui redirige nas2.exemple.com vers nas2. Actuellement ma redirection fonctionne bien mais le certificats utilisé est celui de nas1.
    Merci d’avance

Laisser un commentaire