NAS Synology : Domaine, sous-domaine, Reverse-Proxy et HTTPS

Si vous utilisez plusieurs applications sur votre NAS et que vous souhaitez pouvoir y accéder depuis internet, en toute sécurité, ce tutoriel est fait pour vous. Nous ne reviendrons pas ici sur la création et l’utilisation d’un nom de domaine ni sur l’emploi d’un certificat Let’s Encrypt pour utiliser le HTTPS. Ces deux sujets ont fait l’objet de plusieurs articles ici sur Cachem et sur le Forum des NAS.

Synoloy reverse proxy https

Domaine, sous-domaine, Reverse-Proxy et https

Si ces notions vous sont étrangères, rassurez-vous, nous allons prendre le temps de les aborder tranquillement et si vous avez une question ou un doute… laisser un commentaire, nous serons ravis de vous aider.

Définitions

Les puristes m’excuseront, il ne s’agit pas de définitions officielles, mais cela doit-être accessible aux plus grands nombres.

Équipement

Matériel réseau pouvant être relié directement au réseau local (LAN). Cet équipement possède donc une adresse IP : PC, NAS, Box TV (u compris Apple TV et Nvidia Shield), Raspberry Pi…

Services / Applications

Applications pouvant être installées sur plusieurs équipements : Serveur Plex, Nextcloud, Bitwarden…

Application propriétaire

File station (application  Synology permettant l’accès aux dossiers/fichiers hébergé sur le NAS), QuMagie…

Docker

Docker pouvant être assimilé à une application hébergeant plusieurs services (Docker pour les Nuls) accessibles via Internet et possèdent un port réseau bien défini…

Sous-domaine

Avec un NAS, au fil du temps, nous installons des applications. Afin de les utiliser applications, nous allons utiliser un sous-domaine. Vous possédez un nom de domaine : xxxx.synology.me. J’installe Plex Server depuis le Centre de paquets. Je peux créer un sous-domaine : plex.xxx.synology.me. Idem avec File station (file.xxx.synology.me), le but étant de pouvoir partager des fichiers avec des membres de la famille et amis, sans ouvrir l’interface d’administration DSM via un navigateur. Même chose avec Docker, par exemple pour Bitwarden, j’ai créé un sous-domaine : mdp.xxx.synology.me

Dans tous les cas nous arrivons sur une page d’accueil et il faudra donc s’authentifier. Il sera nécessaire de créer au préalable un utilisateur et lui donner les droits d’accès correspondant…. et bien sûr l’URL type : https://mdp.xxx.synology.me.

Reverse Proxy

Application installée sur un équipement (ici un NAS ) dont le but est de rediriger les requêtes venues de l’extérieur (internet) vers l’application dédiée. C’est donc le Reverse proxy qui va rediriger le sous-domaine sur une application ou un service. Nous pouvons multiplier les exemples, la limite est celle de votre imagination. L’utilisateur arrivera sur la page d’accueil suivante :

Pour Bitwarden via Docker : mdp.xxx .synology.me

Pour File Station : file.xxx.synology.me

Avantage : tout passe par le sous-domaine. Plus besoin de se souvenir du port réseau et de faire les redirections de port sur la box opérateur. Dans mon cas, seuls les ports 443 (HTTPS) et 5001 (DSM ; File station ; photo station) sont redirigés depuis la box vers le NAS. Si vous avez plusieurs sous-domaines, je vous recommande de faire un petit tableau avec les services, les ports et les adresses IP. Sinon vous risquez , comme moi, de les oublier et lors d’ajouts et modifications. Mieux vaut connaître tous les ports utilisés et l’IP desservi. DSM de Synology intègre nativement un Reverse Proxy, idem avec ADM pour Asustor. Qnap n’a pas de Reverse Proxy intégré dans QTS, il faudra passer par un service tiers .

Les explications suivantes seront basées sur DSM, mais je pense qu’elles sont transposables chez Asustor  

Synology et Reverse Proxy

Comme indiqué précédemment, DSM intègre nativement un Reverse Proxy (Panneau de configuration / Portail des applications).

Portail des applications Synology

Aujourd’hui, nous allons créer un sous-domaine pour Bitwarden avec Docker (onglet Proxy inversé / bouton Créer).

Règles proxy inversé sur un NAS synology

Il suffit de valider avec OK et notre sous-domaine est créé. Plutôt simple ! Attention à bien vérifier dans destination / Port que le port indiqué est bien celui de Bitwarden.

Remarques : Pour toutes les applications hébergées sur le NAS sur lequel est configuré le Reverse-Proxy. Dans destination , le nom d’hôte sera invariablement : localhost. Si je veux rediriger vers un autre équipement du réseau il faudra indiquer son IP LAN : 192.168.xyz.xyz.

Pour File station  et les services internes de Synology, il va falloir définir le nom de sous-domaine dans : Portail des Applications / Application  puis modifier après d’avoir sélectionné une application.

En validant par OK le nom de sous-domaine est créé, il n’y a rien d’autre à configurer.

Sous-domaines et HTTPS

Comme moi, vous utilisez déjà une connexion sécurisée pour accéder à votre NAS. Comme des grands(es), vous avez installé un certificat Let’S Encrypt valide avec votre nom de domaine. Quid des sous-domaines ? Let’s Encrypt gratuit et renouvelable automatiquement  accepte les sous-domaines. Il me semble que le nombre de sous-domaines pouvant être géré n’est pas illimité, mais cela conviendra au plus grand nombre. Il est inutile de supprimer le certificat existant, nous allons le remplacer manuellement et son renouvellement sera automatique sous domaine compris. Magique !

Rendez-vous dans : Panneau de configuration / Sécurité / Certificat. Le certificat valide doit apparaître, cliquer sur Ajouter puis sélectionner l’option Remplacer un certificat existant.

En cliquant sur suivant, vous devez avoir cet écran :

Cliquez sur le bouton Suivant

Nom de domaine : Vous inscrivez votre nom de domaine : xxx.synology.me.

Courrier électronique : en cliquant sur la petite flèche de droite, vous devez retrouver l’adresse électronique utilisée par le précédent certificat.

Autre nom de l’objet : c’est à cet endroit que l’on inscrira les sous-domaines séparés par des virgules : file.xxx.synology.me, mdp.xxx.synology.me…

Cliquez sur Appliquer et si je n’ai rien omis et sauf erreur : tout est OK.

Vous pouvez vérifier dans Panneau de configuration / Sécurité / Certificat que les sous-domaines apparaissent bien dans : autre nom de l’objet. Dérouler le certificat par défaut pour avoir accès à toutes les informations.

Conclusion

Les possibilités avec un sous-domaine / reverse Proxy sont nombreuses, impossible ici d’en faire l’inventaire. Le but est de montrer l’ utilité, la configuration et l’utilisation de ces outils.

À vous de jouer et d’innover !

  1. Bonjour,
    Merci pour l’article, ça m’intéresse beaucoup mais niveau sécurité ce n’est pas dangereux de laisser l’accès à l’extérieur ?

    1. Hello Julien,

      Oui et non… Il existe de nombreux outils embarqués dans le NAS pour la sécurité (Pare-feu, blocage automatique après n connexions infructueuses, filtrage suivant le pays de l’IP…). Tu peux aussi activer un pare-feu et règle de sécurité suivant ta box/routeur (généralement limité). Mais il y a une chose de sûr en informatique et plus particulièrement sur internet : le risque 0 n’existe pas. Tu peux t’en approcher, mais il y aura toujours un petit risque.

    2. Il est également possible de restreindre certains utilisateurs selon le réseau sur lequel ils sont. Par exemple, on peut très bien ouvrir DSM sur internet mais restreindre la connexion des comtes admin uniquement depuis une IP locale.
      Autre astuce, utiliser des ports personnalisés (éviter de laisser DSM et les autres app sur les ports par défaut qui sont connus).
      Enfin le routeur peut être configuré pour n’autoriser que des IP géographiquement identifiées (très simple à mettre en œuvre dans SRM). Inutile d’ouvrir son NAS au monde entier en permanence.

      On est bien d’accord que ces mesures n’empêcheront jamais une intrusion, mais elles permettent au moins de les limiter.

        1. Mieux vaut tard que jamais (je découvre votre réponse à l’instant…)
          Pour retreindre la connexion de l’admin sur un DSM ouvert sur internet, il faut aller dans la gestion du groupe « Administrators » > Applications > DSM et cocher la case « Par IP ».
          A ce stade on peut définir depuis quelle(s) IP(s) un admin peu accéder à DSM.
          On peut alors préciser une IP locale unique du type 192.168.1.23 ou alors cibler tout son réseau local en saisissant 192.168.1.0 et 255.255.255.0 dans le masque de sous-réseau.
          Pour vérifier, rien de plus simple : en cherchant à se connecter via un compte admin depuis une IP non autorisée, DSM indiquera : « Vous n’êtes pas autorisé à utiliser ce service ».

    3. Le reverse proxy va justement te servir d’intermédiaire de sécurité :
      La ré-écriture programmable des URL permet de masquer et de contrôler l’architecture de ton site web interne.
      Il va aussi permettre un filtrage en un point unique des accès externes vers ton réseau interne.
      Si je ne me trompe pas, tu peux même y ajouter un service d’authentification.

      En gros, les requêtes extérieurs serons reçues par le proxy qui vérifie si elles sont conformes aux règles de sécurité que tu lui a donné AVANT de les retransmettre à ton serveur WEB.

  2. Concernant Let’s Encrypt et les sous domaine, il est inutile de faire ceci:
    « c’est à cet endroit que l’on inscrira les sous-domaines séparés par des virgules : file.xxx.synology.me, mdp.xxx.synology.me »

    Il suffit de saisir uniquement *.xxx.synology.me pour que tous les sous domaines existants ou à venir liés à votre nom de domaine délivré par Synology soient déclarés avec votre nom de domaine.
    Ainsi demain si vous utilisez le sous domaine toto.xxx.synology.me, celui ci sera automatiquement reconnu par le certificat en cours sans aucune intervention de votre part.
    C’est bien plus simple et efficace.

    1. Bonjour
      Sur mon DS920+ avec DSM à jour, il n’accepte pas le *. sur les domaines personnalisés.
      Il m’indique « Seuls les domaines Synology DDNS prennent en charge les certificats générique émis par Let’s Encrypt. »

  3. Précision à mon post ci-dessus:
    Il me semble que c’est à partir de DSM 6.2.3 que Synology offre cette possiblité (Let’s Encrypt wildcard) avec les noms de domaine synology.
    Pour les versions anterieures, il faut déclarer les sous domaines un à un comme indiqué justement dans l’article.

    1. Merci Michel , je connaissait l’astuce Let’S Encrypt Wildcard ; mais je ne sais s’il y a une limitation en fonction de la version de DSM
      Le pb est que l’on est jamais à l’abri des modifications de l’utilisation des certificats

    2. De plus, le « * » est limité aux domaines *.xxx.synology.me
      Quand on utilise un domaine perso, pas d’autre choix que de gérer sous-domaine par sous-domaine.

  4. Bonjour à tous, pour l accès à Dsm il est possible d utiliser le reverse proxy pour ne pas ouvrir le port 5000/5001 sur le nas/box.

    Pour mon nom de domaine je passe par cloudflare « certificat serveur d origine » pour générer une wildcard
    que j intègre a mon nas (*.my.domaine). je mets ensuite la configuration ssl/tls en mode complet/strict dans mes options sur cloudflare.

  5. Bonjour

    L’accès aux services avec le Reverse-Proxy fonctionne quand je place https:// avant mon domaine perso. Sans https:// ça ne fonctionne pas.
    Y a t-il une solution ?

    Merci

    1. OUI il y a une solution , mais je pense qu’il faudra re-faire un article . Je le proposerais à Fx seul maître à bord !

      1. C’est quoi l’astuce pour le HTTP ?
        Une doc quelque part ?
        C’est assez pénible de ne pas oublier le HTTPS.
        Merci

    1. @chris : Au niveau de la configuration du Reverse Proxy Synology de ton sous-domaine, tu dois avoir « Enable access control » ou quelque chose comme cela. Tu affectes une liste d’accès qui ne contient que les IPs locales.

  6. @Cmoi

    – ton port 80 de ta box et nas est il bien ouvert et côté box est il dirigé vers l adresse ip de ton Nas ?

    – le reverse proxy a t il pour destination un service en https ? Ou le port de destination est il 443 ?

  7. Merci beaucoup pour ce tutoriel super utile !
    Pour peaufiner l’installation, comment faire en sorte que les requîtes sur http://mdp.XXX.synology.me... soient renvoyées sur https://mdp.XXX.synology.me ?
    Je pensai que c’était à cela que servait la checkbox « Activer HSTS » mais visiblement ce n’est pas le cas, cela me renvoie sur le port 5001…
    En tout cas merci beaucoup, top !

    1. Je m’auto répond 😀
      C’est juste que j’avais coché la case « rediriger automatiquement les connexions http vers https pour le bureau DSM » (DSM 7 beta).
      Du coup, une fois décoché cela fonctionne tip top

  8. Bonjour, super tuto, mais existe-t-il un moyen de rediriger une requête externe vers un sous-dossier d’une site ?

    Je m’explique, j’ai un serveur Tomcat embarqué dans un conteneur Docker. Se dernier est accessible sur mon réseau local via l’adresse http://IP_DU_NAS:8080...
    Ce serveur Tomcat héberge un site MACHIN, qui est accessible en local via l’adresse http://IP_DU_NAS:8080/MACHIN.

    Je n’ai pas réussi à configurer le reverse proxy en redirigeant le sous domaine

    machin.mon-nas.synology.me

    vers

    IP_DU_NAS:8080/MACHIN

    Je peux faire une redirection sur IP_DU_NAS:8080 mais pas vers /MACHIN.

    Ai-je raté quelque chose ?

  9. Le reverse proxy a le mérite d’exister chez Syno c’est vrai. Encore qu’il y’avait HAproxy avant.

    Mais j’ai toujours trouvé les menus peu clair. (entre les applications officielles Synology et les truc à la main, docker ou paquets community), et avec docker pour pouvoir toucher au shell des images docker en reverse proxy ça bloque (erreur : socket closed , il faut aussi trouver une autre astuce)

    Pour automatiquement les adresses en http vers https, j’ai mis en place la redirection via le fichier .htaccess, comme sur les tutos qu’on trouve sur tant de sites.
    -> Je n’ai aucune idée de la fiabilité/sécurité de cette manip pour tout dire. Ca vaut quelque chose ?

    Et sinon, je n’ai jamais vraiment expérimenté et j’ai donc une question :
    – Les certificats Let’s Encrypt sont-t-ils automatiquement renouvelés tous les 3 mois ? (j’ai lu que oui si les ports 80 et 443 du routeurs étaient redirigés vers le NAS).

    Si quelqu’un peu affirmer ou infirmer ça m’intéresse +++ ! 🙂

    1. > Les certificats Let’s Encrypt sont-t-ils automatiquement renouvelés tous les 3 mois ? (j’ai lu que oui si les ports 80 et 443 du routeurs étaient redirigés vers le NAS).

      Oui, les certificats sont renouvelés automatiquement (avant le délai de 3 mois pour avoir une marge de sécurité) si le port 80 correspondant à ton domaine est accessible depuis les serveurs let’s encrypt.
      Le souci est qu’il faut donc autoriser l’accès à ces domaines:port aux serveurs let’s encrypt et que c’est contradictoire avec des règles de sécurité qui n’autorisent que certaines IPs (let’s encrypt ne communique pas la liste de ces IPs).

      1. Donc une solution serait de ne pas filtrer les ip dans le pare-feu de Synology ? (ce que je n’utilise pas dans les faits)

  10. Hello,
    Petite question qui me reste depuis longtemps en tête :

    Pour une application interne Synology, quelle différence entre déclarer un sous domaine au niveau de l’application OU déclarer des ports personnalisés + reverse proxy ?

    Les 2 méthodes semblent mener au même résultat mais il y a-t-il un avantage pour l’une que je ne saisis pas ?
    Merci

  11. Bonjour, merci pour ce tuto bien utile. As-tu Plex serveur sur ton NAS et si oui, est-il possible de mettre en place un reverse proxy pour ce service ? Plex est particulier puisque tu ne te connectes pas directement sur ton serveur mais via leur site app.plex.tv qui redirige vers ton NAS.
    merci

  12. Pourquoi pas créer un conteneur nginx proxy manager sur docker afin de faire du reverse proxy ! Et d’être dépend du service Synology.
    Surtout si migration sur un autre NAS autre que Syno !

  13. Bonjour,
    Je trouve votre article très intéressant. Malheureusement cela fait quelques mois… Enfin depuis que j’ai acheté le NAS, que je n’arrive pas à m’y connecter en https (sécurisé). Et je tourne en rond.
    Pourriez-vous m’aider ?
    Merci d’avance.
    PS : N’hésitez pas à me contacter en message privé.

  14. Bonjour,

    Je viens de suivre ton tuto (merci au passage), mais j’ai un problème.
    Toute mes redirections reviennent toujours sur l’écran de connexion principal du nas.
    J’utilise un domaine avec synology.me est-ce un problème.

    en vous remerciant

    1. Bonjour,

      problème résolu
      c’était un problème de configuration de port en entrée, je n’arrive pas par le 443 , j’ai des NAT avant.

      bonne journée

  15. Bonjour tout le monde,
    j’ai lu très attentivement ce tuto en espérant trouver une solution à ma problématique mais en fait non 🙂
    J’ai deux NAS à la maison (donc sur le même réseau) qui doivent être connectés individuellement chacun à un site distant pour effectuer des sauvegardes.
    En bref le NAS A doit communiquer avec le site A et le NAS B doit communiquer avec le site B.
    Le problème c’est que je ne trouve pas le moyen de modifier les ports pour Active Backup (et il y en a beaucoup) afin que chacun des NAS soit reconnu en tant que NAS A et NAS B en paramétrant le pare-feu.
    J’ai modifié le port de base 5000 et 5001 pour les 2 NAS et sur le pare-feu, ça c’est OK puisqu’il y a un onglet dans le DSM pour les modifier mais pour tous les autres :
    5510 (Synology NAS)
    443 (vCenter Server et hôte ESXi), 902 (hôte ESXi)
    445 (SMB pour l’hôte Hyper-V),
    5985 (HTTP pour l’hôte Hyper-V),
    5986 (HTTPS pour l’hôte Hyper-V)
    Je suis largué…
    Aujourd’hui je suis obligé de modifier mon pare-feu à chaque connexion vers le NAS A ou le NAS B…
    Merci et bonnes fêtes
    Ethan

  16. Bonjour,
    J’ai fait la configuration avec le proxy inversé et j’ai bien accès depuis l’exterieur aux applications Synology drive, video, photo depuis le navigateur.
    Par contre j’ai des soucis pour l’accès depuis l’exterieur avec les applications Android.

    Avez-vous réussi à les configurer ?

  17. Bonjour,

    Je suis confronté à un problème d’accès extérieur depuis ma migration à la fibre redsfr. J’ai compris qu’ils forçaient pour basculer en IPV6 et qu’on ne pouvait plus configurer de redirection des ports en IPV4. (IPV6+IPV4 CGNAT ils appellent çà !)

    J’ai donc configurer le parefeu IPV6 de ma Box SFR pour renvoyer vers mon NAS et le reverse proxy qui redispatche vers les bons services (Domoticz sur Raspberry, wordpress sur NAS, etc…).

    Lorsque je suis en local, ca semble fonctionner en utilisant l’alias configuré avec le DynDNS de Synology. J’accède a Domoticz en tapant par exemple domoticz.MON_ALIAS.myds.me.

    Par contre depuis l’extérieur (boulot, mobile en 4G) ca ne fonctionne pas…
    Je constate que depuis le boulot je ne suis pas en IPV6 et depuis mon mobile non plus, est ce que ca vient de là ? Je n’ai pas encore trouvé comment tester de l’extérieur en IPV6…
    Si ca n’a rien voir, d’où pourrais venir le problème selon vous ?

    Merci pour votre aide !

  18. Bonjour, merci pour le post.
    Evidemment j’ai un souci.
    Les applications Synology marchent parfaitement, mais aucune autre application installée sur le NAS ou ailleurs.

    Pour exemple https://mondomaine/appli1... et réécrit https://mondomaine:port1/appli1

    port1 étant le port HTTPS du DSM…

    La redirection HTTP vers HTTPS est désactivée
    HSTS est activé
    HTTP/2 est activé

    Une idée ?

    Merci et bonne journée

  19. Bonjour, je deterre ce post car pour ma part le reverse proxy fonctionne a merveille et de tels tutos sont toujour les bienvenus afin d’aider à comprendre le fonctionnement avancé de ces fonctions.
    Toutefois il me reste une question, en effet le reverse proxy fonctionne à merveille via un certificat Let’s Encrypt et l’accès extérieur aux container docker se fait sans soucis (juste faire attention à l’IP cible de certains docker qui créent des sous réseaux différents, cela doit pouvoir se modifier en créant le docker et si certains ont des pistes elles sont les bienvenues).
    Toutefois une question reste ouverte pour ma part, en effet il est possible d’attribuer des profils de controlés d’accès ce qui limiteencore plus les risques de connexion inapropriés car ces règles sotn à base d’IP, toutefois est il possible (ou comment est il possible) de créer des règles d’accès via login si les app auquels nous souhaitont acceder n’embarquent pas par défaut de telles fonctions?

    Toute aide serait la bienvenue.

    Merci par avance à la communauté des utilisateurs synology.

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.