Synology Webstation : mes premiers pas vers un site dynamique

Dreambox

Chevalier Jedi
30 Novembre 2016
419
128
88
67
62390 Buire au Bois
Bonjour à tous

Maintenant que j’ai fait l’acquisition d’un second Nas Synology, il faut vraiment que je me retire les doigts du c.. pour évoluer dans le monde du Nas
Même si je suis présent sur le forum depuis un petit moment, j’ai toujours utilisé mon Nas de façon primitive (qui a dit que je suis encore à l'âge de Néandertal ?)

Mon objectif : la mise en place d’un site web dynamique

J’ai cru comprendre pour cela que je dois utiliser les applications Web station, PHP, phpMyAdmin et comme base de données Maria DB
Mon niveau de connaissance est proche de zéro mais malgré mon âge avancé, je suis toujours avide d’apprendre

Ceux que je crois savoir !
  • Web station est le moteur qui permet la création d’un site web
  • PHP un langage adapté au web (je suis encore au niveau du basic et du Pascal)
  • PhpMyAdmin, une interface de gestion pour dialoguer avec la base de données
  • Maria DB une base de données (il est loin le temps où j’utilisais DBase II)
La situation actuelle est la suivante
Un Nas Synology DS720+ hébergé derrière une Freebox Delta à dix kilomètres de chez moi (chez mon fils)
J’ai le contrôle total à distance de la Box et du Nas (ça je sais faire)
Un compte utilisateur lambda et un Compte administrateur présent sur le nas (compte Admin par défaut désactivé)
Un nom de domaine chez OVH que je nommerais en abrégé « NDD »
(Le vrai nom sera diffusé quand tout sera en place et pleinement fonctionnelle)
J’ai un certificat de sécurité Let’s Encrypt pour mon NDD et il fonctionne

Commençons doucement

Web station est installé en configuration par défaut NGINX
J’ai fait deux redirections A chez OVH :
  • NDD.fr vers @IP fixe chez mon fils
  • www.NDD.fr vers @IP fixe chez mon fils
Les ports 80/443/5000/5001 de la Box sont ouverts vers @IP du Nas sur le réseau local

Constatations :

Quand je documente la barre d’adresse de mon navigateur (Google Chrome) avec
Mes deux premières questions

Comment rediriger systématiquement l’adresse « NDD.fr » vers « www.NDD.fr » ? (Peut être une déclaration chez OVH)
Comment envoyer la connexion http vers la connexion https ?
(Je crois qu’il y a une partie de code à ajouter au fichier « index.html »)

Pour DSM quand j’écris « NDD.fr:5000 » dans le navigateur, j’arrive bien sur « https://NDD.fr:5001 »

Merci d’avoir lu mon message jusqu’ici
J’espère trouver quelqu’un qui répondra à mes questions présentes et futures
 
Dernière édition:
Salut @Dreambox

Web station est le moteur qui permet la création d’un site web
Il faut voir cela comme un "ensemble d'outil" pour l’hébergement. Il te propose un petit serveur web pré-configuré. PHP, Apache/Nginx ....

PhpMyAdmin, une interface de gestion pour dialoguer avec la base de données
Oui, cela permet d'avoir une WebUI sur ta/tes bases de données.

Comment rediriger systématiquement l’adresse « NDD.fr » vers « www.NDD.fr » ? (Peut être une déclaration chez OVH)
Il y a surement plusieurs manière de faire, et je ne serai pas te dire quelle est la meilleure, pour ma part, je serait parti sur l'utilisation d'un fichier .htaccess placé a la racine du dossier /web : https://karac.ch/blog/redirections-web-htaccess

Comment envoyer la connexion http vers la connexion https ?
Possible avec la même solution que au dessus, a vérifier mais il me semble aussi que DSM propose de base cette option ( une case a cocher ), mais je ne suis plus sur. @MilesTEG1 pourrait peut etre nous confirmer cela ?

Pour DSM quand j’écris « NDD.fr:5000 » dans le navigateur, j’arrive bien sur « https://NDD.fr:5001 »
Je te conseil de ne pas utiliser les ports par default, ou encore mieux d'utiliser le reverse proxy de DSM, par exemple pour transformer https://NDD.fr:5001 en https://cequetuveut.NDD.fr en plus d'etre plus facile a retenir, celle t'évite d'avoir a ouvrir le port 5001 dans ta box. Il te fuadra par contre déclarer chez OVH : cequetuveut.NDD.fr CNAME NDD.fr ou plus générique : *.NDD.fr CNAME NDD.fr

Les ports 80/443/5000/5001 de la Box sont ouverts vers @IP du Nas sur le réseau local
Le port 5000 ne doit pas être ouvert sur ta box, il est non sécurisé et ne doit pas être utilisé de l'extérieur.
 
  • J'aime
Réactions: Dreambox
Salut :) @Dreambox @EVOTk
J'ai pris note du sujet ;) J'essaye de faire une réponse détaillée rapidement, là j'ai pas trop de temps :)
Mais de sûr, faudra passer par le reverse proxy du NAS ;) et savoir générer un certificat wildcards pour le nom de domaine OVH, ce qui n'est pas possible via l'interface de DSM. Sauf à utiliser le nom de domaine synology.

@Dreambox Vu que tu as un DS720+, tu peux installer Docker. Est-ce que tu te sens d'attaque pour installer un conteneur ACME ? (c'est lui qui va générer le certificat wildcard pour ton domaine ndd.ovh et pour *.ndd.ovh, et le placer dans les bons dossiers pour que via DSM tu puisses l'utiliser pour les services que tu veux ^^

PS : je rejoins @EVOTk, il faut changer les ports par défaut :) J'y reviendrais dans un prochain message ;)
PPS : il faut blinder le parefeu du NAS ;) dans un premier temps. Ensuite vu que ton site sera destiné à recevoir du traffic, probablement du monde entier, là pas le choix... bien que je recommanderais de bloquer la chine, la russie, la corée du nord, et les autres pays crainions niveau hacking.
 
  • J'aime
Réactions: Dreambox
Il y a surement plusieurs manière de faire, et je ne serai pas te dire quelle est la meilleure, pour ma part, je serait parti sur l'utilisation d'un fichier .htaccess placé a la racine du dossier /web : https://karac.ch/blog/redirections-web-htaccess
Ah voilà une information intéressante
Je vais regarder attentivement le lien que tu m'as donné

Possible avec la même solution que au dessus, a vérifier mais il me semble aussi que DSM propose de base cette option ( une case a cocher ), mais je ne suis plus sur. @MilesTEG1 pourrait peut etre nous confirmer cela ?
Je pensais à la même chose puisque c'est ce que j'ai fait pour DSM mais je n'ai jamais trouvé cette case à cocher
Je te conseil de ne pas utiliser les ports par default, ou encore mieux d'utiliser le reverse proxy de DSM, par exemple pour transformer https://NDD.fr:5001 en https://cequetuveut.NDD.fr en plus d'etre plus facile a retenir, celle t'évite d'avoir a ouvrir le port 5001 dans ta box. Il te fuadra par contre déclarer chez OVH : cequetuveut.NDD.fr CNAME NDD.fr ou plus générique : *.NDD.fr CNAME NDD.fr
En fait je n'utilise pas les ports par défaut mais comme ils sont connus de tous, j'ai trouvé que c'est plus simple pour s'expliquer
Le 5000 & 5001 sont déjà remplacés par d'autres

Le port 5000 ne doit pas être ouvert sur ta box, il est non sécurisé et ne doit pas être utilisé de l'extérieur.
Tu as raison, je vais donc fermer celui que j'utilise en lieu et place
Il me suffira d'écrire dans mon navigateur, l'adresse complète en https pour accéder au DSM du Nas de l'extérieur
Exemple : https://NDD.fr:5001 (si j'aurais gardé le port par défaut)
Je teste cela tout de suite

Merci beaucoup @EVOTk pour ta contribution
 
  • J'aime
Réactions: EVO
J'ai pris note du sujet ;) J'essaye de faire une réponse détaillée rapidement, là j'ai pas trop de temps :)
Prends ton temps, il n'y a pas le feu au lac :sneaky:
Mais de sûr, faudra passer par le reverse proxy du NAS ;) et savoir générer un certificat wildcards pour le nom de domaine OVH, ce qui n'est pas possible via l'interface de DSM. Sauf à utiliser le nom de domaine synology.
J'ai déjà une petite expérience du reverse proxy et à termes je ne pense pas avoir besoin d'un certificat wildcards
Le certificat sera utile que pour le serveur Web
J'utiliserais un VPN pour les autres services (si j'y arrive) ;)

Vu que tu as un DS720+, tu peux installer Docker. Est-ce que tu te sens d'attaque pour installer un conteneur ACME ? (c'est lui qui va générer le certificat wildcard pour ton domaine ndd.ovh et pour *.ndd.ovh, et le placer dans les bons dossiers pour que via DSM tu puisses l'utiliser pour les services que tu veux ^^
Docker c'est une bonne idée mais pour le moment loin de mes compétences et puis le DS720 n'a que 2Go de RAM
Je retiens ta proposition pour plus tard

PS : je rejoins @EVOTk, il faut changer les ports par défaut :) J'y reviendrais dans un prochain message ;)
Comme je l'ai écrit à @EVOTk , elle n'est pas folle la guêpe, j'ai choisi d'autres ports pour remplacer le 5000 et 5001
Je conserve les ports 80 et 443 par défaut

PPS : il faut blinder le parefeu du NAS ;) dans un premier temps. Ensuite vu que ton site sera destiné à recevoir du traffic, probablement du monde entier, là pas le choix... bien que je recommanderais de bloquer la chine, la russie, la corée du nord, et les autres pays crainions niveau hacking.
C'est prévu dans ma checklist mais je n'en suis pas encore là
Quels sont, pour toi, les autres pays crainions ?


@MilesTEG1 Merci pour ta participation
 
Bon voilà, attention, c'est un gros pavé ^^ que j'espère assez digeste, et surtout didactique.

Précision, les captures sont issues de DSM 7.1.1 (pour un DSM 6.x, faudra que tu cherches les réglages, je ne me rappelles plus où c'était avec cette version 6.x).

Possible avec la même solution que au dessus, a vérifier mais il me semble aussi que DSM propose de base cette option ( une case a cocher ), mais je ne suis plus sur. @MilesTEG1 pourrait peut etre nous confirmer cela ?
Je pensais à la même chose puisque c'est ce que j'ai fait pour DSM mais je n'ai jamais trouvé cette case à cocher

Alors en effet il y a une case à cocher (moi aussi je ne sais plus où) mais il est grandement préférable de ne pas l'utiliser et de passer par le .htaccess. (ça déconne sévère avec l'utilisation d'un reverse proxy, mais même sans, je trouve préférable de passer par le .htaccess).
Moi j'utilise ça :
CSS:
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" env=HTTPS

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
La première ligne est si tu inscris ton domaine sur https://hstspreload.org/, comme ça ton domaine est inscrit en dur dans les navigateurs, et seul le https sera utilisé. (du coup, normalement plus vraiment besoin de la réécriture du .htaccess, mais bon, j'ai gardé quand même ce .htaccess :D
edit : pour clarifier un peu, le HSTS preload, permet que quand tu tapes ton url : www.ndd.ovh, le https est automatiquement mis devant par le navigateur.

En fait je n'utilise pas les ports par défaut mais comme ils sont connus de tous, j'ai trouvé que c'est plus simple pour s'expliquer
Le 5000 & 5001 sont déjà remplacés par d'autres
C'est une bonne chose ^^
Mais mieux encore si tu caches le port DSM via le reverse proxy, et encore mieux, s'il n'est pas du tout accessible depuis internet et donc accessible que via VPN. Perso c'est ce que je fais.
Je n'ai que le port 443 ouvert et routé vers le NAS (enfin maintenant SWAG, mais disons le NAS ^^), et le 6690 pour la synchronisation Drive. Rien d'autre.
Tous mes services (Plex, Gitea, Drive, FileStation, Surveillance Station, etc...) passent tous par le port 443, avec chacun un domaine du type : service1.ndd.ovh
C'est alors le reverse proxy qui se charge de diriger le flux vers la bonne combinaison IP:port.

En attendant que tu configures le serveur VPN du NAS, ou du routeur/box (vu que c'est une freebox, tu peux même configurer le serveur VPN Wireguard dessus, ce serait le must :)), tu peux utiliser le reverse proxy du NAS pour orienter DSM vers le bon port :
1661011545352.png

Ensuite, faudra bien penser à associer chaque entrée du reverse proxy à un certificat :
1661012085238.png

J'ai déjà une petite expérience du reverse proxy et à termes je ne pense pas avoir besoin d'un certificat wildcards
Le certificat sera utile que pour le serveur Web
J'utiliserais un VPN pour les autres services (si j'y arrive) ;)
Du coup, tu n'auras que le www.ndd.ovh qui fonctionnera ?
Quand tu généreras ton certificat, n'oubli pas de mettre le www.ndd.ovh dans la liste des objets secondaire :
1661012444703.png

Ensuite, la solution du VPN est top pour accéder à DSM.

Par contre, je ne sais plus trop comment j'avais mis en place l'accès à un site web temporaire... ha si, faut créer un hôte virtuel qui pointe vers le dossier qui contient ton site web (ici le dossier web du NAS) :
1661013016799.png
1661013063092.png
Je pense même que tu pourrais créer un autre hôte virtuel pointant vers le même dossier web du nas.
Faudra essayer ^^

Docker c'est une bonne idée mais pour le moment loin de mes compétences et puis le DS720 n'a que 2Go de RAM
Je retiens ta proposition pour plus tard
Docker permet tellement de possibilités ^^
Si tu veux mettre en place un serveur Plex, c'est pour moi indispensable ^^ c'est tellement plus propre comme installation. Mais ça demande un peu d'apprentissage.
Si tu veux te lancer, je te conseille très fortement de passer directement par l'utilisation des fichiers docker-compose.yml, et donc utiliser la ligne de commande SSH au moins une fois pour installer Portainer. Une fois que ce sera fait, normalement, tout (ou presque) peut se faire depuis Portainer.
Bref, on pourra t'aider si tu le souhaites ^^

Pourrais-tu nous en dire davantage sur le type de site web que tu veux mettre en place ? Est-ce un site complètement écrit par tes soins ? PHP ? Ou bien un wordpress ou autre CMS ?


C'est prévu dans ma checklist mais je n'en suis pas encore là
Quels sont, pour toi, les autres pays crainions ?
C'est pourtant la première chose à configurer si tu ouvres le NAS sur le web ! C'est méga important, sinon tu t'ouvres aux potentielles attaques (ransomware, vol de données, etc...).
Mon conseil pour le moment, c'est-à-dire pour l'administration :
1661014208583.png

Bon tu remarqueras plusieurs choses, que pour faire la capture d'écran, j'ai remonté la dernière règle qui interdit tout traffic, et que j'ai masqué tout ce qui ne t'intéresse pas vraiment dans l'utilisation que tu veux en faire ^^
Dans ton cas, il faudra activer le port 80 aux IP FR.
Et si tu veux faire le certificat LE via DSM, il faudra aussi activer le HTTP (=80) et HTTPS (=443) au monde entier (à défaut de connaître les IP des serveurs de Let's Encrypt... si tu les connais, ou les trouves, tu les mets en autorisé (sur les port 80 et 443) , avant la dernière règle qui refuse TOUT, pour TOUTES les IPs.

Voilà pour moi le minimum à faire avant de se lancer dans l'utilisation d'un NAS à distance.

PS : tu peux aussi mettre ton port DSM personnalisé ouvert qu'aux IP FR ! Ça c'est super important :) (enfin FR, si tu es en France ;) )

Pour les autres pays crainios... je ne sais pas XD Je n'autorise que les IP FR, ou les IP du support Synology :p
Mais probablement la tahiland, le Liban, et d'autres pays réputés pour leur hacking actif...

Mon conseil : n'autorise que ce que tu juges fiables ;) Et laisse la dernière règle refuser tout le reste ^^
Bon pour un site web.. tu n'auras pas trop le choix, à moins que son public ne soit assurément que français ou francophone, auquel cas faudrait ajouter les pays dans la liste :1661014866480.png

Quand je documente la barre d’adresse de mon navigateur (Google Chrome) avec
Alors, pour ce que tu évoques ici, si ton navigateur ,n'a pas une extension du type HTTPS Everywhere, quand tu tapes un ndd, c'est de base en HTTP.
Enfin, sur certains navigateurs, c'est plus le cas, c'est d'office en https.
Donc le comportement que tu évoques peut être normal ou pas :D C'est quoi le navigateur ?
L'aspect sécurisé ou non, c'est lié au certificat présent avec le https.
Attention, si tu essayes avec l'ip de la connexion internet du NAS, tu auras une erreur ou avertissement de sécurité : https://xxx.xxx.xxx.xxx/
Pour DSM quand j’écris « NDD.fr:5000 » dans le navigateur, j’arrive bien sur « https://NDD.fr:5001 »
Tu as du cocher la case de redirection HTTP vers HTTPS dans DSM :
1661015769495.png
Perso, je ne conseille pas de la cocher XD




PS : as-tu configuré le DynHost d'OVH dans la partie DDNS de DSM ? pour que ton nom de domaine possède toujours l'IP de la connexion internet de là où il se trouve, par exemple si un jour il y a changement de box, pas besoin de reconfigurer ta zone DNS dans OVH, le DynHost, le fait pour toi. C'est ce que j'ai toujours fait, même si j'ai eu freebox (donc IP fixe), puis Livebox (IP dynamique de temps en temps XD), puis re-freebox ^^
Les changements de box sont transparents ^^
(et encore plus en utilisant en plus un routeur dédié, qui lui ne change pas ^^, mais ça c'est une autre histoire).


PPS : Haa ! En cherchant la fameuse case à cocher du HTTP->HTTPS, j'ai vu ça que tu devrais aussi configurer d'urgence :
1661015689354.png



Voilà, ça devrait être tout pour le moment ;) :p

ha bah en fait non, je te fais une dernière capture pour que tu mettes en place le serveur VPN Wireguard sur la freebox :
1661016120736.png
Tu télécharges ensuite la configuration créée après avoir créé un utilisateur :
Il faudra télécharger et installer le client wireguard sur ton pc et hop tu pourras te connecter à la freebox, et accéder aux ressources de son LAN.


( @EVOTk @FX Cachem Je ne peux pas mettre la dernière capture... car 10 fichiers joints maxi... Obligé de l'envoyer sur imgur puis de coller le lien ici. Y a pas moyen d'augmenter cette limite ?)