Catégories
Informatique

Protéger son NAS Synology avec OpenVPN et le pare-feu

À priori, si vous êtes ici, c’est que vous possédez un NAS ; probablement un appareil de la marque Synology d’ailleurs, même si ça n’est pas essentiel pour suivre ce guide. Je suppose également que vous avez monté tout un tas de services auxquels vous accédez en local, voire peut-être même via Internet grâce à des redirections de ports sur votre box. Enfin vous avez appliqué les recommandations pour renforcer la sécurité de votre NAS Synology en suivant ce guide sur la documentation officielle ; si ce n’est pas le cas, je vous le recommande fortement.

Cette situation peut sembler convenable pour beaucoup de personnes, elle l’a d’ailleurs été pour moi pendant un certain temps. Mais je vous propose de renforcer encore plus la sécurité sur votre NAS. À la fin de ce guide, vous n’aurez plus besoin que d’une seule redirection sur votre box et toutes les connexions provenant d’une IP source extérieure à votre réseau local ou ne transitant pas à travers votre serveur VPN seront bloquées. C’est à la fois un gain en simplicité de configuration sur votre box mais surtout de sécurité sur votre installation.

Mettre en place un serveur OpenVPN

Sur votre NAS Synology, pour mettre en place un serveur VPN, il faut d’abord installer le paquet VPN Server via le Centre de paquets.

VPN Server dans le Centre de paquets Synology
VPN Server dans le Centre de paquets Synology

Une fois le paquet installé, il suffit d’ouvrir l’application pour accéder aux réglages. Le menu se sépare en deux catégories, la première pour la gestion des services en cours, la seconde pour configurer les services. Vous pouvez voir qu’il est possible d’utiliser 3 protocoles : PPTP, OpenVPN et L2TP/IPSec. J’ai choisi d’utiliser OpenVPN car c’est le protocole le plus sûr, et je vous conseille de faire de même. Cependant, si vous avez des besoins ou contraintes spécifiques, vous pouvez utiliser un autre protocole. Vous devrez alors adapter la suite du guide en fonction de ce choix pour reproduire la même configuration.

Pour configurer le serveur OpenVPN, il faut définir un sous-réseau différent du réseau local de votre routeur. Dans l’immense majorité des cas, et si vous n’avez pas changé ce paramètre dans votre routeur, le sous-réseau local de votre routeur est 192.168.1.1/24 ou 192.168.0.1/24. Pour le savoir, référez-vous aux propriétés de connexion depuis les paramètres de votre réseau. Vous pouvez également retrouver cette information grâce à la commande ip address sur Unix (ipconfig sur Windows). Peu importe le sous-réseau que vous aurez choisi, il lui suffit simplement d’être différent du sous-réseau de votre routeur. Par exemple, vous pouvez choisir 192.168.2.1/24.

Ensuite, vous devrez choisir le nombre de connexions maximales (tous comptes confondus) et le nombre de connexions maximales par compte. Dans un premier temps, vous pouvez laisser les paramètres par défaut qui sont bien suffisants. À l’usage, vous pourrez choisir d’augmenter ou de diminuer ces limites selon vos besoins et exigences.

En revanche, les prochains paramètres sont importants. Vous devez définir un port et choisir entre le protocole TCP ou UDP. Et il n’y a pas de réponse universelle. Mais au moins il y a une mauvaise réponse : garder le port par défaut. En effet, les ports par défaut des services et protocoles usuels (22 pour SSH, 21 pour FTP, 80 pour HTTP, 443 pour HTTPS, etc) sont les premiers ports à être testés pour tenter une intrusion. Il vaut donc mieux ne pas utiliser ces ports pour limiter le risque de tentative d’intrusion. De manière générale, c’est une bonne habitude à prendre : changez les ports par défaut de vos services en écoute.

En ce qui concerne le choix entre TCP et UDP, il est important de connaître les avantages et inconvénients des deux protocoles afin de déterminer ce qui conviendra le mieux à vos usages. Je vous invite vivement à vous renseigner sur ce sujet avant de faire votre choix. Toutefois, gardez en tête que vous pourrez choisir de changer d’un protocole à l’autre ultérieurement. Il suffira simplement de reporter cette modification à tous les endroits où vous aurez spécifié que vous utilisez le protocole que vous aurez choisi.

Pour l’algorithme de chiffrement, je n’ai aucune connaissance dans ce domaine. J’ai donc laissé la configuration par défaut. Par contre, en ce qui concerne l’algorithme pour l’authentification, j’ai dû le changer. En effet, le client OpenVPN que j’utilise (OpenVPN Connect Windows et Android) ne supportait pas l’algorithme RSA-SHA512. J’ai donc opté pour SHA512. Avant de faire un choix, pensez donc à vérifier la compatibilité du client OpenVPN que vous prévoyez d’utiliser.

Enfin cochez les cases « Activer la compression sur la liaison VPN » et « Autorisez aux clients l’accès au serveur LAN ».

Vous n’avez plus qu’à cliquer sur le bouton « Appliquer » pour valider la configuration. Votre serveur OpenVPN est maintenant fonctionnel ! Pour vous y connecter, il vous suffira d’exporter la configuration grâce au bouton tout en bas du formulaire. Avant d’importer la configuration dans votre client OpenVPN préféré, il faudra d’abord l’éditer pour renseigner l’emplacement de votre serveur. La démarche à suivre est disponible en anglais dans le fichier README.txt présent dans l’archive. Dans un premier temps, on va s’assurer que le serveur OpenVPN répond bien en local (on changera la configuration plus tard pour permettre d’y accéder également depuis l’extérieur avec un domaine public). Il faut alors remplacer YOUR_SERVER_IP par l’adresse IP locale de votre NAS.

remote <addresse IP locale de votre NAS> 1194

Vous devriez déjà la connaitre à ce moment là, mais pour rappel vous pourrez la trouver dans Panneau de configuration > Système > Centre d’infos et dans la section correspondante à l’interface réseau que vous utilisez pour connecter votre NAS à votre routeur (très probablement LAN, ou Wi-Fi dans certains autres cas).

Emplacement du champ Adresse IP dans la section Réseau du Centre d'infos.
Emplacement du champ Adresse IP dans la section Réseau du Centre d’infos.

Par défaut, le client OpenVPN demande un certificat SSL pour authentifier la connexion. Ici, nous n’en utiliserons pas. Pour éviter d’avoir un avertissement lors de la première connexion, rajoutez cette ligne également dans le fichier VPNConfig.ovpn (merci à T ChaY qui m’a donné cette information dans ce commentaire) :

setenv CLIENT_CERT 0

Une fois le fichier de configuration correctement édité et sauvegardé, vous pouvez l’importer dans un client OpenVPN. Je vais vous montrer la procédure en utilisant le client OpenVPN Connect (disponible au téléchargement pour Windows 7, 8, 8.1 et 10 et Mac OS en suivant ce lien), mais vous pouvez très bien choisir un autre client OpenVPN.

Une fois installé, lancez OpenVPN Connect. N’ayant pas encore de profil configuré, il vous proposera d’en importer un depuis une URL ou un fichier. Choisissez « File », puis glissez-déposez votre fichier VPNConfig.ovpn. Le client vous proposera ensuite d’éditer votre profil pour le compléter avec les informations manquantes. Vous pouvez d’abord choisir un nom pour ce profil. Ce nom est totalement indicatif. Il vous servira uniquement à vous y retrouver si vous avez plusieurs profils configurés dans votre client, il n’aura cependant aucun impact pour la suite. Renseignez ensuite votre nom de compte Synology, celui qui vous sert à vous connecter sur DSM notamment. Vous avez enfin le choix de renseigner votre mot de passe pour que l’application le sauvegarde ou le rentrer à chaque nouvelle connexion. Une fois toutes les informations renseignées, vous pouvez valider en cliquant sur le bouton « Add » en haut à droite de l’interface. Tentez alors de vous connecter pour vérifier que tout est en ordre en cliquant directement sur le profil. Le profil devrait passer à l’orange, indiquant qu’il tente de se connecter au serveur, puis finalement au vert une fois la connexion établie.

Voilà ! Vous avez réalisé la première étape de ce guide : vous avez configuré un serveur OpenVPN sur votre NAS Synology et vous avez établi une connexion vers lui depuis un client. Maintenant que vous êtes connecté au serveur, si vous lancez la commande ip address (ou ipconfig sur Windows) vous pourrez remarquer qu’une nouvelle interface est apparue et qu’une IP sur le sous-réseau que vous avez renseigné dans la configuration du serveur OpenVPN vous a été attribuée.

Maintenant qu’on sait que le serveur OpenVPN fonctionne depuis un client sur le réseau local, on peut tenter de s’y connecter depuis l’extérieur. Pour cela, il vous faudra préalablement rediriger le port d’écoute de OpenVPN vers votre NAS depuis la configuration de votre routeur. N’oubliez pas non plus d’éditer à nouveau le fichier de configuration VPNConfig.ovpn pour remplacer l’adresse IP locale du NAS par l’adresse IP publique de votre routeur ou par un nom de domaine enregistré qui pointe vers elle. Vous pouvez alors réimporter le fichier dans votre client OpenVPN pour vérifier que la nouvelle configuration est correcte. Une fois connecté·e, vous pourrez tenter d’accéder à votre NAS via son adresse IP locale. Vous pouvez dès à présent désactiver toutes les autres redirections de port dans les paramètres NAT de votre routeur. Tant que vous êtes connecté·e au serveur OpenVPN, tout se passe comme si vous étiez directement sur votre réseau local.

Attention toutefois : par défaut, seules les connexions accédant à des ressources inaccessibles depuis le réseau sur lequel vous êtes actuellement connecté·e (dans notre cas donc, les services internes à votre réseau local ; ceux qui ne sont pas publics) transiteront réellement à travers votre serveur OpenVPN. Ce mode permet de n’utiliser la connexion au VPN que lorsqu’elle est vraiment nécessaire afin de ne pas ajouter des intermédiaires inutiles autrement. Cependant, cela implique que votre connexion n’est pas chiffrée quand vous naviguez sur Internet et que les services auxquels vous accéderez connaitront votre localisation. Vous pouvez alors choisir de forcer la connexion au serveur OpenVPN pour tout le trafic réseau ; ce qui vous permettra de chiffrer votre connexion, recommandé notamment si vous utilisez un réseau sans-fil public. Vous serez également localisé·e chez vous, ce qui peut s’avérer utile pour accéder à du contenu accessible uniquement depuis votre pays quand vous êtes à l’étranger. Pour activer cette option, il suffit de décommenter la ligne suivante dans le fichier VPNConfig.ovpn avant de l’importer dans votre client OpenVPN :

redirect-gateway def1

Dorénavant, vous n’avez donc plus besoin que d’une seule redirection de port vers votre NAS. Vous pouvez cependant choisir d’en garder quelques unes pour les services que vous voudriez laisser accessibles publiquement, notamment un serveur web sur les ports 80 (HTTP) et 443 (HTTPS).

Vous noterez cependant qu’en désactivant les redirections vers votre NAS, il n’est plus possible d’accéder à vos services via votre nom de domaine. Ne vous inquiétez pas, c’est tout à fait normal. Je vous expliquerez pourquoi et comment y remédier après la configuration du pare-feu. Pour le moment, vous devrez forcément accéder à votre NAS en renseignant son adresse IP locale.

Configurer le pare-feu Synology

Maintenant que votre serveur OpenVPN est fonctionnel, vous pouvez accéder à tous les services sur votre NAS en étant connecté·e sur celui-ci. Cependant, il est possible que vous vouliez ne rendre accessibles que certains services via le VPN et laisser les autres accessibles uniquement depuis votre réseau local. Vous pourriez également vouloir limiter l’accès à votre VPN à certaines adresses IP. Tout ceci est possible en paramétrant le pare-feu de votre NAS Synology.

Vous pouvez configurer le pare-feu de votre NAS Synology depuis Panneau de configuration > Sécurité > Pare-feu.

Configuration du pare-feu dans le Panneau de configuration Synology
Configuration du pare-feu dans le Panneau de configuration Synology

Il est très probable que votre pare-feu soit désactivé par défaut. Pour l’activer, cochez simplement la case « Activer le pare-feu ». Vous pouvez configurer plusieurs profils de pare-feu selon vos besoins. Vous avez le choix entre créer un nouveau profil ou utiliser le profil par défaut. Dans tous les cas, assurez-vous simplement que le profil sur lequel vous travaillez est le profil actif. Sans quoi, les règles que vous mettrez en place ne seront pas appliquées.

En cliquant sur « Modifier les règles », vous accédez à l’interface pour renseigner les règles de pare-feu de votre profil. Les règles sont séparées par interface réseau (LAN, Wi-Fi, PPPoE, VPN). Pour faire simple, une règle permet d’autoriser ou de refuser une connexion depuis une adresse IP source vers un port (ou une liste de ports) à travers un protocole (TCP ou UDP). Vous comprenez donc rapidement comment ces règles vont nous permettre de limiter l’accès de certaines machines à certains services.

Interface de création d'une règle de pare-feu
Interface de création d’une règle de pare-feu

Dans un premier lieu, nous allons configurer les règles sur l’interface LAN (ou Wi-Fi si votre NAS est connecté en Wifi à votre routeur). Choisissez donc cette interface dans le menu déroulant en haut à droite et créez ces 2 règles :

PortsProtocoleIP SourceAction
TousTous192.168.1.0/255.255.255.0Autoriser
VPN ServerTCP/UDPTousAutoriser
Règles de pare-feu sur l’interface LAN

Pour comprendre ces règles, il faut garder en tête que l’ordre importe. Lors d’une connexion vers le NAS, le pare-feu va dérouler les règles. Si une règle correspond à la connexion en cours, l’action est réalisée. Sinon et tant qu’il reste des règles, la prochaine règle sera examinée.

Ici, on commence par autoriser toutes les machines ayant une adresse IP sur le réseau 192.168.1.0/24 à accéder via tous les protocoles (TCP et UDP) à tous les services sur tous les ports. Autrement dit, en étant connecté·e sur le réseau local, on accède à tous les services. Notez bien que j’ai renseigné les informations correspondant à mon réseau local. Il sera peut-être nécessaire d’adapter l’adresse IP et le masque de sous-réseau à votre configuration. Vous retrouverez ces informations dans l’interface d’administration de votre routeur ou simplement dans les propriétés de connexion de votre réseau.
Pour la seconde règle, elle autorise simplement n’importe quelle machine à accéder via le protocole correspondant à votre configuration OpenVPN au service OpenVPN sur son port d’écoute. Dans un premier temps, je vous conseille de laisser n’importe quelle machine s’y connecter. Mais sachez que Synology permet de filtrer les connexions selon le pays. Vous pourrez alors affiner la règle pour n’autoriser les connexions que depuis les pays depuis lesquels vous êtes susceptibles de vous connecter, vous protégeant ainsi des tentatives d’intrusion depuis d’autres pays.

Nous allons maintenant passer à l’interface VPN. Il faut indiquer au pare-feu d’autoriser les connexions aux services sur votre NAS pour les machines connectées à votre serveur OpenVPN. Pour cela, il suffit d’ajouter la règle suivante :

PortsProtocoleIP SourceAction
Tous ou Liste des servicesTous192.168.2.0/255.255.255.0Autoriser
Règles de pare-feu sur l’interface VPN

À leur connexion au serveur OpenVPN, une adresse IP au réseau du VPN leur est attribuée. On peut donc filtrer les connexions sur ce critère pour autoriser des connexions à travers le VPN. Si vous souhaitez pouvoir accéder à tous vos services de cette manière, choisissez « Tous les ports ». Sinon, sélectionnez simplement la liste des services auxquels vous souhaitez accéder en étant connecté·e au VPN.

La configuration du pare-feu est presque finie. Toutes les règles nécessaires ont été créées. Cependant, et afin que seules les connexions autorisées par nos règles passent le pare-feu, il est impératif de sélectionner « Refuser accès » en bas de la liste des règles sur chacune des deux interfaces (LAN et VPN). Si tout fonctionne bien, vous devriez être en mesure de valider vos modifications sur le profil en cours d’édition avec le bouton « OK », puis d’appliquer ce nouveau paramétrage du pare-feu avec le bouton « Appliquer ». N’ayez pas peur d’avoir une configuration trop restrictive. Si par malheur, votre profil de pare-feu vous empêchait d’accéder à l’interface d’administration DSM de Synology, cette dernière vous afficherait un message d’erreur et reviendrait à la précédente configuration. Si c’est le cas, revoyez votre configuration, tentez d’identifier quelle·s règle·s bloque·nt la connexion, vérifiez que vous êtes bien sur votre réseau local (puisqu’on souhaite justement empêcher d’accéder à DSM autrement qu’en passant par une IP du réseau local), etc.

Si la configuration est correcte, vous devriez être capable de vous connecter depuis votre réseau local ou depuis un réseau extérieur en étant connecté·e à votre serveur VPN. Pour tester une connexion extérieure, je vous conseille d’utiliser le réseau de votre smartphone ; soit directement sur le smartphone si vous avez importé votre configuration OpenVPN dans un client, soit en partageant votre connexion sur votre machine.

Comme je vous l’expliquais plus haut, vous avez dû remarquer qu’il n’est plus possible d’accéder à votre NAS en utilisant votre nom de domaine. La raison est toute simple : votre nom de domaine est enregistré dans la zone DNS de votre registraire (la société qui vous loue ce nom de domaine) pour pointer vers une adresse IP publique, celle de votre routeur. En tentant d’accéder à une ressource via ce nom de domaine, vous serez alors redirigé·e vers votre routeur depuis l’extérieur. Or, ce dernier est configuré pour rediriger uniquement le port de configuration OpenVPN vers votre NAS. Aucun autre port n’est redirigé vers votre NAS. Il faut alors indiquer à votre machine le chemin à prendre pour accéder à votre NAS, et pour cela nous allons mettre en place un serveur DNS.

Mettre en place un serveur DNS

Pour mettre en place un serveur DNS sur votre NAS Synology, il faut commencer par installer le paquet DNS Server depuis le Centre de paquets.

DNS Server dans le Centre de paquets Synology
DNS Server dans le Centre de paquets Synology

Une fois l’application installée, il suffit de la lancer pour commencer à configurer notre serveur DNS. Avant tout, il faut créer une zone DNS master qui contiendra les enregistrements DNS nécessaires. Pour cela, nous devons renseigner un nom de domaine principal (celui qui pointe vers l’adresse IP publique de votre routeur) et l’adresse IP du serveur DNS principal (autrement dit, l’adresse IP locale du NAS). Comme vous l’imaginez, je vais beaucoup parler de noms de domaine dans cette partie. Je vais donc prendre example.org dans mes exemples. Remplacez ce domaine par le vôtre dans votre configuration.
Une fois votre zone DNS créée, 2 enregistrements sont automatiquement créés dans cette zone DNS : un enregistrement de type NS avec comme valeur ns.example.org et qui définit le serveur DNS de cette zone et un enregistrement de type A qui fait pointer le domaine ns.example.org vers l’adresse IP de ce DNS, à savoir le NAS. Ces enregistrements correspondent simplement à la configuration renseignée à la création de la zone DNS. Rien de sorcier.
Nous allons maintenant ajouter un nouvel enregistrement de type A qui pointera vers l’adresse IP locale du NAS. Donnez le nom de votre choix à cet enregistrement. Dans mon cas, et pour l’exemple, j’ai choisi nas.example.org.
Ma zone DNS contient donc ces 3 enregistrements :

NomTypeTTLValeur
example.org.NS86400ns.example.org.
ns.example.org.A86400Adresse IP locale du NAS
nas.example.org.A86400Adresse IP locale du NAS
Zone DNS master dans DNS Server

Vous remarquerez que cette zone ne contient pas tous les domaines dont vous aurez besoin pour naviguer sur Internet ; il n’y a même pas perdu.com ! Si on veut l’utiliser sur une machine, il va donc falloir indiquer à DNS Server les serveurs DNS à utiliser pour résoudre les domaines absents de cette zone. Pour cela, il faut se rendre dans la section Résolution de DNS Server pour activer les services de résolution, ainsi que les redirecteurs. Pour savoir quels DNS mettre dans les champs Redirecteur 1 et Redirecteur 2, vous pouvez simplement remettre les adresses des DNS de votre FAI (Fournisseur d’Accès à Internet) disponibles dans la configuration de votre routeur ou opter pour d’autres serveurs DNS. Pourquoi choisir d’autres DNS et quelles sont les alternatives ? Vous trouverez des éléments de réponse dans cet article du blog de Korben. Pour résumer, des DNS alternatifs peuvent être plus rapides, plus fiables, plus surs, plus soucieux de votre vie privée.

Voilà, votre serveur DNS est fonctionnel ! Pour le tester, il suffit d’éditer la configuration de votre réseau et y renseigner l’adresse IP locale de votre NAS dans le premier DNS. Vous pouvez laisser vide le second DNS. Cependant si, pour une raison ou une autre, le serveur DNS de votre NAS ne répondait plus, vous ne seriez plus en mesure de résoudre des noms de domaine ; à moins de modifier à nouveau votre configuration réseau pour utiliser d’autres DNS. Mais il est possible que vous souhaitiez savoir dès que votre NAS ne répond plus. Dans ce cas, laissez cette ligne vide. Si ce n’est pas le cas, renseignez simplement un autre serveur DNS qui prendra le relai en cas de dysfonctionnement de votre serveur DNS (cf supra).

Vous pouvez maintenant tenter d’accéder à l’interface d’administration de Synology via votre domaine. Ce dernier devrait pointer vers l’adresse IP locale de votre NAS, qui est accessible depuis votre machine connectée sur le réseau local. Mais pour les autres machines ? On peut déjà régler rapidement le problème pour les machines externes au réseau local mais connectées au serveur VPN. Pour cela, il suffit simplement de modifier une ligne dans le fichier de configuration VPNConfig.ovpn pour indiquer aux machines qui se connectent au VPN d’utiliser notre serveur DNS. Remplacez simplement la ligne…

#dhcp-option DNS DNS_IP_ADDRESS

par…

dhcp-option DNS <adresse IP locale de votre NAS>

Réimportez ensuite la nouvelle configuration dans votre client OpenVPN. Les noms de domaines enregistrés dans votre zone DNS devraient maintenant être résolus correctement sur toute machine en dehors du réseau local mais connectée au serveur OpenVPN.

Récapitulons, vous avez une solution pour les machines connectées au réseau local et celles à l’extérieur mais connectées au VPN. Mais il peut être contraignant de modifier la configuration réseau sur chaque machine, voire impossible pour certains appareils avec des systèmes fermés (smartphone, smart TV, smartbox, etc). Il existe tout de même une solution : modifier l’adresse du serveur DNS pour tout votre réseau.

Quand une machine demande à se connecter sur un réseau, c’est le serveur DHCP qui répond, attribue une adresse IP à cette machine (si une adresse IP est disponible) et envoie ensuite d’autres informations relatives au réseau : adresse IP des serveurs DNS, masque de sous-réseau, adresse IP de la passerelle, etc. Ce serveur DHCP est hébergé par défaut sur votre routeur. Il suffit donc de modifier la configuration du serveur DHCP pour qu’il envoie l’adresse IP du NAS en tant que serveur DNS à la place des serveurs DNS de votre FAI. Si vous avez de la chance, votre routeur vous permet de changer cette information, et vous n’avez rien d’autre à faire. Si comme pour moi, et comme pour la plupart des gens, le constructeur de votre routeur n’a pas permis que vous changiez cette information, vous allez devoir héberger votre propre serveur DHCP et désactiver celui de votre routeur. Et évidemment, nous allons encore une fois utiliser notre NAS Synology pour cela.

Configurer un serveur DHCP

Cette fois-ci, pas besoin d’installer de paquet supplémentaire. Tout se trouve dans le Panneau de configuration, section Serveur DHCP.

Section Serveur DHCP du Panneau de configuration
Section Serveur DHCP du Panneau de configuration

Par défaut, le serveur n’est pas activé. Pour commencer à le configurer, activez le serveur DHCP sur l’interface utilisée pour vous connecter à votre routeur ; dans mon cas, c’est LAN. Puis cliquez sur « Modifier ».

Vous arrivez alors sur une interface divisée en deux parties et accessibles via les onglets « DHCP Server » et « Clients DHCP ». La première permet de configurer le serveur DHCP, la seconde liste les clients DHCP auxquels votre serveur aura attribué une adresse IP sur une plage que vous aurez définie. Dans un premier temps, nous allons rester sur le premier onglet. Renseignez l’adresse IP locale de votre NAS dans le champ DNS principal. Là encore, comme expliqué plus haut, vous avez le choix entre laisser le champ DNS secondaire vide ou le remplir avec un serveur DNS de votre choix (celui de votre FAI ou un autre). Maintenant, il ne nous reste plus qu’à ajouter un sous-réseau.

Normalement, le sous-réseau configuré dans votre routeur fourni par votre FAI devrait avoir la forme 192.168.1.x ; x étant une valeur comprise entre 0 et 255. Cependant, deux valeurs de x sont interdites pour attribuer une adresse IP à une machine du réseau :

  • 192.168.1.0 correspond à l’adresse du réseau et est utilisée pour désigner le réseau.
  • 192.168.1.255 correspond à l’adresse de broadcast et est utilisée pour envoyer un paquet à toutes les machines du réseau.

De plus, vous devez vérifier l’adresse IP locale de votre routeur, qui représente la passerelle, i.e. la machine qui fait transiter les paquets entre le réseau local et l’extérieur (Internet la plupart du temps). Par convention, c’est souvent 192.168.1.1 mais prenez le temps de vérifier tout de même. Vous trouverez cette information dans les propriétés réseau de votre connexion. C’est le champ appelé « Passerelle ».

Toutes les autres adresses IP peuvent être utilisées à votre guise, mais je vous conseille tout de même de réfléchir à un plan d’adressage. Un plan d’adressage est simplement un tableau dans lequel vous allez définir quelle plage d’adresses correspond à quel type de machine. Tout d’abord je vous conseille de partitionner votre plage en deux : la première pour les baux statiques, la seconde pour les baux dynamiques. Ainsi, vous saurez rapidement si une adresse IP appartient à une machine à laquelle vous avez manuellement affecté une adresse IP statique ou à une machine qui s’est vue attribuer une adresse IP dynamiquement. Et comme il est plus simple de manier des petits nombres que des grands, je vous conseille de mettre les adresses IP dynamiques à la fin. Ainsi, on aurait le découpage suivant :

  • 192.168.1.0 : adresse IP du réseau (réservée)
  • 192.168.1.1 : adresse IP de la passerelle
  • 192.168.1.2 à 192.168.1.127 : adresses IP statiques
  • 192.168.1.128 à 192.168.1.254 : adresses IP dynamiques
  • 192.168.1.255 : adresse IP de broadcast (réservée)

Ensuite, libre à vous de segmenter encore la plage des adresses IP statiques pour affiner votre classement (avoir une partie réservée aux machines dédiées au réseau, une autre dédiée aux ordinateurs, une autre aux équipements connectés, etc). Mais tout ceci est parfaitement facultatif. Ce sont juste des bonnes pratiques qui vous aideront à vous y retrouver par la suite. Enfin, il arrive que certains FAI se réservent quelques adresses IP pour des usages internes. Celles-ci sont donc à exclure de votre plan d’adressage. Revenons maintenant à la configuration de notre sous-réseau.

Maintenant que vous avez défini la plage des adresses IP dynamiques, nous pouvons configurer un sous-réseau. Cliquez sur « ajouter » dans la liste des sous-réseaux et renseignez les valeurs correspondantes à votre sous-réseau local. Si vous suivez mes recommandations, ça sera donc ceci :

Adresse IP de début192.168.1.128
Adresse IP de fin192.168.1.254
Masque de sous-réseau255.255.255.0
Passerelle192.168.1.1 (ou l’adresse de votre passerelle)
Durée de bail de l’adresse86400 (correspond à 24h en secondes)
Liste des paramètres de configuration du sous-réseau

Laissez les options DHCP par défaut et validez votre configuration. À partir de maintenant, votre serveur DHCP répondra aux demandes d’attribution d’adresses IP envoyées sur votre réseau. Cependant, il reste une dernière étape. Si vous avez configuré votre pare-feu en suivant ce guide, vous avez dû bloquer toutes les connexions sur l’interface LAN ne provenant pas d’une machine ayant une adresse IP de ce sous-réseau. Or, c’est le cas de toute machine cherchant justement à se voir attribuer une adresse IP par votre serveur DHCP. Il faut donc impérativement ajouter une nouvelle règle dans le profil actif de votre pare-feu pour autoriser les connexions venant de toute adresse IP source à utiliser le service DHCP. Placez cette règle tout en bas de la liste des règles de votre profil :

PortsProtocoleIP sourceAction
DHCP ServerUDPTousAutoriser
Règle pour autoriser les connexions vers le serveur DHCP.

Il faut maintenant désactiver le serveur DHCP de votre routeur pour qu’il ne rentre pas en concurrence et afin d’être certain·e que votre machine recevra les informations de connexion du NAS et pas celles de votre routeur. Vous pouvez alors supprimer tous les baux statiques paramétrés dans votre routeur, à l’exception d’un seul : celui pour votre NAS. En effet, sans ce bail statique, votre routeur se sera pas en mesure de rediriger les ports vers votre NAS depuis l’extérieur. En tout cas, ça a été le cas de mon côté.

Il est possible que vous fassiez face à une erreur lors de cette configuration et que des adresses IP changent. En effet, cette opération implique de changer le référentiel des adresses IP attribuées sur votre réseau. Ne vous inquiétez pas, il est probable que vous deviez attendre quelques temps pour que les baux expirent et que le serveur DHCP de votre NAS prenne le relai. Si vous rencontrez des soucis pour accéder à Internet ou à votre NAS, réactivez le serveur DHCP de votre routeur le temps de corriger votre configuration. Pour vérifier que votre configuration est correcte, il suffit de se connecter avec une machine à votre réseau local, de s’assurer que vous utilisez les serveurs DNS fournis automatiquement par votre serveur DHCP et de vérifier que l’adresse IP du DNS correspond bien à celle de votre NAS. Si c’est le cas, vous devriez pouvoir accéder à votre NAS en utilisant le nom de domaine défini dans votre serveur DNS : nas.example.org.

Voilà, vous avez terminé ! À ce stade, vous devriez être capable d’accéder à vos services sur votre NAS en utilisant votre nom de domaine, que ce soit directement depuis votre réseau local ou depuis l’extérieur en étant connecté·e à votre serveur OpenVPN. Vous n’avez plus besoin de configurer manuellement vos paramètres réseau pour utiliser le serveur DNS installé sur votre NAS. La mission est réussie : vous accédez à vos services de manière sécurisée sans que votre routeur ne redirige une multitude de ports vers votre NAS. Un seul port est ouvert sur l’extérieur et il vous est même possible de limiter encore les personnes capables d’accéder à votre NAS par cette unique port grâce aux règles dans votre pare-feu. Que demander de plus ?

Bonus Stage : Configurer un reverse proxy

Alors là, clairement, c’est juste pour faire joli. Mais c’est pratique de savoir que ça existe. Je ne perds pas plus de temps et je vous explique tout. Actuellement, vous accédez à vos services en entrant le nom de domaine qui pointe vers l’IP publique de votre routeur auquel vous ajoutez le port en écoute du service en question. Par exemple, pour accéder à DSM, votre URL devrait ressembler à https://nas.example.org:5001. Mais à la place, vous aimeriez sûrement avoir une URL du type https://dsm.example.org, sans numéro de port à la fin, et c’est là que le reverse proxy va nous être utile. Un reverse proxy est un serveur qui permet à une machine externe d’accéder à des services internes. Nous allons en configurer un pour écouter sur le port 80 ou 443 et rediriger la requête vers le port d’écoute du service qu’on souhaite rendre accessible, de manière totalement transparente.

Pour configurer un reverse proxy sur votre NAS Synology, il suffit de se rendre dans Panneau de configuration > Portail des applications, onglet Proxy inversé. Cliquez alors sur le bouton « Créer » pour accéder à l’interface de création. Vous pouvez voir que le reverse proxy permet de rediriger toute sorte de requête web, selon un protocole (HTTP ou HTTPS), un nom de domaine ou un port. Dans notre cas, on va simplement rediriger les requêtes via le nom de domaine dsm.example.org sur le protocole HTTPS (port 443 par défaut) vers localhost (nom de domaine pointant vers sa propre machine, équivalent à 127.0.0.1) sur le port 5001 en HTTPS.

Il suffit enfin d’ajouter un nouvel enregistrement dans la zone DNS de votre NAS pour y ajouter votre domaine et le faire pointer vers son adresse IP locale. On utilise, là encore, un enregistrement de type A. Si votre service n’est accessible qu’en interne ou via une connexion à votre serveur OpenVPN, ça suffira. Puisque dans les deux cas, les machines connectées à ces réseaux sont configurées pour utiliser le serveur DNS hébergé sur votre NAS. En revanche, vous pouvez très bien utiliser un reverse proxy pour rediriger les requêtes web sur un service accessible publiquement. Dans ce cas, pensez bien à :

  • Ajouter un enregistrement DNS de ce sous-domaine dans la zone du registraire de votre nom de domaine.
  • Autoriser les connexions à toute adresse IP source sur les ports 80 et 443 dans le profil actif de votre pare-feu Synology.
  • Rediriger les ports 80 et 443 vers votre NAS dans la configuration NAT de votre routeur.

Une dernière précision avant de conclure : si, comme dans mon exemple, vous avez créé un reverse proxy pour accéder à DSM depuis un sous-domaine dédié, certaines applications ne seront plus accessibles depuis DSM. Rassurez-vous, il est tout de même possible d’y accéder autrement. En effet, si on prend l’exemple de Mail Station, cette application est accessible en effectuant une requête à l’adresse IP de votre NAS sur le port 80 en HTTP ou 443 en HTTPS et demandant la ressource /mail. Autrement dit, l’URL pour y accéder est https://<ip du NAS>/mail/. Ainsi, si vous cliquez sur Mail Station depuis DSM, ce dernier reprendra le nom d’hôte dans la barre d’adresse et y ajoutera /mail à la fin. Sans reverse proxy, il transformerait donc l’adresse https://<ip du NAS>:5001 en https://<ip du NAS>/mail. Or, notre reverse proxy redirige le nom d’hôte dsm.example.org vers <ip du NAS>:5001. En cliquant sur Mail Station, DSM vous renvoi alors vers https://dsm.example.org/mail, soit https://<ip du NAS>:5001/mail après redirection du reverse proxy. Et ce n’est pas l’endroit où Mail Station est accessible. L’adresse n’est pas correcte. Pour accéder à l’application, il suffit d’utiliser un nom de domaine qui ne redirige pas le port. Avec la configuration de base du serveur DNS, il devrait déjà exister un tel nom de domaine : ns.example.org. Vous pouvez donc simplement accéder à Mail Station via l’URL https://ns.example.org/mail/.

Conclusion

Voilà, vous l’avez fait. Vous êtes arrivé·e au bout de ce long et fastidieux guide. Mais ça valait le coup ! Vous avez votre propre serveur OpenVPN qui vous permet d’accéder de manière chiffrée et sécurisée à vos services internes ou simplement de sécuriser une connexion depuis un réseau public. Félicitations !

Pour finir, je tiens à remercier @benoit2600 et @gayahel pour leur aide dans la rédaction de ce guide et leur travail de relecture.

2 réponses sur « Protéger son NAS Synology avec OpenVPN et le pare-feu »

Merci pour ce très beau tutoriel.

Je reviens sur cette partie :
« Attention, OpenVPN vous préviendra qu’il manque un certificat pour authentifier la connexion au serveur. Vous pouvez tout simplement ignorer ce message en cliquant sur « Continue ». À ce jour, je n’ai pas trouvé comment supprimer cette erreur. »

Pour régler ce problème il suffit d’ajouter :
setenv CLIENT_CERT 0
dans le fichier de config .ovpn

Source : https://www.tech2tech.fr/comment-utiliser-son-nas-synology-comme-serveur-vpn-avec-openvpn/

Laisser un commentaire

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.