Aller au contenu

[Tuto] Reverse Proxy


Kawamashi

Messages recommandés

@GrOoT64

Salut,

Si tu actives un domaine personnalisé dans Réseau/paramètres DSM et que tu essaie en locale (cela ne marche pas de l'extérieur) tu joins l'application en local et je suppose que c'est directement sans passer par webstation donc par .htaccess. L'activation HSTS c'est curieux...problème de cache peut-être.

Lien vers le commentaire
Partager sur d’autres sites

Il y a 18 heures, Jeff777 a dit :

Si tu actives un domaine personnalisé dans Réseau/paramètres DSM et que tu essaie en locale (cela ne marche pas de l'extérieur)

Bonjour @Jeff777
Merci pour ta réponse.
J'arrive à joindre DSM via l'extérieur.
J'ai juste les ports 80 et 443 ouverts vers ce NAS.

Il y a 18 heures, Jeff777 a dit :

L'activation HSTS c'est curieux...problème de cache peut-être.

Effectivement, j'ai testé et retesté, j'arrive bien maintenant en https sur ma cible ;)

Lien vers le commentaire
Partager sur d’autres sites

Ah avec DSM7!  Le paramétrage de ta copie d'écran n'existe pas sur DSM6.

Le fonctionnement du domaine personnalisé sur DSM7 semble différent de celui de DSM6 qui ne fonctionne quand local (sauf erreur 🙄).

Il faudrait poser la question sur le post DSM7.

 

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

Merci pour tes réponses @Jeff777. Je pense que DSM6 et 7 fonctionnent exactement pareil sur ce sujet. 
Sachant que j'ai les 2, le petit "i" à droite de domaine personnalisé sur ma capture indique exactement la même chose sur les deux versions de DSM.

Dans tous les cas, je pense que mon problème est résolu.

Lien vers le commentaire
Partager sur d’autres sites

il y a 16 minutes, GrOoT64 a dit :

Je pense que DSM6 et 7 fonctionnent exactement pareil sur ce sujet. 
Sachant que j'ai les 2, le petit "i" à droite de domaine personnalisé sur ma capture indique exactement la même chose sur les deux versions de DSM.

Je suis très surpris.

En tout cas chez moi je n'ai pas le portail de connexions dans le panneau de config (DS218+ et DSM 6.2-25426)

D'après ce que tu me dis, cela signifierait que pour un accès externe l'on peut se passer du paramétrage des proxy inversés et du .htaccess et remplacer cela par des domaines personnalisés en cochant la case HSTS ???😜

Qu'est-ce que tu as mis dans ton domaine personnalisé du DSM : ton ancien proxy-inversé??

 

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

En gros j'ai ça sans reverse proxy : 

image.png.fa5b10d250c23f216ee747aacf201708.png

image.png.7058407ce0817bbd7d6e44e7a0134159.png

image.png.1a2d276522e7c74f0ac9a2f5226bb7b1.png

J'ai évidement une redirection chez mon fournisseur de domaine "OVH" et un certificat de sécurité qui va bien.
J'ai également mon serveur DNS Local qui renvoi chaque domaine vers le NAS en question.

Si je fais des tests de redirections sur le site : http://www.redirection-web.net/

J'obtiens les résultats suivants :

Redirection vers mon DSM sur NAS principal (ports 80 et 443 ouverts )
http://monnasprincipal.ndd.tld --> Redirection 301 --> https://monnasprincipal.ndd.tld (case HSTS cochée)

Redirection vers Video Station (NAS Principal)
http://videos.ndd.tld --> Redirection 301 --> https://videos.ndd.tld (case HSTS cochée)

Redirection vers NAS2 (via reverse proxy)
http://nas2.ndd.tld --> Redirection 302 --> https://nas2.ndd.tld (case HSTS du NAS2 non cochée)

       Paramètres du RP : 
      https://nas2.ndd.tld:443 --> http://192.168.x.x:80 
 

Lien vers le commentaire
Partager sur d’autres sites

En fait j'avais oublié. Dans DSM6 on peut aussi avoir des domaines personnalisés pour chaque application. C'est dans portail des applications/applications.

Par contre ça reste du local pour moi !

Si @Einsteinium pouvait nous dire ce qu'il en pense. Je n'ai pas vu cette possibilité dans les présentations de DSM7

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Bonjour à tous,

J'ai suivi avec attention le tuto sur "comment sécuriser les accès à son nas"

et je suis maintenant en train de m'attaquer à la partie reverse proxy afin de pouvoir accéder à mes services depuis l'extérieur de la façon la plus sécurisé possible.

En tout cas un grand merci à tous pour l'aide que vous apportez aux personnes qui galère un peu.

J'ai configuré mes applications depuis : Portail des applications / Application
J'ai configuré un port http personnalisé, un nom de domaine personnalisé du style : service.ndd.tld et activé http/2

Le résultat est que j'arrive bien à accéder à tous mes services depuis l'extérieur via l'adresse suivante : https://service.ndd.tld
Le problème est que j'arrive également à accéder à mes services depuis http://service.ndd.tld
Je souhaite donc mettre en place une redirection http => https

Questions:

  1. Y a t'il une différence / limitation entre configurer un nom de domaine personnalisé dans les applications et configurer un reverse proxy
     
  2. Pour la redirection http => https j'ai vu qu'il y avait plusieurs possibilités
    1. Installer Web Station, installer un serveur Apache et utiliser un .htaccess
    2. Installer Web Station, installer un serveur Apache et utiliser du code php
    3. Installer Web Station et modifier le template mustache du serveur nginx (de ce que j'ai compris c'est l'équivalent du 1 mais pour nginx)
      https://techjogging.com/redirect-http-to-https-in-synology-nas-nginx.html

      Y a t'il une méthode à privilégier plutôt qu'une autre?
       
  3. Un membre avait posé la question mais il ne me semble pas avoir vu de réponse.
    Est-ce que si on est en local et qu'on utilise l'adresse http(s)://service.ndd.tld on sort du réseau local pour y re-rentrer ? Ou bien on reste en local.
    Après quelques tests je pense qu'on reste en local. En effet en local je peux accéder à http(s)://service.ndd.tld:5000 alors qu'avec un partage de connexion 4G avec mon téléphone non.

Merci d'avance pour vos réponses

Lien vers le commentaire
Partager sur d’autres sites

@Joooooon

Bonjour,

il y a 29 minutes, Joooooon a dit :

Le problème est que j'arrive également à accéder à mes services depuis http://service.ndd.tld

Si tu as coché la case "Rediriger automatiquement" les connexions HTTP vers HTTPS pour le bureau DSM" dans "Panneau de configuration / Réseau / Paramètres de DSM" alors c'est normal. Néanmoins cette case devrait être décochée car elle est la cause de problèmes avec le Reverse proxy dont elle casse le mécanisme.

Il est donc préférable et recommandé de la décocher et d'utiliser l'une ou l'autre des deux méthodes que tu indiques aux points 2.1 et 2.2 ci-avant. Perso j'utilise les deux en même temps.

(valable pour le Point 2) Code PHP ou fichier .htaccess a priori peut importe, ils font la même chose. Tu prends celui dont tu maîtrises le langage si d'aventure tu as besoin de lui faire faire d'autres actions ou de configurer des cas particuliers liés (par exemple pour PhotoStation utilisé avec le reverse proxy).

Point 1 : Perso je préfère passer par le reverse proxy car en plus, je peux appliquer un profil spécifique qui me permet de restreindre encore plus les conditions d'usage que l'on fait d'un xxxx.ndd.tld. (ex mes xxxx.ndd.tld ne fonctionnent qu'au travers d'un VPN actif pour une connexion depuis l'extérieur mais sans problème si je suis en local.

De plus sauf erreur de ma part, le TUTO préconise de n'activer que le port HTTP de l'application.

Point 3 : Tu répond tout seul à ta question.

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

Il y a 7 heures, oracle7 a dit :

 

Point 1 : Perso je préfère passer par le reverse proxy car en plus, je peux appliquer un profil spécifique qui me permet de restreindre encore plus les conditions d'usage que l'on fait d'un xxxx.ndd.tld. (ex mes xxxx.ndd.tld ne fonctionnent qu'au travers d'un VPN actif pour une connexion depuis l'extérieur mais sans problème si je suis en local.

 

@oracle7 c'est exactement ce que je veux faire, quel est ton paramétrage?

J'aurai souhaité qu'en local je puisse utiliser mon xxx.ndd.tld et ne l'utiliser QUE via un VPN sur une connexion externe (ce qui 'nest pas mon cas actuellement).

 

Il y a 8 heures, Joooooon a dit :

Un membre avait posé la question mais il ne me semble pas avoir vu de réponse.
Est-ce que si on est en local et qu'on utilise l'adresse http(s)://service.ndd.tld on sort du réseau local pour y re-rentrer ? Ou bien on reste en local.
Après quelques tests je pense qu'on reste en local. En effet en local je peux accéder à http(s)://service.ndd.tld:5000 alors qu'avec un partage de connexion 4G avec mon téléphone non.

Perso, avec ma 4G (iOS 14) impossible d'accéder aux applications avec le VPN (si si, je suis sérieux), accessible uniquement sans VPN (tout ce que je ne veux pas).

Modifié par Drickce Kangel
Lien vers le commentaire
Partager sur d’autres sites

Il y a 6 heures, oracle7 a dit :

Si tu as coché la case "Rediriger automatiquement" les connexions HTTP vers HTTPS pour le bureau DSM" dans "Panneau de configuration / Réseau / Paramètres de DSM" alors c'est normal. Néanmoins cette case devrait être décochée car elle est la cause de problèmes avec le Reverse proxy dont elle casse le mécanisme.

C'est bien décoché chez moi.

Le résultat est que j'arrive bien à accéder à tous mes services depuis l'extérieur via l'adresse suivante : https://service.ndd.tld => Mon routeur redirige le port 443 vers mon nas (cf tuto)
Le problème est que j'arrive également à accéder à mes services depuis http://service.ndd.tld => Normal mon routeur redirige également le port 80 vers mon nas (cf tuto)

Il faut donc que je mette en place la redirection http => https

Il y a 6 heures, oracle7 a dit :

De plus sauf erreur de ma part, le TUTO préconise de n'activer que le port HTTP de l'application.

Effectivement pour éviter le double chiffrement (qui est inutile) il est nécessaire de n'activer que le port HTTP, ce que j'ai également fait.
Et comme tu peux le voir également il est aussi possible d'utiliser les profils de contrôle via l'onglet Application 😉

image.png.cb6ffd34c85cf3c194f2f980921dd55d.png

 

Il y a 6 heures, oracle7 a dit :

(valable pour le Point 2) Code PHP ou fichier .htaccess a priori peut importe, ils font la même chose. Tu prends celui dont tu maîtrises le langage si d'aventure tu as besoin de lui faire faire d'autres actions ou de configurer des cas particuliers liés (par exemple pour PhotoStation utilisé avec le reverse proxy).

Je ne maitrise aucun des 2 languages mais c'est exactement ce que je veux faire pour le cas particulier de Photo Station car pour le moment je n'y accède que par https://ndd.tld/photo alors que je souhaiterais utiliser https://photo.ndd.tld

Je vais essayer de mettre ça en place ce soir

Modifié par Joooooon
Lien vers le commentaire
Partager sur d’autres sites

Alors pour info j'ai réussi à tout mettre en place avec succès.
Par contre j'ai du modifier certaines choses.

J'ai installé Web Station, installé Apache HTTP Server 2.4 et j'ai ajouté le fichier .htaccess suivant :

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

RewriteCond %{HTTP_HOST} ^photo.ndd.tld$
RewriteRule ^$ https://ndd.tld/photo [L,R=301]

Cette configuration permet de faire la redirection http => https et http(s)://photo.ndd.tld => https://ndd.tld/photo

J'ai donc rajouté un reverse proxy Photo Station https://photo.ndd.tlm => http://localhost

Résultats: 🎉

http://photo.ndd.tlm => https://ndd.tlm/photo
https://photo.ndd.tlm => https://ndd.tlm/photo

Pour les autres services configurés dans application 😡

http://service.ndd.tlm => http://service.ndd.tlm 

J'ai donc reconfiguré mes autres services pour les remplacer par un vrai reverse proxy : 🎉

http://service.ndd.tlm => https://service.ndd.tlm

 

Pour conclure je vais répondre à ma propre question :

Il y a 6 heures, Joooooon a dit :

Y a t'il une différence / limitation entre configurer un nom de domaine personnalisé dans les applications et configurer un reverse proxy

Oui apparemment, je ne sais pas laquelle mais la redirection http => https d'un service configuré dans application via le fichier .htaccess ne semble pas fonctionner ou tout du moins pas avec ce fichier .htaccess

Modifié par Joooooon
Lien vers le commentaire
Partager sur d’autres sites

J'ai découvert le site suivant pour tester les rewrite rules dans le fichier .htaccess https://htaccess.madewithlove.be

Après plusieurs tests je me suis rendu compte que la redirection http => https ne s'effectuait jamais avec le status code 301
Ne métrisant pas du tout cette aspect je me demande si c'est voulu? Car effectivement on ne change que le http en https alors que pour Photo Station on change réellement l'adresse.

Pour effectuer une redirection avec status code 301 dans tous les cas :

RewriteEngine on

RewriteCond %{HTTP_HOST} ^photo.ndd.tld$
RewriteRule ^$ https://ndd.tld/photo [L,R=301]

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Lien vers le commentaire
Partager sur d’autres sites

Il y a 8 heures, Joooooon a dit :

Bonjour @Joooooon

Je n'ai pas tout lu dans ce post, mais ce qu'il y a au dessus me fait réagir ?

C'est le contraire qu'il faut mettre dans les proxies inversés  https =====> http

Explication :sur le réseau extérieur il faut se connecter en https pour avoir une liaison sécurisée. A l'intérieur sur le LAN tu peux rester en http ça ne risque rien et il n'y a pas d'intérêt à chiffrer la liaison une deuxième fois, bien que tu puisses le faire.

Une requête qui n'est pas en http sera transformée en https avec ton .htaccess (lignes 2 et 3) avant d'être redirigée par le reverse. Et les deux autres lignes du .htaccess rajoutent le sous répertoire /photo pour ne pas avoir à l'écrire.

Reprends tous tes reverses avec http à gauche et https à droite !

Edit : je fais référence à ton avant dernier post. Le htaccess du dernier n'est pas correcte

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

@Joooooon

Bonjour,

En complément des remarques judicieuses de @Jeff777 sur l'ordre des redirections en reverse proxy, pour pouvoir accéder directement à photo station en https il faut activer le websocket dans la redirection du reverse proxy :

sur l'onglet « En-tête personnalisé », cliquer sur « Créer » et sélectionner « Websocket »

image.png.536b2918863b2601ea488f3e78117e6f.png

maintenant tu peux accéder en HTTPS via  https://photo.ndd.fr/photo

Pour le fichier ".htaccess" il me semble qu'il faut qu'il soit plutôt dans cet ordre :

Citation

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} ^photo.ndd.tld$

RewriteRule ^$  https://photo.ndd.tld/photo [L,R=301]

SInon essaies avec un fichier PHP (nommé "index.php") tel que :

Citation

<?php

// 307 Temporary Redirect

$http_host=$_SERVER['HTTP_HOST'];

switch ($http_host) {

  case "photo.ndd.fr":

         header("Location: https://$http_host/photo",TRUE,307);

         break;

  default:

         header("Location: https://$http_host:5001",TRUE,307);

  }      

exit;

?>

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

Eh oui pardon? . On va récapituler.

Reverse proxy : https://photo.ndd.tld ==>http:// IPLOCALNAS

Je n'ai pas le web socket d'activé.

.htaccess :

RewriteEngine On


RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}


RewriteCond %{HTTP_HOST} ^photo.ndd.tld$
RewriteRule ^$ https://photo.ndd.tld/photo [L,R=301]

 

Essaie les deux solutions (avec ou sans websocket) et tu nous diras ce qui fonctionne  😆

 

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

Bon j'avoue que je suis un peu embrouillé et je n'ai pas très bien compris ce que j'ai fait de mal.
Du coup je refais le point sur la configuration mise en place

Redirections de port de mon routeur

  • port externe 80 => port interne 80 vers mon NAS
  • port externe 443 => port interne 443 vers mon NAS

Configuration des applications

image.png.d4633b9f8eb8e2dee8808a6cc71c260d.png

Configuration du Reverse Proxy

image.png.58de7f05eb067288ff51ae7549b5d149.png

Jusque là je pense avoir juste (du moins j'espère)

http://service.ndd.tld => Web Station
https://service.ndd.tld => reverse proxy => http://localhost:<port>

Les connexions HTTP arrive sur Web Station, ce qui est normal vu que Web Station écoute sur le port 80 et que je redirige le port externe 80 vers le port interne 80 de mon NAS via la redirection de port de mon routeur.
Je souhaite donc rediriger automatiquement les connexions HTTP vers HTTPS, pour cela j'utilise un fichier .htaccess dans Web Station

Fichier .htaccess

RewriteEngine on

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

RewriteCond %{HTTP_HOST} ^photo.ndd.tld$
RewriteRule ^$ https://ndd.tld/photo [L,R=301]

http://service.ndd.tld => htaccess => https://service.ndd.tld => reverse proxy => http://localhost:<port>
https://service.ndd.tld => reverse proxy => http://localhost:<port>

Cas particulier de Photo Station

http://photo.ndd.tld => htaccess =>https://ndd.tld/photo
https://photo.ndd.tld => reverse proxy => http://localhost => htaccess =>https://ndd.tld/photo

C'est peut être là que je me suis foiré ?

Citation

https://photo.ndd.tld => reverse proxy => http://localhost => htaccess =>https://ndd.tld/photo

 

Modifié par Joooooon
Lien vers le commentaire
Partager sur d’autres sites

Il y a 10 heures, Jeff777 a dit :

Il faut garder photo.ndd.tld dans le deuxième ligne

OK mais je comprends pas pourquoi il y a une différence entre :

https://ndd.tld/photo
https://photo.ndd.tld/photo


ou même https://service.ndd.tld/photo

car les 2 fonctionne 

Moi j'ai choisi https://ndd.tld/photo pour le coté esthétique 🙂
Est-ce que d'un point de vu sécurité ou autre il est préférable de choisir  https://photo.ndd.tld/photo ?

 

Il y a 17 heures, Jeff777 a dit :

Je n'ai pas le web socket d'activé.

De mon coté il n'est pas non plus nécessaire d'activer web socket. Ca fonctionne très bien sans.

Modifié par Joooooon
Lien vers le commentaire
Partager sur d’autres sites

 

Pour 1 et 2 tu as raison. Chez moi c'est un peu spécial car j'ai un photostation sur chaque nas avec des reverse proxies, il faut donc que je les distingue (photo.ndd.tld photo2.ndd.tld). Peut-être que dans ton cas cela fonctionne faut essayer.

Arrives tu à un résultat c'est bien là l'essentiel ?

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

Oui oui tout fonctionne à merveille et je comprends mieux maintenant. Merci beaucoup.

Le 3 je l'ai retiré de mon message car je me suis rendu compte qu'au final ça ne fonctionnait pas et c'est normal.

En tout cas maintenant grâce à vous je suis sur une base saine pour commencer à bien exploiter mon NAS de façon sereine et surtout sécurisé.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.