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 - NAS Synology : Domaine, sous-domaine, Reverse-Proxy et 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

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

Pour File Station : file.xxx.synology.me

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

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 applications synology - NAS Synology : Domaine, sous-domaine, Reverse-Proxy et HTTPS

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

regles proxy inverse synology - NAS Synology : Domaine, sous-domaine, Reverse-Proxy et HTTPS

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.

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

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.

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

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.

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

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

procurez vous un certificat synology - NAS Synology : Domaine, sous-domaine, Reverse-Proxy et HTTPS

Cliquez sur le bouton Suivant

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

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.

    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é.

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.