Qnap Reverse Proxy

Phildefer

Apprenti
Bonjour,

Je me tourne vers vous car je n'y connais rien en matiere de reverse proxy mais j'ai l'impression que je vais en avoir besoin.

J'ai plusieurs container docker qui tourne sur mon NAS :
- https://192.168.1.XXX:443
- http://192.168.1.XXX:WWWW
- http://192.168.1.XXX:ZZZZ

Je voudrais accéder aux container depuis depuis internet qui utilisent les ports WWWW et ZZZZ sachant que le container qui utilise le port 443 est déja exposé en https à internet via le port 443 ouvert sur mon routeur directement;

Les deux autres containers sont en http et j'aimerais y accéder depuis le net mais de manière sécurisée. Reverse proxy permet il de le faire et que dois je ouvrir comme port sur mon routeur ?
Merci.
 

EVOTk

Modérateur
Membre du personnel
Salut,
C'est vrai que j'ai pas fait de tuto reverse proxy QTS :p

Le reverse proxy permet principalement de n'avoir a exposer que un seul port du NAS, pour exposer une multitude de service. C'est un plus au niveau sécurité ( meme si c'est plus du camouflage que de la sécurité, on est d'accord ).

Dans un 1er temps, je vais te balancer le lien de la doc : https://docs.qnap.com/operating-sys...ramètres-de-règle-proxy-inverse-0CE50167.html voila comme cela c'est fait !

Chez QNAP, le reverse proxy est dans : Panneau de configuration > Réseau et services de fichiers > Accès réseau > Proxy inverse :
1669237772413.png

Le menu de configuration :

1669237702092.png
1669237713247.png

Le principe est toujours le même, on donne un nom a notre regle, puis on paramètre la source :
La "source" c'est l'acces depuis l'extérieur si ton nom de domaine est "lovefx.fr" et que le but est d'exposer un conteneur nextcloud, on peu par exemple choisir en "sous domaine", le nom de domaine : cloud.lovefx.fr
Le port, sera le port d'acces principal par défaut 443 qui est en général celui du serveur web, il est possible de choisir autre chose.

La destination, est donc la ou le visiteur sera redirigé, souvent en HTTP sur le reseau local, si c'est un serveur hébergé sur le nas localhost pour l'hote, ou on peut aussi repéter l'IP du NAS. Si c'est une autre machine du réseau, alors on indique son IP, idem pour le port, ici on parle du port local du service.

Et on applique :)

Ps : Ceci c'est de la théorie, je n'ai jamais utiliser le reverse proxy de QTS ( j'utilise SWAG, voir ma signature ).
Ps 2 : J'ai l'impression qu'on peut pas faire du reverse proxy sur un nom de domaine myqnapcloud ? Si quelqu'un peu confirmer ou non ..
 

Phildefer

Apprenti
Merci,

Je viens de tester cela avec un domaine myqnapcloud et ca marche. Mes questions restantes sont :
- Comment préciser un sous domaine. Je vois bien comment mettre mon domaine mais pas ou préciser un sous domaine dont je comprends qu'il est "virtuel" et dédié à une redirection ?
- Comment n'ouvrir qu'un seul port ? En effet si je dis internet via sur 443, comment le reverse proxy sait ce qu'il faut envoyer au port WWWW (avec par exemple (nextcloud.mondomaineqnap.com) d'un container ou au port ZZZZ (nocodb.mondomaineqnap.com) a un autre container ?

Merci !
 
Dernière édition:

EVOTk

Modérateur
Membre du personnel
- Comment préciser un sous domaine. Je vois bien comment mettre mon domaine mais pas ou préciser un sous domaine dont je comprends qu'il est "virtuel" et dédié à une redirection ?
Justement c'est bien la qu'est le probleme je pense, le sous domaine se place au meme endroit, tu refait un config avec cloud.tonnom.myqnapcloud.com ... mais myqnapcloud.com ne semble pas gérer cela. Je pense qu'il faut un nom de domaine autre pour pouvoir faire cela.

Comment n'ouvrir qu'un seul port ? En effet si je dis internet via sur 443, comment le reverse proxy sait ce qu'il faut envoyer au port WWWW (avec par exemple (nextcloud.mondomaineqnap.com) d'un container ou au port ZZZZ (nocodb.mondomaineqnap.com) a un autre container ?
Via les différentes regles du reverse que tu va créer en rapport avec tes sous-domaines

Exemple :
cloud.ndd.fr > 192.168.0.20:8080
sonarr.ndd.fr > 192.168.0.20:8989
radarr.ndd.fr > 192.168.0.20:7878
....
 

Phildefer

Apprenti
Aie c'est bien ce qui me semblait. Donc pour le moment je dois ouvrir autant de ports (et non uniquement un seul) que de services que je souhaite rendre accessibles si je comprends bien. C'est ballot.
 

EVOTk

Modérateur
Membre du personnel
Je n'ai rien sous la main pour tester maintenant, mais j'ai bien l'impression que avec un nom de domaine myqnapcloud.com cela n'est pas possible.

Il faudrai que les sous-domaines de tonnom.myqnapcloud.com ( exemple cloud.tonnom.myqnapcloud.com ) soit tous automatiquement rediriger vers tonnom.myqnapcloud.com mais la , on tombe sur une erreur.
Je ne me souviens pas si c'est pareil chez Syno, j'ai jamais utilisez les nom de domaine fourni, j'ai rapidement pris un nom de domaine chez OVH. ( poke @MilesTEG1 ? )
 

zypos

Grand Maître Jedi
Ah le reverse proxy sur Qnap un vrai pb :mad: je n'ai jamais réussi à le faire fonctionner correctement ( je doit-être trop vieux )
Pour moi l'utilisation d'un reverse proxy : les requettes d'internet arrive sur le port 443 et sont rediriger en fonction du sous-domaine ;
Car si tu ouvres plusieurs ports ce n'est plus un reverse proxy , et les requettes d'un navigateur arrive par défaut sur le port 443 (https)
1) il faut déjà virer QTS du port 443 mis par défaut .
2) Il serait temps que Qnap revoie sa copie et permette également de séparer les applis natives comme Qfile de QTS ( elles sont obigatoirement sur le même port)
Nous sommes dans ce cas loin des possibilités offertes par DSM ( synology) que se soit avec un nom de domaine Synology ou autre
 

zypos

Grand Maître Jedi
Je n'ai rien sous la main pour tester maintenant, mais j'ai bien l'impression que avec un nom de domaine myqnapcloud.com cela n'est pas possible.

Il faudrai que les sous-domaines de tonnom.myqnapcloud.com ( exemple cloud.tonnom.myqnapcloud.com ) soit tous automatiquement rediriger vers tonnom.myqnapcloud.com mais la , on tombe sur une erreur.
Je ne me souviens pas si c'est pareil chez Syno, j'ai jamais utilisez les nom de domaine fourni, j'ai rapidement pris un nom de domaine chez OVH. ( poke @MilesTEG1 ? )
Un peu du mal à comprendre :confused: Un reverse proxy n'est pas fait pour rediriger un non de domaine vers un autre nom de domaine c'est plus le rôle d'un Virtual Host
Sur Syno ( mon cas ) avec un nom de domaine OVH on peut trés bien mettre en place des sous-domaines directement . J'ai même conservé mon nom de domaine en synology.me et les deux cohabites sans difficultés .
 

EVOTk

Modérateur
Membre du personnel
Un peu du mal à comprendre :confused: Un reverse proxy n'est pas fait pour rediriger un non de domaine vers un autre nom de domaine c'est plus le rôle d'un Virtual Host
Sur Syno ( mon cas ) avec un nom de domaine OVH on peut trés bien mettre en place des sous-domaines directement . J'ai même conservé mon nom de domaine en synology.me et les deux cohabites sans difficultés .
Je pense qu'on parle de la meme chose, mais on se s'exprime juste pas de la meme façon. En fait le "sous-domaine" est un abus de langage et n'existe pas vraiment.

tonnom.myqnapcloud.com est un domaine, tout comme cloud.tonnom.myqnapcloud.com, meme si effectivement, il est devenu courant de parler de sous domaine dans le cas de cloud.tonnom.myqnapcloud.com
 

zypos

Grand Maître Jedi
tonnom.myqnapcloud.com est un domaine, tout comme cloud.tonnom.myqnapcloud.com, meme si effectivement, il est devenu courant de parler de sous domaine dans le cas de cloud.tonnom.myqnapcloud.com
Mon interprétation :
Un domaine est la racine et un sous domaines les branches qui y sont relier
tonnom.myqnapcloud.com est pour moi un sous domaine qui est relier au nom de domaine myqnapcloud.com
Les Nas ne fournissent pas un vrai nom de domaine mais un sous domaine qui va être mutualiser avec les autres xxx.myqnapcloud.com
C'est ce qui se passe également avec les plates forme de blog on ne te fournis pas un nom de domaine , mais un sous-domaine et ton blog aurra une adresse type : monblog.blogspost.com.
Pour un vrai nom de domaine il faut passer par un régistar externe
 

EVOTk

Modérateur
Membre du personnel
Donc on parle bien de la même chose, tonnom.myqnapcloud.com est un domaine au meme titre que myqnapcloud.com ou tonnom2.myqnapcloud.com mais ici les "sous-domaines" sont pas fourni par un registar style ovh, ... mais par qnap.
 

zypos

Grand Maître Jedi
Donc on parle bien de la même chose, tonnom.myqnapcloud.com est un domaine au meme titre que myqnapcloud.com ou tonnom2.myqnapcloud.com mais ici les "sous-domaines" sont pas fourni par un registar style ovh, ... mais par qnap.
Nous avons du mal à nous comprendre ; pour moi: tonnom.myqnapcloud.com est déjà un sous-domaine
Un régistrar ne fourni pas de sous-domaine , mais un domaine . Si tu veux utiliser des sous-domaine il faudra déclarer une entrée générique type
*ndd type CNAME . Ensuite tu peux utiliser plusieurs sous- domaine sans avoir à les faire enrégistrer ; c'est le type même du fonctionnement des services Qnapcloud.com ; synology.me .... le nom de domaine existe déjà et les utilisateurs vont créer un sous-domaine personnalisé.
Idem avec OVH : tu créer ton nom de domaine et une entrée générique . Tu peux rajouter des sous-domaine au fil de l'eau sans à avoir à intervenir auprés d'OVH.
@EVOTk : je pensais avoir été clair avec mon post précédent ! mais nous sommes un peu hors sujet , j'aimerais bien avoir d'autres avis !
 

MilesTEG1

Modérateur
Membre du personnel
@zypos
La définition du nom de domaine couvre ce que dit @EVOTk .
Le "sous-domaine" n'existe pas, en tout cas pas en définition informatique.
Ce que tu consières comme sous-domaine est en réalité un domaine à part entière...
Exemple :
un.deux.trois.quatre.tld.com et tld.com tout comme www.tld.com sont tous des domaines différents.
C'est la définition. Et par définition, il n'y a pas de sous-domaines, ça n'existe pas.
Sachant que le .tld est le "Top-Level-Domain", donc en soit, aussi un domaine, mais lui un peu particulier, car c'est celui qui est au sommet :D

Maintenant, l'abus de langage de nous, commun des mortels, fait qu'on parle de sous-domaine pour xxxxx.domaine.tld où le xxxxx peut être n'importe quoi...
Cet abus de langage n'est pas bête, mais dans ce cas, il faudrait parler de : sous-(sous)*-domaine pour un.deux.XXXX.domaine.tld, ce qui pourrait devenir pénible...
Je ne critique pas ta manière de voir, car je partage aussi cette appellation de sous-domaine, mais je sais que c'est un abus de langage, et que ça n'est pas la bonne syntaxe ^^
(pense à la programmation, si tu n'utilises pas la bonne syntaxe, ça ne fonctionne pas)


bref, pour revenir au sujet initial, xxxx.mon-ndd.synology.me et yyyy.mon-ndd.synology.me pointent obligatoirement sur la même IP : celle du NAS sur lequel est mis ce nom de domaine.
 

Phildefer

Apprenti
Bonjour donc si je résume :

- Avec Monidperso.myqnapcloud.com on a un "domaine" sans possibilité de créer des "sous domaines" (monservice1.monidperso.myqnapcloud.com, monservice2.monidperso.myqnapcloud.com, etc) dédiés à des services et pointant sur des ports particulier ?
- A condition de libérer le port 443 utilisé par ailleurs par le système ont peut l'utiliser pour le reverse proxy ?
- Tout ceci fait que l'on doit avoir un port ouvert pour chaque service auquel on veut accéder ?
- Le seul intérêt est donc d'accéder en HTTPS à son nas et à des services qui sont en local et tournant sans SSL ?

J'ai bon ? ;-)

Question finale : peut on contourner ces limitations (avec un provider de domaine et un dns dynamique autre que myqnapcloud.com)

Merci.
 

zypos

Grand Maître Jedi
Avec Monidperso.myqnapcloud.com on a un "domaine" sans possibilité de créer des "sous domaines" (monservice1.monidperso.myqnapcloud.com, monservice2.monidperso.myqnapcloud.com, etc) dédiés à des services et pointant sur des ports particulier ?
Je ne suis pas absolument certain que cela fonctionne avec le service myqnapcloud.com
A condition de libérer le port 443 utilisé par ailleurs par le système ont peut l'utiliser pour le reverse proxy ?
Oui il faut virer QTS du port 443 et l'attribuer au reverse proxy
Tout ceci fait que l'on doit avoir un port ouvert pour chaque service auquel on veut accéder ?
Non , normalement seul le port 443 du reverse proxy est exposé , c'est le reverse proxy qui redirige sur le bon port
- Le seul intérêt est donc d'accéder en HTTPS à son nas et à des services qui sont en local et tournant sans SSL ?
la fonction reverse proxy est compléttement indépendante du service SSL ( vaste sujet)
Question finale : peut on contourner ces limitations (avec un provider de domaine et un dns dynamique autre que myqnapcloud.com)
OUI en concret j'utilise un ndd chez OVH avec plusieurs sous-domaine ( sur mon Synology)
1) j'errégistre mon nom de domaine auprés OVH avec un DynHost car j'ai n'ai pas d'IP_publique fixe
2) Je créer une entrée générique : *ndd.fr type CNAME afin de pouvoir utiliser des "domaines-sous-domaines "
Et cela est fini côté Provider
Ensuite il faut créer une règle reverse proxy pour chaque "domaines-sous-domaines "
C'est lui qui fait le tri et fait la différence entre poires.dujardin.fr ; pommes.dujardin.fr ; fraises.dujardin.fr ........
Tu pourra tjrs rajouter des "domaines-sous-domaines "
En gros : le provideur connait ton IP publique et fait la correspondance avec ton nom de domaine
Il sait que tu as une entrée générique ( donc "domaines-sous-domaines ") mais pas leur nb ni l'intitulé .
Rien dans mon espace client OVH ne fait réference au "domaines-sous-domaines " utilisés .
Pour le SSL : le certificat SSL est attribuer au nom de domaine "racine " et il faut faire des manip pour que les "domaines-sous-domaines "
soit bien pris en compte .
Je te souhaite bon courrage et si tu réussi à mettre en place cela sur un Qnap fait nous un retour.
 

Phildefer

Apprenti
Hélas je ne pourrai pas faire grand chose avec myqnapcloud.com s'il n'accepte pas de gérer des "sous domaines" du type nextcloud.xxxx.myqnapcloud.com.

Par contre le seul intérêt pour moi est que je peux entrer en https via xxxx.myqnapcloud.com (sur lequel je suis en ssl) par un port zzzz et rediriger vers le réseau local (192.168.x.y) et le service que je veux utiliser qui lui tourne en http. Au moins ce qui rentre est chiffré ce qui ne serait pas le cas si j'ouvrais directement le port zzzz sur le net.
 

EVOTk

Modérateur
Membre du personnel
Par contre le seul intérêt pour moi est que je peux entrer en https via xxxx.myqnapcloud.com (sur lequel je suis en ssl) par un port zzzz et rediriger vers le réseau local (192.168.x.y) et le service que je veux utiliser qui lui tourne en http. Au moins ce qui rentre est chiffré ce qui ne serait pas le cas si j'ouvrais directement le port zzzz sur le net.
Oui clairement.

Si tu souhaite etre plus libre au niveau de ton nom de domaine, je te conseil d'en acheter un, c'est pas tres cher - de 10€/an pour un .fr, un .ovh me semble que c'est 2 ou 3€/an ...
 

Phildefer

Apprenti
En gros ce que je veux éviter c'est ça :
- Ouvertures de 3 ports directement sur le routeur
1 : Pour Nextcloud accès de puis l'extérieur en http
2 : Pour Nocodb accès depuis l'extérieur en hhtp
3 : Pour Elk accès depuis l'extérieur en http
Ces 3 services n'utilisent pas de certificats

Ce que j'aimerais en ouvrant juste le 443 sur le routeur :
- Reverse proxy avec accès via xxx.mynaqpcloud.com configuré sur le port 443 et 3 règles
1 : Pour Nextcloud -> Nextcloud.xxx.myqnapcloud.com -> redirection vers le réseau local vers l'IP locale et le port de Nextcloud
2 : Pour Nocodb -> Nocodb.xxx.myqnapcloud.com -> redirection vers le réseau local vers l'IP locale et le port de Nocodb
3 : Pour Elk -> Elk.xxx.myqnapcloud.com -> redirection vers le réseau local vers l'IP locale et le port de Elk

Etant donné que je ne vois pas comment créer les sous domaines Nextcloud, Nocodb et Elk avec Myqnapcloud.com (et que cela semble impossible) ou sur le NAS je ne peux utiliser un seul port 443 car je ne vois pas comment Reverse Proxy saurait rediriger les accès donc :

Ce que fais pour l'instant :
- Ouvertures de 3 ports directement sur le routeur (différents de ceux utilisés en local par les trois services)
- Reverse proxy accès via xxx.mynaqpcloud.com configuré avec 3 règles redirigeant les requêtes sur ces trois ports :
1 : Pour Nextcloud -> https://xxx.myqnapcloud.com.port1 -> redirection vers le réseau local vers l'IP locale et le port local de Nextcloud
2 : Pour Nocodb -> https://xxx.myqnapcloud.com.port2-> redirection vers le réseau local vers l'IP locale et le port local de Nocodb
3 : Pour Elk -> https://xxx.myqnapcloud.com.port3 -> redirection vers le réseau local vers l'IP locale et le port local de Elk

Si vous avez une meilleure solution.
Merci.
 
Dernière édition:

zypos

Grand Maître Jedi
Etant donné que je ne vois pas comment créer les sous domaines Nextcloud, Nocodb et Elk avec Myqnapcloud.com (et que cela semble impossible) ou sur le NAS je ne peux utiliser un seul port 443 car je ne vois pas comment Reverse Proxy saurait rediriger les accès
Cela confirme ce que je disais plus haut dans le post # 16 .
Si j'ai bien compris tu ouvres un port différent de celui utilisé par l'appli en local , et le reverse proxy redirige vers le bon port
Mais au vu des exemples donnés cela t'oblige à indiquer le n° de port dans l'URL à la suite du myqnapcloud.com . Je me trompe ?
 
Haut Bas