redirection de ports vers un nas et serveur DNS

Dans ce billet, je vais vous expliquer comment paramétrer la redirection de ports de votre routeur pour pouvoir accéder à votre NAS depuis l’extérieur de votre réseau. On utilisera pour ça une connexion sécurisée HTTPS. J’en profiterai pour vous parler de l’intérêt d’installer un serveur DNS local.

J’utilise un NAS pour la sauvegarde en continu de mes documents personnels et de mes photos. Dans certains cas, il m’arrive d’avoir besoin d’accéder à ces fichiers même quand je ne suis pas chez moi. Pour ce faire, j’ai “ouvert” l’accès à mon NAS depuis l’extérieur du réseau grâce à la redirection de ports.

Avant de commencer, je vais présenter tous les outils que j’utilise chez moi. La procédure sera donc détaillée pour ces outils spécifiques, mais doit être transposable à d’autres configurations. J’ai donc à ma disposition :

  • une Freebox V8,
  • un NAS Synology 213j avec DSM 6.2.2,
  • un nom de domaine fournit par OVH.

Par souci de confidentialité, on supposera que l’adresse depuis laquelle je souhaite accéder à mes documents est monnas.dorian-depriester.fr

Redirection des ports du routeur

Par défaut, une machine locale du réseau est injoignable depuis l’extérieur car elle “cachée” derrière un routeur. Le principe de la redirection de ports est de rediriger toutes les requêtes envoyées au routeur depuis l’extérieur vers une machine du réseau local. Les ports concernés dépendent donc du type de requête (ex : 21 pour FTP, 80 pour http etc.).

A priori, n’importe quel routeur digne de ce nom permet ce paramétrage. Avec un NAS synology, il existe un utilitaire tout en un qui s’occupe de ce paramétrage pour vous dans “Panneau de configuration> Accès externe”, onglet “Configuration du Routeur” puis bouton du même nom. L’utilitaire va d’abord tenter d’identifier tout seul le type de routeur parmis sa base de donnée, puis vous demandera le code d’administration du routeur :

Une fois fait, vous pouvez créer une configuration soit en sélectionnant les applications du NAS que vous souhaitez rendre accessibles depuis l’extérieur, soit en définissant vous-même la liste des ports à transférer.

Chez moi, ça ressemble donc à ça :

Normalement, vous devriez maintenant pouvoir accéder à votre NAS depuis l’extérieur. POur tester la connexion, vous pouvez essayer de vous connecter à l’interface web en utilisation l’adresse IP du routeur (que vous pouvez par exemple déterminer ici).

Utilisation d’un nom de domaine

Par défaut, les FAI fournissent des adresses IP dynamiques aux clients particuliers, donc l’adresse risque de changer de temps à autres. Pour pallier celà, il existe deux solutions :

  • demander une IP fixe (ou full-stack chez Free), si votre hébergeur vous le permet,
  • utiliser un service dit DDNS.

La deuxième solution consiste à utiliser un service tiers qui suit en continu l’adresse IP de la box, fournissant ainsi une adresse constante même si l’IP change. On peut citer DynDNS, No-IP ou DynHost. Précisons que les clients OVH ont droit au service DynHost gratuit, et ça c’est plutôt cool !

Pour la suite de ma démonstration, je vais faire l’hypothèse que vous avez réussi à définir le nom de domaine suivant : monnas.domain.fr.

Ajouter un certificat

Pour assurer un maximum de sécurité, on va maintenant mettre en place la connexion sécurisée HTTPS avec certificat SSL/TLS. Pour ce faire, on a utiliser le fournisseur gratuit mais non moins performant Let’s Encrypt.

Dans le Panneau de configuration du NAS, ouvrez le menu “Sécurité”, puis l’onglet “Certificat”. Si vous avez associé un nom de domaine à votre adresse IP (avec une des méthodes ci-dessus), vous devriez pouvoir générer un certificat Let’s Encrypt directement depuis le menu Synology :

Vous pouvez vérifier que la connexion est sécurisée en vous connectant avec l’adresse externe (et non avec l’adresse l’adresse locale du NAS) pour voir que vous êtes bien HTTPS :

Si vous essayez de vous connecter via l’adresse locale (ex : diskstation.local), vous aurez probablement un message vous avertissant que votre connexion n’est pas sécurisée, pour la simple et bonne raison que le certificat n’est valide que pour l’adresse externe :

Ce message n’est à prendre en considération que si un pirate réussit à se connecter à votre réseau local. Par exemple si votre mot de passe WiFi est faible

Création d’un serveur DNS local

Installation et paramétrage

Maintenant, on peut accéder au NAS soit par son adresse locale (diskstation.local), soit par son adresse externe (monnas.domain.fr). La logique voudrait qu’à partir de maintenant on utilise toujours l’adresse externe (elle est sécurisée et fonctionne même si on est pas connecté au réseau local). Mais si on doit faire des échanges de fichiers, c’est un peu con de passer par son adresse externe, car cela signifie que tout le traffic va transiter par notre FAI pour télécharger un fichier d’un disque situé dans la pièce d’à côté. De plus, l’adresse ne fonctionnera évidemment pas si pas d’internet 🤷.

Une solution pour pallier ce problème est de créer un serveur DNS local, qui va “aiguiller” le trafic avant même de sortir du réseau. En pratique, on veut que, une fois connecté au réseau local, une demande de connexion vers monnas.domain.fr nous redirige en fait vers l’adresse locale du NAS (diskstation.local dans mon cas), et ce façon totalement transparente.

On va donc commencer par créer un serveur DNS sur le synology, via l’application sobrement intitulée “DNS server”. Une fois installé, ouvrez le menu d’administration dudit serveur. Dans le menu “Zones”, créez une nouvelle zone Master. Les paramètres à rentrer sont alors les suivants :

  • Nom de domaine : l’adresse complète que vous souhaitez rediriger (monnas.domain.fr ici)
  • Serveur DNS principal : rentrez l’IP fixe qui vous été allouée.

Laissez les autres paramètres par défaut.

Si vous n’avez pas d’IP fixe, vous pouvez mettre l’adresse IP locale du routeur, mais dans ce cas vous n’aurez plus accès aux autres sous-domaines que celui spécifié. Dans mon cas, ça veut par exemple dire que je ne pourrais plus accéder à blog.dorian-depriester.fr… mais j’ai une IP fixe !

Une fois la zone créée, double-cliquez dessus pour afficher les ressources. Vous devriez normalement voir deux lignes correspondant au Nameserver (NS). On va donc rajouter une troisième entrée (bouton “Créer > A type”) et ajouter une redirection vers l’adresse IP locale du NAS :

Le champ “nom” doit ici rester vide car on a utilisé ici l’adresse complète (avec le sous-domaine).

Afin de ne pas solliciter les serveur DNS à chaque connexion, les machines locales gardent en mémoire les résolutions DNS pendant un certain temps. Et ce temps est défini ici par le TTL  (Time to Live). Je vous conseille donc de mettre un temps assez court pour que vous puissiez facilement switcher quand vous êtes à l’extérieur du réseau.

Utilisation du serveur DNS

Ce n’est pas le tout d’avoir un serveur DNS, encore faut-il s’en servir ! Afin de s’assurer que toutes les machines du réseau (et seulement du réseau) utilisent le serveur DNS du NAS, on va définir celui-ci comme serveur par défaut dans les paramètres du routeur.

Sur la Freebox, c’est dans les “Paramètres de la freebox”, Onglet “Mode avancé”, menu “DHCP” que ça se passe :

J’ai mis ici le serveur DNS du NAS (192.168.1.1) en premier, avant celui du routeur (192.168.1.254).

Vérification des DNS

Pour vérifier que le serveur DNS fonctionne bien, rien de plus simple qu’un bon vieux ping :

dorian@pcportable$ ping monnas.domain.fr

Vous devriez normalement constater que :

  1. l’IP retournée est bien l’IP locale,
  2. les temps de réponse sont dérisoires.

Maintenant, on peut donc accéder de façon sécurisée au NAS depuis n’importe où dans le monde, avec une seule et même adresse à utiliser, que l’on soit sur son canapé, en réunion ou dans les transports.