Reverse Proxy sur Nas Synology et SSL
Table des matières
Définition du reverse Proxy sur Nas Synology
Super mais comment on met en place un reverse proxy sur Nas Synology ?
Deux options se proposent à nous :
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.
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.
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.
Alors vous pouvez être rassuré, tout est natif sur Synology. (très probablement à partir de DSM6 à confirmer)
Il suffit de se rendre dans le panneau de configuration.
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.
Et voilà on retrouve enfin notre menu “Proxy inversé” pour “Reverse Proxy”
Ensuite en toute logique il suffit de cliquer sur “Créer”
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)
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 :
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.
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….
Alors pour peaufiner votre accès externe vous avez tous entendu parler de HTTPS
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 :
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.
On se rend de nouveau sur le panneau de configuration.
On clique sur l’onglet “Sécurité” puisqu’en effet la création d’un certificat est relative à la sécurité.
Ensuite il nous suffit de se rendre sur l’onglet certificat.
Et de cliquer sur “AJOUTER”
.Créer un nouveau certificat
.Remplacer un certificat existant
C’est bien entendu la première qui nous intéresse ici.
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.
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
.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
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.