Aller au contenu
  • Rechercher par étiquettes

    Search will match any tag entered
  • Rechercher par auteur

Type du contenu

Forums

  • Général
    • News et infos
    • Présentation
    • Vos commentaires et suggestions
    • Avis de sécurité (critique et fortement recommandé)
  • Synology & DiskStation Manager (DSM)
    • Avant l'Achat, Choix du Matériel et Mises à Niveau
    • Installation, Configuration et Stockage
    • (DSM) DiskStation Manager
    • Sauvegarde, Synchronisation et Sécurité
    • Tutoriels et Astuces
    • Paquets
    • Problèmes et Dépannage
  • QNAP
    • Avant l'Achat, Choix du Matériel et Mises à Niveau
    • Installation, Configuration et Stockage
    • QTS (Système d'exploitation standard)
    • QuTS hero (Système ZFS avancé)
    • Centre d'Applications : Multimédia, Docker et Virtualisation
    • Sauvegarde, Sécurité et Réseau
    • Tutoriels et Astuces
    • Problèmes et Dépannage
  • Asustor
    • Avant l'Achat, Matériel et Mises à Niveau
    • Installation, Configuration et ADM
    • App Central : Multimédia, Docker et Applications
    • Sauvegarde, Synchronisation et Sécurité
    • Tutoriels et Astuces
    • Problèmes et Dépannage
  • TerraMaster
    • Avant l'Achat, Choix du Matériel (NAS & DAS)
    • Installation, Configuration et TOS
    • Applications : Docker, Multimédia et Outils TerraMaster
    • Sauvegarde, Synchronisation et Sécurité
    • Tutoriels et Astuces
    • Problèmes et Dépannage
  • UGreen
    • Avant l'Achat, Gamme NASync et Matériel
    • Installation, Configuration et UGOS Pro
    • Applications, Docker et Fonctionnalités IA
    • Tutoriels et Découvertes
    • Problèmes et Dépannage
  • Ubiquiti (UniFi NAS)
    • Avant l'Achat, Matériel (UNAS) et Écosystème
    • UniFi OS et UniFi Drive (Fichiers)
    • UniFi Protect (Vidéosurveillance)
    • Réseau, Accès à Distance et Sécurité
    • Tutoriels, Tests et Retours d'Expérience
    • Problèmes et Dépannage
  • TrueNAS (CORE & SCALE)
    • Discussions Générales, Choix du Matériel et "Builds"
    • TrueNAS CORE - Installation, Configuration et Jails
    • TrueNAS CORE - Plugins CORE
    • TrueNAS SCALE - Installation, Configuration et Apps (Docker/Kubernetes)
    • TrueNAS SCALE - Virtualisation (VMs) sur SCALE
    • ZFS : Pools, vdevs, Snapshots et Réplication
    • Tutoriels et Guides Avancés
    • Problèmes et Dépannage
  • OpenMediaVault (OMV)
    • Installation, Matériel et Mises à Jour
    • Configuration de Base et Stockage
    • Docker, Portainer et Stacks
    • Plugins et Services
    • Tutoriels et Projets
    • Problèmes et Dépannage
  • Divers
    • Newbie du monde Linux
    • Système d'exploitation
    • Internet et réseaux
    • Autres NAS
    • Underground / Modifications
    • Achats/Ventes entre particuliers
  • A propos de ce forum
    • Aide & Support Technique
    • Le Bar
    • Suggestions
    • Corbeille
  • Package Center
    • Developers Section
  • Sauvegarde, Synchronisation et Sécurité

Calendriers

  • Événements à venir

Blogs

  • NAS-Forum
  • The Pepito Blog
  • Denis Blog
  • renaud Blog
  • R@M16' Blog
  • Francis KOCH' Blog
  • cmaur' Blog

Rechercher les résultats dans…

Rechercher les résultats qui contiennent…

Date de création

  • Début

    Fin

Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

  • Nombre minimal de commentaires

  • Nombre minimal de réponses

  • Nombre minimal d’avis

  • Nombre minimal de vues

225 résultats trouvés

  1. En quoi consiste la "surveillance" de la page web ?
  2. Bonjour, J'ignore si je suis dans la bonne section. N'hésitez pas à me le faire savoir. Merci. J'ai un compte Gmail qui commence un peu à saturer au niveau du stockage (10Go utilisés sur 15Go). Existe t'il un moyen de stocker les mails sur mon DS920+ afin de libérer l'espace de stockage de mon compte Google ? J'ai envisagé l'auto hébergement d'un serveur mail mais au vu des lectures sur le web, c'est une mauvaise idée vu mon niveau en informatique. Ce que je voudrais, c'est de n'avoir à utiliser qu'une seule application que ce soit sur mon Smartphone et sur mes PC (fixe et Macbook). Lorsque j'envoie ou reçois des mails, c'est via ce même compte mail que tout passe. Mais que ça soit stocké sur mon NAS. En gros, le compte Gmail ne servirai que de relais entre moi et mes interlocuteurs. Je parle de Gmail mais ça peut être un tout autre fournisseur. En stockant le mail sur mon NAS, je ne serai pas limité autant en stockage. Je possède un DS920+ (en SHR tolérant 1 panne de disque); un PC sous Windows, un Macbook air, un smartphone sous android et un DS215J que je peux mettre chez un ami pour la sauvegarde hors site. Je peux faire plusieurs copie du pseudo "serveur mail" sur le DS920+ et le PC à la maison et une 3e copie sur le DS215J en hors site. J’espère avoir été compréhensible dans ce que je souhaite. Merci d'avance pour vos retours.
  3. Bonjour a tous , Afin de reinstaller mon CS_406 je cherche desesperement un repo ou telecharger le dernier FW. j'ai bien regarde ici : https://web.archive.org/web/20230205142316/https://archive.synology.com/download/Os/DSM/3.1-1594 il ya tout sauf le CS-406 les bouboules . Si qq a une autre piste j'en serai ravi .
  4. Bonjour, Quelqu'un aurait-il un lien pour télécharger un fichier host (download station) pour le site Updloady.io s'il vous plait ? Ou un tuto sur comment en créer un ? J'ai vu sur Google qu'il y avait un topic à ce sujet sur le forum mais je n'y ai pas accès : https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://www.nas-forum.com/forum/topic/81968-fichier-host-pour-uploadyio/%3Fdo%3DfindComment%26comment%3D1319513384&ved=2ahUKEwiKuK_mrpWLAxXZ3AIHHQ3lJ0gQFnoECAcQAQ&usg=AOvVaw1KQ-cOebOdNKcHwwUFaVT8 Merci d'avance
  5. Bonsoir. J'utilise un NAS 4 baies modèle DS415play avec 4 disques (3To chacun à la base mais je les remplace progressivement par des 4 To). Niveau disques ce sont des WD30PURZ/PURX et WD40PURX. En plein dépannage de disques, j'ai le NAS qui est devenu inaccessible en réseau. Il apparait pourtant dans Synology Assistant. Je n'ai pas changé de configuration réseau ni de box. La dernière opération que j'ai lancé était une reconstruction du RAID pour remplacer un disque dur en panne par un disque (présumé) neuf. C'est une opération longue mais que je peux habituellement suivre en direct via l'interface web. Quand j'ai essayé de me reconnecter le lendemain pour voir où en était l'opération, impossible d'accéder au NAS. Comme l'opération est délicate et que le temps estimé était de trois jours, j'ai attendu 2/3 jours de plus par prudence. Malheureusement le NAS restait encore inaccessible. J'ai tenté une extinction manuelle avec un appui 5 secondes sur le bouton d'alimentation, ce dernier s'est mis à clignoter mais le NAS ne s’est pas éteint. En désespoir de cause, j'ai encore attendu qques jours et me suis finalement résolu à débrancher électriquement l'appareil pour le relancer mais je me retrouve dans la même situation sauf que le voyant de mon disque 4 est passé en orange. Toujours impossible de l’arrêter manuellement, j'ai donc hésité à refaire un arrêt brutal mais je me suis dit que cela pouvait endommager les autres disques. J'ai donc retiré le disque 4 à chaud et là stupéfaction : il est indiqué "Mauvais" dans CrystalDiskInfo, avec un grand nombre de secteurs réalloués. J'ai contacté le SAV du disque pour un remplacement mais je voulais avoir votre avis sur la situation et sur le fait que le NAS est inaccessible. J'avais déjà changé plusieurs fois des disques et le NAS fonctionnait avec 3 disques sans problème. Merci beaucoup pour votre aide, je suis très inquiet pour nos données.
  6. Bonjour à tous, J'ai récemment installé Jellyfin en conteneur Docker, en suivant le tutoriel de FastGeek : Lien Youtube Pour un fonctionnement en mode local (en rentrant l'adresse IP locale de mon NAS avec le numéro de port qui va bien), je ne rencontre pas de problèmes particuliers, et j'arrive à accéder à l'application sur mes différents clients : web sur PC Windows, application Android sur smartphone/tablette et application Android TV sur Xiaomi Mi Box. Pour un fonctionnement via reverse proxy (en rentrant l'adresse du reverse proxy que j'ai paramétré, qui est de la forme https://jellyfin.XYZ.synology.me:443 ), aucun problème pour accéder à l'application depuis le client web (connecté en réseau local, ou via internet). Par contre, impossible d'y accéder depuis le client Android (connecté au réseau local ou via Internet). En résumé : impossible d'accéder à l'application en reverse proxy avec l'application Android alors que ça fonctionne très bien avec le client web, pour la même adresse de serveur. Le problème semble ainsi venir de l'application Andoid. Ce n'est pas un problème de paramétrage du reverse proxy car avec le client web cela fonctionne. J'ai essayé : de désinstaller et réinstaller l'application Jellyfin Android, en essayant à la fois la version du PlayStore et cette de F-Droid ; des changements de ports pour voir si le port que j'avais paramétré était bloqué par l'application Tout ça sans succès. J'ai trouvé une personne sur Reddit qui a un problème similaire au mien (Lien Reddit), mais je n'ai pas pour autant réussi à régler mon problème. Je suis preneur de tout avis ou recommandation pour réussir à faire tourner l'application Android Jellyfin avec le reverse proxy. Version du serveur Jellyfin : 10.10.1 Version de l'application Android : Jellyfin 2.6.2 Version d'Android : Android 15 sur Pixel 6A
  7. J'ai longtemps utilisé DS Audio qui me donnait toute satisfaction malgré ses limitations. Par exemple quand dans Sécurité > Avancé, le niveau de profil TLS/SSL est réglé sur « Comptabilité moderne » DS Audio refuse de s'exécuter et il faut impérativement le rétrograder à « Comptabilité intermédiaire » ce qui est dommage. J'attendais patiemment une mise à jour qui résoudrait ce problème trivial jusqu'au jour où @.Shad. a réduit à néant tous mes espoirs en annonçant que les applications comme DS Audio n'étaient plus une priorité pour Synology. Le temps lui a donné raison puisque, depuis, Synology a annoncé l'abandon de Video Station et ce à partir de DSM 7.2.2. J'ai donc cherché un remplaçant et, après avoir consulté l'offre d'applications sous Docker, j'ai choisi Navidrome. Cette application n'est pas une usine à gaz et ne fait qu'une chose : gérer de la musique mais elle le fait très bien. Elle se comporte comme un serveur Subsonic qui peut être utilisé par tous les clients qui sont compatibles et ils sont légions. On en trouve dans tous les environnements Windows, macOS, Linux, Apple TV et j'en passe. Cette page Liste des clients compatibles liste la plupart des clients qui le sont. Pour plus d'informations sur sur les principales caractéristiques de Navidrome je vous renvoie sur cette page (en anglais) : Navidrome overview. PRÉ-REQUIS - Avoir installé Container Manager ou Docker suivant la version de DSM de votre NAS. Container Manager a remplacé Docker depuis DSM 7.2. INSTALLATION DU CONTAINER Tous les containers gérés par Docker se trouvent dans une hiérarchie commune de File Station. Ce n'est pas obligatoire mais cela facilite bien des choses. volumeX - docker - container1 - navidrome - container3 - etc Le numéro du volume dépend de votre NAS, sur un NAS 2 baies ce sera volume1. Vous pouvez créer ces dossiers et leurs sous-dossier dans File Station. À l'intérieur du dossier navidrome vous créez un sous-dossier data : navidrome - data FICHIER DE CONFIGURATION C'est le fichier compose.yaml qui sera placé dans le dossier navidrome et sera utilisé lors du déploiement du conteneur. Synology utilise toujours le terme de docker-compose pour ce fichier alors qu'il n'est plus reconnu par docker.com. # # ╔═══════════════════════╗ # ║ N A V I D R O M E ║ # ╚═══════════════════════╝ # # https://www.navidrome.org/docs/ # https://www.navidrome.org/docs/installation/docker/ services: navidrome: image: deluan/navidrome:latest container_name: navidrome restart: unless-stopped user: XXXX:XXX # INDIQUER LE USER ID : GROUP ID DE L'UTILISATEUR DU CONTAINER volumes: # IL DOIT AVOIR LES DROITS SUR DOCKER (R/W) ET MUSIC (RO) - ./data:/data - /volume1/music:/music:ro # le dossier peut être placé n'importe où dans l'arboressece à la ports: # différence de data qui doit se trouver dans docker/navidrome/data - "4533:4533" environment: ND_DEFAULTLANGUAGE: "fr" # calendrier des analyses : toutes les heures (https://crontab.guru) # on peut raccourcir le délai lors de l'import de musique et l'allonger lorsque la situation est stable ND_SCANSCHEDULE: "0 * * * *" ND_LOGLEVEL: warn ND_SESSIONTIMEOUT: 2h # délai au delà duquel la session sera fermée ND_COVERJPEGQUALITY: 90 # niveau de qualité pour les jpg dont la taille est convertie ND_ENABLECOVERANIMATION: false # animation tournante lorsq'une piste est jouée ND_LASTFM_ENABLED: false # disable Last.fm ND_ENABLEFAVOURITES: false # supprime les favoris ND_ENABLESTARRATING: false # supprime les étoiles insuportables ND_ENABLEDOWNLOADS: false # on ne peut pas télécharger d'albums à partir de Navidrome # ND_UILOGINBACKGROUNDURL: # image utilisée lors de la connexion (actuellement image aléatoire) Toutes les valeurs sous la ligne "environment" sont facultatives. Vous pouvez modifier leur contenu afin de tester les changements qui se produisent dans Navidrome. Concernant ND_SCANSCHEDULE, le calendrier des analyses est réglé sur toutes les heures. Ce délai est utile lors de l'ajout régulier de dossiers dans le dossier music et donc lors de la montée en charge de Navidrome. Lorsque les choses sont stabilisées vous pouvez le définir en '@every 24h' quotes comprises. De toute façon, au lancement de Navidrome, celui-ci met à jour ses fichiers caches. Navidrome a besoin de son propre dossier pour y maintenir sa base de donnée musicale, c'est le dossier "data" dans docker/navidrome. Par contre le dossier qui contient les morceaux de musique peut se trouver n'importe où dans l'arborescence à tel point que j'ai choisi le dossier "music" géré par Audio Station qui existait donc déjà. Je n'ai pas eu à tout reprendre à partir de rien. Par précaution ce dossier est en lecture seule ce qui garantit que Navidrome ne pourra pas le modifier mais en contrepartie il n'est pas possible de charger des fichiers musicaux directement à partir de l'application ce qui n'est pas forcément une mauvaise chose. C'est pourquoi j'accède au fichier music en SMB, monte le dossier sur le bureau et fait toutes les modifications nécessaires avec des logiciels spécialisés comme Metadics ou XLD. Navidrome par exemple ne sait pas à partir d'un CD créer un album au format FLAC. Il ne sait pas non plus modifier des méta-données. Il faut donc le faire en dehors de l'application. OUVRIR UNE SESSION SSH Pour activer SSH si ce n'est déjà fait rendez vous dans "Terminal & SNMP". Choisissez ""Élevé" pour l'algorithme de chiffrement dans les paramètres avancés. ATTENTION : Il est vivement recommandé pour des raisons de sécurité de changer le port par défaut de SSH. N'ouvrez pas ce port sur votre box Internet ou votre routeur car il doit être utilisé en local pour des raisons de sécurité une fois de plus. Si vous devez absolument vous connecter à SSH sur le NAS hors du réseau local utilisez un VPN. Pour ouvrir une session SSH en tant qu'administrateur. ssh userID@192.168.1.2 -p XXX où "userID" est le nom de votre compte administrateur, 192.168.1.2 est l'adresse IP locale du NAS et XXX le numéro de port que vous avez attribué à l'étape précédente. À partir de là vous pouvez, lorsque c'est nécessaire, vous connecter en tant que root. On vous demande le mot de passe de votre compte administrateur. CyberFR@DS220:~$ sudo -i Password: root@DS220:~# L'utilisateur de Navidrome Le plus simple et ce qui garantit un niveau de sécurité minimum est de créer un utilisateur dédié à Navidrome. Il doit appartenir au groupe "users". L'accès à tous les dossiers partagés lui est interdit sauf docker en lecture/écriture afin que Navidrome puisse mettre à jour ses données. Comme évoqué plus haut il peut accéder. au dossier music (ou tout autre dossier que vous aurez choisi) en lecture seule. L'accès à toutes les applications lui est interdit. Pour connaître l'identifiant de votre utilisateur ouvrez une session SSH en tant qu'administrateur et tapez "id nav_agent" où nav_agent est l'utilisateur que vous avez créé : CyberFR@DS220:~$ id nav_agent uid=1044(nav_agent) gid=100(users) groups=100(users) Ces valeurs doivent remplacer les XXX qui figurent dans la ligne "user" du fichier de configuration. Vous devez ajouter le fichier de configuration, sous le nom compose.yaml, à la racine du dossier navidrome dans File Station. navidrome - data - compose.yaml DÉPLOIEMENT DU CONTENEUR AVEC CONTAINER MANAGER Rendez-vous dans la partie "Projet" de Container Manager et choisissez Créer. Lorsque vous indiquez le chemin du projet c'est à dire le dossier navidrome qui se trouve dans docker, Container Manager vous demande s'il faut utiliser le fichier compose.yaml qui s'y trouve, vous cochez la case pour confirmer. Container Manager affiche ce fichier et vous signale d'éventuelles erreurs. Cliquez sur Suivant. On ne configure pas de portail Web. On choisit de démarrer le projet dés sa création. Après avoir cliqué sur Effectué, le projet est créé. DÉPLOIEMENT DU CONTENEUR AVEC DOCKER Ouvrez une session SSH en tant que root et rendez-vous dans le dossier navidrome. cd /volume1/docker/navidrome Tapez docker-compose up -d pour déployer le conteneur. Vous obtiendrez une suite de messages vous indiquant la réussite (ou l'échec) de l'opération. ACCÈS À NAVIDROME Le conteneur est lancé mais il reste à accéder à Navidrome. Pour ce faire tapez « http://192.168.1.2:4533 » dans votre navigateur préféré où 192.168.1.2 est l'IP locale du NAS et 4533 le port défini pour Navidrome dans le fichier de config.
  8. Salut à tous les Nassieux, Bon d'habitude, Synology c'est tellement bien fait, je me débrouille tout seul et je trouve toujours ce que je cherche. Mais là pour le coup je sèche un peu, d'autant plus que le problème semble venir de l'environnement Windows plutôt du DSM à techniquement parler. PROBLÈME : Mon client/agent Active Backup for Business ne semble plus/pas trouver mon NAS POURTANT : Mon client Synology Drive fonctionne à merveille. Synology Assistant détecte bien mon NAS sur ce même poste windows. J'ai installé la dernière version de Synology Active Backup for Business (v2.7.0-3221) Je suis à jour concernant mes paquets DSM (qui lui est en DSM 7.1.1-42962 Update 6) La version du package Active Backup est identique au client sur Windows J'ai par le passé déjà réussi à faire des backup avec cette même machine dans la même config (oui enfin quelque chose à changer c'est sûr...) Je ne vois pas bien comment agir étant donné que mes autres services fonctionnent parfaitement avec le NAS et que sur l'agent Windows je n'ai que peut d'option possible. l'erreur dans Active Backup Agent signal simple : ""Erreur Internet. Veuillez vérifier votre connexion internet" le log dans Active Backup DSM : ""le périphérique à manqué la tâche de sauvegarde" Le centre de log DSM ne m'indique rien Existe-il un problème connu avec ce logiciel de Synology ? Comment puis-je mieux investiguer pour comprendre le pourquoi du comment ? Merci beaucoup à vous pour vos éclairages, aides et soutiens psychologique 🙂
  9. Bonjour à tous, Voici mon retour d’expérience et donc un tuto sur la mise en place de Adguard Home via docker (Synology) avec un réseau macvlan sur une Livebox 6. Avec pour but que les DNS soit automatiquement affecter aux périphériques via le serveur DHCP. Contexte : La livebox 6 (idem sur les anciennes box) ne permet pas de modifier les DNS dans son serveur DHCP. Il faut donc passer le serveur DHCP sur un autre équipement. Inconvénient le décodeur TV Orange s'attend à communiquer avec le DHCP de votre Livebox et aucun autre serveur DHCP. Du coup, vous allez avoir un message d'erreur sur votre box TV et vous n'aurez accès à aucun service. Pour résoudre ce problème, il faut ajouter une configuration spéciale (option 125) au nouveau serveur DHCP, afin d’émuler le comportement de la Livebox et faire croire à votre box TV que tout va bien. Si vous ne faites pas cela vous allez obtenir, par exemple, une erreur G03 (ou un écran tout blanc) lors du démarrage de votre décodeur TV UHD. Prérequis : Une livebox avec sa box TV Un NAS Synology Docker sur le NAS Synology (Je n’ai pas Container Manager mais cela sera fonctionnel avec) Un logiciel pour se connecter en SSH au NAS ( PuTTY ) Un éditeur de texte (Exemple : Notepad++) Installation : Installation via Docker sur mon Nas Synology (DS415+) Installation du réseau MacVLAN pour le futur conteneur AdGuard Home AdGuard Home avec DHCP et règle 125 via docker sur le Synology Je n’utilise pas le serveur DHCP du Synology, car je ne sais pas modifier la règle 125 sur ce serveur. Avant de rentrer dans le vif du sujet, je voudrais remercier toutes les personnes qui ont partagées leurs connaissances pour arriver à mes fins. Je n’ai rien inventé, j’ai juste compilé les informations glanées à droite et à gauche. Vous pouvez reprendre toutes mes infos pour les partager au monde entier. Merci à @.Shad. pour ces deux tutos (Docker) et (MACVLAN). Merci à @MilesTEG1 qui partage ces scripts et le docker-compose dans le topic de Adguard (ici) fait par @CyberFr Et surtout merci à LapinFou et JPA54 du forum framboise314.fr qui explique l’option 125 du DHCP (ici), sans qui la box TV ne serait pas en fonction. Sommaire : Installation de réseau MACVLAN Création du réseau MACVLAN Création de l'interface virtuelle Création de la tâche de rétablissement de l'interface virtuelle au redémarrage Création de l’instance Adguard Home Création du docker-compose Lancer le docker-compose Faire fonctionner la BoxTV. Création du DHCP dans AdGuard Home Modification du fichier .yaml (Regle 125 du DHCP) Désactiver le DHCP de livebox Réserver l’IP dans le DHCP d’AdGuard Home Paramètre du client (BoxTV) dans AdGuard Home Paramétrage de Adguard Home Paramétrage des périphériques AdGuard Home + DOCKER + MACVLAN + LIVEBOX Installation du réseau MACVLAN Création du réseau MACVLAN Je vous conseil d’aller lire le tuto de @.Shad. dans la partie 11 pour en apprendre plus : [TUTO] Docker : Introduction - Tutoriels - NAS-Forum Je ne vais pas refaire l’explication, tout est dit par @.Shad. Le but est de créer un fichier script qu’on va activer via Putty. Vous pouvez récupérer le fichier à modifier sur le GITUB de MilsTEG1 : Synology-Docker-Adguard-Home-in-a-macvlan-network/docker_network_create_macvlan.sh at main · MilesTEG1/Synology-Docker-Adguard-Home-in-a-macvlan-network · GitHub Où créer un fichier que vous nommez ainsi docker_network_create_macvlan.sh Puis vous l’éditer avec Notepad++ avec cela : #!/bin/bash ##========================================================================================## ## Script macvlan-network.sh ## ## ## ## Script de création d'interface virtuelle pour le conteneur AdGuardHome_macvlan ## ## Voir tuto : https://www.nas-forum.com/forum/topic/69319-tuto-docker-macvlan-pi-hole/ ## ## ## ##========================================================================================## echo "$(date "+%R:%S - ") Script de création de réseau macvlan pour DOCKER" echo "$(date "+%R:%S - ") Un réseau macvlan-network sera créé avec cinq IP macvlan de 192.168.1.145 à 192.168.1.150" echo "$(date "+%R:%S - ") avec la commande suivante :" echo "$(date "+%R:%S - ") docker network create -d macvlan \ " echo "$(date "+%R:%S - ") --subnet=192.168.1.0/24 \ " echo "$(date "+%R:%S - ") --ip-range=192.168.1.144/29 \ " echo "$(date "+%R:%S - ") --gateway=192.168.1.1 \ " echo "$(date "+%R:%S - ") -o parent=eth0 \ " echo -e "$(date "+%R:%S - ") macvlan-net\n" docker network create -d macvlan \ --subnet=192.168.1.0/24 \ --ip-range=192.168.1.144/29 \ --gateway=192.168.1.1 \ -o parent=eth0 \ macvlan-network echo -e "\n\n$(date "+%R:%S - ") Liste des réseaux docker : docker network ls\n" docker network ls echo -e "\n$(date "+%R:%S - ") Script terminé\n" exit Notes : - subnet => on choisit le sous-réseau physique, celui de nos machines. - ip-range => on va définir la plage d'IP couverte par le réseau. Un calculateur peut vous aider à trouver la plage que vous voulez. Voici mon exemple : IPv4/IPv6 – Subnet Calculator | CIDR/EU Ainsi j’aurai 5 IP de disponible dans le réseau MACVLAN qui seront de 192.168.1.145 à 192.168.1.1.150. On expliquera plus tard comment affecter l’IP au conteneur via le docker-compose. Important !! Il est fortement recommandé que la plage d'IP couverte par le serveur DHCP de votre réseau soit dissociée de la plage d'IP allouée au réseau macvlan. Mon DHCP est et sera de 192.168.1.50 à 192.168.1.65 et la plage de MACVLAN 192.168.1.145 à 192.168.1.150 Adapter ces valeurs en fonction de votre réseau. - gateway => c'est notre passerelle, vu qu'on est sur le réseau physique c'est généralement votre box ou votre routeur. En l’occurrence pour une livebox : 192.168.1.1 - parent => c'est le nom de l'interface physique. Pour la connaitre, lancer putty : Taper l’adresse IP de votre NAS et cliquer sur OPEN (Penser à activer pour les manipulations le service SSH dans le DSM de votre NAS = PanneauConfiguration\Terminal & SNMP) Entrer votre login administrateur du Synology, valider avec la touche entrée. Taper le mot de passe administrateur (il n’apparait pas quand vous taper, cela est normal) , valider avec la touche entrée. Taper ifconfig, valider avec la touche entrée. Chercher le nom du réseau qui correspond à l’IP de votre NAS. Sur mon exemple et mon NAS Synology DS415+, le nom est donc eth0 Enregistrer ce fichier puis connectez vous au DSM de votre NAS et lancer File Station. Dans le dossier docker, je vous conseil de créer un dossier FICHIERS puis 2 sous dossiers SCRIPTS & COMPOSE. Placer le fichier fraichement créer dans /volume1/docker/FICHIERS/SCRIPTS Lancer PuTTY et connectez-vous en root. Pour cela taper cela sudo -i Ensuite il faut se placer dans le dossier où est le script : cd /volume1/docker/FICHIERS/SCRIPTS On accorde les permissions (pas sûr que cela soit nécessaire) chmod 740 docker_network_create_macvlan.sh On exécute le script bash docker_network_create_macvlan.sh Si tout va bien, on obtient une suite de caractères, cela signifie que le réseau est créé. Et vérifier qu'il apparaît bien dans la liste. En cas d'erreur dans la transcription, il suffit de supprimer le réseau malformé pour recommencer : docker network rm macvlan-network 2. Création de l'interface virtuelle On va créer un second script. Vous pouvez récupérer le script orignal toujours sur le GITHUB de MilesTEG1 : Synology-Docker-Adguard-Home-in-a-macvlan-network/bridgemacvlan-interface.sh at main · MilesTEG1/Synology-Docker-Adguard-Home-in-a-macvlan-network · GitHub Où créer un fichier que vous nommez ainsi bridgemacvlan-interface.sh Puis vous l’éditer avec Notepad++ avec cela : #!/bin/bash ##===========================================================================================## ## Script bridgemacvlan-interface.sh ## ## ## ## Script de création d'interface virtuelle pour les conteneurs en macvlan ## ## Voir tutos : ## ## https://www.nas-forum.com/forum/topic/69319-tuto-docker-macvlan-pi-hole/ ## ## https://www.nas-forum.com/forum/topic/67311-tuto-certificat-ssl-reverse-proxy-via-docker/ ## ## ## ## Vérifier la bonne création de l'interface avec la commande suivante : ## ## ifconfig | grep -A 9 macv0 ## ## ## ##============================================================================================= # Set timeout to wait host network is up and running sleep 60 echo "$(date "+%R:%S - ") Script de création d'une interface virtuelle pour le NAS" echo "$(date "+%R:%S - ") Exécution des commandes..." ip link add macv0 link eth0 type macvlan mode bridge # macv0 : est le nom données à l'interface virtuelle # eth0 : est l'interface réseau utilisée sur le NAS (lorsque VMM n'est pas utilisé) # si VMM est utilisé, ce sera ovs_eth0 ip addr add 192.168.1.200/32 dev macv0 # Adresse IP virtuelle 192.168.x.zzz/32 -- Il faut que cette adresse soit libre dans le réseau # et qu'elle ne fasse pas partie du DHCP du routeur/box ip link set dev macv0 address 5E:11:4F:AF:D6:D2 # MAC adresse pour l'adaptateur ayant l'IP virtuelle # Il faut que l'adresse MAC respecte ces conditions : # - Elle n'existe pas déjà sur mon hôte et sur mon réseau. # - Elle respecte la base hexadécimale, les notations allant de 0 à F. # - Le premier nombre doit être pair, ici 5E = 94 en base 10, c'est donc OK (vous pouvez # utiliser un convertisseur en ligne, ou faire vos divisions euclidiennes). # S'il est impair, vous aurez un message : # RTNETLINK answers: Cannot assign requested address ip link set macv0 up ip route add 192.168.1.144/29 dev macv0 # 192.168.xxx.MMM/29 : Plage d'adresse macvlan # IP réellement disponible : voir les calculateurs internet # /29 = 5 IP - /32 = 1 IP #### Dans mon cas, c'est cette commande : #### ip route add 192.168.1.144/29 dev macv0 echo "$(date "+%R:%S - ") Script terminé" exit Notes : ip link add <nom_interface_macvlan> link <interface_physique> type macvlan mode bridge ip addr add <IP_virtuelle>/32 dev <nom_interface_macvlan> ip link set dev <nom_interface_macvlan> address <adresse_MAC> ip link set <nom_interface_macvlan> up ip route add <Plage_DHCP_réseau_macvlan> dev <nom_interface_macvlan> Si on veut faire correspondre à l'exemple du réseau ci-dessus : - <nom_interface_macvlan> => un nom au hasard, pas de caractères spéciaux, macv0 par exemple, peu importe - <interface_physique> => eth0 / idem que sur le premier script - <IP_virtuelle> => il l faut que cette adresse soit libre dans le réseau et qu'elle ne fasse pas partie du DHCP du routeur/box et du réseau MACVLAN. Je choisi la 192.168.1.200 qui se traduit par 192.168.1.200/32. - <adresse MAC> => on peut définir une adresse MAC pour notre interface. Il faut que cette adresse soit libre dans le réseauet qu'elle ne fasse pas partie du DHCP du routeur/box. - <Plage_DHCP_réseau_macvlan> => ça correspond à --ip-range dans le script plus haut Enregistrer le fichier et placer le, toujours avec File Station dans /volume1/docker/FICHIERS/SCRIPTS Revenez dans putty et placer vous dans ce dossier cd /volume1/docker/FICHIERS/SCRIPTS On accorde les permissions (pas sûr que cela soit nécessaire) chmod 740 bridgemacvlan-interface.sh On exécute le script bash bridgemacvlan-interface.sh On vérifie en tapant : ifconfig | grep -A 9 mac0 Ce qui doit donner un résultat du type : 3. Création de la tâche de rétablissement de l'interface virtuelle au redémarrage L’interface ne persiste pas au redémarrage du NAS, on va pour cela définir une tâche planifiée, il faut aller dans DSM -> Panneau de configuration -> Planificateur de tâches -> Créer -> Tâche déclenchée : Puis on valide. REMARQUE : Lorsqu'on stoppe docker, ou qu'on le met à jour, l'interface disparaît également. La tâche n'étant lancée qu'au démarrage, vous devrez réexécuter la tâche manuellement pour rétablir l'interface. 2. Création de l’instance Adguard Home 2.1. Création du docker-compose Le fichier docker-compose est encore est toujours récupérable sur le GITHUB de MilesTEG1 : Synology-Docker-Adguard-Home-in-a-macvlan-network/docker-compose.yml at main · MilesTEG1/Synology-Docker-Adguard-Home-in-a-macvlan-network · GitHub On le modifie avec notepad++. Je n’indique que les parties que j’ai modifié hostname: AdGuard-Home--DS415+ Permet d'avoir un nom pour le conteneur dans AdGuard lui-même (sinon c'est une chaine aléatoire) Environment: PUID=1*** PGID=1** Pour récupérer l’info, voici un excellent tuto : NAS Synology - Récupérer l'UID et le GID d'un utilisateur (it-connect.fr) #volumes: Je n’ai pas touché au volume. Cependant j’ai créé les dossiers /volume1/docker/adguardhome_macvlan/work & /volume1/docker/adguardhome_macvlan/conf avant de lancer le fichier docker-compose.yml networks: macvlan-network: ipv4_address: 192.168.1.150 Mettre ici l'IP macvlan dans la plage définie dans les scripts. Pour rappel ma plage MACVLAN est 192.168.1.145 à 192.168.1.150 networks: macvlan-network : # Le nom du réseau créer via le script docker_network_create_macvlan.sh (ligne 27) Ce qui donne pour moi (il faut modifier PUID & PGID) : ##============================================================================================== ## ## ## Fichier docker-compose.yml pour Adguard-Home en macvlan ## ## ## ##============================================================================================== ##============================================================================================## ## ## ## Attention, il faut créer le réseau macvlan à l'aide du script : macvlan-network.sh ## ## Ce dernier va créer un réseau macvlan ayant comme IP unique 192.168.1.150 ## ## Cette IP doit être dans la plage d'IP mavclan définie dans le script de création du réseau.## ## Le conteneur sera donc vu comme une machine sur le réseau LAN, mais ne pourra pas être ## ## joint par le NAS lui-même. ## ## Pour celà, il faut utiliser le second script : boot-bridgemacvlan-interface.sh ## ## Ce dernier va créer une IP-interface virtuelle qui pourra être accessible par le NAS. ## ## Cette interface ne persiste pas au démarrage, il faudra mettre le script en tâche ## ## planifiée avec le planificateur de tâches dans DSM. ## ## ## ## Voir tuto : https://www.nas-forum.com/forum/topic/69319-tuto-docker-macvlan-pi-hole/ ## ## ## ## Attention ! ## ## ## ## Ces deux scripts ne sont à utiliser qu'une seule fois, quelque soit le nombre de ## ## conteneurs qui en bénéficieront. ## ## Par exemple, si vous utilisez 2 conteneurs en macvlan, une fois le réseau macvlan créé ## ## pour le 1er, il est inutile (et impossible) de le recréer. ## ## Le script boot-bridgemacvlan-interface.sh ne doit être lancé qu'une seule fois, et à ## ## chaque reboot. L'IP virtuelle est unique, il ne faut pas en recréer une seconde. ## ## ## ##============================================================================================== --- version: "2.4" services: adguardhome_macvlan: image: adguard/adguardhome:latest # https://github.com/AdguardTeam/AdGuardHome # https://github.com/AdguardTeam/AdGuardHome/wiki/Docker container_name: adguardhome_macvlan hostname: AdGuard-Home--DS415+ # Permet d'avoir un nom pour le conteneur dans AdGuard lui même (sinon c'est une chaine aléatoire) environment: - PUID=1*** # Utiliser la commande (en SSH) : id NOM_UTILISATEUR - PGID=1** # Utiliser la commande (en SSH) : id NOM_UTILISATEUR - TZ=Europe/Paris - LANG=fr_FR.UTF8 - LANGUAGE=fr_FR.UTF8 volumes: - "/volume1/docker/adguardhome_macvlan/work:/opt/adguardhome/work" - "/volume1/docker/adguardhome_macvlan/conf:/opt/adguardhome/conf" # La déclaration des ports n'est pas utile lors d'une installation en macvlan, car tous les ports seront directement accessible # avec l'IP virtuelle. # ports: # - "953:53" # - "967:67/udp" # - "968:68" # - "8080:80/tcp" # - "9443:443/tcp" # - "9853:853/tcp" # - "3030:3000/tcp" networks: macvlan-network: ipv4_address: 192.168.1.150 # Mettre ici l'IP macvlan dans la plage définie dans les scripts # Dans mon cas c'est 192.168.1.150 restart: unless-stopped healthcheck: test: "/bin/netstat -pant | /bin/grep 53" interval: 45s timeout: 30s retries: 3 networks: macvlan-network: # Ce réseau devra bien entendu être créé avant avec le script annexe ligne27 external: true Enregistrer le fichier. Placer le, toujours avec File Station, dans /volume1/docker/FICHIERS/COMPOSE/ADGUARD. Créer le dossier ADGUARD s’il n’existe pas. 2.2. Lancer le docker-compose Revenez dans PuTTY, placer vous dans le dossier : cd /volume1/docker/FICHIERS/COMPOSE/ADGUARD Création du conteneur docker-compose up -d Attendre quelques secondes/minutes (en fonction de la puissance de votre NAS). Félicitations, votre Adguard Home est fonctionnel ! Vous pouvez y accéder via un navigateur dans votre réseau local en http://192.168.1.150:3000 Il n’est pas accessible en https. Sélectionner l’interface d’écoute par l’IP choisi dans le docker-compose en l’occurrence pour nous 192.168.1.150. Ne pas toucher au port. Ne pas toucher au serveur DNS et cliquer sur Suivant Créer un utilisateur avec son mot de passe puis toujours suivant. Vous êtes maintenant sur votre instance AdGuard Home. 3. Faire fonctionner la BoxTV Afin de faire fonctionner la box TV nous réaliser ces actions : Création du DHCP dans AdGuard Home Modification du fichier .yaml pour la règle 125. Désactiver le DHCP de livebox Réserver l’IP dans le DHCP d’AdGuard Home Paramètre du client (BoxTV) dans AdGuard Home 3.1. Création du DHCP dans AdGuardHome Cliquer sur Paramètres Cliquer sur Paramètres DHCP Rentrer l’IP de la passerelle de votre livebox (d’origine 192.168.1.1) Rentrer l’IP du début de la plage IP de votre DHCP (pour moi 192.168.1.50) Rentrer l’IP de la fin de la plage IP de votre DHCP (pour moi 192.168.1.65). J’aurai donc 15 périphériques qui pourront se connecter sur mon DHCP. A vous d’adapter ces chiffres en évitant ces IP (192.168.1.145 à 192.168.1.150 & 192.168.1.200) Rentrer 255.255.255.0 Sauvegarder la configuration 3.2. Modification du fichier .yaml pour la règle 125. Afin d’ajouter l’option 125 dans le fichier AdGuardHome.yaml qui permettra de faire croire à la BoxTV que son IP soit fourni par la Livabox, il faut créer la bonne ligne. Tout est super bien expliquer dans le tutorial de LapinFou : [Tuto] Pi-Hole, Livebox et décodeur TV Orange - framboise314.fr Je vous conseil de le suivre à la lettre pour créer votre ligne. Voici ma ligne : Les chiffres en blanc ne sont pas à changer. Ceux en couleurs oui. 343444343534 = les 6 premiers caractères de l'adresse MAC (44D454) de la Livebox convertie en "Hexa" C4B32**********50393939383035 = Le numéro de série (LK*****DP999805) de la Livebox convertie en "Hexa" 36 = Le modèle de la box (ici Livebox 6) convertie en "Hexa" Toutes ces informations sont disponible depuis son interface web (http://livebox/ ou http://192.168.1.1) "Informations système" → "Général" → "1.5 Adresse MAC" / "1.4 Numéro de série" / "1.2 Modèle" Voici le site pour convertir en "Hexa" : https://string-functions.com/string-hex.aspx Après avoir récupérer le HEX, il faut l’ajouter en option dans le AdGuardHome.yaml. Retour sur le NAS et on procède ainsi 1. On arrête l’instance dans docker 2. On télécharge le fichier AdGuardHome.yaml qui ce trouve dans /volume1/docker/adguardhome_macvlan/conf/ 3. On le modifie avec Notepad++ On ajoute la ligne après option comme dans mon exemple : dhcp: enabled: true interface_name: eth0 local_domain_name: lan dhcpv4: gateway_ip: 192.168.1.1 subnet_mask: 255.255.255.0 range_start: 192.168.1.50 range_end: 192.168.1.65 lease_duration: 86400 icmp_timeout_msec: 1000 options: - '125 hex 00000DE9240406343444343534050F4C4B3232303636445039393938303506094C697665626F782036' 4. On enregistre le fichier et on le place dans /volume1/docker/adguardhome_macvlan/conf/ pour remplacer l’ancien 5. On relance l’instance adguardhome_macvlan 3.3. Désactiver le DHCP de livebox Revenez sur votre interface de votre BOX et désactiver le DHCP. Si vous voyer l’adresse MAC de votre box TV, noter là pour plus tard. 3.4. Réserver l’IP dans le DHCP d’AdGuard Home Revenez sur l’interface graphique de AdGuard Home (http://192.168.1.150) Toujours dans Paramètres / Paramètres DHCP, aller tout en bas dans Baux statiques DHCP et cliquer sur "Ajoutez un bail statique" et rentrer ces informations : L’adresse MAC du boitier TV L’IP que vous voulez lui allouer. Exemple 192.168.1.66 Un nom. Exemple BoxTV Enregistrer Maintenant il va falloir un paramétrage persistant pour ce client. 3.5. Paramètre du client (BoxTV) dans AdGuard Home Maintenant aller dans Paramètres / Paramètres du client et "Ajouter un client" avec ces infos : Paramètres Le nom que vous voulez Mots clés : ne pas toucher Identifiant L’IP de la box La MAC de la box Protection : tout décocher Blocage des services spécifiques Tout débloquer Suspendre le blocage des services Ne pas toucher Serveurs DNS upstream Passerelle de la box : 192.168.1.1 Indiquer les DNS de la box (Info trouvable sur l’interface de la box dans Paramètres avancés\Informations système\Internet\4.12 & 4.13 Pour moi : 80.10.246.132 & 81.253.149.2 Enregistrer. A partir de maintenant le paramétrage est fini vous pouvez rallumer la box tv et vérifier si cela fonctionne. Si oui, félicitation !! 😇🤩🍾 Il nous reste plus qu'à peaufiner les paramétrages d’AdGuard Home et des périphériques. 4. Paramétrage de AdGuard Home Présentation et explication faite plus tard Paramètres Paramètres généraux J'ai tout coché (sauf youtube) Paramètres DNS Serveur DNS upstream https://family.cloudflare-dns.com/dns-query tls://family.cloudflare-dns.com https://family.adguard-dns.com/dns-query tls://family.adguard-dns.com Serveurs DNS d'amorçage 1.1.1.3 1.0.0.3 2606:4700:4700::1113 2606:4700:4700::1003 Filtres Liste de blocage DNS filters: - enabled: true url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt name: AdGuard DNS filter id: 1 - enabled: true url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_2.txt name: AdAway Default Blocklist id: 2 - enabled: true url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_50.txt name: uBlock₀ filters – Badware risks id: 1715176311 - enabled: true url: https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV-AGH.txt name: Perflyst and Dandelion Sprout's Smart-TV Blocklist id: 1603827714 - enabled: false url: https://pgl.yoyo.org/adservers/serverlist.php?hostformat=adblockplus&showintro=1&mimetype=plaintext name: Peter Lowe's List id: 1603827715 - enabled: true url: https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/nocoin.txt name: NoCoin Filter List id: 1603827716 - enabled: true url: https://raw.githubusercontent.com/durablenapkin/scamblocklist/master/adguard.txt name: Scam Blocklist by DurableNapkin id: 1603827717 - enabled: true url: https://raw.githubusercontent.com/Spam404/lists/master/main-blacklist.txt name: Spam404 id: 1603827718 - enabled: true url: https://sebsauvage.net/hosts/hosts-adguard name: sebsauvage.net hosts-adguard id: 1603827720 - enabled: true url: https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-blocklist.txt name: firebog.net - NoTrack-blocklist id: 1603827721 - enabled: true url: https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV.txt name: firebog.net - SmartTV id: 1603827722 - enabled: true url: https://raw.githubusercontent.com/DandelionSprout/adfilt/master/GameConsoleAdblockList.txt name: Game Console Adblock List id: 1614201141 - enabled: true url: https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt name: WindowsSpyBlocker - Hosts spy rules id: 1614201143 - enabled: true url: https://raw.githubusercontent.com/mitchellkrogza/The-Big-List-of-Hacked-Malware-Web-Sites/master/hosts name: The Big List of Hacked Malware Web Sites id: 1614201145 - enabled: true url: https://adaway.org/hosts.txt name: AdAway Default Blocklist id: 1657191092 - enabled: true url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_18.txt name: Phishing Army id: 1715209163 - enabled: true url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_8.txt name: NoCoin Filter List id: 1715209164 - enabled: true url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_31.txt name: Stalkerware Indicators List id: 1715209165 - enabled: true url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_30.txt name: Phishing URL Blocklist (PhishTank and OpenPhish) id: 1715209166 - enabled: true url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_10.txt name: Scam Blocklist by DurableNapkin id: 1715209167 - enabled: true url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_42.txt name: ShadowWhisperer's Malware List id: 1715209168 - enabled: true url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_9.txt name: The Big List of Hacked Malware Web Sites id: 1715209169 - enabled: true url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_11.txt name: Malicious URL Blocklist (URLHaus) id: 1715209170 - enabled: true url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_12.txt name: Dandelion Sprout's Anti-Malware List id: 1715209171 - enabled: true url: https://dl.red.flag.domains/adguard/red.flag.domains.txt name: Nicolas Pawlak id: 1715209172 - enabled: true url: https://dl.red.flag.domains/adguard/red.flag.domains_fr.txt name: Nicolas Pawlak FR id: 1715209173 - enabled: true url: https://dl.red.flag.domains/adguard/red.flag.domains_ovh.txt name: Nicolas Pawlak OVH id: 1715209174 - enabled: true url: https://dl.red.flag.domains/adguard/red.flag.domains_yt.txt name: Nicolas Pawlak YT id: 1715209175 Services Bloqués Faites vos choix Règles de filtrage personnalisées ||example.org^ :bloque l’accès au domaine example.org et à tous ses sous-domaines ; @@||nas-forum.com^ :débloque l’accès au domaine nas-forum.com et à tous ses sous-domaines ; Attention cette option ne permet pas de débloquer un site bloqué par les Serveurs DNS upstream. Pour bloquer les publicités sur youtube, facebook ou autre via un PC, je vous conseil d'ajouter un bloqueur de publicités à votre navigateur. Style : Ublock Origin. N'oublier pas de passer un liste blanche vos sites préférés comme www.nas-forum.com 5. Paramétrage des périphériques Windows Laisser en DHCP pour vos équipement ainsi il prendra automatiquement les bon paramètres Si vous optez de paramétrer un périphérique en manuel rentrer dans le DNS principal et secondaire l'IP de votre instance AdGuard Home. Pour moi : 192.168.1.150 Android Laisser en DHCP et modifier le DNS avec celui paramétrer dans les serveurs DNS upstream de AdGuard Home. Pour moi cela sera : https://family.cloudflare-dns.com/dns-query Apple Je n'ai pas de produit Apple, je vais m'abstenir d'en parler. Merci à tous de m'avoir lu, j'arrive au bout de ce long tuto. Je reste disponible pour vous aider. Sources : [TUTO] Docker : Introduction - Tutoriels - NAS-Forum [TUTO] [Docker - macvlan] Pi-Hole - Tutoriels - NAS-Forum [TUTO] Certificat SSL & reverse proxy via Docker - Tutoriels - NAS-Forum Installation d'AdGuard, c'est fait ! - Installation, Démarrage et Configuration - NAS-Forum [Tuto] Pi-Hole, Livebox et décodeur TV Orange - framboise314.fr
  10. Bonjour à tous, J'ai un petit souci qui semble ne pas être grand chose mais qui m'agace gentillement, et que je n'ai pas résolu malgré le fait que j'y ai passé quelques heures... J'ai un NAS Synology branché en Ethernet à ma LiveBox. Depuis mon ordi portable (sous Win11, via WiFi), j'arrive à accèder à l'interface de gestion de mon NAS (via l'IP locale 192.168.1.38:5000) depuis un navigateur Or, quand j'essaie d'accèder à ce même NAS depuis Windows (via le réseau ou un raccourci que je créé), impossible d'y accéder. Pourtant: - Windows détecte bien mon DiskStation, il apparaît dans les équipements réseaux (mais quand je double clique dessus, erreur: Windows ne peut accéder à [Nom du Diskstation]) - mon NAS est bien trouvé par le Synology Assistant - Comme précisé auparavant, j'arrive à y accèder via mon navigateur et son IP locale, et je peux parfaitement le manager - Je ne pense pas que le problème vienne d'un problème de redirection de port configuré sur ma LiveBox - Dans l'interface de gestion du DiskStation, je suis en configuration manuelle https://ibb.co/ZGP6vZw - J'ai un autre ordi (un fixe, qui tourne sur Win11 également, mais branché en filaire sur le réseau) et je n'ai pas ce problème, je peux bien accéder aux répertoires partagés de mon NAS depuis Windows Bref je suis un peu dérouté, si vous avez quelques pistes je suis preneur 🙂 Merci !
  11. Pour qui ? Depuis plusieurs années, ce tutoriel rédigé par @Fenrir est LA référence en matière de sécurisation des accès à un NAS. C'est de loin le tutoriel le plus lu du forum, et c'est une bonne chose, car cela signifie que les utilisateurs de NAS Synology se préoccupent de sécuriser leurs données. Néanmoins, bien que le tutoriel soit toujours d'actualité, certaines sections de DSM sont organisées différemment depuis l'arrivée de DSM 7. En outre, certaines informations importantes se trouvent dans les innombrables pages de commentaires, ce qui ne facilite pas la tâche aux nouveaux venus. A l'usage, on remarque également qu'il peut : parfois aller trop vite sur certains points pour des néophytes être a contrario trop succinct pour des utilisateurs souhaitant aller plus loin dans la sécurisation des accès. Il a donc été convenu de rédiger deux versions du tutoriel : cette version, une version plus pas-à-pas, reprenant l'essentiel du tutoriel original, destinée à permettre une rapide mise en service d'un NAS de manière sécurisée. C'est l'objet du tutoriel que vous allez maintenant suivre. une version plus avancée, pour utilisateurs avertis Le tutoriel s'inspire grandement du tutoriel original, merci encore à @Fenrir son rédacteur. Préambule et recommandations Définition Mais commençons par un peu de vocabulaire, un produit labélisé NAS chez Synology est en réalité un serveur, disposant d'un OS, d'un processeur et de mémoire, permettant : La mise à disposition en réseau de données par de nombreux protocoles : HTTP, HTTPS, CIFS, NFS, SSH, etc... L'hébergement de services divers et variés : nativement (Centre de paquets) par conteneurisation (Container Manager) (plus d'info ici) par virtualisation (Virtual Machine Manager) Dans la suite du tutoriel, nous emploierons improprement le terme NAS par commodité. Cahier des charges Ce que ce tutoriel couvre : La configuration des protocoles utilisés pour les accès au NAS La configuration du pare-feu La mise en place d'un certificat TLS La configuration d'un service de notification La protection des accès utilisateurs La configuration des cartes réseau Ce que ce tutoriel ne couvre pas : La configuration de votre box pour un accès distant La mise en place d'un proxy inversé La mise en place d'un serveur VPN Le chiffrement de volume ou de dossier partagé La sauvegarde et la restauration de données (outre la configuration du système) // IMPORTANT \\ En appliquant ce tutoriel, vous coupez votre NAS de tout accès extérieur. Pour accéder à votre NAS à distance, il existe plusieurs méthodes : Utilisation du relais QuickConnect de Synology, point abordé dans la partie Accès externe. Accès par nom de domaine (point abordé dans la partie Accès externe également) + redirection de ports (avec ou sans proxy inversé) Utilisation d'un serveur VPN sur le NAS pour le transfert de fichiers uniquement : FTP, SFTP, WebDAV, etc... Veuillez vous référez aux liens fournis pour la mise en place d'un accès externe sécurisé. Prérequis et méthode Le vocabulaire dédié au monde du réseau est spécifique, il est conseillé de lire le sujet rédigé par @Kramlech, ces notions seront utiles pour la compréhension de la suite du tutoriel. De plus, ce tutoriel renverra vers d'autres tutoriels pour ceux qui souhaitent aller plus loin. Si une catégorie ou un onglet ne sont pas mentionnés, c'est qu'ils ne présentent pas d'intérêt dans le cadre de ce tutoriel. Lorsque des explications supplémentaires mais non nécessaires sont proposées, elles sont cachées dans des balises spoiler : Lisez ce tutoriel en diagonale une première fois pour avoir une vision globale des modifications que vous vous apprêtez à effectuer La plupart des fenêtres que vous ouvrirez dans DSM possède une aide intégrée, celle-ci est généralement bien documentée et traduite, cela vous permettra de connaître plus en détail les fonctionnalités offertes par les divers champs activables : Précautions Sauvegarde de la configuration Que vous veniez d'installer DSM sur votre NAS, ou que vous ayez déjà une instance de DSM en production, il est impératif de réaliser une sauvegarde de la configuration avant de commencer, pour cela, on va dans Démarrer -> Panneau de configuration -> Mise à jour et restauration -> Sauvegarde de configuration -> Exportation manuelle : Cliquez sur Exporter et sauvegarder le fichier sur votre ordinateur. En cas de problème, il sera possible de restaurer la configuration précédemment exportée en cliquant sur Restauration. J'ai tout cassé Si vous n'arrivez plus à avoir accès à votre NAS suite à un réglage effectué au cours du tutoriel, vous pouvez toujours effectuer un reset mode 1 du NAS. Celui-ci est suffisant dans l'extrême majorité des cas, et il a l'avantage de réinitialiser un nombre limité de réglages qui sont susceptibles de provoquer une perte d'accès à DSM. _________________________________________________________________________________________________________________________________________________________________________________________ Sécurité Cette section sera abordée plus en détail par après, mais dans un premier temps il est impératif de sécuriser les accès à votre NAS. Pare-feu - Accès locaux Par défaut, le pare-feu n'est pas activé, et donc tous les accès sont permis. L'idée générale est d'autoriser les accès depuis le réseau local, et de le fermer aux accès distants. Au fil des années, nous avons pu constater que la pratique habituelle de créer des règles pour toutes les interfaces pouvaient avoir des effets de bord indésirables, notamment dans le cadre de l'utilisation d'un serveur VPN, il est donc plus sécurisé de créer le minimum de règles pour chaque interface séparément. Et c'est la méthode que nous allons détailler. Pour configurer le pare-feu, il faut cocher Activer le pare-feu. Il est conseillé de laisser les notifications du pare-feu tout en les refusant quand elles apparaitront à l'installation de paquets, afin d'être informé des ports utilisés par les dits paquets. On va ensuite cliquer dans la liste déroulante contenant les profils de pare-feu, et cliquer sur Gérer le profil du pare-feu. On va cliquer sur Créer pour créer un nouveau profil, et on le nomme par-interface : On sélectionne l'interface qu'on souhaite configurer, ici pour l'exemple LAN 1. On va tout d'abord ajouter quatre règles garantissant un accès local complet à votre NAS : Pour ce faire, on procède ainsi : On clique sur Créer On coche IP spécifique puis on clique sur Sélectionnez On choisit Sous-réseau et on entre 192.168.0.0 dans Adresse IP, et 255.255.0.0 dans Masque de sous-réseau ATTENTION : si vous le souhaitez, vous pouvez restreindre à votre réseau local. Ici on couvre toute la plage locale possible en 192.168. Par exemple, si le réseau de votre box est 192.168.1.x, alors vous pouvez entrer 192.168.1.0/255.255.255.0 On valide : On répète la même opération pour les deux autres règles, 172.16.0.0/255.240.0.0 et 10.0.0.0/255.0.0.0 On ajoute une règle pour les accès locaux en IPv6 : A elles quatre, ces règles permettent à tous les clients utilisant des IP privées d'accéder à tous les services du NAS (attention, ils sont toujours toutefois soumis aux processus d'authentification, ces règles leur permettent uniquement de ne pas faire se refouler à l'entrée). Dernier point, mais le plus important, on choisit Refuser l'accès comme comportement du pare-feu en cas de requête non déclenchée par les règles précédemment ajoutées : _________________________________________________________________________________________________________________________________________________________________________________________ Notifications Celles-ci sont requise pour certaines fonctionnalités comme l'authentification à deux facteurs ou plus simplement pour que vous soyez prévenu dès qu'un problème survient dans le système. On va dans Panneau de configuration -> Notification : Dans Compte Synology, cochez Recevez des notifications directement dans votre compte Synology lorsque l'état du système change ou lorsque des erreurs se produisent En activant l'option, vous serez invité à vous connecter à votre compte Synology. Cela nécessite la création ou l'association à un compte Synology Dans Email, on clique sur Configurer, et on choisit un fournisseur SMTP ou on configure le sien si on en a un Dans Profils de destinataires, on peut choisir des adresses mail différentes suivant la criticité des événements. On clique sur Ajouter. On utilise la règle Warning et on entre l'email de destination, il peut être le même que l'expéditeur Dans Paramètres d'email, on peut personnaliser le préfixe de l'objet du mail On clique sur Envoyer un e-mail de test dans Profils de destinataires pour vérifier que tout fonctionne. Vérifier votre boîte de spam si rien n'arrive _________________________________________________________________________________________________________________________________________________________________________________________ Services de fichiers On va dans Panneau de configuration -> Services de fichiers SMB Général SMB (ou Samba dans sa déclinaison Linux) est le protocole utilisé par Windows lorsqu'on monte un lecteur réseau dans l'explorateur de fichiers. Mais même sous Linux, il est le protocole à privilégier lorsqu'on se connecte à un NAS. Dans Paramètres SMB, cochez Activez le journal des transferts On coche Masquer les dossiers partagés pour les utilisateurs ne disposant pas d'autorisation Dans WS-Discovery, on coche Activer la découverte de réseau Windows pour autoriser l'accès aux fichiers via SMB : On clique sur Paramères avancés et on définit le protocole SMB minimum sur SMB2 et Large MTU, SMB1 a de nombreuses failles de sécurité et n'est plus nativement par défaut activé dans DSM : Autres On coche les 3 options suivantes : Si on souhaite activer SMB3 multicanal, on doit cocher Activer SMB3 multicanal et Activer la lecture asynchrone, le service est ensuite redémarré. AFP, NFS, FTP, rsync et Avancés N'activez que les protocoles et options dont vous avez besoin, autrement laissez les réglages par défaut. _________________________________________________________________________________________________________________________________________________________________________________________ Utilisateur et groupe Utilisateur / Groupe Ce tutoriel n'aborde pas dans le détail la gestion des groupes et utilisateurs, gardez toutefois à l'esprit que : Rationalisez les permissions. Dans le cas d'utilisateurs similaires, créer un groupe reprenant les permissions partagées est plus élégant que de configurer manuellement les droits de chaque utilisateur Limitez les permissions d'un utilisateur ou un groupe au strict nécessaire Compte administrateur alternatif Lors du passage à DSM 7, ou lors d'une nouvelle installation, vous êtes invités à créer un nouveau compte administrateur si votre seul compte administrateur est le compte "admin". Cela permet d'avoir un compte administrateur avec des accès plus robustes (voir Politique de mot de passe), et de désactiver le compte "admin" par défaut, sur lequel vous ne pourrez plus vous connecter. /!\ CETTE ÉTAPE EST OBLIGATOIRE /!\ Configuration du mot de passe On se dirige vers l'onglet Avancé -> Configuration du mot de passe : Espace personnel de l'utilisateur Au bas du menu Avancé on coche Activer le service d'accueil de l'utilisateur, afin que chaque utilisateur dispose de son propre dossier personnel dans homes (homes n'est visible que des membres du groupe administrateurs). ATTENTION : Il est primordial de ne pas toucher aux permissions du dossier homes (visible uniquement par les administrateurs) et aux dossiers home (pour les utilisateurs non administrateurs). _________________________________________________________________________________________________________________________________________________________________________________________ Accès externe QuickConnect Si vous ne souhaitez pas accéder à votre NAS en dehors de votre domicile, désactivez Quickconnect. DDNS Si vous ne souhaitez pas accéder à votre NAS en dehors de votre domicile, vous pouvez ignorer ce passage. Configuration du routeur Ne cliquez pas ici, ça fait partie des options que Synology devrait vraiment retirer de ses boitiers. C'est très dangereux du point de vue sécurité. Ça sert à ouvrir automatiquement des ports dans votre routeur/box, ça peut paraitre sympa comme ça mais en pratique c'est une faille de sécurité très importante. Deux exemples pour essayer de vous convaincre : pour que cette fonction marche, votre routeur doit gérer l'UPnP, donc tous les équipements de votre réseau pourront faire de l'ouverture dynamique de port, le PC qui vient d'être vérolé pourra automatiquement, sans la moindre notification, ouvrir un port permettant à un attaquant d'entrer dans votre réseau de même, si vous avez configuré des redirections de ports pour plusieurs équipements, ces redirections risquent de sauter si une requête UPnP demande le même port Avancé Un onglet que beaucoup oublient de configurer, il n'est pas obligatoire et pas lié (pas directement du moins) à la sécurité mais ça permet d'éviter de chercher des heures la raison pour laquelle un lien de partage (par exemple) ne fonctionne pas : REMARQUE : si vous utilisez le proxy inversé ou le portail des applications de DSM, il n'est pas utilie de configurer ce menu. _________________________________________________________________________________________________________________________________________________________________________________________ Réseau L'onglet Réseau dans le panneau de configuration permet de régler la connectivité de votre appareil et ses interfaces. Interface réseau IPv4 Dans l'onglet Interface réseau, on sélectionne l'interface qu'on souhaite configurer et on clique sur Modifier : Pour obtenir une IP, deux méthodes existent : Le NAS acquiert son IP grâce au serveur DHCP, généralement votre box ou votre routeur. Pour s'assurer que cette IP ne change pas d'une fois à l'autre, il faut faire ce qu'on appelle une réservation statique d'IP dans votre serveur DHCP. Concrètement, cela signifie que pour une adresse MAC donnée (le numéro d'identité de votre carte réseau en quelque sorte), le serveur DHCP attribuera toujours la même adresse IP. On fixe l'IP du NAS directement sur celui-ci, pour cela on choisit Utiliser la configuration manuelle et on choisit une IP. ATTENTION : il faut que l'IP choisie : soit dans la plage IP de votre réseau local soit hors de la plage DHCP d'attribution de votre box/modem. La première méthode a l'avantage qu'en cas de : changement de box de modification de sous-réseau (passer de 192.168.1.0 à 192.168.10.0 par exemple) de déménagement Le NAS restera accessible car il obtiendra une IP dans tous les cas avec un nouveau modem, il ne vous restera plus qu'à le trouver via Synology Assistant. IPv6 A l'heure actuelle, l'IPv6 est bien plus prise en charge par les FAI qu'au temps de la rédaction du tutoriel original, certains mêmes ne proposent plus que de l'IPv6 nativement. Si vous souhaitez l'activer, choisissez Auto : Général Dans l'onglet Général de la catégorie Réseau : Dans Paramètres avancés : Cochez Répondre à la demande ARP si l'adresse IP cible est identique à une adresse locale configurée sur l'interface entrante, cela permet de faire en sorte que les données sortent par leurs interfaces respectives. Cochez Activer la détection des conflits IP, vous aurez des notifications dans DSM si votre NAS rencontre des problèmes de conflit d'IP. Connectivité Cochez Activer HTTP/2 _________________________________________________________________________________________________________________________________________________________________________________________ Sécurité A n'en pas douter la catégorie la plus importante de ce tutoriel ! Le pare-feu a été configuré pour un accès local en tout début de tutoriel. Général Vous pouvez laisser les réglages par défaut Compte Authentification à deux facteurs (2FA) L'authentification à deux facteurs apporte une couche de sécurité supplémentaire, mais elle n'est en aucun cas un remède palliatif à des accès utilisateurs trop faibles. L'authentification à deux facteurs est également plus contraignante en cas de perte du périphérique sur lequel elle est configurée, s'il s'avérait être le seul. Un code de récupération est fourni par DSM pour y retrouver accès, il est impératif de le noter. Si vous souhaitez activer l'authentification à deux facteurs, suivez les étapes suivantes : Adaptive MFA Cochez Activer l'authentification multifacteur adaptative pour les utilisateurs appartenant au groupe administrateurs (pour version de DSM > 7.2) Protection du compte Cochez Activez la protection du compte : Ajuster les valeurs proposées par défaut à votre convenance. Pare-feu - Accès distant Cette section est restreinte au minimum, car le but est ici de sécuriser les accès à votre NAS. A partir du moment où le NAS est accessible depuis l'extérieur, sa surface d'exposition est bien plus importante. Mais vu que nous allons voir comment obtenir un certificat pour votre NAS, il paraît naturel d'évoquer la mise en place d'un accès distant sur celui-ci, pour en savoir plus, c'est par ici : Protection Cochez Activer le blocage auto, ainsi que Activer l'expiration des blocages avec les réglages suivants : Cliquez ensuite sur Autoriser/Bloquer la liste, sélectionnez Créer -> Ajouter une adresse IP, choisissez Sous-réseau et ajouter les deux entrées suivantes : REMARQUE : Si vous avez mis un sous-réseau et masque plus restrictifs que 192.168.0.0/255.255.0.0 dans vos règles de pare-feu, par exemple pour vous conformer au réseau utilisé par votre box, supposons 192.168.1.0/255.255.255.0, vous pouvez dans ce cas spécifier 192.168.1.0/24 dans le menu ci-dessus. Enfin, cochez également Activer la protection DoS. Certificat La mise en place d'un certificat est utile pour : établir un accès distant sécurisé (chiffré) vers votre NAS la mise en place d'un serveur DNS local la mise en place d'un proxy inversé Si les uns et les autres ne vous sont d'aucune utilité, passez à la section suivante. Avancé Dans cet onglet, nous allons régler le niveau de sécurité de chiffrement des services systèmes : La compatibilité moderne correspond à TLS 1.3 qui est maintenant assez répandu, si vous avez des smartphones relativement récents vous ne devriez pas rencontrer de problème. La compatibilité intermédiaire prend en charge TLS 1.3 et 1.2, c'est le choix qui couvrira le plus de périphériques. Depuis la version 7.1 de DSM, il est possible via le menu Paramètres personnalisés de définir séparément le niveau de sécurité utilisé par les applications. _________________________________________________________________________________________________________________________________________________________________________________________ Terminal & SNMP Avancé Je recommande de cocher Activer le service SSH, cela vous donne une porte de secours en cas de problème d'accès à DSM. Si vous deviez rendre accessible le terminal de votre NAS depuis l'extérieur, je recommande très fortement de ne pas faire une simple redirection de port au niveau de votre box mais d'utiliser un serveur VPN, par exemple via le paquet VPN Server. _________________________________________________________________________________________________________________________________________________________________________________________ Portail de connexion DSM Vous pouvez cocher la case Rediriger automatiquement les connexions HTTP vers HTTPS pour le bureau DSM pour vous connecter automatiquement en HTTPS même si l'adresse entrée commence par HTTP. Il est préférable d'avoir mis en place un certificat avant d'activer cette option pour éviter les avertissements de sécurité du navigateur. REMARQUE : Ne pas activer cette option si vous utiliser un proxy inversé pour accéder à vos services DSM. _________________________________________________________________________________________________________________________________________________________________________________________ Options régionales Pour que l'authentification à deux facteurs fonctionne correctement, il est important que vos périphériques soient synchronisés temporellement. Assurez-vous de régler la synchronisation temporelle du NAS sur une source sure, dans Temps puis Paramètres de l'heure, cochez Synchroniser avec un serveur NTP et entrez manuellement l'adresse fr.pool.ntp.org par exemple si vous résidez en France, ou ntp.fdn.org. La liste complète des serveurs NTP peut se trouver à l'adresse suivante : https://www.ntppool.org/zone/@ _________________________________________________________________________________________________________________________________________________________________________________________ Mise à jour et restauration Mise à jour du DSM On clique sur Options de mise à jour, puis on choisit M'avertir et me laisser décider d'installer la nouvelle mise à jour : Synology est coutumière de déploiements erratiques de ses mises à jour, donc suivez ces quelques conseils : Prenez le temps de lire les notes de patch lors de la sortie d'une nouvelle version de l'OS, il se peut qu'elle n'apporte rien dans votre utilisation du NAS N'appliquez de préférence une mise à jour que si elle est proposée automatiquement par le système (évitez les mises à jour manuelles) Sauf correctifs de sécurité importants, ne vous précipitez pas pour appliquer une mise à jour, laissez le temps aux développeurs et aux autre utilisateurs le soin de se casser les dents dessus, il y en a suffisamment sur le forum. 😉 Sauvegarde de configuration Si vous avez lié votre compte Synology à votre NAS, par le biais de la configuration du DDNS ou via la section Compte Synology dans le panneau de configuration, vous avez la possibilité d'enregistrer automatiquement la configuration de votre NAS dans votre espace client Synology. C'est une option intéressante et je recommande de l'activer : IMPORTANT : Avoir une sauvegarde automatique de la configuration dans le cloud ne dispense pas de disposer d'une version locale de celle-ci. En cas de changement notable dans votre configuration, pensez à faire une Exportation manuelle de la configuration, et à la copier sur un ou plusieurs périphériques : PC, clé USB, disque externe, etc... _________________________________________________________________________________________________________________________________________________________________________________________ Privilèges d'application Pas de recommandation spécifique à ce sujet, vous pouvez décider de restreindre les privilèges accordés par défaut à TOUS les utilisateurs dans cette catégorie, ou bien laisser les autorisations et restreindre au niveau de permissions de groupe et d'utilisateur. A titre personnel, je trouve plus simple de régler de façon granulaire les accès des groupes et utilisateurs dans la catégorie Utilisateur et groupe. _________________________________________________________________________________________________________________________________________________________________________________________ MAJ : 07/11/2023
  12. 1. Préambule Ce tutoriel a pour but d'installer un serveur VPN wireguard en docker incluant wireguard-ui pour faciliter l'administration du serveur et des clients. WireGuard est un protocole de communication et un logiciel libre et open source permettant de créer un réseau privé virtuel. Il est conçu avec les objectifs de facilité d'utilisation, de performances et de surface d'attaque basse. 2. Prérequis Avoir un NAS compatible Docker, voir la liste ici https://www.synology.com/fr-fr/dsm/packages/Docker. Savoir se connecter au NAS via SSH en root : https://www.nas-forum.com/forum/topic/57289-tuto-accès-ssh-et-root-via-dsm-6-et-7/ Utiliser Docker-compose ou portainer 3. Principe Dans ce tuto, j'utilise l'image docker linuxserver/docker-wireguard qui est maintenu à jour régulièrement ainsi que wireguard-ui (https://github.com/ngoduykhanh/wireguard-ui). Le fait d'inclure le binaire wireguard-ui dans linuxserver/docker-wireguard permet entre autre de voir aussi facilement les peers connectés et leurs stats. Sources: https://hub.docker.com/r/linuxserver/wireguard https://docs.linuxserver.io/images/docker-wireguard https://github.com/ngoduykhanh/wireguard-ui 4. Mise en place Dans ce tuto j'utilise les informations suivantes, qui seront à adapter selon votre réseau et vos besoins (surtout dans le fichier docker-compose.yaml): Réseau LAN local: 192.168.1.0/24 Serveur DNS dans mon réseau Lan local (ma box): 192.168.1.1 qui permet la résolution entre autre des noms internes Réseau interne de Wireguard: 10.13.13.0/24 ATTENTION: Dans ce tuto, la configuration mise en place permet d'accéder au lan local depuis les clients, mais le reste du traffic internet ne passera pas par ce VPN. Pour faire passer l'ensemble du traffic d'un client par le VPN, utiliser "0.0.0.0/0" comme valeur dans le docker-compose pour les variables ALLOWEDIPS et WGUI_DEFAULT_CLIENT_ALLOWED_IPS 4.1 Création des répertoires: Il faut créer les répertoires suivants dans le dossier partagé docker: wireguard/ ├── config ├── custom-files │ ├── custom-cont-init.d │ └── custom-services.d ├── db └── wireguard-ui Vous pouvez utiliser File Station pour cela, le résultat doit être le suivant: 4.2 Création des fichiers: Il faut ensuite créer les fichiers suivants, soit en utilisant l'éditeur de texte du DSM soit en ssh avec vim wireguard/custom-files/custom-cont-init.d/init.sh: #!/usr/bin/with-contenv bash echo "**** installing inotify-tools ****" apk update && apk add inotify-tools wireguard/custom-files/custom-cont-init.d/install_wg-ui.sh: #!/usr/bin/with-contenv bash echo "**** installing wg-ui ****" cp /wireguard-ui/wg-ui /app/wg-ui chmod 755 /app/wg-ui if [ -r /wireguard-ui/wg_template.conf ]; then cp /wireguard-ui/wg_template.conf /wg_template.conf fi wireguard/custom-files/custom-services.d/watch.sh: #!/usr/bin/with-contenv bash while inotifywait -e modify -e create /config/wg0.conf; do wg-quick down wg0 wg-quick up wg0 done wireguard/custom-files/custom-services.d/wg-ui.sh: #!/usr/bin/with-contenv bash if netstat -apn | grep -q ":5000 "; then echo "Another service is using port 5000, disabling wg-ui" sleep infinity else echo $ENV echo "start wg-ui" exec \ cd /app \ ./wg-ui fi wireguard-ui/wg-ui (binaire): Récupérer la dernière version de l'exécutable pour l'archi correspondante à votre synology sur https://github.com/ngoduykhanh/wireguard-ui/releases décompressez la, et déposez l'exécutable wireguard-ui sous le nom wireguard-ui/wg-ui Exemple en ssh: export VERSION=v0.5.1 # Changer la version pour pointer sur la dernière export ARCHI=linux-amd64 # Changer architecture si besoin cd /tmp/ wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/${VERSION}/wireguard-ui-${VERSION}-${ARCHI}.tar.gz tar -zxf wireguard-ui-${VERSION}-${ARCHI}.tar.gz mv wireguard-ui /volume1/docker/wireguard/wireguard-ui/wg-ui rm -f wireguard-ui-${VERSION}-${ARCHI}.tar.gz OPTIONNEL: Si vous souhaitez fournir votre propre template wireguard-ui, vous pouvez partir du fichier ci dessous: wireguard/wireguard-ui/wg_template.conf: # This file was generated using wireguard-ui (https://github.com/ngoduykhanh/wireguard-ui) # Please don't modify it manually, otherwise your change might get replaced. # Address updated at: {{ .serverConfig.Interface.UpdatedAt }} # Private Key updated at: {{ .serverConfig.KeyPair.UpdatedAt }} [Interface] Address = {{$first :=true}}{{range .serverConfig.Interface.Addresses }}{{if $first}}{{$first = false}}{{else}},{{end}}{{.}}{{end}} ListenPort = {{ .serverConfig.Interface.ListenPort }} PrivateKey = {{ .serverConfig.KeyPair.PrivateKey }} {{if .globalSettings.MTU}}MTU = {{ .globalSettings.MTU }}{{end}} PostUp = {{ .serverConfig.Interface.PostUp }} PostDown = {{ .serverConfig.Interface.PostDown }} {{range .clientDataList}}{{if eq .Client.Enabled true}} # ID: {{ .Client.ID }} # Name: {{ .Client.Name }} # Email: {{ .Client.Email }} # Created at: {{ .Client.CreatedAt }} # Update at: {{ .Client.UpdatedAt }} [Peer] PublicKey = {{ .Client.PublicKey }} {{if .Client.PresharedKey }}PresharedKey = {{ .Client.PresharedKey }} {{end}}AllowedIPs = {{$first :=true}}{{range .Client.AllocatedIPs }}{{if $first}}{{$first = false}}{{else}},{{end}}{{.}}{{end}}{{range .Client.ExtraAllowedIPs }},{{.}}{{end}} {{end}}{{end}} Vous devez obtenir le résultat suivant dans votre répertoire partagé docker: wireguard/ ├── config/ ├── custom-files/ │ ├── custom-cont-init.d/ │ │ ├── init.sh │ │ └── install_wg-ui.sh │ └── custom-services.d/ │ ├── watch.sh │ └── wg-ui.sh ├── db/ └── wireguard-ui1/ ├── wg_template.conf # optionnel └── wg-ui 7. Création du conteneur Récupérez le PUID/PGID à utiliser en vous connectant en ssh et tapez dans la console "id", on prendra alors note du uid/gid retourné. ATTENTION: il semblerait qu'il soit nécessaire d'utiliser le gid retourné pour le groupe "administrators" au lieu de celui retourné pour le groupe "users" dans la commande "id" docker-compose.yaml: version: "3.6" services: wireguard: image: lscr.io/linuxserver/wireguard:latest container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE sysctls: - net.ipv4.conf.all.src_valid_mark=1 - net.ipv6.conf.all.disable_ipv6=1 - net.ipv6.conf.default.disable_ipv6=1 environment: - PUID=1026 - PGID=101 - TZ=Europe/Paris # pour wireguard partie serveur: - SERVERURL=<monnas.synology.me> # A REMPLACER - SERVERPORT=51820 - PEERDNS=192.168.1.1 - INTERNAL_SUBNET=10.13.13.0 - ALLOWEDIPS=192.168.1.0/24, 10.13.13.0/24 # exemple donnant accès uniquement au lan local au travers du VPN, pour faire passer tout traffic mettre 0.0.0.0/0 - LOG_CONFS=false # Affiche ou non le QR codes généré dans la log docker # pour la partie wireguard-ui: - SESSION_SECRET=<une chaine aléatoirement> # A REMPLACER - WGUI_USERNAME=<le compte admin> # A REMPLACER - WGUI_PASSWORD=<le mot de passe admin> # A REMPLACER - WGUI_ENDPOINT_ADDRESS=<monnas.synology.me> # A REMPLACER - WGUI_DNS=192.168.1.1 - WGUI_SERVER_INTERFACE_ADDRESSES=10.13.13.0/24 - WGUI_SERVER_LISTEN_PORT=51820 - WGUI_DEFAULT_CLIENT_ALLOWED_IPS=192.168.1.0/24, 10.13.13.0/24 # exemple donnant accès uniquement au lan local au travers du VPN, pour faire passer tout traffic mettre 0.0.0.0/0 - WGUI_SERVER_POST_UP_SCRIPT=iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE - WGUI_SERVER_POST_DOWN_SCRIPT=iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADE volumes: - /lib/modules:/lib/modules - /volume1/docker/wireguard/config:/config - /volume1/docker/wireguard/custom-files/custom-cont-init.d:/custom-cont-init.d:ro - /volume1/docker/wireguard/custom-files/custom-services.d:/custom-services.d:ro # pour wg-ui - /volume1/docker/wireguard/db:/app/db - /volume1/docker/wireguard/wireguard-ui:/wireguard-ui:ro ports: - 63710:51820/udp - 51821:5000/tcp restart: always ATTENTION: pensez bien à: Modifier les points de montage pour qu'ils correspondent bien au chemin sur votre synology Mettre vos propres valeurs lorsqu'il est indiqué en commentaire # A REMPLACER. Remarque: Les variables dans ce fichier semblent être déclarées en double, mais la première partie permet de configurer wireguard, et la deuxième partie (après pour wg-ui) permet de déclarer les valeurs par défaut utilisées dans l'interface Web. Explication des valeurs: SERVERURL et WGUI_ENDPOINT_ADDRESS: doivent contenir le nom qui sera utilisé par les clients pour se connecter (on mets le nom fourni par DDNS si pas d'ip fixe sur la box). Ex: monnas.synology.me SERVERPORT et WGUI_SERVER_LISTEN_PORT: contiennent la valeur du port UDP définie dans la partie serveur (en écoute) et dans la configuration du client PEERDNS et WGUI_DNS: contiennent l'IP du serveur DNS qui sera envoyé aux clients pour qu'ils l'utilisent (dans notre cas, il s'agit de l'ip de la box 192.168.1.1 afin de pouvoir résoudre mes noms internes) INTERNAL_SUBNET et WGUI_SERVER_INTERFACE_ADDRESSES: contiennent la définition du réseau qu'utilisera Wireguard, la variable est optionnelle si tu ne veux pas la spécifier car elle est mise par défaut à 10.13.13.0/24 ALLOWEDIPS et WGUI_DEFAULT_CLIENT_ALLOWED_IPS: contiennent la liste des réseaux qui seront routés depuis le clients vers le serveur, dans notre cas le réseau interne de wireguard bien sûr mais aussi le LAN local 192.168.1.0/24. Cela permet un accès aux machines du Lan local, mais le reste du traffic (internet) ne sera pas envoyé dans le VPN depuis le client. Si vous souhaitez que tout le traffic des clients passe par le VPN, il suffit de mettre à la place "0.0.0.0/0" dans ces champs à la place. LOG_CONFS: Affiche ou non le QR codes généré dans la log docker, dans notre cas, on aura les QR codes dans l'interface web, donc j'ai mis à false WGUI_SERVER_POST_UP_SCRIPT et WGUI_SERVER_POST_DOWN_SCRIPT: règles iptables nécessaires pour le bon fonctionnement du serveur wireguard (trouvé dans plusieurs autres tutos) 7.1 Via portainer Créer une nouvelle stack en utilisant le fichier docker-compose.yaml ci-dessus. Déployez le stack. 7.2 Via ssh Créez le fichier wireguard/docker-compose.yaml avec les informations ci-dessus. Pour créer le conteneur, connectez vous en ssh et passer les commandes suivantes en tant que root: cd /volume1/docker/wireguard docker-compose pull Ce qui va télécharger la dernière version de l'image. Puis : docker-compose up -d Si pas d'erreur à la création (souvent dues à des caractères de tabulation, une directive dans le fichier docker-compose mal orthographiée ou désalignée, etc...), vous verrez un petit done apparaître en vert. Si vous avez l'erreur suivante, cela veut dire que votre version de kernel n'inclue pas les modules nécessaires, vous devez alors installer ces modules manuellement. RTNETLINK answers: Not supported **** The wireguard module is not active. If you believe that your kernel should have wireguard support already, make sure that it is activated via modprobe! **** **** If you have an old kernel without wireguard support built-in, you can try using the legacy tag for this image to compile the modules from scratch. **** Vous pouvez vous appuyer sur ce tuto https://www.blackvoid.club/wireguard-spk-for-your-synology-nas/ ou les projets github suivants: https://github.com/vegardit/synology-wireguard https://github.com/runfalk/synology-wireguard (avec patch https://github.com/runfalk/synology-wireguard/issues/154#issuecomment-1169393940 pour DSM7.1) 8. Accès au Web-ui Vous pourrez désormés accéder au Web-UI par l'url http://<ip de votre syno:51821/ Vous pouvez bien évidement ajouter une entrée dans le proxy inversé du DSM pour les accés en https avec un nom de domaine. REMARQUE: Si vous avez mis un autre port que le 51820 dans le fichier docker-compse.yaml pour la config du serveur et web-ui, il est nécessaire de sauvegarder et d'appliquer la configuration une première fois avant toute opération afin de modifier le fichier wg0.conf et de redémarre le serveur pour sa prose en compte. 8.1 Forward de port: Il vous faudra aussi mettre en place le forward de port sur votre box/routeur interne pour permettre l'accès à votre serveur wireguard. En se basant sur le fichier docker-compose.yaml fourni dans ce tuto, il vous faudra forwarder le port externe 51820 vers le l'adresse interne de votre nas sur le port 51820 en UDP Voici un exemple de mise en place sur un routeur Asus: 9. Mise à jour: 9.1 Mise à jour manuelle facile de wireguard-ui: Vous pouvez utiliser le script suivant pour mettre à jours facilement la version de wireguard-ui sans avoir à relancer le container docker: Connectez vous en ssh, puis en tant que root passez les commandes suivantes en prenant soin de bien renseigner les variable VERSION et ARCHI correspondant à vos besoins: export VERSION=v0.5.1 # Changer la version pour pointer sur la dernière export ARCHI=linux-amd64 # Changer architecture si besoin cd /tmp/ wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/${VERSION}/wireguard-ui-${VERSION}-${ARCHI}.tar.gz tar -zxf wireguard-ui-${VERSION}-${ARCHI}.tar.gz # sauvegarde la version en place au cas où cp -f /volume1/docker/wireguard/wireguard-ui/wg-ui /volume1/docker/wireguard/wireguard-ui/wg-ui.sov mv wireguard-ui /volume1/docker/wireguard/wireguard-ui/wg-ui rm -f wireguard-ui-${VERSION}-${ARCHI}.tar.gz cat <<EOF | docker exec --interactive wireguard bash s6-rc stop custom-svc-wg-ui.sh cp -f /wireguard-ui/wg-ui /app/wg-ui s6-rc start custom-svc-wg-ui.sh EOF 9.2 Mise à jour automatique: L'image docker linuxserver/wireguard peut être mise à jour automatiquement grace à watchtower. Pour wireguard-ui, on peut imaginer un script bash appelé en crontab qui ferait les actions suivantes: - Vérification de la présence d'une nouvelle version sur le github - Téléchargement de la version correspondant au synology - Décompression du binaire et dépose dans le répertoire dédié - Copie du binaire dans le docker au bon endroit et redémarrage du service associé PS: je suis en train de bosser sur ce fameux script de mise à jour de wireguard-ui Les pistes: Utilisation de l'api suivante pour détecter une nouvelle version .. mais comment la comparer à la version installée .. à creuser 😉 https://api.github.com/repos/ngoduykhanh/wireguard-ui/releases/latest
  13. Pour une raison obscure, Synology a récemment retiré des archives les anciennes versions de DSM, SRM et des applis. Si vous avez besoin des versions retirées, vous pouvez les retrouver sur ce site d'archivage (dernier snapshot du 31/05/2023) : https://web.archive.org/web/20230531230549/https://archive.synology.com/download
  14. 1. Préambule Mopidy est un serveur musical open source et modulaire permettant de streamer localement votre musique, ainsi que d'intégrer un nombre conséquent de services de streaming audio tels que Soundcloud, Youtube, Youtube Music, Tidal, etc... (Spotify n'est plus pris en charge actuellement). Il intègre également de nombreux protocoles de communication : mqtt, json rpc, tcp, etc... et le rend donc adapté à un large panel d'utilisations. Iris est une extension web de Mopidy, qui fournit une interface graphique moderne et l'intégration de différentes extensions de Mopidy et autre protocoles. Snapcast, enfin, qui est un logiciel permettant la diffusion de musique par le réseau. C'est une alternative libre et bon marché à des systèmes tels que ceux proposés par Sonos ou Apple. C'est un tutoriel que j'essaie de rédiger depuis un petit temps déjà, mais : je ne voyais pas comment présenter ça de façon simple et compréhensible par tous je n'étais pas satisfait des images Docker existantes l'intégration de Snapcast avec Iris n'était pas heureuse via Docker Depuis, une image Docker facilitant l'interconfiguration des services a été publiée, et me permet aujourd'hui de vous présenter cette pépite. 2. Objectifs Si vous naviguez un peu sur le site de Mopidy, vous verrez qu'un nombre conséquent d'intégrations sont possibles, de fait, je ne vais pas m'étendre sur tout ce qu'on peut réaliser, mais plutôt sur la fonctionnalité diffusion multiroom, qui n'est pas forcément bien documentée que ce soit sur le Github d'Iris ou de Snapcast. Encore moins dans le cadre d'un NAS, qui est pourtant une idée relativement logique dans le cadre d'un serveur de musique centralisé. Ce qui sera abordé dans ce tutoriel : L'installation et la configuration de deux instances de Mopidy (à multiplier suivant le nombre de flux différents que vous souhaitez pouvoir diffuser) La diffusion de bibliothèque musicale locale La configuration des clients Ce qui sera abordé dans un second temps si engouement pour le sujet : L'utilisation d'un proxy inversé avec Iris => quelques bugs que je trouve personnellement gênants mais certains y tiendront sûrement 😉 L'intégration des différents services de streaming online supportés par Mopidy (voir extensions) => chaque extension possède sa propre manière d'être configurée, voir la doc associée ; dans tous les cas cela passe par la modification des fichiers mopidy.conf et l'ajout de fichiers supplémentaires parfois 3. Principe de fonctionnement Configuration du système : Une seule interface pour accéder aux différentes instances, à laquelle on accède depuis PC, mobile, tablette, etc... Des clients Le NAS, qui hébergera les différents services Remarque : Un client statique est un client de type "headless", qui n'accèdera pas à l'interface d'Iris mais recevra uniquement le flux depuis Snapcast. Un client dynamique peut être le smartphone avec lequel vous ajoutez des morceaux en liste de lecture, il peut également devenir un périphérique recevant des informations de Snapcast. 5. Prérequis Difficulté : Moyenne Un NAS compatible Docker Des clients Ports 1780, 6600, 6700, 6680 et 6780 (si deuxième instance) du NAS accessibles aux clients 6. Hypothèses IP du NAS : 192.168.100.100 FQDN (nom d'hôte avec domaine) du NAS : nas.xxxxxx.synology.me => à adapter à votre domaine utilisé en local (voir tutoriel sur la mise en place d'un serveur DNS local) 7. Installation 7-A. Fichier compose L'installation se fera principalement en SSH. Avec la version 7.2 de DSM, il est possible de rédiger le fichier compose via l'interface de Container Manager (nouveau nom du paquet Docker), restent certaines commandes qui ne peuvent être accomplies que par terminal, à vous de voir ce que vous préférez, si vous savez le faire en lignes de commande vous n'aurez aucune difficulté à le faire via Container Manager. Vous pouvez consulter mon tutoriel introductif à Docker pour plus d'informations sur les étapes qui vont suivre. Et maintenant, c'est parti ! On crée le dossier pour Iris dans le dossier partagé docker : mkdir -p /volume1/docker/iris Puis on crée le fichier compose : nano /volume1/docker/iris/docker-compose.yml Remarques : On regroupe tout dans une seule stack, les services n'ayant pas vocation à fonctionner individuellement On se place sur l'hôte directement, pour faciliter la détection en broadcast sur le réseau local // IMPORTANT \\ On ne peut pas directement monter le dossier partagé "music" dans le conteneur, c'est valable pour tout autre dossier partagé a fortiori. Et ce, pour des raisons de permission : en effet les dossiers partagés ne sont pas soumis aux ACL de DSM Donc par exemple, créer un dossier intermédiaire, "bibliothèque" dans mon cas // IMPORTANT \\ On différencie l'emplacement des playlists qu'on va créer de l'emplacement des musiques car : on va chowner le dossier contenant les playlists Mopidy, on évite de faire ça sur un dossier utilisé par d'autre programmes on va monter notre médiathèque en lecture seule pour éviter toute modification accidentelle, ce qui en revanche posera problème pour des playlists qu'on sera amené à modifier J'ai nommé mes instances "iris-instance1" et "iris-instance2", à adapter à votre guise dans la suite du tutoriel. Je crée un dossier "local" commun, qui contiendra les métadonnées des morceaux scannés, ça m'évitera de devoir scanner pour chaque instance. Si pour une raison ou une autre, vous ne souhaitez pas disposer de la même bibliothèque sur l'une et l'autre des instances, créez deux dossiers "local" dans instance1 et instance2. La variable d'environnement PIP_PACKAGES est utile pour installer des extensions Mopidy supplémentaires, commentée par défaut car intégrations non traîtées ici. 7-B. Préparation des dossiers et fichiers 7-B-1. Dossiers de configuration Pas spécialement adapté pour s'installer sur un NAS, OS base Linux avec ses restrictions, on va créer en amont les dossiers dont les services auront besoin lors de la création de la stack. En SSH, connectez-vous avec un utilisateur disposant des droits d'écriture dans le dossier partagé docker : mkdir -p /volume1/docker/iris/instance1/config \ /volume1/docker/iris/instance1/data \ /volume1/docker/iris/instance2/config \ /volume1/docker/iris/instance2/data \ /volume1/docker/iris/snapserver \ /volume1/docker/iris/local \ /volume1/docker/iris/playlists On va maintenant changer la propriété des dossiers pour respectivement : pouvoir télécharger les métadonnées de nos morceaux, albums, artistes, etc... écrire et modifier des playlists Mopidy ajouter des token d'identification pour les services de stream online (non traîté ici) sudo chown 105:users /volume1/docker/iris/instance1/config \ /volume1/docker/iris/instance1/data \ /volume1/docker/iris/instance2/config \ /volume1/docker/iris/instance2/data \ /volume1/docker/iris/local \ /volume1/docker/iris/playlists Remarque : L'utilisateur d'ID 105 est celui qui écrira dans ces dossiers, or il n'est évidemment pas repris par les ACL DSM, donc pour ne pas toucher aux ACL Synology et garantir l'accès aux dossiers en question, on ne chmod pas mais on chown. 7-B-2. Fichiers de configuration On va créer un fichier de configuration qui écrasera les paramètres par défaut du serveur Mopidy, pour l'adapter à notre besoin. 7-B-2-a. Instance1 nano /volume1/docker/iris/instance1/config/mopidy.conf 7-B-2-b. Instance2 nano /volume1/docker/iris/instance2/config/mopidy.conf Remarques : Dans instance1, on pense à modifier nas.xxxxxx.synology.me par son nom de domaine Dans instance2, on a modifié le port de l'instance pour éviter la collision avec la première, on utilise le port 6780 7-B-2-b. Snapserver On va télécharger le fichier de configuration depuis le Github : wget https://raw.githubusercontent.com/badaix/snapcast/master/server/etc/snapserver.conf -P /volume1/docker/iris/snapserver/ qu'on édite ensuite : nano /volume1/docker/iris/snapserver/snapserver.conf en commentant la ligne (on ajoute un # devant) : source = pipe:///tmp/snapfifo?name=default et on ajoute les lignes suivantes directement à la suite : source = pipe:///tmp/stream1_fifo?name=STREAM1&controlscript=meta_mopidy.py&controlscriptparams=--mopidy-host=nas.xxxxxx.synology.me source = pipe:///tmp/stream2_fifo?name=STREAM2&controlscript=meta_mopidy.py&controlscriptparams=--mopidy-host=nas.xxxxxx.synology.me%20--mopidy-port=6780 Remarque : On pense à modifier nas.xxxxxx.synology.me par son nom de domaine On va également télécharger le script python faisant le lien entre Iris et Snapcast : wget https://raw.githubusercontent.com/badaix/snapcast/master/server/etc/plug-ins/meta_mopidy.py -P /volume1/docker/iris/snapserver/ 7-B-3. Dossiers de stream On crée un dossier qui accueillera nos fifo de stream Snapcast, et je les rends accessible par tous en écriture : mkdir -p /tmp/snapserver && sudo chmod 777 /tmp/snapserver 7-C. Création de la stack On est prêt, plus qu'à lancer la stack : sudo docker-compose -f /volume1/docker/iris/docker-compose.yml up -d && sudo docker-compose -f /volume1/docker/iris/docker-compose.yml logs -f Les logs devraient donner quelque chose de la sorte : 8. Interface IRIS 8-A. Configuration générale et Instance1 On se rend maintenant à l'adresse http://nas.xxxxxx.synology.me:6680: On se dirige ensuite vers les Settings, catégorie Server, et on renomme l'instance : On va ensuite dans Services configurer Snapcast, on modifie localhost pour le nom d'hôte de notre NAS, et on coche Enabled : On peut également se connecter à LastFM pour récupérer les vignettes des artistes, et à Genius pour que les paroles des chansons défilent pendant la lecture. // IMPORTANT \\ La librairie utilisée pour Mopidy n'est plus supportée par Spotify, évitez donc de vous y connecter. Dans Interface, j'aime bien généralement cocher "Wide scrollbars". 8-B. Instance2 On va maintenant rajouter notre seconde instance, vers laquelle on pourra facilement switcher d'un clic, on retourne dans Server, on clique sur "+ Add New Server" : Si tout s'est correctement exécuté auparavant, vous devriez obtenir le statut Connected, vous remarquerez également que les réglages des autres catégories persistent. 8-C. Exportation et sauvegarde de la configuration sur le serveur Afin d'éviter de répéter la majorité de ces étapes pour les prochains clients dynamiques, on peut aller dans la catégorie Advanced -> Share configuration => Export/share : Vous pourrez dorénavant importer la configuration depuis le serveur (il faut prélablement se connecter à une des instances depuis un nouveau périphérique) en cliquant sur Import from server. Cela ne fonctionne que pour les paramètres généraux, la deuxième instance devra être ajoutée comme initialement. 8-D. Indexation des morceaux On va maintenant lancer l'indexation des morceaux, on peut le faire par l'interface, suivant le CPU ça peut prendre plus ou moins de temps, comptez environ 1m30 par 1000 morceaux. Pour cela, deux méthodes : via le terminal : sudo docker exec -it iris-instance1 mopidy local scan Ou si je veux faire un test avec un nombre réduit de morceaux : sudo docker exec -it iris-instance1 mopidy local scan --limit 100 via l'interface, dans Advanced, on clique sur Start local scan (full scan par contre) : Une fois le scan terminé, je peux aller dans l'onglet Albums, et cliquer sur Refresh tout en haut à droite de la fenêtre : On va faire clic droit sur un album -> Add to queue, les morceaux sont maintenant dans l'onglet Now playing, en attente d'un ordre de lecture. 8-E. Lecture synchronisée Voilà, il ne reste plus qu'à tester, oui mais où ? et bien sur notre périphérique ! on retourne dans Settings -> Services -> Snapcast -> on coche Streaming enabled : Je peux renommer mon groupe, rez-de-chaussée (RDC) par exemple, et lui dire qu'il diffusera le flux Snapcast STREAM1, émis par Instance1. Dans ce groupe, j'ai renommé mon périphérique appelé par défaut "Snapweb client" en PC, plus parlant. Je vais maintenant ajouter un deuxième périphérique, par exemple mon smartphone, je vais donc importer les données de configuration précédemment enregistrées sur le serveur. En cliquant sur Streaming enabled, un nouveau groupe apparaît (j'ai renommé mon périphérique du nom de mon smartphone) : Allons maintenant dans Now playing, et lançons la musique depuis la barre de lecture en bas de page. Si tout se passe bien, vous devriez entendre la musique jouée conjointement, et en parfaite synchronisation, depuis les deux clients ! Pourquoi ne pas, par exemple, les mettre dans le même groupe ? On clique sur Group dans la tuile correspondant au 2ème périphérique (voir impression d'écran ci-dessus), et on choisit RDC. Maintenant, on peut contrôler le volume général du groupe depuis Volume (barre horizontale) et le volume individuel de chaque périphérique sinon (barre verticale). Si je ne veux plus qu'ils soient groupés, je reclique sur Group, puis New Group. Je peux également changer le flux lu par un groupe depuis Stream. Pas tout à fait synchronisés ? la barre de Latency est là pour ça, on peut ajuster le décalage en avance ou retard de phase des périphériques indépendamment. C'est notamment une fonction utile pour les périphériques clients qui diffusent via Bluetooth. 8-F. Playlists 8-F-1. Playlist locale Pour créer une playlist, je clic droit sur un morceau, Add to playlist -> je crée une nouvelle playlist ou j'en choisis une existante. Il faudra ensuite aller dans l'onglet Playlists et cliquer sur Refresh comme pour les albums pour les voir apparaître. 8-F-1. Radios Je vais vider ma liste d'attente, pour cela je clique sur Clear : Dans cette page, je clique ensuite sur Add en haut à droite, je vais ajouter l'URL d'une radio, par exemple M Disney : Je dois cliquer sur + Add à droite avant de cliquer Add en bas, la radio apparaît ensuite dans la liste des morceaux en attente, et je peux cliquer droit (ou ...) pour lancer la lecture ou pour l'ajouter à une playlist. 9. Configuration des clients statiques Nous allons maintenant voir comment configurer des clients statiques, par exemple sous Linux. sudo apt-get install snapclient Puis : sudo nano /etc/default/snapclient # Start the client, used only by the init.d script START_SNAPCLIENT=true # Additional command line options that will be passed to snapclient # note that user/group should be configured in the init.d script or the systemd unit file # For a list of available options, invoke "snapclient --help" SNAPCLIENT_OPTS="--host nas.xxxxxx.synology.me" Je lance le service : sudo systemctl start snapclient.service Je fais en sorte qu'il se lance au démarrage : sudo systemctl enable snapclient.service Entre temps, vous devriez voir un nouveau périphérique parmi les clients Snapcast dans votre interface Iris. 10. Quelques commandes utiles Pour supprimer la base de métadonnées : sudo docker exec -it <nom du conteur iris> mopidy local clear Pour vérifier la configuration utilisée par une instance (celle-ci affichera tous les champs, ceux par défaut et ceux que vous avez écrasés dans votre fichier de configuration) : sudo docker exec -it <nom du conteur iris> mopidy config 11. Conclusion Je ne couvre dans ce tutoriel qu'une petite partie des fonctionnalités disponibles, on peut trier les recherches suivant les sources, ce qui prend son importance si l'on commence à intégrer différents services de streaming. Il existe une extension MopiQTT(non officielle) qui prend en charge MQTT, ou encore la possibilité de créer des webhooks via Commands => Add : Ainsi qu'un module HomeAssistant : https://github.com/bushvin/hass-integrations Pour ceux qui sont un peu initiés, les possibilités domotiques sont énormes. MàJ : 06/06/2023
  15. Préambule au préambule : Aout 2025, à savoir avant d'acheter un NAS SYNOLOGY Attention la série 2025 , dont le DS925+, n'accepte que des disques durs de marque SYNOLOGY, de la mémoire SYNOLOGY et des SSD SYNOLOGY SYNOLOGY précise "Synology ne fournira pas d'assistance technique si votre périphérique ne figure pas dans la liste de compatibilité des produits Synology". Pour les modèles antérieurs Synology publie une liste de disques durs compatibles : Seagate, Toshiba, Western Digital. DSM 7.3 est disponible : Synology fait (enfin) marche arrière sur les disques durs tiers ! Préambule : Utilisateur de PHOTO STATION depuis de nombreuses années, j'ai constaté et regretté sa disparition avec l'arrivée de DSM 7. Actuellement j'ai installé mon 'ancien' PHOTO STATION sur un DSM Virtuel en version 6.2 pour assurer la continuité de mes partages. Néanmoins force est de constater que malgré de très nombreuse demandes de ses clients SYNOLOGY persiste à ne pas vouloir réimplanter PHOTO STATION dans DSM7, et le développement de SYNOLOGY PHOTO va certainement se poursuivre avec d'autres objectifs, qui sont en résumé de cloner GOOGLE PHOTO. A noter les publicités insistantes pour SYNOLOGY PHOTOS sur les liens de partage de documents ... C'est pourquoi j'ai testé pas mal de solutions alternatives de partage de photos sur internet ( PhotoPrism, Libre Photo, Lychee, Photoview etc ..) et finalement après avoir pas mal galéré pour l'installer, j'ai trouvé les fonctionnalités de Piwigo très intéressantes, proches de celles de PHOTO STATION, voire mieux puisque l'on peut enfin avoir des Albums et des sous-albums imbriqués, sans aucune limite. D'où ce tuto pour installer Piwigo en tant que site web sur un NAS Synology pour ceux qui ont l'envie de voir par eux mêmes ce qu'il en est. ( Il existe aussi une version Docker que je n'ai jamais réussi à faire fonctionner pleinement ) Après plus de deux ans d'utilisation, 100 000 photos et 1 300 albums, une fluidité sans égal par rapport à Photo Station , il n'y a pas photo 😉 [TUTO] INSTALLER PIWIGO SUR UN NAS SYNOLOGY – DSM7 Installation de Piwigo sur un NAS Synology pour gérer la publication des photos et vidéos situées dans un ou plusieurs répertoires partagés. Les photos sont intégrées à piwigo par la méthode de synchronisation, on n’utilise pas la méthode ajouter des photos pour ne pas créer des doublons. On peut probablement utiliser ‘photos’ mais il y a peut-être des effets de bord si on utilise simultanément Synology Photos. Le gros plus de Piwigo est de permettre d’afficher des albums physiques ou virtuels, imbriqués de manière illimitée. 1 Installation des paquets Installer les paquets suivants : Web Station Apache HHTP 2.4 PHP8.2 MariaDB 10 et phpMyAdmin 2 Paramétrage des paquets 2.1 Créer avec File Station un répertoire sous web, pour l'exemple 'photo_charles' sous web 2.2 Web Station ( mis à jour avec DSM 7 ) 1 - Dans 'paramètre du langage de script ' onglet 'PHP' créer un profil personnalisé onglet : 'Paramètres' Nom : 'Piwigo 8.2', Description ; 'Piwigo PHP 8.2' ; version 'PHP 8.2' cocher 'Activer le cache PHP' onglet : 'Extensions' cocher 'exif' 'gd' 'imagick' 'mysqli' 'zip' 'zlib' 2 - Dans 'Service Web' Créer un service web , choisir 'un site web en langage de script natif' Service : 'PHP 8.2' , dans la liste déroulante choisir le profil créé précédemment 'Piwigo 8.2' Nom : 'photo_charles' Profil : choisir dans la liste le profil php 'Piwigo 8.2' Description : 'Photo Charles' Racine du document : sélectionner ..web/photo_charles Serveur principal HTTP sélectionner 'Apache HTTP Server 2.4' ( ça fonctionne aussi avec Nginx ) 3 - Dans 'Portail Web' Créer un portail , choisir 'Portail de service Web' Service, choisir celui créé précédemment 'photo_charles' Type de portail 'Basé sur le nom' Nom d'hôte : 'photo_charles' cocher : port 80/443 Les autorisations d'accès aux répertoires données Webstation sont insuffisants, pour pouvoir installer Piwigo, il faut d’abord donner des droits d’accès aux dossiers : - En lecture pour le groupe http sur les répertoires photos/vidéos que l'on souhaite associer à Piwigo - En lecture et écriture pour le groupe http sur les répertoires : ./photo_charles/_data ./photo_charles/galleries ./photo_charles/plugins ./photo_charles/themes ./photo_charles/local 2.3 MariaDB Créer un mot de passe fort, le login étant root 2.4 phpMyAdmin Ouvrir avec root et le mot de passe précédent Créer un nouvel utilisateur, 'charles_admin' avec un mot de passe fort Cocher ‘privilèges globaux tout cocher’ Créer une base de données, nom : 'photo_charles' (L’installateur piwigo créera les tables ultérieurement) 3 Installation de piwigo Sur le site de Piwigo https://fr.piwigo.org/obtenir-piwigo Télécharger le fichier 'piwigo-16.2.0.zip', dézipper le fichier zip dans le répertoire ./web/photo_charles ( mise à jour décembre 2025 ) L’adresse du NAS étant 192.168.1.20 saisir dans le navigateur http://192.168.1.20/photo_charles ou cliquer sur le raccourci dans Web Station. On arrive sur la page Piwigo installation Compléter les champs comme indiqué Cliquer sur ‘Démarrer l’installation’ On arrive sur cet écran : Ne cliquer pas sur 'je veux ajouter des photos' !!! Mais sur ‘je me débrouillerai par moi-même’ L’objectif étant d’accéder aux photos situées dans le NAS sans créer de doublon. Dans la page qui s'affiche, sélectionner 'Admin' Qui va vous donner accès au menus de gestion de l'application Aller dans Plugins et activer 'LocalFiles Editor' et 'Admin Tools' 4 Paramétrage de piwigo Aller dans le plugin : LocalFiles Editor > configuration Ce plugin permet de compléter le fichier de configuration de Piwigo d’une manière simple. Ajouter les lignes suivantes dans 'configuration locale ': $conf['picture_ext'] = array('jpg','JPG',’jpeg’,’png’); // pour limiter les extensions à prendre en compte $conf['sync_exclude_folders'] = array('@eaDir'); // pour exclure des répertoires Les répertoires ‘@eaDir’ sont des répertoires cachés propres à Synology. On peut ajouter d’autres répertoires à exclure dans cette liste, par exemple si on a utilisé Picasa au préalable il faut rajouter ‘.Originals’ et ‘.picasaoriginals’, ou encore ‘raw’ si les raw sont stockés dans des répertoires ‘raw’ de l’arborescence. le plugin ‘Admin Tools’ ajoute des raccourcis utiles pour administrer le site. 5 Vérification de la configuration Menu Administration > Outils > Maintenance : Environnement On peut vérifier que PHP et MySQL, ainsi que la bibliothèque graphique ImageMagick sont correctement installés. 6 Synchronisation avec le ou les répertoires contenant les photos Normalement on devrait pouvoir utiliser le ’Gestionnaire des sites’ pour créer des liens sur les répertoires du nas où se trouvent les photos. Mais en pratique cette méthode occasionne de nombreux dysfonctionnements. Pour éviter ces dysfonctionnements il suffit de créer des liens symboliques sur le NAS, et on obtient ainsi un fonctionnement correct de la synchronisation de Piwigo. Avertissement : Maintenant on va entrer dans les entrailles du NAS, il faut être prudent car on peut gravement endommager le NAS en faisant une fausse manipulation. Cette solution nécessite de se connecter au NAS en SSH Il faut au préalable autoriser l’accès au NAS en SSH, dans le panneau de configuration : ‘Terminal & SNMP’ > Terminal : cocher ‘activer le service SSH, par sécurité modifier le port SSH par défaut. On peut accéder au NAS en SSH avec le logiciel Putty ( https://www.putty.org ) On arrive sur cette fenêtre Saisir votre login et mot de passe : Login as: ADMIN ADMIN@192.168.1.20's password: Synology strongly advises you not to run commands as the root user, who has the highest privileges on the system. Doing so may cause major damages to the system. Please note that if you choose to proceed, all consequences are at your own risk. Could not chdir to home directory /var/services/homes/ADMIN: No such file or directory ADMIN@Mon_NAS:/$ Ensuite on passe en mode sudo (super utilisateur) ADMIN@Mon_NAS:/$ sudo -i Password: root@Mon_NAS:~# Se positionner dans le répertoire ‘galleries’ de piwigo : roo@Mon_NAS:~# cd /volume1/web/photo_charles/galleries Pour faire un lien symbolique ‘nom_du_lien’ sur un répertoire ‘repertoire_cible’ la syntaxe est : cible nom du lien ln -s repertoire_cible’ ‘nom_du lien’ root@Robert:/volume1/web/photo_charles/galleries# ln -s /volume1/photo_test lien_photo_test On peut créer plusieurs liens symboliques. Quand on fait un dir dans le répertoire ‘galleries’ les liens symboliques s’affichent en cyan, sous la forme : ‘nom_du_lien’ -> ‘repertoire_cible’ Pour supprimer un lien symbolique la syntaxe est : unlink nom_du lien Pour avoir la liste de tous les liens symboliques se placer à la racine et saisir : find . -type 1 Quand tous les liens sont créés, quitter Putty. Revenir dans l’application Piwigo, et lancer Administration > Outils > Synchroniser : synchronisation (./galleries) 7 La syntaxe des noms des répertoires et des fichiers Le manuel de Piwigo préconise de n’utiliser ni espace, ni caractères accentués dans les noms des répertoires et des fichiers. On peut passer outre à ces recommandations en ajoutant avec le plugin LocalFiles Editor : // permet les caractères accentués et l'espace ( juste avant le \ ) dans les noms de fichiers // pour l'apostrophe ça ne marche pas $conf['sync_chars_regex'] = '/^[a-zA-Z0-9éè~àâ%&êñ!ûëçïÁÂÀô`‘’()-_. \']+$/'; (Merci à k5 de piwigo.org pour l’info) Ceci autorise dans les noms de répertoires et des fichiers photo les caractères accentués et les espaces. J’utilise cette fonctionnalité, et à ce jour avec 90000 photos et 1200 albums ça marche, à l’exception de l’apostrophe que j’ai dû supprimer de quelques noms de répertoire. Si les albums créés dans piwigo ne sont pas ceux attendus on peut toujours supprimer le lien symbolique, les répertoires et les photos originales ne sont pas affectés, et on peut faire de nouveaux essais, jusqu'à la présentation attendue. 8 Le classement des photos, la structure des répertoires et les albums Lorsque l’on active la synchronisation de ‘galleries’, Piwigo va parcourir les liens symboliques créés dans ‘galleries’ et pour chaque répertoire il va créer (ou mettre à jour) automatiquement un album et créer des miniatures pour chaque photo. C’est donc la manière dont on a classé les photos qui va conditionner la création des albums. Personnellement mes photos sont classées par date, en deux catégories (photos numériques et scans) selon le schéma suivant : NAS | |__ Mes Photos | |__ photo | | |__ 2000-2009 | | |__ 2000 | | … | | |__ 2009 | | … | | |__ 2010-2019 | | … | | |__ 2020-2025 | | | |__ scan | |__ 1920-1949 | |__ 1950-1979 | |__ 1980-1989 | |__ 1990-1999 | |__ Mes Vidéos | |__ web |__ photo_charles C’est la manière dont sont définis les liens symboliques qui va déterminer l’arborescence des albums de base dans piwigo Exemple 1 Lien_photo -> /volume1/Mes Photos/photo Va créer 3 albums de niveau 1 ( 2000-2009, 2010-2019, 2020-2025 ) Lien_scan -> /volume1/Mes Photos/scan Va créer 4 albums de niveau 1 ( 1920-1949, 1950-1979, 1980-1989, 1990-1999 ) Au final ces 2 liens vont créer 7 albums de niveau 1, et des albums pour tous les sous-répertoires selon l'arborescence. Exemple 2 Lien_photo -> /volume1/Mes Photos Va créer 2 albums de niveau 1 ( photo, scan ) et tous les albums correspondants aux sous-répertoires. Exclusion des répertoires à ne pas intégrer à piwigo On peut exclure des répertoires, mettant la ligne suivante dans le plugin LocalFiles Editor : $conf['sync_exclude_folders'] = array('@eaDir',’raw’,’edition’); On va ainsi exclure les répertoires ‘raw’ et ‘edition’ ; à compléter avec tout autre répertoire que l’on ne souhaite pas voir comme album. Pour lancer une synchronisation : Administration > Outils > Synchroniser : synchronisation ./galleries Smart Albums - albums automatiques Les liens entre les photos sur le NAS et piwigo étant définis, on peut ensuite réaliser des albums personnalisés selon les thèmes voulus (voyages, famille, portrait etc … ) avec le plugin ‘SmartAlbums’ en utilisant les ‘tags’ des photos. (merci à mistic100 pour ce plugin !! ) A noter : pour que l’album apparaisse la première fois, il est impératif de définir une photo comme ‘représentante’ pour l’album. Pour la gestion des ‘tags’ j’utilise le logiciel open source DIGIKAM ( https://www.digikam.org ) qui permet de gérer les tags de manière hiérarchique, et surtout d’écrire les métadonnées dans les photos. Aussi si on change de logiciel de présentation, ou bien en cas de problème avec la base de données de piwigo , les tags sont toujours là !! On peut gérer la hiérarchie des tags comme on le souhaite, avec la possibilité de sélectionner ou non chaque niveau. Album voyage Pays 1 Pays1 ville 1 Pays1 ville 2 Pays 2 Faune Oiseau Mésange Mésange charbonnière Mésange bleue Chardonneret Mammifère Chamois On peut aussi renommer, supprimer ou fusionner les tags très facilement. DIGIKAM intègre également un module de reconnaissance faciale. DIGIKAM intègre aussi un éditeur photo très sommaire pour les jpg Pour l’édition des raw j’utilise le logiciel open source DARKTABLE ( https://www.darktable.org/install/ ) Album classique Outre les 'Smart Albums' l'interface de piwigo permet de créer sa propre architecture d'album, et d'y associer des photos qui seront sélectionnées dans les albums de base. 9 Inclure des vidéos mp4 dans les galeries de photos Piwigo ne lit pas nativement les vidéos, il faut installer le plugin ‘VideoJS’ Créer un lien symbolique entre les vidéos du nas et pwigo. Lien_video -> /volume1/Mes Vidéos Activer le plugin VideoJS, dans la configuration du plugin choisir lecteur : Native Browser Lancer une synchronisation : Administration > Outils > Synchroniser : synchronisation ./galleries Les vidéos vont être reconnues comme des photos, et un album 'Mes Vidéos' va être créé. Ensuite on peut associer les vidéos aux albums souhaités de la manière suivante. Lancer la commande : Administration > Photos > Gestion par lot : All videos > sélectionner une ou plusieurs vidéos > Action : Associer à l'album : choisir un album > Appliquer l'action La ou les vidéos choisies vont apparaitre dans l'album sélectionné. Elle seront représentées par une icône de pellicule de cinéma. L'icône représentant la pellicule se nomme mp4.png et se trouve dans ./piwigo/plugins/piwigo-videojs/mimetypes, on peut la remplacer par ce que l'on veut. Si l’on souhaite afficher une image de la vidéo en lieu et place de l’icône, il faut en extraire une image (avec l’appareil photo dans vlc par exemple), il faut donner à ce fichier jpg ou png le même nom que la vidéo, et placer ce fichier dans un répertoire nommé ‘pwg_representative’ qui sera positionné sous le répertoire contenant la vidéo. Un clic sur l'icône et c'est partie pour la séance de cinéma ... (testé sur Firefox, Edge, Chrome et Opéra) 10 Groupe, Utilisateurs et Permissions Avant de publier votre site, créer des groupes avec des utilisateurs pour définir qui verra quoi. A noter que le webmaster, le 1er utilisateur créé ne voit pas les albums privés. Pour qu’il puisse les voir pensez à créer un groupe qui voit tout et mettez le dedans !! En ce qui me concerne les albums issus des liens symboliques sont privés à usage de l’administrateur, et les albums créés avec ‘SmartAlbums’ sont soit Publics, soit Privés selon les cas. 11 Documentation - Personnalisation de l’interface La documentation complète de piwigo se trouve là : https://doc-fr.piwigo.org/ On peut personnaliser l'application avec de nombreux plugins : https://fr.piwigo.org/ext/ Un grand merci à ceux qui développent et maintiennent Piwigo !!! DARKTABLE + DIGIKAM + PIWIGO = le trio gagnant !!! _______________________________________________________________________________________ PS : n’hésitez pas à commenter, et à critiquer ce tuto, je le mettrai à jour si besoin. Première version 14/01/2023, V2 - Mise à jour 02/02/2023, V3 – Mise à jour 06/02/2023 V4 – Mise à jour 17/03/2023, V5 – Mise à jour 16/04/2023, V6 - Mise à jour 22/12/2024 ( suppression du § Gestionnaire de sites ) V7 - Mise à jour 21/02/2024 ( DSM7 , Piwigo 15.3 ) V8 - Mise à jour 02/01/2026 (DSM7.3 12/2025 recul sur la politique restrictive des disques, http lecture et http lecture + écriture ( à la place de SYSTEM )
  16. Préambule Nous allons voir comment faire un docker avec Plex en version "express", entre guillemets car cette version plus rapide à mettre en place utilisera un script pour maintenir le docker à jour et relancera plex chaque nuit par la même, la coupure dure le temps du relancement du docker et au final inutile de surveiller github ou d'utiliser de docker aux supers droits pour maintenir à jour l'image. Si vous préférez une version plus classique vous avez mon autre tutoriel : I - Préparation de l'installation A ) On commence par la création d'un dossier "Plex" dans le dossier "docker" B ) Création de 2 sous dossiers que vous créez dans le dossier "Plex" : "config" et "transcode" C ) La création d'un utilisateur "Plex", pour lequel on ne définira aucun accès dans les applications et un droit de lecture seule sur les dossiers vidéos. D ) Récupération du PUID/PGID pour le docker : Connectez vous en ssh et tapez dans la console "id Plex", on prendra alors note du uid/gid retourné. E ) Transcodage matériel Si votre nas est bien compatible : Voir la liste Alors vous créez un fichier "plexhw.sh" à la racine de notre dossier "Plex" contenant : #!/bin/sh if [ -d /dev/dri ]; then chmod 660 /dev/dri/renderD128 chmod 660 /dev/dri/card0 fi exit 0 Puis faire une tâche qui s'exécutera au démarrage : Panneau de configuration / Planificateurs de tâches / Créer / Tâche déclenchée / Script défini par l'utilisateur Avec pour utilisateur "root", en évènement "Démarrage" et dans le script le chemin de notre fichier "/volume1/docker/Plex/plexhw.sh" Exécutez manuellement la tâche pour appliquer la modification. II - Création du docker A ) Le script du docker La création d'un fichier "dockerplex.sh" dans le dossier "Plex" contenant les lignes suivantes : #!/bin/sh docker pull lscr.io/linuxserver/plex:latest docker stop Plex docker rm Plex docker image prune -f docker volume ls -qf dangling=true | xargs -r docker volume rm docker run -d \ --cpu-shares=50 \ --memory=4G \ --memory-swap=4G \ --name=Plex \ --net=host \ --device=/dev/dri:/dev/dri \ -e PUID=0000 \ -e PGID=000 \ -e VERSION=latest \ -e TZ=Europe/Paris \ -v /volume1/multimedia:/data:ro \ -v /volume1/docker/Plex/transcode:/transcode:rw \ -v /volume1/docker/Plex/config:/config:rw \ lscr.io/linuxserver/plex:latest exit 0 B ) Les variables à personnaliser : 1 ) La mémoire --memory=4G \ --memory-swap=4G \ Ici le réglage est pour 4Go, valeur idéale surtout lors des parses, néanmoins vous pouvez réduire ces valeurs, il faudra mettre alors pour : 2Go : 2G 1Go : 1G La variable memory-swap = memory, empêche le docker de déborder dans le swap une fois la limite de mémoire max atteinte. 2 ) Transcodage matériel Si votre nas n'est pas compatible alors vous supprimez la ligne : --device=/dev/dri:/dev/dri \ 3 ) PUID/PGID -e PUID=0000 \ -e PGID=000 \ Par les valeurs récupérées au point "I -> D" 4 ) Les dossiers multimédias -v /volume1/multimedia:/data:ro \ A personnaliser et multiplier en fonction de vos dossiers, par exemple : -v /volume1/Vidéo:/data/movies:ro \ -v /volume1/Séries:/data/tvshows:ro \ C ) Création et update journalier Nous créons une tâche qui exécutera notre fichier tous les jours à 5h30 : Panneau de configuration / Planificateurs de tâches / Créer / Tâche planifiée / Script défini par l'utilisateur Avec pour utilisateur "root" et dans le script le chemin de notre fichier "/volume1/docker/Plex/dockerplex.sh" Exécutez manuellement la tâche pour la création initiale. D ) Réclamer le serveur plex Pour cette étape, il faudra être rapide, après obtention du token, vous aurez 4 minutes. 1 ) Visitez cette page Plex Token et copiez le token obtenu 2 ) Modifiez notre fichier "dockerplex.sh" puis rajoutez la variable : -e PLEX_CLAIM=tokenobtenu \ 3 ) Exécutez manuellement de nouveau la tâche du point "II -> C" 4 ) Votre serveur est maintenant réclamé, supprimez la variable rajoutée au point "II -> D -> 2" Voilà c'est terminé, Inutile de relancer la tâche à nouveau, la modification temporaire pour le token sautera à la prochaine exécution du script, en seconde partie je donnerai les configurations que j'utilise actuellement pour vous faire gagner du temps. Adresse du serveur : https://ipdunas:32400 (en cas d’erreur, rajoutez /web à la fin) NB : Dockerfile avec le label watchtower : version: "2.1" services: plex: cpu_shares: 50 mem_limit: 4G container_name: Plex network_mode: host devices: - /dev/dri:/dev/dri labels: - com.centurylinklabs.watchtower.enable=true environment: - PUID=0000 - PGID=000 - TZ=Europe/Paris - VERSION=latest volumes: - /volume1/multimedia:/data:ro - /volume1/docker/Plex/transcode:/transcode:rw - /volume1/docker/Plex/config:/config:rw restart: unless-stopped image: lscr.io/linuxserver/plex:latest
  17. 1. Qu'est-ce qu'un proxy inversé ? Un proxy inversé (reverse proxy) est un type de serveur, habituellement placé en frontal de serveurs web. Contrairement au serveur proxy qui permet à un utilisateur d'accéder à un environnement depuis un point unique, le proxy inversé permet à un utilisateur d'accéder depuis un environnement à des serveurs internes via un point d'entrée unique. Un proxy inversé écoute sur un port donné, sécurisé ou pas, toutes les requêtes à destination de ces services. Au lieu donc d'avoir de multiples portes (les ports des applications auxquelles ont souhaite accéder depuis l'extérieur), on en a une seule qui s'occupera de rediriger les requêtes vers le bon service. 2. Prérequis - Comprendre le fonctionnement de Docker (voir tutoriel introductif) - Savoir se connecter en SSH à son hôte - Savoir rediriger un port depuis sa box - Être un peu curieux Difficulté : Moyenne 3. Pourquoi ? Des solutions de proxy inversé, il en existe des tas, toutes ont leurs avantages et inconvénients. DSM utilise Nginx, mais il existe aussi entre autres HAProxy, Apache, Squid, etc... Dans notre cas ce sera également Nginx, mais via l'image Docker linuxserver/swag, car elle embarque tout un ensemble de fonctionnalités supplémentaires qui agissent en synergie. Cette solution comprend notamment : Certbot : utilitaire permettant l'obtention et le renouvellement automatique de certificats Let's Encrypt. Fail2ban : Script permettant le bannissement d'IP ayant réalisé un nombre donné de tentatives de log infructueuses. Authelia (fichiers de configuration seulement) : Logiciel d'authentification deux facteurs hautement personnalisable et applicable à n'importe quelle application. Nginx : Serveur web qu'on utilise ici pour faire office de proxy inversé. L'intérêt majeur est de pouvoir appliquer des fonctionnalités existantes dans DSM mais réservées à celui-ci, à n'importe quelle application. Et de disposer d'un serveur Nginx entièrement paramétrable a contrario de celui intégré à DSM. ATTENTION : Cette image ne permet pas de déployer automatiquement le certificat obtenu dans DSM à la manière dont le fait acme.sh (voir tutoriel de @Einsteinium pour une utilisation via Docker ou le tutoriel de @oracle7 pour les NAS incompatibles). Vous devrez l'installer manuellement dans DSM si vous souhaitez l'utiliser et le faire tous les 3 mois. Pour ma part je ne m'embête pas, j'utilise l'interface DSM pour obtenir un certificat wildcard avec le nom de domaine Synology qui se renouvelle tout seul tous les 2 mois. Ainsi, j'utilise le nom de domaine Synology pour les services comme Hyper Backup, Drive, etc... tout ce qui est intrinsèquement lié à DSM et qui n'est pas gérable au travers d'un proxy inversé. Tout le reste passe par le certificat OVH que ce conteneur va générer. 4. Hypothèses Pour mieux illustrer le propos, je conviendrai d'un certain nombre d'adresses qui faciliteront l'identification des consignes à l'application du tutoriel : Adressage réseau "physique" : 192.168.1.0/255.255.255.0 (/24 en notation CIDR) Le serveur DHCP ne couvre qu'une partie de la plage 192.168.1.0/24, par exemple 192.168.1.1 à 192.168.1.99 Passerelle (routeur ou modem) : 192.168.1.254 IP (physique, pour utilisation avec réseau macvlan) du conteneur swag : 192.168.1.145 (voir plus loin). IP de l'hôte (le NAS ici, mais ça pourrait être une autre périphérique) : 192.168.1.100 (Je pars du principe que votre hôte a une IP définie en dehors de la plage d'attribution du serveur DHCP, ce n'est pas obligatoire (mais conseillé)). IP virtuelle de l'hôte (voir plus loin) : 192.168.1.200 eth0 est le nom de mon interface physique. 5. Principe L'idée générale de ce que l'on s'apprête à mettre en place peut être résumée de la sorte : Le port 443/tcp (par défaut) est le port d'écoute du proxy inversé. Le port 80 est le port utilisé par Let's Encrypt pour renouveler les certificats si on choisit la méthode de validation HTTP-01 et/ou pour faire une redirection HTTP -> HTTPS. Deux cas de figure se présentent, soit les ports sont libres sur l'hôte, soit ils ne le sont pas : S'ils sont libres, ce qui est le cas si vous décidez d'utiliser SWAG sur une autre machine que le NAS (un Raspberry Pi fait tout à fait le job), alors on peut créer notre conteneur sur un réseau bridge. Dans ce cas-là, la lecture du tutoriel introductif devrait suffire pour la mise en place de swag. S'ils ne le sont pas, ce qui est très probablement le cas sur votre NAS (Webstation installé, Nginx en sous-main) on le rattachera à un réseau macvlan. Un réseau macvlan permet de donner une adresse IP au conteneur sur le réseau physique, par exemple ici 192.168.1.150 Il s'émancipe d'une certaine manière de l'hôte et se comporte globalement comme un périphérique à part entière relié à votre routeur. Il pourra donc utiliser tous les ports dont il a besoin. Au prix d'une impossibilité de communication avec l'IP de l'hôte (limitation intrinsèque au pilote macvlan). Mais il existe une manière de contourner le problème de communication via une interface virtuelle du NAS, vous trouverez plus de détail dans le tutoriel introductif. C'est la méthode que j'ai décidé de privilégier ici, car plus difficile d'accès que via le réseau bridge, et qu'elle permet de ne pas toucher à la configuration du NAS. Je reprendrai principalement ce qu'on peut trouver dans mon tutoriel sur Docker, en l'appliquant à notre cas d'utilisation. En parallèle; n'hésitez pas à parcourir ce magnifique guide, dont ce tutoriel est un bon complément, sur la mise en route de ce conteneur. Vous y trouverez notamment beaucoup plus d'informations sur la partie hébergement de sites, la configuration d'Nginx ; des thèmes que je n'aborderai pas dans le présent tutoriel. 6. Création du réseau macvlan Note : Si vous avez déjà créé un réseau macvlan, rendez-vous au paragraphe 7. Si en plus vous avez déjà créé une interface virtuelle pour la communication NAS <-> conteneur(s) en macvlan, rendez-vous au paragraphe 8. Pour créer le réseau macvlan, il faut définir une portion libre de l'adressage du réseau physique de notre LAN dans laquelle nous pourrons adresser notre (et éventuellement nos futurs) conteneurs. Cet outil est très pratique pour calculer des plages IP, je vois par exemple que si je choisis 192.168.1.144/28, je dispose d'un pool d'IP allant de 192.168.1.145 à 158, ce qui est je pense amplement suffisant, on peut passer le masque à /29 à la place de /28 pour réduire cette plage à 150 au lieu de 158. On peut également décider que ce sera notre seul conteneur en macvlan, pour réduire l'espace à une seule IP il suffit d'utiliser le masque /32. Ici pour couvrir le cas d'utilisation le plus général, on choisira le masque /29. Afin de garder une trace de la configuration du réseau, je vous conseille de créer un fichier macvlan_net.sh. On se rend dans le dossier de notre choix, par exemple chez moi j'ai un dossier networks dans mon dossier partagé docker : cd /volume1/docker/networks touch macvlan_net.sh nano macvlan_net.sh La commande nano est disponible sur vos NAS via les excellents paquets SynoCLI de Synocommunity, en l'occurence SynoCLI Files ici. On entre le script suivant : docker network create -d macvlan \ --subnet=192.168.1.0/24 \ --ip-range=192.168.1.144/29 \ --gateway=192.168.1.254 \ -o parent=eth0 \ macvlan_net On le rend exécutable et l'exécute : chmod u+x macvlan_net.sh ./macvlan_net.sh Une série de caractères s'affiche si tout s'est correctement déroulé. Notes : Pensez à utiliser sudo devant les commandes docker (valable pour toute la suite du tutoriel) si vous n'êtes pas connecté avec l'utilisateur root. ip-range correspond à la plage qu'on a choisie ci-avant. Sur le NAS, si on a activé open vswitch (automatique si par exemple on utilise Virtual Machine Manager), l'interface parente n'est plus eth0 (ou eth1, eth2, ..., ethX) mais ovs_eth0 (respectivement ovs_eth1, etc...). Pour connaître le nom de l'interface physique de sa machine (il varie suivant les machines), en SSH on peut taper : ifconfig | grep -C 3 192.168.1.100 ou ip addr | grep -C 3 192.168.1.100 Il suffit alors de repérer l'interface ayant pour adresse IP l'adresse physique du NAS (ici 192.168.1.100). On peut maintenant vérifier que le réseau existe bien en tapant : docker network ls 7. Création de l'interface virtuelle 7-A. Création du script Comme dit en introduction, il y a un inconvénient majeur à utiliser le réseau macvlan car il n'est plus possible de communiquer entre l'IP de l'hôte, 192.168.1.100 et le conteneur swag dont l'IP sera sur le réseau macvlan. Pour pallier ce défaut, on va créer une interface virtuelle, un autre chemin par lequel le NAS pourra communiquer avec le(s) conteneur(s) sur le réseau macvlan. Cette interface disparaîtra à chaque redémarrage du NAS, on créera donc une tâche planifiée pour la monter automatiquement. __________________ ATTENTION (merci @EVOTk) : L'interface disparaît également lorsque vous : arrêtez désinstallez mettez à jour le paquet Docker. Il faudra donc exécuter ce script manuellement depuis l'interface DSM si cela se produit. __________________ Toute cette procédure est explicitée dans le tutoriel introductif, mais on la reprendra pas à pas ici en personnalisant les commandes à notre besoin. On peut se placer dans un dossier interfaces dans le dossier partagé docker : cd /volume1/docker/interfaces touch mac0.sh nano mac0.sh Puis de manière similaire à ce qu'on a fait pour le script du réseau macvlan, on crée un script pour la création de l'interface : #!/bin/sh # Script permettant la communication entre # un conteneur appartenant a un reseau macvlan et son hote # A lancer au demarrage de l'hote # Temporisation #sleep 60 # Creation de l interface macvlan sur l hote ip link add mac0 link eth0 type macvlan mode bridge # Configuration de l interface avec l adresse reservee ip addr add 192.168.1.200/32 dev mac0 ip link set dev mac0 address AA:BB:CC:DD:11:45 ip link set mac0 up # On fait une route entre les IPv4 du reseau mac0 et l'interface ip route add 192.168.1.144/29 dev mac0 Notes : L'adresse 192.168.1.200/32 correspond à l'IP virtuelle du NAS, le NAS sera accessible et visible également avec cette nouvelle adresse comme avec son IP réelle 192.168.1.100. Mais a contrario de cette dernière, le conteneur peut tout à fait communiquer avec. Vous noterez la présence d'une temporisation commentée de 60 secondes. Si vous rencontrez des problèmes de création de l'interface au démarrage du NAS, n'hésitez pas à décommentez, le script sera décalé d'une minute (ce qui peut permettre d'initialiser la connexion réseau, etc...). On rend le script exécutable et on l'exécute : chmod u+x mac0.sh ./mac0.sh On vérifie maintenant que l'interface est bien active : ifconfig | grep -A 5 mac0 7-A. Création de la tâche On va maintenant créer une tâche planifiée dans DSM pour exécuter ce script à chaque redémarrage du NAS. Direction Panneau de configuration -> Tâches planifiées -> Créer -> Tâche déclenchée -> Script défini par l'utilisateur On est maintenant prêt à passer à la création du conteneur. 8. Création du conteneur 8-A. Fichier docker-compose Il ne reste plus qu'à créer le conteneur, on passera par un fichier docker-compose. La documentation très complète de Linuxserver est disponible à l'adresse : https://github.com/linuxserver/docker-swag Hypothèses : Utilisation d'un nom de domaine OVH Délivrance du certificat par DNS-01 La méthode DNS-01 implique que votre certificat sera validé au niveau de votre hébergeur de zone DNS (OVH par défaut) et non votre NAS comme avec la méthode HTTP-01. DNS-01 est obligatoire en cas de demande d'un certificat wildcard. Si vous souhaitez utiliser la méthode HTTP-01, il faudra prévoir une redirection (NAT) du port 80 de votre box vers l'IP du conteneur. Plus d'information à cette adresse : https://github.com/linuxserver/docker-swag Dans le cadre de nos hypothèses, voici l'architecture du fichier docker-compose : version: '2.1' services: swag: image: linuxserver/swag container_name: swag networks: macvlan_net: ipv4_address: 192.168.1.145 cap_add: - NET_ADMIN environment: - PUID=1026 - PGID=100 - TZ=Europe/Paris - URL=ndd.ovh - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=ovh - DHLEVEL=2048 - EMAIL=mail@ndd.tld - ONLY_SUBDOMAINS=false - STAGING=false volumes: - ./config:/config restart: unless-stopped networks: macvlan_net: external: true Notes : Vous remarquerez que je ne translate aucun port entre le NAS et le conteneur, pourquoi ? N'oubliez pas que ce conteneur sera une machine à part entière sur le réseau physique, dès lors elle n'a pas "d'hôte" à proprement parler. J'aurai simplement mon routeur ou mon modem qui redirigera son port public 443 vers le port 443 de l'adresse IP physique du conteneur (192.168.1.145), comme il le ferait vers n'importe quelle autre machine En amont, une translation de ports depuis le modem/routeur doit être faite pour les ports : TCP 443 pour que le proxy inversé reçoive les requêtes. TCP 80 si vous validez par HTTP-01 OU si vous souhaitez avoir une redirection HTTP -> HTTPS pour vos entrées de proxy inversé (si vous tapez exemple.ndd.tld dans votre navigateur, vous serez rediriger vers https://exemple.ndd.tld). Le PUID proposé correspond à mon utilisateur admin personnalisé, et le PGID de 100 correspond au groupe users par défaut. Vous pouvez définir un utilisateur et un groupe spécifiques qui ne possèderont des droits que sur les dossiers du conteneur. Le paramètre cap_add est utile seulement si vous souhaitez utiliser fail2ban (conseillé), car le conteneur devra modifier ses iptables (pas celles de l'hôte). Notes (2) : Si vous avez utilisé la méthode réseau bridge, il faut penser dans ce cas à faire une redirection des ports sur l'hôte, ça se traduit par l'ajout du bloc "ports" suivant (par exemple entre les blocs "environment" et "volumes") : ports: - 443:443/tcp # Ecoute proxy inverse - 80:80/tcp # Redirection HTTP vers HTTPS 8-B. API OVH Je ne m'attarderai pas sur cette partie, tout est parfaitement décrit dans le tutoriel de @oracle7 sur la génération d'un certificat wildcard par acme.sh J'ajouterai simplement une nuance sur les accès API à donner, ceux-ci me semblent plus restrictifs et préférables : GET /domain/zone/ GET: /domain/zone/ndd.ovh/ GET /domain/zone/ndd.ovh/status GET /domain/zone/ndd.ovh/record GET /domain/zone/ndd.ovh/record/* POST /domain/zone/ndd.ovh/record POST /domain/zone/ndd.ovh/refresh DELETE /domain/zone/ndd.ovh/record/* Également, on peut limiter l'utilisation de l'API à une ou des IP prédéfinies, particulièrement pratique si on dispose d'une IP fixe. En bout de chaîne vous obtiendrez 3 clés permettant un accès à l'API OVH : l'application key, l'application secret et la consumer key. 8-C. Création du fichier ovh.ini Avant la création du conteneur, on va créer en amont le fichier ovh.ini et le préremplir avec vos accès OVH obtenus ci-avant. Ainsi lorsqu'on créera le conteneur, on évitera le message d'erreur comme quoi le conteneur ne dispose pas des accès à l'API. En SSH, connecté avec de préférence l'utilisateur dont on reprendra le PUID/PGID dans les variables d'environnement du fichier docker-compose.yml, on se place dans le dossier destiné à accueillir la configuration du conteneur : cd /volume1/docker/swag Ensuite : mkdir -p config/dns-conf/ cd config/dns-conf/ curl -s https://raw.githubusercontent.com/linuxserver/docker-swag/master/root/defaults/dns-conf/ovh.ini -o ./ovh.ini On édite ensuite le fichier, avec son éditeur préféré (vim, nano, WinSCP, File Station, etc...) et on remplit les champs avec les accès API d'OVH obtenus précédemment : # Instructions: https://github.com/certbot/certbot/blob/master/certbot-dns-ovh/certbot_dns_ovh/__init__.py#L20 # Replace with your values dns_ovh_endpoint = ovh-eu dns_ovh_application_key = VALEUR_APPLICATION_KEY dns_ovh_application_secret = VALEUR_APPLICATION_SECRET dns_ovh_consumer_key = VALEUR_CONSUMER_KEY Pour éviter un message lié aux permissions laxistes du fichier, on va le chmoder : chmod 600 ovh.ini Si en revanche vous obtenez plus tard un erreur due à un des permissions insuffisantes, exécutez de nouveau la commande en remplaçant 600 par 640. 8-D. Création du conteneur Une fois le fichier ovh.ini correctement complété, on peut créer le conteneur, on se place dans le dossier où se trouve le fichier docker-compose et on écrit : docker-compose up -d On peut suivre l'évolution de l'initialisation du conteneur via : docker-compose logs --follow (CTRL+C pour arrêter le défilement des logs en direct). Ou alors via le paquet Docker de DSM ou encore Portainer (voir tutoriel). Normalement à ce stade vous disposez d'un certificat fonctionnel dans /volume1/docker/swag/config/keys/letsencrypt. Il sera tout à fait possible des copier les fichiers ou de créer des liens symboliques pour d'autres applications vers ces fichiers. 🙂 Autre possibilité, monter ce dossier en tant que volume pour un service qui nécessiterait ses propres certificats, bref ils sont à vous, faites-en ce que bon vous semble ! Passons à la configuration du proxy inversé. 9. Configuration du proxy inversé 9-A. Configuration d'une entrée Nginx est une application assez dense, et demande de comprendre les procédés à l'œuvre, le tutoriel sur la mise en place d'un VPS comme frontend de @Einsteinium entre plus en détail dans le sujet, dans notre cas, on a la chance que Linuxserver propose dans son image toute une liste d'applications grand public préconfigurées, dirigeons-nous pour cela dans le dossier suivant : cd /volume1/docker/swag/config/nginx/proxy-confs Et voyons ce qu'on y trouve : ls -l On voit tout un tas d'entrée préconfigurées, qui se classent en deux catégories : subdomain et subfolder. Le proxy inversé peut fonctionner soit en fonction du sous-domaine sollicité, soit du "path" (chemin) après le nom de domaine. Dans notre cas on s'intéressera aux entrées de type subdomain, exemple avec une entrée pour Resilio-sync : Faisons un rapide tour des directives, les champs en vert sont ceux que vous êtes a priori susceptibles de modifier : server { => on commence la définition d'une entrée du proxy inversé listen 443 ssl; et listen [::]:443 ssl; => le proxy inversé va écouter sur le port 443 les requêtes en IPv4 et IPv6 de toutes les sources disponibles. server_name resilio-sync.*; => la condition pour que le proxy inversé réagisse est que l'adresse commence par resilio-sync, exemple -> resilio-sync.ndd.ovh. include /config/nginx/ssl.conf; => à l'exécution, nginx va importer tous les paramètres définis dans le fichier ssl.conf, entre autre le chemin du certificat à utiliser, les algorithmes de chiffrement, etc... #include /config/nginx/ldap.conf; => pour ceux qui souhaitent s'authentifier au travers du proxy à partir d'un serveur d'authentification LDAP. Cette image n'embarque pas de serveur LDAP, elle permet juste de l'intégrer facilement au proxy inversé. Commenté par défaut. #include /config/nginx/authelia-server.conf; => permet d'intégrer une authentification deux facteurs ou simple facteur conditionnelle, fera l'objet d'un autre tutoriel. Cette image n'embarque pas de serveur Authelia, elle permet juste de l'intégrer facilement au proxy inversé. Commenté par défaut. location / { : on définit le comportement de Nginx pour la racine ("/") du sous-domaine. Viennent ensuite trois blocs (de la ligne 21 à 30) affiliés respectivement à une authentification http (l'explorateur demandera un identifiant et un mot de passe au chargement de la page), des paramètres liés à l'authentification par LDAP, et des paramètres liés à Authelia. On n'y touchera pas ici. include /config/nginx/proxy.conf; => Importation d'en-têtes (timeouts, transmission des IP, gestion des cookies, etc...) include /config/nginx/resolver.conf; => Le résolveur DNS utilisé sera le résolveur Docker embarqué dans chaque conteneur. La partie suivante est la partie la plus importante, elle définit comment le conteneur swag va accéder à l'application qu'on souhaite dissimuler derrière le proxy inversé. Il faut garder à l'esprit que la façon dont le conteneur accède au réseau peut être bien différente de la façon dont vous, vous accédez à vos applications par le navigateur. Dans notre cas, vu que le conteneur est sur le réseau macvlan, donc sur le réseau physique, comme la machine depuis laquelle vous tentez d'accéder à ces applications. A une différence près, si vous avez bien suivi, c'est que le conteneur ne pourra pas accéder à son hôte via son IP physique, mais seulement par son IP virtuelle, donc dans notre cas 192.168.1.200 au lieu de 192.168.1.100. Voyons la signification des trois champs : 9-A-1. $upstream_app set $upstream_app resilio-sync; Ici c'est très trompeur, ce que vous lisez là, "resilio-sync", c'est le nom du conteneur. Cette résolution par nom de conteneur, donc ici que le conteneur de nom "swag" cherche à contacter le conteneur de nom "resilio-sync" ne peut s'opérer que si les deux conteneurs se trouvent dans le même réseau. Dans notre cas, si on avait bien un conteneur resilio-sync, il serait probablement en bridge sur son hôte. Par défaut inaccessible au conteneur Let's Encrypt sauf si on a translaté le port du conteneur sur celui du NAS. Dans ce dernier cas on peut tout à fait y accéder en entrant l'adresse IP ou le nom DNS du NAS : 192.168.1.200 (rappelez-vous, IP virtuelle). 9-A-2. $upstream_port set $upstream_port 8888; Il s'agit du port tel qu'il sera accessible pour le conteneur SWAG. Si par exemple sur votre NAS vous avez un conteneur Bitwarden, que par défaut l'interface est émise sur le port 8080 dans le conteneur, mais que vous avez décalé le port pour une raison qui vous appartient, disons vers 5080, il faudra alors utiliser 5080 et pas 8080. 9-A-3. $upstream_proto set $upstream_proto http; Le protocole lié au port, souvent http (on évite de chiffrer entre le NAS et lui-même), mais parfois https (certaines applications comme Unifi-controller n'expose leur interface que via HTTPS), à vous d'adapter en fonction du besoin. 9-A-4. Récapitulatif Prenons le cas de l'application Resilio-sync qu'on aurait installé sur notre NAS, via le centre des paquets (sans Docker donc), j'utiliserai la configuration suivante : set $upstream_app 192.168.1.200; set $upstream_port 8888; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; La ligne proxy_pass construit l'URL à partir des variables précédemment définies, on n'a pas à y toucher. D'autres exemples : Moments set $upstream_app 192.168.1.200; set $upstream_port 10004; # Port personnalisé de Moments dans Portail des applications set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; Jeedom auquel j'accède via un nom de domaine local : set $upstream_app raspberrypi.local; set $upstream_port 8088; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; Mon routeur, dont l'interface émet sur le port sécurisé 8443 : set $upstream_app 192.168.1.1; set $upstream_port 8443; set $upstream_proto https; proxy_pass $upstream_proto://$upstream_app:$upstream_port; Une fois toutes nos entrées configurées, on redémarre le conteneur : docker restart swag Et normalement, tout devrait être fonctionnel. 9-B. Redirection HTTP -> HTTPS Par défaut, SWAG écoute sur le port 80. Si vous souhaitez que SWAG fasse une redirection automatique 80 -> 443 pour les requêtes extérieures, il faut faire une redirection du port 80 depuis votre box vers le port 80 de l'IP (192.168.1.145) du conteneur. Si vous aviez l'habitude de faire une demande de certificat depuis DSM via HTTP-01, vous risquez d'être embêté car une seule redirection simultanée du port 80 est possible. 9-C. Validation par HTTP-01 Il se peut que votre hébergeur DNS n'ait pas d'API pour permettre une validation du certificat à son niveau, dans ce cas-là vous pourriez vouloir utiliser un certificat délivré par HTTP-01. Il faut dans ce cas-là rediriger le port 80 de votre box/routeur vers le port 80 de l'IP du conteneur 192.168.1.145 Un fichier docker-compose type pour un renouvellement HTTP-01 pourrait être le suivant : version: '2.1' services: swag: image: linuxserver/swag container_name: swag networks: macvlan_net: ipv4_address: 192.168.1.145 cap_add: - NET_ADMIN environment: - PUID=1026 - PGID=100 - TZ=Europe/Paris - URL=ndd.ovh - SUBDOMAINS=plex,bitwarden,wordpress,dsm, # on liste les sous-domaine, attention à la virgule finale - VALIDATION=http # on remplace dns par http et on supprime la variable DNSPLUGIN - DHLEVEL=2048 - EMAIL=mail@ndd.tld - ONLY_SUBDOMAINS=false - STAGING=false volumes: - ./config:/config restart: unless-stopped networks: macvlan_net: external: true Remarque : Si notre certificat racine (ndd.ovh) est déjà géré ailleurs, mais qu'on souhaite avoir un deuxième proxy inversé sur une autre machine (un VPS par exemple) avec le même domaine, on peut passer la variable ONLY_SUBDOMAINS à true. Ainsi le certificat ne sera généré que pour les sous-domaines. 10. Fail2ban 10-A. Configuration Fail2ban est une application très pratique qu'on retrouve dans DSM, c'est le service qui permet de bannir une personne tentant de se logger plusieurs fois d'affilée de manière infructueuse à un service Synology. Ici, on va pouvoir l'appliquer à ce qu'on veut. Dans DSM c'est configurable dans l'onglet "Blocage". Il y a cependant une condition, fail2ban se base sur la lecture de logs, et en les analysant il va identifier des IP et des résultats de login : échec ou succès. La plupart des logs d'accès sont lisibles par fail2ban, car il embarque tout un set d'expressions régulières lui permettant d'analyser les logs, mais c'est un point à vérifier en amont. Fail2ban se base sur ce qu'on appelle des prisons, ou "jails" en anglais. Allons donc dans le dossier de fail2ban : cd /volume1/docker/swag/config/fail2ban && ls -l $_ filter.d comprend les fichiers de configuration permettant d'analyser et filtrer le contenu des logs en extrayant les informations utiles au moyen d'expressions régulières. action.d comprend les actions à entreprendre quand une analyse répond à un critère de filtrage. Ces dossiers comprennent un grand nombre de fichiers de configuration prédéfinis propres à tout un ensemble d'applications. Remarque : Si l'application que vous souhaitez protéger n'est pas incluse, il faudra alors créer vos propres filtres. fail2ban.sqlite3 est la base de données embarquée. jail.local est le fichier qui nous intéresse en particulier : La section [DEFAULT] définit le comportement global, il peut être écrasé au sein des sections suivantes qui définissent chaque service qu'on souhaite surveiller (maxretry, etc...). Intéressant, et qui n'apparaît pas dans l'impression d'écran, il est possible d'ajouter une directive ignoreip qui permet de whitelister des plages d'IP : ignoreip = 172.16.0.0/12 192.168.0.0/16 10.0.0.0/8 Ici je whitelist les IP pivées qui peuvent vouloir se connecter, pas de risque de me verrouiller du coup. Le fichier jail.local surveille par défaut les 4 services Nginx. On a également un bloc ssh désactivé par défaut. Pour l'activer c'est assez simple : [ssh] enabled = true port = ssh filter = sshd logpath = /log/host_ssh_auth.log Notes : port : ssh représente ici le port SSH par défaut (22), dans les faits si vous avez changé le port SSH sur votre hôte, mettez directement son numéro. filter : cela correspond au nom du fichier .conf qu'on trouvera dans le dossier filter.d, ici on appellera donc le fichier sshd.conf logpath : normalement le contenu des logs SSH se trouve dans /var/log/auth.log, pourquoi ne pas mettre ça ? Si vous écrivez /var/log/auth.log, vous allez surveiller le log d'accès SSH ... au conteneur. A priori ça ne nous intéresse pas, on cherche à lire les logs SSH de l'hôte. Pour que le conteneur y ait accès, il faut les monter via un volume. Il suffit pour cela d'éditer le fichier docker-compose.yml et d'y monter les logs de l'hôte dans un fichier à l'intérieur du conteneur, qu'on définit arbitrairement : version: '2.1' services: swag: image: linuxserver/swag container_name: swag networks: macvlan_net: ipv4_address: 192.168.1.145 cap_add: - NET_ADMIN environment: - PUID=1026 - PGID=100 - TZ=Europe/Paris - URL=ndd.ovh - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=ovh - DHLEVEL=2048 - EMAIL=mail@ndd.tld - ONLY_SUBDOMAINS=false - STAGING=false volumes: - ./config:/config - /var/log/auth.log:/log/host_ssh_auth.log:ro # on ajoute ro pour read-only (lecture seule) restart: unless-stopped networks: macvlan_net: external: true On recrée le conteneur : docker-compose down && docker-compose up -d On aura maintenant fail2ban qui pourra analyser les connexions SSH sur l'hôte. Quelques commandes utiles pour vérifier le bon fonctionnement des prisons : Pour renvoyer la liste des prisons : docker exec -it swag fail2ban-client status Pour afficher le statut d'une prison en particulier, ici ssh : docker exec -it swag fail2ban-client status ssh le terme swag dans les commandes précédentes correspond au nom que vous avez donné au conteneur SWAG. 10-B. Proxy fiable Par défaut, DSM empêche l'identification de l'IP source, sauf si on a précisément ajouter à la liste des proxy fiables l'IP de notre conteneur swag. Pour cela, Panneau de configuration -> Sécurité -> Proxies fiables et on ajoute l'IP du conteneur: On valide, maintenant ce sera l'IP source qui sera lue et non plus l'IP du conteneur SWAG. Ce qui revêt son importance pour fail2ban, sinon vous allez simplement bannir votre proxy inversé, ce serait bête non ? 🙂 Pour ceux qui souhaitent pousser la configuration de fail2ban plus en profondeur : https://www.linode.com/docs/guides/using-fail2ban-to-secure-your-server-a-tutorial/ https://manpages.debian.org/testing/fail2ban/jail.conf.5.en.html (très intéressant) https://github.com/linuxserver/docker-swag#using-fail2ban (commandes utiles) 11. Conclusion Ce conteneur est un package tout-en-un pour la gestion de vos certificats de vos accès externes et internes. Et il est assez facile à manipuler une fois qu'on a compris le principe. Il a surtout l'avantage de ne pas toucher au système, qu'il s'agisse de DSM ou d'une distribution Linux autre. Dans le cas de DSM particulièrement, il est possible de réaliser ce genre de manipulations car DSM utilise Nginx pour son proxy inversé, mais chaque mise à jour de paquet ou d'OS supprimera toutes vos modifications. Il existe un ancien tutoriel de @CoolRaoul pour proxy inversé sur le forum qui explorait justement une solution à ce problème, mais à l'époque le portail des applications DSM n'existait pas encore. 😉 Enfin c'est tout à fait portable, le jour où vous souhaitez héberger le proxy inversé sur un Raspberry Pi, un VPS, ou tout autre périphérique, il n'y aura qu'à copier vos fichiers de configuration d'une machine à l'autre, et faire les quelques adaptations nécessaires (adresses des services internes + redirection des ports). Màj : 22/07/2021
  18. Bonjour, Objectif de ce tutoriel : Pouvoir gérer de façon centralisée votre propre messagerie électronique sur votre NAS Synology lorsque vous disposez d’une adresse IP externe dite « dynamique » chez un Fournisseur d’Accès Internet (FAI) tel que ORANGE. L’idée est donc de vous permettre de créer votre propre messagerie électronique sur la base de votre propre domaine « votredomaine.tld » afin que vous puissiez recevoir et envoyer des eMAILs vers tous les fournisseurs tels que GMAIL et autres sans que ces eMAILs ne puissent être déclarés comme du SPAM (courrier indésirable non sollicité). En clair être autonome de ce point de vue ! Pour cela (et surtout pour faire simple) nous allons utiliser un outil à notre disposition sur nos NAS Synology qui n’est autre que le package Synology « MailPus Server » (« MPS »). Avec ce package notre NAS devient alors un système de messagerie prenant en charge les protocoles « SMTP », « POP3 » et « IMAP ». Les comptes d'utilisateurs et les eMails y sont également gérés et archivés de manière centralisée ce qui répond déjà à une partie de l’objectif fixé. En outre, associé à ce serveur, le package « MailPlus » va fournir aux utilisateurs du NAS, un client de messagerie basé sur un navigateur facile à utiliser pour afficher, gérer et envoyer leurs messages. Alors pourquoi s’en priver ? Autant aussi être d’entrée très clair, vous constaterez que ce tutoriel présente beaucoup de similitudes avec l’excellent tutoriel « [TUTO] Serveur MailPlus DSM6 » proposé par @unPixel sur le présent forum. Ceci est normal : on va utiliser le même outil logiciel (à la version près, celle décrite ici est la dernière à la date de rédaction du présent tutoriel), c’est juste que le tutoriel de @unPixel ne s’adresse qu’aux « chanceux » possesseurs d’une @IP externe fixe, cette condition est expressément explicitée dès le début de celui-ci. En conséquence et théoriquement, ce tutoriel ne s’avère pas applicable aux possesseurs d’une @IP externe dite « dynamique ». Mais, et bien heureusement il y a un « MAIS », on peut contourner le problème de l’@IP externe fixe et ainsi s’en affranchir, pour disposer au final d’un serveur de messagerie bien opérationnel tout en utilisant une @IP dynamique. Il faut donc voir le présent tutoriel comme un complément qui répond à un autre besoin. Chacun, toujours selon son besoin, s’adaptera et suivra l’un ou l’autre de ces tutoriels. Oh, j’entends déjà d’ici des voix qui vont dire que le serveur de messagerie ainsi configuré, va tout au plus « marchoter » et que sans @IP fixe il n’y a point de salut viable. Eh bien, la configuration décrite ci-après devrait en prouver le contraire. Cela étant, il convient cependant en préalable, de garder en mémoire quelques points : Tous les NAS Synology ne sont pas compatibles avec le package « MPS ». Je vous invite donc avant toute chose, à contrôler que votre NAS figure bien dans la liste de compatibilité établie par Synology. Faute de quoi et j’en suis désolé pour vous, ce présent tutoriel ne sera pas applicable. Le package « MPS » ne fournit GRATUITEMENT en standard, la possibilité de créer que 5 @MAIL pour nos propres besoins. Il est vrai que c’est peu mais c’est déjà cela en termes de gratuit. Cependant, si vous souhaitez acquérir des @MAIL supplémentaires pour vos propres besoins, sachez que c’est possible mais que ces licences Synology ne sont disponibles que par lot de 5 ou lot de 20, à un prix que personnellement, je trouve prohibitif pour un particulier du moins. Si vous êtes un « Pro », c’est un autre débat ... En tous cas, voyez et jugez vous-même par exemple ICI (à la date de la présente rédaction) pour un simple lot de 5 licences (je vous laisse découvrir vous-même le coût de 20 licences !). Maintenant pour être complet, vous pouvez aussi vous rabattre sur l’ancienne version du package Synology « MailServer » qui est à ce jour encore disponible et opérationnelle et qui elle, certes, ne limite pas le nombre d’@MAIL créables. Cependant ses fonctionnalités sont bien moindres que celles de l’actuel « MPS ». Ceci dit, cet ancien package peut aussi très bien suffire à certains. À vous de voir selon vos besoins … En toute rigueur dans le processus de configuration de votre serveur de messagerie, il faudrait pouvoir paramétrer le « rDNS » d’Orange. Entendez par là, le « reverse DNS », c’est-à-dire la possibilité d’obtenir le nom de domaine correspondant à une @IP, ce que font automatiquement les serveurs d’Orange (mais aussi les autres FAI) pour vérifier que l'eMAIL émis, provient bien de l’enregistrement « MX » associé à ce domaine auquel cas l’eMAIL est rejeté. Or, cette inscription ne peut normalement se faire que chez le propriétaire de l’@IP externe en l’occurrence ici : Orange. Mais voilà, là c’est impossible chez eux (a priori, et à ma connaissance il semblerait que seul Free le permette). Bon, heureusement il semble qu’à l’usage ce ne soit finalement pas un problème bloquant dans notre affaire comme on le verra plus loin (au § 7 ci-dessous) lors du test « mail-tester.com ». Il faut juste le savoir. Il est également nécessaire que le port 25, qui est un port de communication entre serveurs MAIL, ne soit pas bloqué ni en entrée, ni en sortie. En fait chez Orange, il n’est pas bloqué comme on pourrait le croire et comme le croient certains, mais c’est juste qu’un serveur SMTP Orange ignore les connexions provenant d'un autre réseau si elles lui arrivent sur le port 25. Sachez que ce comportement est devenu le standard et tous les opérateurs appliquent ce type de restriction. Pour mémoire, Il semblerait que Free bloque aussi par défaut le port 25 mais au moins chez eux il serait possible toutefois, de débloquer cette fonction via l’interface de leur box. Donc au final, pour contourner ce « blocage » du port 25, il suffit et il est même impératif de passer par le serveur SMTP du FAI pour émettre des eMAILs et si on ne veut pas se les faire rejeter. Par conséquent et c’est là toute l’astuce que l’on va mettre en œuvre dans la configuration décrite ci-après, on va utiliser : · un serveur SMTP d’Orange (ce qu’on appellera par la suite un relais SMTP) où l’on a un compte, · via le protocole SSL avec le port 465 ou via le protocole TLS avec le port 587 qui servira pour la communication du client vers le serveur (c’est cette dernière solution que nous exploiterons ici), · et avec une authentification par mot de passe. C’est la condition sine qua non au bon fonctionnement de votre serveur de messagerie. De façon pratique, si vous faites des Copier/Coller de paramètres, d’instructions de commandes, etc … à partir du présent tutoriel, je vous invite expressément à passer par l’intermédiaire d’un fichier « .txt » afin de bien visualiser le contenu exact de la chaîne de caractères copiée. Cette disposition vous évitera notamment lors du « Copier » de prendre de façon aveugle des caractères parasites qui viendront immanquablement ensuite perturber les systèmes mis en œuvre dans leur analyse de ces paramètres et/ou commandes avec tous leurs cortèges de messages d’erreurs associés. Voilà, vous êtes prévenus … Je vous livre donc ci-après la méthode que j'ai suivie. J’ai essayé de la rendre aussi détaillée que possible. En fait elle est conçue pour « les nuls » 😊, mais pas que ... D’ores et déjà, je tiens aussi à remercier ici, @Thierry94 et @PiwiLAbruti qui, au cours de multiples échanges (que vous pourrez retrouver sur le présent forum), m’ont fourni de la matière pour alimenter et compléter un certain nombre d’explications que vous trouverez dans ce tutoriel. Ils se reconnaitront dans certains couplets que j’ai repris quasiment tels quels. Sinon pour une grande partie, toutes ces explications sont issues de synthèses de mes lectures sur la toile. Les « initiés » ne manqueront pas de corriger mes éventuels défauts d’interprétations. Voilà pour le discours préliminaire, on passe aux choses sérieuses … Prérequis : Vous devez disposer de : Un NAS Synology compatible et surtout sécurisé (voir le Tutoriel « [TUTO] Sécuriser les accès à son nas » de @Fenrir). Un nom de domaine personnalisé (« votredomaine.tld »). Un accès à la « zone DNS » de votre domaine chez votre fournisseur de domaine (pour l’exemple ici ce sera mon fournisseur : OVH). Un serveur DNS installé et configuré pour gérer votre domaine sur votre NAS ou sur votre Routeur Synology (voir le Tutoriel « [TUTO] DNS Server » de @Fenrir). Une @IP externe dynamique sur laquelle « pointe » un nom d’hôte qui n’est autre que « votredomaine.tld » et configurée sur votre NAS pour être prise en charge par un DDNS (pour l’exemple ici ce sera le DynDNS d’OVH). Optionnel mais recommandé : un reverse proxy configuré sur votre NAS (voir le Tutoriel « [TUTO] Reverse proxy » de @Kawamashi). Nota : Juste pour attirer votre attention sur le fait que par abus de langage en parlant d’@IP externe chez Orange, on réduit trop souvent à l’utilisation du qualificatif « dynamique ». En fait et en pratique (source Orange), en fonction du modèle de votre Livebox (Livebox 2, Livebox Play, Livebox 4) et de votre connexion (ADSL, VDSL2, Fibre), vous bénéficiez soit d’une @IP dite « dynamique », soit d'une @IP dite « préférentielle » telles que : Fibre et VDSL : IPv4 préférentielle, IPv6 dynamique, ADSL : IPv4 préférentielle ou dynamique selon éligibilité, Ipv6 dynamique selon éligibilité, LiveBox2 : IPv4 dynamique et uniquement en ADSL. Les différences entre les « @IP dynamiques » et les « @IP préférentielles » sont celles-ci : Les « @IP dynamiques » : elles sont modifiées périodiquement par Orange ou en cas de reconnexion de la Livebox. Les « @IP préférentielles » : elles sont stables dans la durée et ne changent qu'en cas de déconnexion de la Livebox supérieure à 7 jours. Toutefois, pour des raisons techniques, Orange peut procéder au renouvellement de votre adresse IPv4 si cela est nécessaire. Dans ce cas, ce renouvellement est activé lors de la prochaine connexion de la Livebox au réseau. L’« @IP préférentielle » quant à elle ne concerne que les adresses de type IPv4. C’est pour cela que l’on peut considérer/assimiler une « @IP préférentielle » à une « @IP fixe » compte tenu de son caractère stable dans le temps même si au final ce n’est pas complétement vrai je vous l’accorde. À titre d’exemple qui vaut ce qu’il vaut, j’ai une LiveBox4 en fibre et mon @IP externe n’a pas changé depuis bientôt 6 mois. Pourvu que cela dure … 1 Ajout des enregistrements DNS internes sur le NAS Peu importe que votre serveur DNS soit installé sur votre Routeur Synology ou sur votre NAS Synology, c’est la même application « DNS Server » que l’on va utiliser. Il est bien entendu que votre serveur DNS est déjà configuré sur votre NAS ou votre Routeur pour gérer votre domaine comme indiqué en prérequis. Rendez-vous sur l’application « DNS Server » et ouvrez-la à partir du bureau de DSM ou de SRM selon. On va créer deux (2) nouveaux enregistrements dans la zone master correspondante de votre domaine : - Un de type « A » afin de rediriger le client mail vers votre NAS. - Un de type « MX » pour que votre NAS puisse communiquer avec le serveur MAIL. Nota : Pour l’exemple et dans toute la suite du présent tutoriel : - l’@IP du NAS sera notée « 1.2.3.4 ». Bien évidemment il vous faudra remplacer cette valeur d’@IP par l’@IP locale « réelle » de votre NAS. - l’@IP externe de votre Box/Routeur sera notée « 10.20.30.40 » et de la même façon il vous faudra remplacer cette valeur d’@IP par l’@IP externe « réelle » de votre Box/Routeur. Pour cela : Dans le menu « Zones » sélectionnez la zone correspondante à votre domaine. 2xCliquez sur cette zone master OU dans le popup « Modifier » sélectionnez l’item « Enregistrement de ressources » Une fenêtre « Modifier un enregistrement de ressource » s’ouvre. Dans le popup « Créer » sélectionnez l’item « A Type » Saisissez ensuite tel que ci-après : Validez en cliquant sur « OK » Dans le popup « Créer » sélectionnez l’item « MX Type » Saisissez ensuite tel que ci-après : Validez en cliquant sur « OK » Dans la fenêtre « Modifier un enregistrement de ressource » vous devriez obtenir quelque chose comme ci-après : votredomaine.tld MX 3600 10 mail.votredomaine.tld mail.votredomaine.tld A 3600 1.2.3.4 Cliquez sur « Terminer » pour valider, vous pouvez ensuite quitter l’application « DNS Server » on en a fini avec elle. 2 Installation du package MailPlus Server et du client MailPlus 2.1 Installation de « MailPlus Server » Via le centre de paquets sur votre NAS Synology, on va maintenant installer le package « MPS ». Ne soyez pas surpris, en lançant l’installation de ce package, celle-ci nécessite l’installation concomitante de dépendances nécessaires au fonctionnement de « MPS » par le biais de deux autres packages qui sont respectivement : « Perl » et « Python Module ». Un message qu’il vous faudra valider vous en informe : ⚠ Il est possible à la fin de l’installation des trois paquets (durée 2 à 3 minutes), que vous receviez un message d’erreur signalant que l’installation a échoué et vous demandant de vous reconnecter à DSM. Ignorez ce message car en fait tout s’est bien passé. Il s’agit d’un bug lié au lancement automatique de « MPS » et de toute façon quittez DSM et reconnectez-vous. Donc après la phase d’installation vous devriez avoir ceci dans le centre de paquets : 2.2 Installation du client « MailPlus » Via le centre de paquets sur votre NAS Synology, on va maintenant installer le package « MailPlus ». Ne soyez pas surpris, en lançant l’installation de ce package, celle-ci nécessite l’installation concomitante de dépendances nécessaires au fonctionnement du client « MailPlus » par le biais de trois autres packages qui sont respectivement : « Node.js v8 », « Node.js v12 » et « Service d’application Synology ». Un message qu’il vous faudra valider vous en informe : 3 Pré configuration de MailPlus Server Donc suite à cette installation, on va maintenant effectuer un minimum de configuration/paramètrage de « MPS » afin de disposer des éléments nécessaires pour configurer plus loin aux § 4.2.3, § 4.2.4 et § 4.2.5 ci-dessous, la « zone DNS » de votre domaine chez OVH. Rassurez-vous on reviendra après cela pour finaliser la configuration et sécuriser le présent serveur de messagerie. Rendez-vous sur l’application « MPS » et ouvrez-la à partir du bureau de DSM (ou du centre de paquets). L’assistant de configuration de « MPS » propose de créer un nouveau système de messagerie. Validez en cliquant sur « Suivant ». Il vous faut alors saisir : Nom de domaine : « votredomaine.tld » Nom d’hôte (FQDN) : « votredomaine.tld » (FQDN : « Fully Qualified Domain Name » ou nom de domaine pleinement qualifié, est un nom de domaine qui donne la position exacte de son nœud dans l'arborescence DNS en indiquant tous les domaines de niveaux supérieurs). Validez en cliquant sur « Suivant ». L’assistant présente alors un résumé de la mise en place de votre domaine : Validez en cliquant sur « Appliquer ». L’assistant applique les différents paramètres : Validez en cliquant sur « Terminer ». Maintenant, on va générer une clé publique liée à votre domaine personnalisé qui va être utilisée plus loin (voir § 4.2.4 ci-dessous) lors de la configuration de la « zone DNS » de votre domaine chez OVH. Mais avant de générer cette clé, il est nécessaire de fixer la longueur de cette clé (à l’instar d’une clé de chiffrement de type RSA). Pour cela : Dans la section « SECURITE » sélectionnez l’onglet « Authentification ». Dans la fenêtre qui s’affiche alors : Nota : Bien que les définitions succinctes des trois notions citées ci-après soient données dans cette fenêtre, ces notions seront présentées plus en détail plus loin au §4.2 ci-dessous lors de la configuration de la « zone DNS » de votre domaine chez OVH. Cochez respectivement les cases qui vont permettre l’activation des processus de vérification « SPF » et « DKIM » et l’activation du processus « DMARC ». Sous SPF, laissez décochée la case « Rejeter les pannes souples SPF ». Dans la partie « DKIM », sélectionnez dans le popup la valeur « 2048 » pour fixer la longueur de votre clé publique. Validez en cliquant sur « Appliquer ». Dans la section « DOMAINE » sélectionnez la ligne correspondante de votre domaine : Cliquez sur le bouton « Modifier » OU 2xCliquez sur cette ligne. Le détail de votre domaine s’affiche : Profitez-en pour renseigner au passage la description de votre domaine, par exemple : « Messagerie associée à votredomaine.tld ». Au moins ce sera toujours cela de fait … 😀 Cliquez ensuite sur le bouton « Avancé ». Dans la fenêtre qui s’affiche alors : Cochez la case « DKIM » Saisissez pour « Préfixe du sélecteur DKIM » un terme quelconque composé de caractères et éventuellement de chiffres. Il est d’usage d’en limiter le nombre de caractères (entre 5 et 8 c’est bien). Mais dans tous les cas veillez à NE PAS utiliser de majuscules, ni de caractères « spéciaux » ou « exotiques » ; ceci afin de ne pas perturber les serveurs qui analyseront ce préfixe. Nota : Pour votre présente information mais on reverra cela plus loin dans la suite de ce tutoriel : Le sélecteur DKIM est spécifié dans l'en-tête de l’eMAIL contenant la signature DKIM. Il indique où la partie de la clé publique de la paire de clés DKIM se trouve dans le DNS. Le serveur de réception utilise quant à lui le sélecteur DKIM pour localiser et récupérer la clé publique afin de vérifier que le message électronique est authentique et n’a pas été altéré. Cliquez ensuite sur le bouton « Générer la clé publique ». Le message suivant s’affichera alors : Comme on a déjà précédemment fixé cette longueur de clé « DKIM », il est inutile de le refaire donc ignorez ce message et validez en cliquant sur « Oui ». Copiez et sauvegardez précieusement cette clé dans un fichier « .txt » sur votre PC/Mac. On va s’en resservir plus loin dans le présent tutoriel. À discuter mais je ne recommande pas d’activer la fonction « Catch-all ». En effet, avec cette fonction il vous est possible de recevoir des eMAILs ayant pour origine un utilisateur inconnu et surtout qui n’existe pas. Donc avec cette option activée c'est quelque part la porte ouverte aux usurpateurs. Il suffit ensuite d'une seconde d'inattention et un clic malheureux dans un eMail de ce genre pour se retrouver dans la panade. Voilà ce n’est que mon interprétation de cette fonction, elle vaut ce qu’elle vaut. Maintenant c’est vous qui voyez … Validez en cliquant sur « OK ». 4 Configuration de la zone DNS chez OVH Maintenant que l’on a tous les éléments nécessaires on peut procéder à la configuration de la zone DNS associée à votre domaine chez OVH. Pour cela : Connectez-vous à OVH avec votre identifiant principal et votre mot de passe. Rendez-vous sur le tableau de bord de votre domaine : menu « Web » / section « Domaines » / « votredomaine.tld ». 4.1 Optionnel : création d'une @MAIL de secours chez OVH Mais avant de configurer la zone DNS, il convient de régler un point qui reste toutefois tout à fait optionnel pour vous. Libre à vous de le suivre ou pas. En effet, si vous avez souscrit une offre « gold » (appelée aussi « Start10M ») lors de l'initialisation de votre abonnement pour un nom de domaine chez OVH, sachez qu’il vous est gracieusement offert avec cet abonnement la possibilité de gérer une @MAIL avec 5GO de stockage sur leurs serveurs ainsi qu’un hébergement web de 10 Mo. Aussi, à moins que ce ne soit déjà fait et auquel cas, passez directement au §4.2 ci-dessous, je vous invite à créer cette @MAIL et cet hébergement Web même si en fin de compte vous n’utiliserez pas ce dernier (quoique dans le futur, on ne sait jamais, cela pourrait être une bonne base pour bâtir votre propre site Web. Comme toujours à vous de voir …). Dans tous les cas, ce qui vous intéresse donc ici c’est l’@MAIL offerte car d’une part elle est gratuite donc pourquoi s’en priver ? En plus, elle peut toujours servir à autre chose. Mais d’autre part, c’est surtout que cette création d’@MAIL va pouvoir vous servir en quelque sorte d’@MAIL de secours. Nota : Si vous estimez avoir besoin de plus d’@MAIL, il vous faudra modifier votre abonnement OVH pour acheter des @MAIL supplémentaires. Pour cela : rendez-vous sur le tableau de bord de votre domaine : menu « Web » / section « Emails » / « votredomaine.tld » / Abonnement / Offre MXPLAN 1 hosting et cliquez sur le bouton cerclé « … » et choisissez l’offre qui vous convient En effet, toute l’astuce ici, est de définir cette @MAIL de façon identique à celle que l’on va configurer pour votre utilisateur « principal » dans votre serveur de messagerie « MPS» sur votre NAS. Ainsi, pour le cas où votre NAS ne serait plus joignable de l’extérieur ou qu’il ne réponde plus aux sollicitations externes (pour cause de panne, d’arrêt pour maintenance ou toute autre raison) vous pourrez continuer à pouvoir émettre et surtout recevoir des eMAILs sur cette @MAIL. Intéressant, non ? Seule contrainte, s’il en est, c’est qu’il vous faudra soit vous connecter directement à votre compte OVH pour gérer ces eMAILS, soit avoir installé et configuré un client MAIL comme décrit dans la phase n°3 du guide cité au point 2 ci-après. Donc, après vous être connecté sur votre compte OVH, rendez-vous sur le tableau de bord de votre compte client OVH : Activez votre offre d’hébergement gratuit « Start10M » en suivant les étapes de ce guide. A la fin de du guide vous trouverez un lien permettant de créer votre @MAIL gratuite. Cliquez sur ce lien (qui est rappelé ici) et suivez les étapes de ce second guide. Bien évidemment et c’est ce qui est important, vous créerez votre adresse eMAIL avec le nom de votre utilisateur principal que vous aurez choisi parmi les utilisateurs déjà déclarés ou que vous créerez pour l’occasion sur votre NAS. Au final, votre @MAIL sera donc du type : « utilisateurprincipal@votredomaine.tld ». 4.2 Configuration de la zone DNS chez OVH Si vous avez suivi l’étape précédente du §4.1 ci-dessus alors repositionnez-vous sur votre domaine menu « Web » / section « Domaines » / « votredomaine.tld » sinon ce n’est pas la peine vous y êtes déjà. 4.2.1 Enregistrements « A » · Vérifiez que vous n’avez pas d’enregistrements de type « A » associés à « mail.votredomaine.tld ». Si c’est le cas : supprimez-le ou les. 4.2.2 Enregistrements « MX » Deux cas de figure se présentent ici selon que vous ayez créé ou non une @MAIL de secours en suivant le processus décrit au §4.1 ci-dessus. Si vous n’en avez pas créée alors passez directement au point 2 ci-après. Si vous avez créé une @MAIL de secours « utilisateurprincipal@votredomaine.tld », alors normalement vous devriez trouver dans votre zone DNS, trois (3) enregistrements de type « MX » (ils ont été automatiquement ajoutés par OVH avec la création de l’@MAIL de secours) tels que : votredomaine.tld. 0 MX 1 mx1.mail.ovh.net. votredomaine.tld. 0 MX 5 mx2.mail.ovh.net. votredomaine.tld. 0 MX 100 mx3.mail.ovh.net. Ici les priorités (4ème champ de l’enregistrement) de ces serveurs d’OVH, sont définies de telle façon que ces derniers interviendront en premier pour gérer les flux d’eMAILs entrants et sortants de votre adresse @eMAIL « utilisateurprincipal@votredomaine.tld ». Nota : les priorités vont de la plus forte (1) à la plus faible (100 et plus). Afin que votre @MAIL devienne une @MAIL de secours, on va donc modifier ces priorités en les diminuant pour chacun des deux premiers enregistrements « MX » (mx1 et mx2) .Pour le serveur mx3, c’est inutile vue sa priorité déjà très faible. Pour réaliser cela : o À droite de chaque enregistrement « MX », cliquez sur le bouton cerclé « … » et sélectionnez dans le popup l’item « Modifier l’entrée ». o Dans le champ « Priorité », saisissez respectivement les valeurs suivantes : 5 puis 10. o Cliquez sur « Suivant » puis sur « Valider ». Au final, vous devriez alors avoir dans votre zone DNS trois (3) enregistrements « MX » tels que : votredomaine.tld. 0 MX 5 mx1.mail.ovh.net. votredomaine.tld. 0 MX 10 mx2.mail.ovh.net. votredomaine.tld. 0 MX 100 mx3.mail.ovh.net. En premier lieu, vérifiez la présence dans votre zone DNS, d’un enregistrement « MX » tel que : votredomaine.tld. 0 MX 1 redirect.ovh.net. S’il existe effectivement, alors supprimez le purement et simplement. Cet enregistrement, créé par défaut par OVH lors de la mise en place de votre domaine, est inutile dans notre actuelle démarche de configuration de votre propre serveur de messagerie. On va maintenant créer un nouvel enregistrement « MX » qui va rediriger tout le flux d’eMAILs entrants et sortants de votre adresse @eMAIL « utilisateurprincipal@votredomaine.tld » vers votre serveur de messagerie « MPS » sur votre NAS tout en lui donnant la priorité maximum, c’est-à-dire : 1. De cette façon, si vous avez créé une @MAIL de secours « utilisateurprincipal@votredomaine.tld » comme décrit précédemment, alors les serveurs d’OVH tels que configurés au point 1, reprendront automatiquement la main dans le cas où votre NAS et donc implicitement votre serveur de messagerie « MPS », ne répondrait plus aux sollicitations externes. Le flux entrant de vos eMAILs serait alors redirigé automatiquement vers la boîte MAIL de secours chez OVH. Ceci pour tous les eMAILs qui sont adressés à votre @MAIL « utilisateurprincipal@votredomaine.tld » et uniquement pour ceux-là. Pour les autres @MAIL de vos autres utilisateurs définis sur le NAS (donc pour le cas où vous n’auriez pas ajouté d’autres @MAIL sur votre compte OVH), sachez que normalement lorsqu'un serveur MAIL n'arrive pas à joindre un autre serveur pour lui envoyer des eMAILs, le protocole d'échange prévoit que le serveur émetteur réessaye la connexion pendant 14 jours avant d'abandonner l’eMAIL. Donc, même si vous n’avez pas de solution de secours comme décrite ci-avant, le risque de perdre des eMAILs demeure assez limité. De plus, on peut penser que vous n’allez pas rester 14 jours sans réagir, Non ? Donc : o Dans la zone DNS de votre domaine, cliquez sur « Ajouter une nouvelle entrée ». o Cliquez dans la zone « Champs mails » sur « MX ». o Saisissez les informations suivantes : ▪ Sous-domaine : laissez vide ▪ TTL : 3600 ▪ Priorité : 1 ▪ Cible : « votredomaine.tld. » (N’oubliez pas le « . » à la fin, c’est important !) o Cliquez sur « Suivant » puis sur « Valider ». Au final, vous devriez alors avoir dans votre zone DNS un nouvel enregistrement « MX » tel que : votredomaine.tld. 3600 MX 1 votredomaine.tld. 4.2.3 Ajout d’un enregistrement TXT de type « SPF » Avant toutes choses, il convient de vous expliquer à minima ici de façon rapide et simple (enfin je l’espère !) ce qu’est un enregistrement « SPF » et à quoi il sert. Il est très important de bien comprendre tous les tenants et aboutissants de cette notion pour pouvoir ensuite maîtriser votre serveur de messagerie « MPS ». Rassurez-vous, il n’y a rien de bien compliqué en soi mais prenez bien le temps de bien lire ce qui suit pour en assimiler le concept. Donc : Le protocole Simple Mail Transfer Protocol (SMTP) utilisé pour le transfert du courrier électronique sur Internet ne prévoit pas de mécanisme de vérification de l'expéditeur, c'est-à-dire qu'il est facile d'envoyer un eMAIL avec une adresse d'expéditeur factice, voir usurpée. Pour réduire les possibilités d'usurpation, on va publier, dans la zone DNS de votre domaine, un enregistrement spécifique indiquant la liste de toutes les @IP qui sont autorisées à envoyer des eMAILs au nom de votre domaine (implicitement les autres @IP sont interdites). Cet enregistrement spécifique est nommé : « SPF » (Sender Policy Framework) ou enregistrement « SPF TXT ». « SPF » est un protocole d'authentification des eMAILs. Fonctionnement : Lorsqu'un expéditeur tente de transférer un eMAIL à un serveur de réception pour qu'il lui soit livré, le serveur de MAILs vérifie si l'expéditeur figure sur la liste des expéditeurs autorisés du domaine. Si c'est le cas, un lien a été établi entre l’eMAIL et le domaine de messagerie. Si ce n'est pas le cas, le serveur continue à traiter le courrier électronique comme d'habitude sans ce lien et là, l’eMAIL a toutes les chances d’être considéré comme du SPAM. La plupart du temps il est purement et simplement rejeté. Avec un enregistrement « SPF » en place, vous allez protéger ainsi votre domaine de messagerie contre les attaques de spoofing et de phishing en faisant savoir au monde entier quels sont les serveurs autorisés à envoyer des eMAILs authentifiés en votre nom. Il vous faut aussi savoir que les « RFC »(Request for Comments) sur le domaine « DNS » ont initialement introduit le type d’enregistrement « SPF » pour prendre en charge ce scénario. Pour prendre en charge des serveurs de noms plus anciens, elles autorisaient également l’utilisation du type d’enregistrement « TXT » pour spécifier les enregistrements « SPF ». Nota : Cet enregistrement « TXT » est aussi appelé « SPF TXT » car on utilise aussi les enregistrements de type « TXT » pour d’autres notions. Cette ambiguïté a entraîné une certaine confusion qui a été résolue par la norme RFC 7208. Celle-ci stipule notamment que les enregistrements « SPF » doivent être créés à l’aide du type d’enregistrement « TXT » (« SPF TXT »). Elle stipule également que le type d’enregistrement « SPF » est déprécié. L’ajout dans la zone DNS de votre domaine d’un enregistrement « SPF TXT » est l'un des mécanismes le plus important lorsqu'on met en place un serveur MAIL. Comme la configuration sur un NAS Synology est souvent faite avec un seul domaine et un seul serveur principal, l'adresse à définir correspond à l'enregistrement « MX » du domaine. L'intérêt de choisir cet enregistrement, est que l’enregistrement « SPF TXT » suivra implicitement les modifications de cet enregistrement « MX » qui pourraient intervenir par ailleurs ensuite. Donc dans le cas du présent tutoriel, l’enregistrement « SPF TXT » sera de la forme et syntaxe suivante : votredomaine.tld. 0 TXT "v=spf1 mx a:smtp.smtpout.orange.fr include:mx.ovh.com -all" Où : « v=spf1 » : indique la version du protocole SPF. « mx » : indique au mécanisme de contrôle d’examiner les @IP définies dans les enregistrements « MX ». « a :smtp.smtpout.orange.fr » : indique la liste des @IP autorisées à émettre des eMAILs pour le domaine. Ici cela correspond à votre serveur relais SMTP chez Orange. « include :mx.ovh.com » : indique la liste complémentaire d’@IP également autorisées à émettre des eMAILs pour le domaine. Ici cela correspond aux serveurs d’OVH que l’on utilise comme serveurs de secours. « -all » : indique la politique et la rigueur à appliquer lorsqu'un serveur récepteur détecte un serveur qui n'est pas répertorié (autorisé) dans votre enregistrement « SPF TXT ». Ici, la balise « all » comporte en préfixe l’option « - » qui signifie « échec » : les eMAILs non autorisés seront donc rejetés. Si vous êtes en phase de configuration ou de test de votre serveur, vous pouvez utiliser à la place l'opérateur "~" (tilde) qui signifie (soft fail) et qui vous évitera des blocages intempestifs. Dans ce cas, les eMAILs non autorisés seront acceptés mais marqués. Pour les plus curieux d’entre vous qui souhaiteraient aller plus loin, sachez que si vous utilisez plusieurs domaines et que votre enregistrement « SPF TXT » est identique pour tous ces domaines, la directive « redirect » permet de faire pointer l'enregistrement « SPF TXT » d'un domaine vers celui d'un autre domaine. Ainsi, en cas de modification de l’enregistrement « SPF TXT », la modification sera appliquée à tous les autres domaines. La syntaxe à employer est celle-ci : v=spf1 redirect=votredomaine.tld D'où la bonne pratique qui est de le faire même si vous ne possédez qu'un seul domaine afin d’anticiper l'acquisition d'autres domaines ultérieurement, la syntaxe de votre enregistrement « SPF TXT » pour votre domaine devient par exemple : votredomaine.tld 0 TXT "v=spf1 mx -all" autredomaineA.tld 0 TXT "v=spf1 redirect=votredomaine.tld" autredomaineB.tld 0 TXT "v=spf1 redirect=votredomaine.tld" autredomaineC.tld 0 TXT "v=spf1 redirect=votredomaine.tld" autredomaineD.tld 0 TXT "v=spf1 redirect=votredomaine.tld" . . . Pour terminer cet aparté, sachez enfin que vous pouvez résoudre récursivement les enregistrements « SPF TXT » pour vérifier les hôtes autorisés. En voici un exemple avec « mx.ovh.com » : Dans une fenêtre de commande Windows ou d’un terminal Mac, tapez ceci : > nslookup -type=TXT mx.ovh.com mx.ovh.com text = "v=spf1 ptr:mail-out.ovh.net ptr:mail.ovh.net ip4:8.33.137.105/32 ip4:192.99.77.81/32 ?all" > nslookup mail-out.ovh.net Name: mail-out.ovh.net Address: 87.98.222.13 > nslookup mail.ovh.net Name: mail.ovh.net Address: 193.70.18.148 Le problème de la constitution et de la syntaxe de votre enregistrement « SPF TXT » étant réglé, on va procéder à un contrôle des paramètres de l’enregistrement « SPF TXT » afin d’être sûr à 100% de sa syntaxe et donc que celle-ci est correcte. Pour ce faire, il y a deux façons : La première et la plus sage à mon sens, consiste à effectuer le contrôle avant de créer effectivement cet enregistrement « SPF TXT » dans la zone DNS de votre domaine. Vous verrez et comprendrez par la suite, que l’on perd moins de temps avec cette méthode. La seconde, consiste à créer directement l’enregistrement dans la zone DNS de votre domaine, ce qui va déclencher sa diffusion sur tous les serveurs DNS de la toile (sachant que la propagation complète de l’enregistrement est loin d’être instantanée) et ensuite de procéder au contrôle de l’enregistrement « SPF TXT » (vous verrez plus loin aussi que cette dernière méthode apporte une petite nuance, par rapport à la première méthode, qui vous sera explicitée). Vous avez donc le choix de la méthode à appliquer. C’est vous qui voyez … Néanmoins pour ce tutoriel, on va appliquer la première méthode. Ceci dit, vous trouverez plus loin, après la description du déploiement de l’enregistrement « SPF TXT », la description de la seconde méthode de contrôle suscitée. Soyez patient, chaque chose en son temps …. Donc pour contrôler la syntaxe de votre enregistrement « SPF TXT », on va utiliser les services d’un site internet dédié : Dans un navigateur Web, rendez-vous sur le site « kitterman.com ». (Il en existe certes d’autres mais celui-là est réputé être très efficace). Dans la zone « Test an SPF record », saisissez les données suivantes dans les champs correspondants : IP address : 10.20.30.40 (votre @IP externe, i.e. celle de votre Box/Routeur). SPF Record v=spf1...://--> : v=spf1 mx a:smtp.smtpout.orange.fr include:mx.ovh.com -all (la chaîne de paramètres SPF et sans les guillemets !) Mail From address: : utilisateurprincipal@votredomaine.tld HELO/EHLO Address://--> : votredomaine.tld Cliquez sur le bouton « Test SPF record ». Le résultat du contrôle s’affiche après quelques secondes : Input accepted, querying now... Mail sent from this IP address: 10.20.30.40 Mail from (Sender): utilisateurprincipal@votredomaine.tld Mail checked using this SPF policy: v=spf1 mx a:smtp.smtpout.orange.fr include:mx.ovh.com -all Results - PASS sender SPF authorized Mail sent from this IP address: 10.20.30.40 Mail Server HELO/EHLO identity: votredomaine.tld HELO/EHLO Results - PASS sender SPF authorized « PASS sender SPF authorized » : Parfait, la syntaxe de votre enregistrement « SPF TXT » est validée et sans erreur, on va donc pouvoir créer effectivement ce fameux enregistrement « SPF TXT » dans la zone DNS de votre domaine. Dans la zone DNS de votre domaine, cliquez sur « Ajouter une nouvelle entrée ». Cliquez dans la zone « Champs étendus » sur « TXT ». Saisissez les informations suivantes : Sous-domaine : laisser vide TTL : laisser « Valeur par défaut » Valeur : « v=spf1 mx a:smtp.smtpout.orange.fr include:mx.ovh.com -all » (sans les guillemets !) Cliquez sur « Suivant » puis sur « Valider ». Au final, vous devriez alors avoir dans votre zone DNS un nouvel enregistrement « TXT » tel que : votredomaine.tld. 0 TXT "v=spf1 mx a:smtp.smtpout.orange.fr include:mx.ovh.com -all" Nota : Dans la dernière fenêtre, juste avant de valider, vous avez certainement remarqué et lu l’avertissement suivant :« La modification sera immédiate dans la zone DNS, mais veuillez prendre en compte le temps de propagation (maximum 24h). ». Cet avertissement est loin d’être anodin. Il va falloir prendre votre mal en patience si je puis dire …Le temps de propagation vers tous les serveurs DNS de la toile est en effet assez long. Parfois, il semble rapide mais ce n’est que parfois. Pour suivre en quelque sorte l’avancement de ce déploiement, vous pouvez utiliser le moyen suivant : Dans un navigateur Web, rendez-vous sur le site « whatsmydns.net »: Saisissez l’intitulé de votre domaine : « votredomaine.tld ». Dans le popup à droite du champ domaine, sélectionnez l’item « TXT ». Cliquez sur le bouton « Search ». (Recliquez périodiquement jusqu’au déploiement complet). Lorsque la propagation complète sera achevée, vous aurez un affichage semblable à celui-ci : Une fois la propagation achevée, c’est là que vous pouvez appliquer la seconde méthode de contrôle de l’enregistrement « SPF TXT ». Différents sites sur la toile proposent des outils en ligne pour ce faire. Donc, dans un navigateur Web, rendez-vous sur le site « dmarcanalyzer.com » (Il en existe certes d’autres mais celui-là est l’un des plus efficace et complet) Saisissez l’intitulé de votre domaine et après avoir coché la case « Je ne suis pas un robot » et satisfait à l’éventuel Captcha, cliquez sur le bouton « Valider DNS ». Après quelques secondes d’analyse le résultat du contrôle de votre domaine s’affiche. Après le rappel de votre chaîne de paramètres, le détail des @IP autorisées à émettre des eMAILs pour votre domaine vous est présenté. En l’occurrence pour le relais SMTP d’Orange que l’on a indiqué, on a la liste d’@IP suivante : A la suite, on trouve la liste des serveurs MAIL autorisés avec leur @IP : Enfin, on trouve l’enregistrement « SPF TXT » propre aux serveurs d’OVH que l’on a inclus afin de servir de serveurs de secours. Figurent également les @IP de ces serveurs qui sont autorisées à émettre des eMaILs avec/sur votre domaine. A ce stade, vous avez bien évidemment remarqué l’avertissement formulé à propos des serveurs d’OVH et qui soit dit en passant, n’avait pas été relevé lors du contrôle de l’enregistrement « SPF TXT » avec la première méthode précédente (c’est la fameuse nuance suscitée). En fait, cet enregistrement « SPF TXT » pour les serveurs d’OVH n’est pas obsolète. Il est parfaitement fonctionnel et valide, mais l’usage des balises d’instructions « PTR » qu’il fait, est simplement déconseillé au sens de la norme RFC 7208 citée précédemment. Techniquement, le mécanisme est intéressant en soi car il permet une double validation DNS du serveur d'expédition. Mais la résolution inverse pose des problèmes de performances et donc de fiabilité. En clair selon les « initiés » de ce forum, si cela posait vraiment des problèmes de fiabilité, on peut penser qu'OVH aurait déjà rectifié la chose. Et en l’occurrence ce qui n’est pas le cas. Maintenant si vous êtes vraiment gênés par cet avertissement, il existe une parade. Vous pouvez toujours créer un nouvel enregistrement « SPF TXT » dans votre zone DNS en ayant pris soin de remplacer les instructions « ptr » par un « a » et inclure celui-ci dans votre enregistrement « SPF TXT » principal. Ce qui donnerait quelque chose comme cela : ovh.domain.tld 0 TXT "v=spf1 a:mail-out.ovh.net a:mail.ovh.net ip4:8.33.137.105/32 ip4:192.99.77.81/32 ?all" votredomain.tld 0 TXT "v=spf1 mx a:smtp.smtpout.orange.fr include:ovh.domain.tld -all" Néanmoins sachez que le gros inconvénient de cette méthode est qu'elle est statique et donc non viable dans le temps. En effet, l'enregistrement « ovh.domain.tld » sera obsolète dès qu'OVH modifiera son enregistrement « SPF TXT », et cela vous ne pourrez le maîtriser. Au final les « initiés » de ce forum, préconisent de laisser tel quel l’enregistrement « SPF TXT » d'OVH même s'il n'est pas optimal. Je vous invite donc à suivre cette recommandation. De toute façon, on le reverra plus loin (voir § 8.1 ci-dessous) lors des tests de diffusion d’eMAILs avec votre serveur de messagerie « MPS », que ce n’est pas un point bloquant. Toutefois et comme toujours, c’est vous qui voyez … 4.2.4 Ajout d’un enregistrement TXT de type « DKIM » Comme pour l’enregistrement « SPF TXT », il convient aussi de vous expliquer à minima ici de façon rapide et simple (enfin je l’espère !) ce qu’est un enregistrement « DKIM » et à quoi il sert. La bonne compréhension de tous les tenants et aboutissants de cette notion est aussi très importante pour pouvoir ensuite maîtriser votre serveur de messagerie « MPS ». Donc : Domain Keys Identified Mail (DKIM) est l'une des méthodes d'authentification utilisée par les opérateurs de messagerie, permettant de déterminer l'identité d'un expéditeur et donc de l’authentifier. Comme « SPF », « DKIM » est une norme ouverte pour l'authentification des eMAILs utilisée pour ce qu’on appellera plus loin : « l‘alignement DMARC ». L’avantage de « DKIM » est qu’il peut survivre à la transmission, ce qui le rend supérieur à « SPF » et c’est une base pour sécuriser votre eMAIL. Fonctionnement : Les serveurs de MAILs sont configurés pour attacher en en-tête de chaque eMAIL qu’ils envoient, une signature dite « DKIM ». Cette signature « DKIM » contient des informations sur l'expéditeur et le message, nécessaires à la vérification qui sera effectuée en cours de route par les serveurs MAIL qui acheminent les MAILs vers leur destination finale. Cet en-tête de signature « DKIM » qui est ajouté à l'eMAIL, est sécurisé avec une paire de clés publique / privée dites clés « DKIM » et un certificat. La signature « DKIM » agit alors comme un filigrane pour les eMAILs afin que les destinataires de ces eMAILs puissent vérifier que chaque eMAIL provient bien du domaine indiqué et qu'il n'a pas été altéré voire falsifié. Ainsi selon leur propre méthode, les serveurs de MAILs établissent la réputation et la fiabilité d'un expéditeur, augmentant ou diminuant selon, de fait la délivrabilité des eMAILs de ce dernier. Cette signature « DKIM » contient également toutes les informations nécessaires à un serveur de messagerie pour qu’il puisse vérifier que la signature « DKIM » est bien réelle. Le serveur de messagerie d'origine possède ce qu'on appelle la «clé privée», qui peut être vérifiée par le serveur de messagerie ou le FAI récepteur avec l'autre moitié de la paire de clés, qui est appelée la «clé publique». La clé publique figure dans l’enregistrement « DKIM » inclus dans la zone DNS de votre domaine sous forme d’un enregistrement de type « TXT ». Afin de connecter et de déchiffrer ces signatures chiffrées, un « sélecteur DKIM » est utilisé. Le « sélecteur DKIM », tout comme la signature « DKIM », est aussi spécifié dans l'en-tête de l’eMAIL. Il indique où la partie de la clé « publique » de la paire de clés « DKIM » se trouve dans le DNS du domaine concerné. Le serveur MAIL de réception utilise alors le « sélecteur DKIM » pour localiser et récupérer cette clé « publique » afin de vérifier que l’eMAIL est authentique et n’a pas été altéré. Pour mémoire, lors de la pré configuration de votre « MPS » au § 3 ci-dessus, vous avez défini ce « sélecteur DKIM » sous forme d’un « préfixe » afin de pouvoir générer la partie « publique » de votre clé « DKIM ». Sachez qu’en même temps, la partie « privée » de votre clé « DKIM » a aussi été générée et ce de façon complétement transparente pour vous. Elle est stockée dans les arcanes de votre NAS. Je ne saurais vous dire où et peu importe, on n’en a pas besoin dans le cadre de ce tutoriel. Les plus curieux d’entre vous pourront toujours la rechercher mais je doute que cela leur apporte grand-chose … 🤔 Comme vous pouvez le constater, les éléments du puzzle commencent à s’imbriquer progressivement … 😀 Voilà pour les explications contextuelles préalables. Donc dans le cas du présent tutoriel, l’enregistrement « DKIM » sera de la forme et syntaxe suivante : prefixe._domainkey.votredomaine.tld. 0 TXT "v=DKIM1; q=dns; p=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" Où : « v=DKIM1 » : indique la version du protocole DKIM. « q=dns » : indique le type de requête. Ici « dns ». « p= xxxxxx…………xxxxxx » : votre clé « publique » encodée base64. Le problème de la constitution et de la syntaxe de votre enregistrement « DKIM » étant réglé, on va procéder à un contrôle des paramètres de l’enregistrement « DKIM » afin d’être sûr à 100% de sa syntaxe et donc que celle-ci est correcte. Pour ce faire, on va utiliser les services d’un site internet dédié : Dans un navigateur Web, rendez-vous sur le site « dmarcanalyzer.com ». (Le même que précédemment vous l’aurez remarqué …). Saisissez l’intitulé de votre « prefixe » de sélecteur DKIM tel que vous l’avez défini au § 3 ci-dessus. Saisissez l’intitulé de votre domaine et après avoir coché la case « Je ne suis pas un robot » et satisfait à l’éventuel Captcha, cliquez sur le bouton « Valider DNS ». Après quelques secondes d’analyse le résultat du contrôle du dossier « DKIM » de votre domaine s’affiche. Après le rappel de votre chaîne de paramètres, le détail du dossier est présenté. Il vous donne : la longueur de la clé de chiffrement utilisée et une explication de chacune des balises qui ont été utilisées. « Ceci semble être un dossier DKIM valide » Parfait, la syntaxe de votre enregistrement « DKIM » est validée et sans erreur, on va donc pouvoir procéder à la création de ce fameux enregistrement « DKIM » dans la zone DNS de votre domaine chez OVH. Dans la zone DNS de votre domaine, cliquez sur « Ajouter une nouvelle entrée ». Cliquez dans la zone « Champs étendus » sur « TXT ». Saisissez les informations suivantes : Sous-domaine : prefixe._domainkey (bien évidemment et pour rester cohérent, reprenez pour prefixe la valeur que vous aviez choisie précédemment au § 3 ci-dessus, et n’oubliez pas le « . » derrière, c’est important !) TTL : laissez « Valeur par défaut » Valeur : « v=DKIM1; q=dns; p=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx » (sans les guillemets !) en remplaçant xxxxxxxxxxxxxxxxxxxxxxxxxx par la valeur de votre clé « publique » précédemment sauvegardée. ⚠ Pour le coup, soyez très vigilant avec votre Copier/Coller !!! Cliquez sur « Suivant » puis sur « Valider ». Au final, vous devriez alors avoir dans votre zone DNS un nouvel enregistrement « TXT » tel que : prefixe._domainkey.votredomaine.tld. 0 TXT "v=DKIM1; q=dns; p=xxxxxxxx…………..xxxxxxxx" 4.2.5 Ajout d’un enregistrement TXT de type « DMARC » Vous l’aurez compris, comme pour les enregistrements « SPF TXT » et « DKIM », il convient aussi de vous expliquer à minima ici toujours de façon rapide et simple (enfin je l’espère !) ce qu’est un enregistrement « DMARC » et à quoi il sert. La bonne compréhension de tous les tenants et aboutissants de cette notion est elle aussi très importante pour pouvoir ensuite maîtriser votre serveur de messagerie « MPS ». Donc : Pour mémoire, l’eMAIL a été initialement créé sans une vraie protection, en se reposant sur le protocole SMTP pour sa diffusion. C’est pour cette raison que l’on a vu apparaître au fil des années, des protections destinées à améliorer la sécurité des échanges en SMTP. Les protocoles « SPF » et « DKIM » vus précédemment en font partie et sont efficaces chacun dans leur domaine. Je vous les rappelle succinctement : « SPF » (Sender Policy Framework) : permet de déclarer les@IP autorisées à envoyer des eMAILs au nom de votre domaine. Il peut, à lui seul, associer un eMAIL à un domaine. « DKIM » (Domain Keys Identified Mail) : permet grâce à une signature cryptographique de s’assurer que le message que vous envoyez/recevez ne va pas se faire altérer en cours de route. Par contre, à lui seul il n'est pas un moyen fiable d'authentifier l'identité de l'expéditeur de l'eMAIL et en plus il ne fait rien pour empêcher l'usurpation d'identité du domaine visible dans l'en-tête de cet eMAIL. En pratique, les protocoles « SPF » et « DKIM » viennent chacun vérifier dans l’entête de l’eMAIL, le « Mailfrom : », i.e. le domaine l’expéditeur extrait à partir de son @MAIL. Cependant, ils ne vont pas inspecter le « From : », qui correspond au vrai expéditeur de l’eMAIL. En fait, ces deux protocoles ne vérifient pas que ces informations concordent, ce qui rend au passage, un possible contournement par des malfaisants. Cela dit, les protocoles « SPF » et « DKIM » restent toutefois et sont deux protocoles de protections indispensables. Pour répondre à cette problématique de possible contournement, il a été mis en place le protocole « DMARC » (Domain-based Message Authentification Reporting and Conformance) qui est lui-même construit sur les protocoles « SPF » et « DKIM ». Sachant que les protocoles « SPF » et « DKIM » peuvent associer un eMAIL à un domaine, le protocole « DMARC » va lui, tenter de lier les résultats des protocoles « SPF » et « DKIM » au contenu de l’eMAIL lui-même et plus précisément au domaine figurant dans la voie de retour (« Return-Path: ») ou dans l'en-tête « From : » de cet eMAIL. C’est ce domaine trouvé dans l'en-tête « From : » qui va être l'entité commune à tous les traitements « DMARC ». Le schéma suivant (extrait de l’entête d’un eMAIL) vous sera peut-être plus parlant : Comme tout le monde peut acheter un domaine et mettre en place des enregistrements « SPF » et « DKIM » dans la zone DNS de son domaine (y compris les malfaiteurs), les résultats du traitement « SPF » et « DKIM » doivent donc être liés au domaine trouvé dans l'en-tête « From : » pour être pertinents pour le protocole « DMARC ». Ce concept de liaison s’appelle « l’alignement d’ identifiants ». Il vient ainsi agir sur les eMAILs là où les protocoles « SPF » et « DKIM » ont échoués. « L'alignement des identifiants » est donc la manière dont les technologies d'authentification existantes sont rendues pertinentes pour le contenu d'un eMAIL. L'alignement des identifiants constitue une grande partie du travail de déploiement de la norme « DMARC ». Ensemble, ces protocoles constituent ainsi la meilleure pratique pour éviter le spoofing d’eMAILs et rendre vos eMAILs plus fiables. Mais attention, le protocole « DMARC » ne fonctionne que si vous avez configuré un enregistrement « SPF » et « DKIM » dans la zone DNS de votre domaine. Fonctionnement : Durant le contrôle « DMARC », le contenu figurant dans le « Mailfrom : », et le « From : » figurants dans l’entête de l’eMAIL, est donc examiné. S’il est différent, alors le protocole « DMARC » peut traiter l’eMAIL de trois manières possibles (appelées aussi « politiques DMARC ») : DMARC policy none : On vient juste surveiller les résultats mais on ne prend aucune mesure concernant ces eMAILs. Vous les recevrez, mais un message sera envoyé à l’administrateur du domaine expéditeur pour le prévenir que l’alignement n’est pas respecté. DMARC policy quarantine : Tous les eMAILs qui échouent au respect des protections, sont mis en quarantaine, ils peuvent être traités ultérieurement. DMARC policy reject : Les eMAILs qui ne passent pas les vérifications de la norme, vont s’annuler directement pour qu’ils ne soient pas envoyés au destinataire. Encore un schéma qui résume bien le processus « DMARC » dans sa globalité : Ainsi, la norme « DMARC » permet de lutter plus efficacement contre le spam et le phishing. Si les renseignements de l’eMAIL respectent les contrôles « SPF » et « DKIM » et respectent l’alignement, alors l’eMAIL passera la protection DMARC. Cette norme est donc indispensable pour assurer une protection optimisée. Voilà pour les explications contextuelles préalables. Donc dans le cas du présent tutoriel, l’enregistrement « DMARC » sera de la forme et syntaxe suivante : _dmarc.votredomaine.tld. 0 TXT "v=DMARC1; p=quarantine; rua=mailto:utilisateurprincipal@votredomaine.tld; ruf=mailto: utilisateurprincipal@votredomaine.tld; fo=1; adkim=s; aspf=s; pct=100; ri=86400; sp=reject" Où : « v=DMARC1 » : indique la version du protocole DMARC. « p=quarantine » : indique la politique à appliquer aux eMAILs qui échouent à la vérification DMARC Ici on souhaite que les eMAIL en échec soient placés en quarantaine afin de pouvoir les examiner. Néanmoins, vous pouvez modifier ce paramètre pour « none » ou « reject » comme expliqué précédemment. C’est vous qui voyez … « rua=mailto :utilsateurprincipal@votredomaine.tld » : indique une liste d’URI (Uniform Ressource Identifier) pour que les FAI envoient des commentaires XML. Vous noterez que ce n’est normalement pas une liste d’@MAIL. DMARC requiert simplement une liste d’URI de la forme «mailto:test@exemple.com». Ici, néanmoins j’ai fait le choix de mettre l’URL de l’utilisateur principal du NAS. Mais cela peut se discuter … « ruf=mailto :utilsateurprincipal@votredomaine.tld » : indique une liste d’URI (Uniform Ressource Identifier) pour que les FAI envoient des rapports légaux. Vous noterez que ce n’est normalement pas une liste d’@MAIL. DMARC requiert simplement une liste d’URI de la forme «mailto:test@exemple.com». Ici, néanmoins j’ai fait aussi le choix de mettre l’URL de l’utilisateur principal du NAS. Mais cela peut se discuter … « fo=1 » : indique de générer des rapports si DKIM ou SPF ne produit pas de résultat de réussite DMARC. Vous pouvez aussi utiliser les valeurs suivantes : « 0 » pour générer des rapports si DKIM et SPF échouent, « d » pour générer des rapports si DKIM a échoué ou « s » si SPF a échoué. C’est vous qui voyez … « adkim=s » : indique le « Mode d’alignement » pour les signatures DKIM, cela peut être « r » (Relâché) ou « s » (Strict). En mode Relâché, les domaines de signature DKIM authentifiés (d=) qui partagent un Domaine Organisationnel avec un domaine « From » d’eMails passeront la vérification DMARC. En mode Strict, une correspondance exacte est requise. Ici le mode strict est retenu. « aspf=s » : indique le « Mode d’alignement » pour SPF, cela peut être « r » (Relâché) ou « s » (Strict). En mode Relâché, également les domaines SPF authentifiés qui partagent un Domaine Organisationnel avec un domaine «From» d’eMAILs passeront la vérification DMARC. En mode Strict, une correspondance exacte est requise. Ici le mode strict est retenu. « pct=100 » : indique aux FAI d’appliquer uniquement la politique DMARC à un pourcentage d’eMAILs défaillants. « pct=50 » indiquera aux récepteurs d’appliquer la politique « p= » seulement 50% du temps contre les emails qui échouent à la vérification DMARC. Notez que ceci ne fonctionnera pas pour la politique « none », mais uniquement pour les politiques « quarantine » ou « reject ». Ici 100% soit tous les eMAILs sont traités. Adaptez la valeur à vos besoins … « ri=86400 » : indique l’intervalle de génération de rapports pour la fréquence à laquelle vous souhaitez recevoir des rapports XML cumulés. Ceci est une préférence et les FAI pourraient (et probablement vont) envoyer le rapport à différents intervalles (normalement ce sera chaque jour). Ici 86400 secondes soit un jour. Adaptez à vos besoins … « sp=reject » : indique la politique qui doit être appliquée aux eMAILs provenant d’un sous-domaine de ce domaine qui échouent à la vérification DMARC. En utilisant cette étiquette, les propriétaires de domaines peuvent publier une politique « générique » pour tous les sous-domaines. Ici on rejette les eMAILS concernés. Le problème de la constitution et de la syntaxe de votre enregistrement « DMARC » étant réglé, on va procéder à un contrôle des paramètres de l’enregistrement « DMARC » afin d’être sûr à 100% de sa syntaxe et donc que celle-ci est correcte. Pour ce faire, on va encore utiliser les services d’un site internet dédié : Dans un navigateur Web, rendez-vous sur le site « dmarcanalyzer.com ». (Encore le même que précédemment, on ne change pas une équipe qui gagne … 🤣) Saisissez l’intitulé de votre domaine et après avoir coché la case « Je ne suis pas un robot » et satisfait à l’éventuel Captcha, cliquez sur le bouton « Valider DNS ». Après quelques secondes d’analyse le résultat du contrôle du dossier « DMARC » de votre domaine s’affiche. Après le rappel de votre chaîne de paramètres, le détail du dossier est présenté. Il vous donne une explication de chacune des balises qui ont été utilisées. Dans le cas présent, le résultat du contrôle vous indique avoir trouvé un problème avec le dossier DMARC : « Info : Nous avons trouvé une adresse personnalisée dans votre dossier DMARC. Veuillez-vous assurer de faire suivre les rapports entrants à votre adresse personnalisée pour voir les statistiques dans . ». Rassurez-vous, cette « anomalie » n’est pas bloquante et vous pouvez considérer la syntaxe de votre enregistrement « DMARC » comme correcte. Un autre contrôle effectué via un autre site dédié tel que « mxtoolbox.com » vous en apportera la preuve si besoin en est. Donc, la syntaxe de votre enregistrement « DMARC » est validée et sans erreur, on va donc pouvoir procéder à la création de ce fameux enregistrement « DMARC » dans la zone DNS de votre domaine chez OVH. Dans la zone DNS de votre domaine, cliquez sur « Ajouter une nouvelle entrée ». Cliquez dans la zone « Champs étendus » sur « TXT ». Saisissez les informations suivantes : Sous-domaine : _dmarc TTL : laissez « Valeur par défaut » Valeur : « v=DMARC1; p=quarantine; rua=mailto:utilisateurprincipal@votredomaine.tld; ruf=mailto: utilisateurprincipal@votredomaine.tld; fo=1; adkim=s; aspf=s; pct=100; ri=86400; sp=reject» (sans les guillemets !) en remplaçant utilisateurprincipal@votredomaine.tld par la valeur d’@MAIL de votre utilisateur principal. Cliquez sur « Suivant » puis sur « Valider ». Au final, vous devriez alors avoir dans votre zone DNS un nouvel enregistrement « TXT » tel que : _dmarc.votredomaine.tld. 0 TXT "v=DMARC1; p=quarantine; rua=mailto:utilisateurprincipal@votredomaine.tld; ruf=mailto: utilisateurprincipal@votredomaine.tld; fo=1; adkim=s; aspf=s; pct=100; ri=86400; sp=reject" 4.2.5 Ajout d’un enregistrement TXT de type « CNAME » pour « mail.votredomaine.tld » La configuration décrite ci-après n’est à réaliser que si et seulement si vous souhaitez pouvoir accéder à l’application « MailPlus » depuis l’extérieur (à l’aide de votre reverse proxy) en saisissant un simple « mail.votredomaine.tld » dans un navigateur Web. Elle est parfaitement optionnelle (voir § 7 ci-dessous). Dans la zone DNS de votre domaine, cliquez sur « Ajouter une nouvelle entrée ». Cliquez dans la zone « Champs de pointage » sur « CNAME ». Saisissez les informations suivantes : Sous-domaine : « mail » TTL : laissez « Valeur par défaut » Cible : « votredomaine.tld. » (N’oubliez pas le « . » à la fin, c’est important !) Cliquez sur « Suivant » puis sur « Valider ». Au final, vous devriez alors avoir dans votre zone DNS un nouvel enregistrement « CNAME » tel que : mail.votredomaine.tld. 0 CNAME votredomaine.tld. Voilà, on en a terminé avec la configuration de la « zone DNS » de votre domaine « votredomaine.tld ». Vous pouvez à présent normalement vous déconnecter de votre compte OVH. 5 Finalisation de la configuration de MailPlus Server Maintenant que la partie concernant la « zone DNS » de votre domaine est claire chez OVH, on va reprendre et finaliser la configuration de « MailPlus Sever » (« MPS ») tout en sécurisant ce dernier. Pour ce faire, on va passer en revue chaque section (pas forcément dans leur ordre d’affichage dans l’interface d’administration) pour paramétrer et/ou ajuster ce qui doit l’être dans celles-ci par rapport à la configuration par défaut mise en place automatiquement lors de l’installation du package « MPS ». Notez bien que cette revue de configuration ne va pas non plus, se substituer au guide de l’Administrateur Synology « MPS » qui lui vous fournira tous les détails nécessaires pour toutes les fonctions. Un grand nombre de réglages complémentaires resteront de votre libre arbitre. 5.1 Section « Administration du serveur » Dans notre cas cette section n’a pas d’intérêt. Elle vous permet simplement de consulter le trafic de messagerie entrant/sortant ainsi que l'état du ou des serveurs de votre système de messagerie. 5.2 Section « Surv menace » Dans notre cas cette section n’a pas d’intérêt. Vous y trouverez des statistiques détaillées de divers types, sur les menaces liées aux eMAILs entrants et sortants et leurs sources. Ces informations vous sont présentées sous forme de graphiques clairs. Ainsi leur exploitation vous permettra d’ajuster les paramètres de « MPS » de manière appropriée pour une sécurité optimale. 5.3 Section « Domaine » En principe et dans un premier temps, il n’y a rien de plus à paramétrer dans cette section qui n’ait déjà été fait lors de la phase de pré configuration de « MPS » au § 3 ci-dessus. Par contre dans un second temps, vous pourrez ici ajouter de nouveaux utilisateurs à votre serveur de messagerie en ayant au préalable pris soin de les créer comme utilisateurs locaux de votre NAS avec le même identifiant/pseudo (c’est mieux !). Cela dit, vous pourrez tout aussi bien choisir d’utiliser des utilisateurs issus d’un annuaire Active Directory ou LDAP si votre NAS est associé à l’un d’entre eux. C’est ici aussi que vous pourrez selon vos propres besoins, affiner le paramétrage de chaque utilisateur, créer des alias de regroupement d’utilisateurs (appelées aussi listes de distribution) pour l’émission/réception d’eMAILs ou encore la création de règles BCC (Blind Copy Carbone) automatiques pour par exemple sauvegarder les messages importants et ainsi protéger la confidentialité du destinataire. 5.4 Section « Distribution » Dans cette section on va paramétrer notre « facteur Internet » à savoir le protocole « SMTP » (Simple Mail Transfer Protocol) qui a en charge d’assurer la livraison/distribution des eMAILs entrants et/ou sortants de votre serveur de messagerie. Partie « SMTP » : Normalement, le protocole « SMTP » utilise trois (3) ports de communication pour fonctionner. Dans « MPS », ils sont affichés comme : SMTP (numéro de port: 25), SMTP-SSL (Numéro de port: 465), SMTP-TLS (Numéro de port: 587). Dans le cas du présent tutoriel, l’utilisation du relai SMTP d’Orange nécessite uniquement l’activation des protocoles « SMTP » et « SMPT-TLS ». En conséquence : Cochez uniquement les deux cases correspondantes : « SMTP » et « SMTP-TLS ». Nota 1 : Pour mémoire, l’usage de« SMTP-TLS » nécessite une authentification. Celle-ci sera configurée dans la section « Remise de message » au § 5.5 ci-dessous. Nota 2 : Si vous avez configuré sur votre NAS (« Panneau de configuration DSM / Sécurité / Avancé ») le « Niveau de profil TLS / SSL » sur « Compatibilité moderne » , certains clients de messagerie (par ex., Outlook 2016) peuvent s'avérer incapables d'établir des connexions en raison de ce paramètre. Dans ce cas, pour assurer une meilleure compatibilité avec les clients de messagerie, fixez alors le « Niveau de profil TLS/SSL » à « Compatibilité intermédiaire ». Vérifiez que les affectations de ports correspondantes sont bien respectivement : 25 et 587. Partie « Interface réseau » : Vérifier que l’interface « LAN1 » avec l’@IP de votre NAS (« 1.2.3.4 ») soit sélectionnée. Partie « IMAP/POP3 » : Pour l’exemple de ce tutoriel, comme l’on va faire « simple » en utilisant le client de messagerie « MailPlus » de Synology, l’activation du service POP3 n’est donc pas nécessaire. Toutefois, si vous souhaitez utiliser un client de messagerie « tiers » tel que Microsoft Outlook ou Apple Mail pour récupérer vos MAILs, alors il vous faut cocher la case « Activer POP3 SSL/TLS » pour autoriser une connexion client POP3 protégée (chiffrée) avec SSL/TLS et ainsi permettre à vos utilisateurs d'extraire des eMAILs à partir de « MPS » vers ce client de messagerie. Cochez la case « Activer IMAP SSL/TLS » pour autoriser une connexion client IMAP protégée (chiffrée) avec SSL/TLS et ainsi permettre à vos utilisateurs d'extraire des eMAILs à partir de « MPS » vers le client de messagerie (que vous utilisez) et de gérer leur boîte de MAILs. « Partie recherche en texte intégral » : Cochez cette case pour activer la recherche par mots-clés à l’intérieur de vos eMAILs. C’est une fonction utile mais qui reste cependant une option pour vous. C’est vous qui voyez … Cliquez sur le bouton « Appliquer » pour sauvegarder vos choix. 5.5 Section « Remise de message » 5.5.1 Onglet « Général » Pour éviter que n’importe qui utilise votre serveur d’envoi de MAILs, il est nécessaire d’activer « l’authentification SMTP ». De toutes façons, cette activation est aussi implicitement requise du fait de l’usage du protocole « SMTP‑TLS » lui-même imposé par l’usage du serveur relai SMTP d’Orange nécessaire au bon fonctionnement de votre serveur de messagerie. Par ailleurs, les utilisateurs qui ne passent pas l'authentification ne pourront pas transférer leurs eMAILs. Cela empêchera ainsi votre serveur d'être inscrit sur les listes noires. Cochez la case « Activer l’authentification SMTP » Sans les identifiants de connexion, les clients d'un réseau local de « MPS » pourraient recevoir et envoyer directement des eMAILs en utilisant un terminal. Aussi par sécurité, Ignorez l'authentification pour les connexions réseau locales à partir d'un terminal. Ne cochez pas la case « Ignorer l'authentification pour les connexions réseau locales à partir d'un terminal ». Lors de l'envoi d'eMAILs, par sécurité il est préférable d’imposer à l'utilisateur connecté d’utiliser l’@MAIL d'un utilisateur qui appartient au compte de connexion et implicitement on n’ignorera pas la vérification de l’@MAIL de l’expéditeur pour voir s’il appartient au compte de connexion pour les eMAILs envoyés depuis des réseaux fiables. Cochez la case « Vérifier si les adresses e-mails des expéditeurs appartiennent aux comptes de connexion ». Ne cochez pas la case « Ignorer la vérification de l’@MAIL de l’expéditeur … ». Dans « MPS » le nom d'hôte doit être spécifié au format FQDN (« Fully Qualified Domain Name » ou nom de domaine pleinement qualifié, est un nom de domaine qui donne la position exacte de son nœud dans l'arborescence DNS en indiquant tous les domaines de niveaux supérieurs). Dans le cas du présent tutoriel il s’agit simplement de votre nom de domaine « votredomaine.tld ». « Nom d’hôte (FQDN) » : Saisissez « votredomaine.tld » Il est important ici de renseigner le champ « SMTP Banner ». Indépendamment du fait qu’il indique le texte qui s’affichera sur le terminal TELNET d’un client SMTP (information qui peut paraître optionnelle), il concourt à la note finale qui sera donnée à vos envois de MAILs lors du test final que l’on réalisera à l’issue de la configuration de « MPS » (voir § 8.1 ci-dessous). « SMTP Banner » : Saisissez « votredomaine.tld » Vous pouvez laisser tels quels (à leur valeur par défaut) les autres paramètres de nombre et de taille. Vous pouvez aussi les modifier et les adapter à vos besoins si vous savez ce que vous faites. Cliquez sur le bouton « Administrateur externe » Dans la fenêtre qui s’affiche : Cochez la case « Activer l’administrateur externe ». Il vous faut alors désigner un utilisateur (via son @MAIL) qui pourra recevoir les messages système envoyés au démon de messagerie par les administrateurs d'autres serveurs de messagerie. Sélectionnez à l’aide du popup, un utilisateur local. Cliquez sur « OK » pour valider. Cliquez sur le bouton « Appliquer » pour sauvegarder vos choix. 5.5.2 Onglet « Delivery » Comme je vous l’ai indiqué au point 4 du préambule de ce tutoriel, le serveur SMTP Orange ignore les connexions provenant d'un autre réseau si elles lui arrivent sur le port 25, ce qui donne l’impression que ce port est bloqué. Donc, pour contourner ce pseudo « blocage » du port 25, et c’est l’astuce principale de ce tutoriel, on va donc ici utiliser la particularité de « MPS » qui lui permet d’envoyer des messages via d'autres serveurs de messagerie sans être lui-même exposé à Internet ou à d'éventuelles attaques. On va donc spécifier précisément à « MPS » passer par le serveur SMTP d’Orange pour émettre vos eMAILs. Ainsi, vous n’aurez aucun risque de vous les faire rejeter. Pour ce faire : Sélectionnez l’option « Tous les messages sont envoyés via un unique hôte actif » « Serveur : » : Saisissez « smtp.orange.fr » « Port : » : Saisissez « 587 » Cochez la case : « Authentification requise » « Compte : » :Saisissez « votreidentifiantdeconnexionOrange » « Mot de passe : » : Saisissez « votremotdepassedeconnexionOrange » Cliquez sur le bouton « Appliquer » pour sauvegarder vos choix. 5.5.3 Onglet « Relayer le contrôle » Dans notre cas cet onglet n’a pas d’intérêt. Au besoin, à vous de voir quoi en faire … 5.5.4 Onglet « Sécurité » Partie « Listes noires et blanches » : Paramétrez ou non ces listes selon vos éventuels besoins spécifiques. Partie « Stratégie de l’expéditeur » : Ici on va définir certains critères (appelés aussi « politiques ») pour rejeter les eMAILs reçus. Lorsque le nom de domaine de l'expéditeur « MAIL FROM » ne correspondra pas au format FQDN standard fixé par les RFC, les eMAILs seront rejetés. Cochez la case : « Rejeter les expéditeurs sans nom de domaine complet (FQDN) ». Lorsque « MPS » n'est pas le terminal de réception final et que le domaine de l'expéditeur de « MAIL FROM » ne correspond à aucun enregistrement DNS de type « A » ou « MX » ou lorsque l'enregistrement de type « MX » est incorrect, les eMAILs seront rejetés. Cochez la case : « Rejeter les expéditeurs utilisant des domaines inconnus ». Partie « Stratégie de connexion » : Ici on va paramétrer les critères pour rejeter les connexions client ou bloquer les adresses IP en raison d’un trop grand nombre de connexions simultanées, de messages envoyés sur une minute ou de connexions sur une minute au server de messagerie. Cochez la case : « Rejeter les noms d’hôtes de clients inconnus ». Cochez ou non les trois cases suivantes et ajustez les valeurs limites selon vos éventuels besoins spécifiques. Partie « Avancé » : Ici on va ajuster les paramètres de sécurité pour la distribution des eMAILs. Cochez la case : « Rejeter les demandes de conduite non autorisée ». Cochez la case : « Rejeter les noms d’hôtes HELO sans nom de domaine entièrement qualifiés (FQDN) ». Cochez la case : « Rejeter les noms d’hôtes HELO inconnus ». Cochez ou non les deux cases suivantes et ajustez les valeurs limites selon vos éventuels besoins spécifiques. Cliquez sur le bouton « Appliquer » pour sauvegarder vos choix. 5.6 Section « Sécurité » Cette section est l’une des plus importante pour la mise en place d’une stratégie de sécurisation de votre serveur de messagerie et de ses clients. Toutefois, il convient d’être prudent et de ne pas tout activer immédiatement mais plutôt de procéder par étapes pour obtenir des réglages parfaitement ajustés à vos besoins spécifiques. En effet, des réglages d’emblée trop agressifs pourraient peut-être vous empêcher d’envoyer ou de recevoir des eMAILs de certaines personnes. Ce serait bien dommage et ce n’est pas le but de votre serveur de messagerie … On va donc ici n’activer qu’un minimum de règles d’analyses de vos eMAILs entrants. 5.6.1 Onglet « Spam » Donc à minima on va commencer par activer le moteur anti-spam. Pour mémoire, « MPS » utilise le moteur anti-spam « Rspamd » ainsi que les règles de la base de données « SpamAssassin ». Il filtre le spam en fonction de règles de correspondance du contenu et du seuil de score de spam. Lorsqu'un eMAIL correspond à une règle de détection prédéfinie, un point sera ajouté au score. Les eMAILs dépassant le seuil seront alors marqués comme « spam ». Cochez la case : « Activer le moteur anti-spam (recommandé) ». Modifiez l’intervalle de spam (en jours) ainsi que les paramètres anti-spam selon vos besoins spécifiques. Vous pouvez notamment utiliser « l’auto apprentissage » pour ajuster au mieux le seuil de score de spam. Lors de votre première activation du moteur anti-spam, la base de données des règles anti-spam a besoin d’être mise à jour manuellement. Programmez ensuite sa mise à jour automatique à l’heure de votre choix. Cochez la case : « Automatiquement mettre à jour les règles anti-spam ». Cliquez sur le bouton « Mise à jour manuelle ». L’encart « Information du le moteur » vous affichera par la suite la date de dernière mise à jour. Dans la lutte contre le SPAM il peut être aussi intéressant d’activer la protection postscreen en consultant des serveurs « DNSBL » (« DNS Black Listing ») même si ces derniers sont controversés du fait que leurs critères d’exclusion ne relèvent que de leur seul gestionnaire. Pour mémoire le « DNSBL » est une méthode permettant de consulter une liste noire d'émetteurs d’eMAILs en utilisant le protocole DNS. Aussi soyez vigilant avec l’usage de ce type de serveurs qui peuvent très bien, indépendamment de vous protéger, placer votre serveur de messagerie sur leur liste noire (vous blacklister) et donc vous empêcher d’émettre mais aussi de recevoir des eMAILs. C’est un choix donc à faire de façon très réfléchie. Encore une fois c’est vous qui voyez … Cochez la case : « Activer la protection postscreen contre les spam » et observez le comportement dans le temps et selon, décochez-la si nécessaire ensuite. Cochez ou non la case « Activer la liste grise … » selon vos éventuels besoins spécifiques. Cliquez sur le bouton « Appliquer » pour sauvegarder vos choix. 5.6.2 Onglet « Antivirus » Partie « Antivirus » : Il va de soi qu’il faut activer le moteur antivirus pour assurer une protection contre les menaces de logiciels malveillants qui auraient été introduits insidieusement dans les eMAILS que vous recevez. Cochez la case : « Activer le moteur antivirus ». Sélectionnez un moteur dans le popup. Pour votre information, « ClamAV » est le système antivirus par défaut de « MPS » et en plus il est gratuit contrairement à « McAfee » qui lui est payant et pour le quel il faut souscrire un abonnement. Le moteur antivirus « ClamAV » utilise des bases de données externes pour améliorer certaines fonctions. Si vous disposez de suffisamment de mémoire installée sur votre NAS, vous pourrez utiliser sans problème la base de données « Google SafeBrowsing » afin de détecter si vos eMAILs contiennent des liens malveillants. Notez qu’il vous est aussi possible d’utiliser d’autres bases de données du même type. Cochez ou non la case « Utiliser la base de données Google SafeBrowsing » selon la capacité mémoire de votre NAS. Lors de votre première activation du moteur antivirus, la base de données des définitions de virus a besoin d’être mise à jour manuellement. Programmez ensuite sa mise à jour automatique à l’heure de votre choix. Cochez la case : « Mettre à jour automatiquement les définitions de virus ». Cliquez sur le bouton « Mise à jour du manuel ». L’encart « Informations système sur le moteur antivirus » vous affichera par la suite la date de dernière mise à jour. Partie « Actions » : Paramétrez ou non ces actions selon vos éventuels besoins spécifiques. Cliquez sur le bouton « Appliquer » pour sauvegarder vos choix. 5.6.3 Onglet « Authentification » Le paramétrage de cet onglet a déjà été effectué et décrit au § 3 ci-dessus lors de la pré configuration de « MPS ». Il n’y a donc à faire de plus. 5.6.4 Onglet « Analyser le contenu » Partie « Filtre joint » : · Paramétrez ou non ces filtres selon vos éventuels besoins spécifiques. Partie « Analyser le contenu » : Là c’est évident et on n’y va pas par quatre chemins, à moins que vous ne voyiez un inconvénient à cela et donc libre à vous de faire autrement : Cochez les cases de toutes les options. Positionnez tous les popup sur la valeur « Rejeter ». Cliquez sur le bouton « Appliquer » pour sauvegarder vos choix. 5.6.5 Onglet « Protection des données » Paramétrez ou non ces options selon vos éventuels besoins spécifiques. Cliquez sur le bouton « Appliquer » pour sauvegarder vos choix. 5.7 Section « File » Dans notre cas cette section n’a pas d’intérêt. Elle vous permet simplement de vérifier tous les eMAILs en attente d'être envoyés à d'autres serveurs, ou à renvoyer à d'autres serveurs après qu’ils aient été rejetés pour X raisons. 5.8 Section « Audit en cours » Dans notre cas cette section n’a pas d’intérêt. Elle vous permet simplement de visualiser et configurer tous les journaux d’activité de votre serveur de messagerie. Vous y verrez tous les mails passant par votre serveur. Ces journaux vous permettront de comprendre les éventuels problèmes que vous pourriez rencontrer et ainsi de leurs trouver une solution. Vous pourrez également y générer, selon vos besoins, des rapports statistiques d’utilisation du serveur « MPS ». 5.9 Section « Licence » Dans notre cas cette section n’a pas d’intérêt. Elle vous permet simplement de visualiser le nombre de licences i.e. le nombre d’@MAILs que vous pouvez utiliser. C’est dans cette section que vous pourrez ajouter des licences supplémentaires le cas échéant. Par défaut vous y retrouvez les cinq (5) licences gratuites associées à « MPS ». « MPS » synchronise automatiquement l'état de vos licences avec votre compte Synology. Sachez aussi les restrictions/contraintes liées à l’usage de ces clés : Une clé de licence ne peut être appliquée qu’à un seul serveur DSM à la fois. Une clé de licence ne peut être distribuée ni fournie à un tiers. Si la clé de licence n’est pas activée et qu’elle est perdue, Synology ne vous fournira aucune clé de rechange. La clé de licence et les informations de votre NAS (N° de série, @MAC et nom de modèle) sont envoyées à Synology pour validation. 5.10 Section « Compte » Avant d’utiliser pleinement « MPS », vous devez activer les comptes utilisateurs locaux à DSM qui utiliseront votre service de messagerie. Mais avant, il est nécessaire de leur donner au préalable un certain nombre de droits sur les applications « MPS » et « MailPlus », mais aussi sur le répertoire partagé qui contiendra vos boites MAIL (« Volume1/MailPlus »), faute de quoi votre utilisateur ne pourra ni envoyer ni recevoir de MAILs : Sur votre NAS Synology, rendez-vous dans DSM :« Panneau de configuration / Utilisateur ». Créez un nouvel utilisateur OU sélectionnez et modifiez un utilisateur existant (pour l’exemple ici « oracle7 »). Dans l’onglet « Permissions », dans la colonne « Lecture/écriture » cochez la case en regard correspondante de « MailPlus ». Cliquez sur le bouton « OK » pour sauvegarder vos choix. Dans l’onglet « Applications », dans la colonne « Autoriser » cochez la case en regard correspondante à « MPS » et celle correspondante à « MailPLus ». Cliquez sur le bouton « OK » pour sauvegarder vos choix. On peut maintenant effectivement activer l’utilisateur. Pour cela : Rendez-vous dans « MPS » section « Compte » onglet « Utilisateur ». Dans la colonne « Activer » cochez la case en regard correspondante de votre utilisateur. Cliquez sur le bouton « Appliquer » pour sauvegarder vos choix. Reproduisez la présente procédure pour chacun de vos utilisateurs en veillant bien à ne pas configurer plus d’utilisateurs que vous ne disposez de licences valides. De toutes façons, si vous dépassez le nombre d’utilisateurs possibles, les opérations de l'interface utilisateur de « MPS » seront restreintes et les services relatifs à la sécurité stoppés, tant que vous n'aurez pas suffisamment de clés de licence valides dans votre système de messagerie. Eh eh, ils ne sont pas idiots chez Synology … 😊 Nota : En matière de sécurité des comptes utilisateurs de « MPS », je vous renvoie vers le Tutoriel « [TUTO] MailPlus Server DSM6 » de @UnPixel qui propose une stratégie très intéressante (couplet en bleu dans le texte). Je ne vais pas vous la décrire ici mais je vous invite à la consulter voire même de l’appliquer. Pour mémoire, pour le présent tutoriel j’ai joué la carte de la simplicité en adoptant le même nom (identifiant) pour le compte eMAIL que celui-ci utilisé pour l’utilisateur local du NAS. A vous de voir et d’adapter le paramétrage des utilisateurs selon vos besoins spécifiques … Par ailleurs, si vous appliquez cette stratégie, veillez à rester cohérent avec les dispositions décrites au §4.1 ci-dessus pour la création d’une @MAIL dite de secours chez OVH. Sinon cela marchera beaucoup moins bien … 5.11 Section « Personnel » Dans notre cas cette section n’a pas d’intérêt. Elle vous permet simplement de paramétrer les options liées au transfert d’eMAILs et de réponse automatique lors de la réception de ces deniers. 6 Configuration du pare-feu du NAS et de la Box/Routeur Encore une dernière chose à paramétrer et on en aura terminé pour la configuration. En effet, pour que tous ce qui précède fonctionne correctement sans blocages, il est nécessaire d’ouvrir les ports de communication adéquats sur votre NAS ainsi que sur la Box/Routeur. Vous l’aurez sûrement deviné et compris, il s’agit d’ouvrir respectivement des ports 25 (« SMTP »), 587 (« SMPTP-TLS ») et 993 (« IMAP SSL/TLS »). Pour cela : 6.1 Pare-feu du NAS Sur votre NAS Synology, rendez-vous dans DSM :« Panneau de configuration / Sécurité / Pare-feu ». Sélectionnez votre profil actif de pare-feu et cliquez sur le bouton « Modifier les règles ». Normalement, avec l’installation de « MPS » une règle intitulée « MailPlus Server » a déjà été créée dans le pare-feu. Sélectionnez cette règle et cliquez sur le bouton « Modifier » ou 2xCliquez sur celle-ci. Dans la nouvelle fenêtre, pour la partie « Ports », cliquez sur le bouton « Sélectionner » en regard de l’item « Sélectionner dans une liste d’applications intégrées ». Assurez-vous que les lignes correspondantes des ports 25, 587 et 993 pour l’application « MPS » sont bien activées (case cochée). Nota : Si vous utilisez un autre client MAIL que « MailPlus », et que celui-ci utilise le protocole « POP3 » pour récupérer les eMAILS, il vous faudra sans doute activer aussi les lignes correspondantes pour les ports 110 (« POP3 ») et 995 (« POP3 SSL/TLS »). Référez-vous au manuel de ce client MAIL pour plus de détails. Cliquez sur le bouton « OK » pour sauvegarder vos choix. 6.2 Pare-feu de la Box/Routeur 6.2.1 Cas de la LiveBox Si votre NAS est directement connecté derrière votre LiveBox : Connectez-vous à l’interface d’administration de la LiveBox en saisissant dans un navigateur Web l’URL : http://192.168.1.1. Rendez-vous dans le menu « Réseau » / onglet « NAT/PAT » et créez les trois (3) règles de transfert de ports suivantes : 6.2.2 Cas d’un routeur Synology Si votre NAS est directement connecté derrière votre Routeur Synology : Connectez-vous à l’interface d’administration du routeur en saisissant dans un navigateur Web l’URL : http://routeur.synology.com ou en saisissant directement son @IP comme URL. Rendez-vous dans le menu « Centre réseau » / Section « Transmission de port » et créez les trois (3) règles de transmission de ports suivantes : Nota : On ne crée pas ces règles directement dans le pare-feu car il n’y a pas besoin de leur affecter une quelconque localisation. 7 Configurer le Reverse Proxy sur le NAS C’est la dernière opération de configuration mais qui reste optionnelle (d’autant plus si vous n’avez pas déjà configuré votre Reverse proxy). On va donc ici configurer une redirection du domaine de second rang « mail.votredomaine.tld » vers l’application « MailPlus ». Ainsi depuis l’extérieur, il vous sera facile d’accéder à cette l’application pour consulter et gérer tous vos eMAILs et ce à partir d’un navigateur Web en saisissant simplement : « mail.votredomaine.tld ». Pour ce faire, suivez ces deux étapes : 7.1 Configurer la zone DNS chez OVH Cette opération est décrite au § 4.2.6 ci-dessus. 7.2 Configurer le Reverse Proxy sur le NAS Sur votre NAS Synology, rendez-vous dans DSM :« Panneau de configuration / Portail des applications » o Rendez-vous sur l’onglet « Application ». o Sélectionner la ligne « MailPlus » et 2xCliquez sur celle-ci OU Cliquez sur le bouton « Modifier ». o Une fenêtre « Règles d’accès aux applications » s’ouvre. o Dans l’onglet « Général » : ▪ Cochez la case « Activer un alias personnalisé ». ▪ Cochez la case « Activer un port personnalisé (HTTP) ». ▪ Saisissez les informations suivantes : * « Alias: » : mail * « Port: » : 21680 ▪ Dans les deux cas une URL de connexion à utiliser vous est indiquée. Respectivement : * https://votreNAS.votredomaine.tld/mail/ * http://votreNAS.votredomaine.tld:21680 o Cliquez sur « OK » pour valider. Sur votre NAS Synology, rendez-vous dans DSM :« Panneau de configuration / Portail des applications / Application ». o Rendez-vous sur l’onglet « Proxy inversé ». o Cliquez sur le bouton « Créer » o Une fenêtre « Règles de proxy inversé » s’ouvre. o Dans l’onglet « Général » : ▪ Saisissez les informations suivantes : ⚠Saisissez bien les informations, les champs paraissent déjà renseignés mais en fait ce n’est que de l’affichage ! Si vous validez sans faire de saisie effective, ces champs ne seront pas renseignés. * « Description: » : MAIL Partie « Source » : * « Protocole: » : sélectionnez dans le popup l’item « HTTPS » * « Nom d’hôte: » : mail.votredomaine.tld * « Port: » : 443 * Cochez la case « Activer HTTP/2 ». Partie « Destination » : * « Protocole: » : sélectionnez dans le popup l’item « HTTP » * « Nom d’hôte: » : localhost * « Port: » : 21680 o Cliquez sur « OK » pour valider. 8 Contrôle des eMAILs de votre serveur de messagerie Votre serveur de messagerie basé sur « MPS » est maintenant configuré et opérationnel. On va donc contrôler que les eMAILs que vous allez envoyer sont corrects et qu’ils ne risquent pas d’être considérés comme du SPAM par les serveurs de messagerie institutionnels. On contrôlera également la bonne réception des eMAILs qui vous seront destinés. 8.1 Contrôle de l’envoi Pour réaliser ce contrôle d’indésirabilité de vos eMAILs, on va utiliser les services du site « mail-tester.com ». Mais avant d’utiliser les services de ce site, il vous faut savoir ceci : « Mail-tester.com » ne vous offre en tout et pour tout, le droit d’exécuter que trois (3) tests par jour. Au-delà, si vous voulez en faire plus, il vous faudra passer à la caisse ! Donc soyez parcimonieux dans son usage sinon il vous faudra prendre votre mal en patience pour rester dans le domaine du gratuit … Donc, pour tester vos eMAILs, c’est on ne peut plus simple : Copiez l‘URL qui vous est proposée en page d’accueil de « mail-tester.com ». Rendez-vous sur l’application « MailPlus » et ouvrez celle-ci depuis le bureau de DSM sur le NAS ou si vous avez mis en place le reverse proxy : tapez l’URL « mail.votredomaine.tld » dans un navigateur Web sur votre PC/Mac. Cliquez sur le bouton « Rédiger » pour créer un nouvel eMAIL. Collez l’URL de test dans la zone « A : » Saisissez un texte quelconque pour l’objet de l’eMAIL. Veillez à ne pas être trop succinct car cela pourrait affecter votre note finale. Saisissez un texte consistant dans le corps de texte de l’eMAIL. Idem veillez à ne pas être trop succinct car cela pourrait aussi affecter votre note finale. Cliquez sur le bouton « Envoyer ». Revenez sur la page de « mail-tester.com » dans votre navigateur Web. Attendez 2 à 3 secondes (le temps que l'eMAIL arrive) et cliquez sur le bouton « Ensuite, vérifier votre Score ». Et là c’est tout bon ou tout mauvais … Le résultat des différents tests réalisés par « mail-tester.com » sur votre eMAIL s’affichent avec votre note obtenue. Si vous avez suivi correctement le paramétrage que je vous ai indiqué au cours du présent tutoriel, vous devriez normalement obtenir une note de 10/10. Si ce n’est pas le cas, c’est que vous avez raté quelque chose quelque part ! A vous d’analyser le problème … Heureusement pour vous, le compte-rendu produit par « mail-tester.com » est très explicite et très bien fait. L’analyse attentive de ce compte-rendu (développez chaque item pour en consulter le détail) devrait vous donner toutes les pistes à suivre pour corriger les problèmes relevés. Cela dit, même avec une note de 10/10, tout ne sera pas passé au « vert ». Il restera certains contrôles marqués en « orange » mais qui ne sont pas bloquants pour la suite. Typiquement, le compte-rendu vous annoncera que : « Vous n’êtes pas parfaitement authentifié » « Votre message pourrait être amélioré » Donc si vous développez chacun de ces deux items pour de plus amples détails, vous constaterez : Pour le premier Item : « Votre reverse DNS ne correspond pas avec votre domaine d’envoi » : Comme je vous l’ai expliqué au point 3 ci-dessus du préambule, il faudrait pouvoir paramétrer le « rDNS » d’Orange et c’est impossible. Donc, vis à vis de ce message d’« erreur » qui finalement n’impacte pas la note finale du test, on s’en tiendra là mais sans l’ignorer toutefois. Pour le second item : « Votre message ne contient pas d'en-tête List-Unsubscribe » : Je n’ai pas trouvé (peut-être mal cherché aussi) dans la documentation ni dans l’interface de « MPS » un quelconque moyen d’introduire cet « entête List-Unsubscribe » (à moins qu’un « Initié » ne sache). Donc, vis à vis de ce message d’« erreur » qui finalement n’impacte pas non plus la note finale du test, on s’en tiendra aussi là. 8.2 Contrôle de la réception Pour contrôler la réception de vos eMAILs, il suffit de demander à des personnes ayant un compte chez les principaux FAI institutionnels, de vous adresser un eMAIL (à « utilisateurprincipal@votredomaine.tld ») et de constater ou non la bonne réception de cet eMAIL. Dans le cas d’une non réception (ce qui serait tout de même étonnant si vous avez suivi correctement le présent tutoriel), vous pouvez toujours commencer par vérifier que votre serveur de messagerie n’est pas tout simplement quelque part sur liste noire. Pour cela, consultez notamment le site « spamhaus.org » en testant tour à tour votre « @IP externe » et votre « domaine.tld ». Vous saurez immédiatement si vous êtes ou non sur une liste noire quelque part. A vous alors, de vous rendre sur le site en question, pour trouver la procédure spécifique qui vous fera faire sortir de leur liste noire. ⚠Pour être totalement honnête, il vous faut savoir qu’il se produit parfois d’une façon encore inexpliquée à la date de la présente rédaction, une activation des serveurs de secours d’OVH que je qualifierai d’intempestive. Cette « anomalie », ayant été récemment relevée par quelques « initiés », a pour conséquence que les eMAILS, ayant pour origine certains FAI, ne sont pas récupérés sur la boite MAIL de votre utilisateur « principal » par votre serveur de messagerie. Rassurez-vous, ces eMAILs qui vous étaient destinés, ne sont pas perdus ! Les serveurs d’OVH que l’on utilise normalement en secours, ont simplement pris la main et ont redirigé ces eMAILS vers la boîte MAIL dite de secours que l’on a configurée à cet effet chez OVH (comme quoi cette fonction de secours que l’on a mise en place, fonctionne bien !). Sachez que vous pourrez donc toujours consulter et gérer ces eMAILs, mais pour cela, il vous faudra vous connecter à votre compte OVH. Il est vrai que cela pourrait vite devenir une contrainte si l’on ne trouve pas une solution à ce problème (on y travaille …). Par ailleurs et bien heureusement, le problème ne concerne que quelques FAI (ce qui est étonnant, c’est que ce n’est pas forcément les mêmes FAI d'un utilisateur à l'autre), ce qui en soi, est un moindre mal et donc heureusement pas totalement bloquant, si je peux m’exprimer ainsi. J’espère toutefois que la connaissance de cette anomalie, ne « refroidira » pas certains dans leur volonté d’appliquer le présent tutoriel pour mettre en place leur propre serveur de messagerie. Forcément, une solution sera trouvée à terme … Voilà c’est fini ! Vous pouvez souffler. Cela a été un peu long mais avec un minimum d’attention cela ne devrait pas vous avoir posé de problèmes. Beaucoup d’explications vous ont été fournies à propos des différents concepts abordés. J’espère en cela ne pas avoir été trop confus mais surtout que vous aurez bien pris le temps de toutes les lire et de les assimiler ! J’estime personnellement que c’est un passage obligé pour que vous compreniez parfaitement ce que vous faites et à terme que vous maîtrisiez votre serveur de messagerie. Remplir les cases « bestialement » ne vous aurait rien apporté au bout du compte si ce n’est des messages d’erreurs et une sérieuse prise de tête pour les résoudre. C’est quelque part le prix à payer pour être vraiment autonome de ce point de vue. Maintenant vous êtes seul propriétaire de vos choix et décisions … Ce tutoriel n’est jamais qu’un guide pour vous aider à configurer « MPS », mais comme vous avez pu le constater, il vous laisse souvent et largement toute la latitude nécessaire pour répondre à vos propres besoins spécifiques. Sachez enfin que depuis que j’ai mis en place cette configuration (cela fait bientôt 3 mois), je n’ai eu à faire à AUCUN problème d’eMAIL spammé et/ou d’@IP blacklistée pour le serveur de MAILs. Je dispose donc, comme vous maintenant, de mon propre système de messagerie et cela en totale autonomie. Donc pour moi le but initial, de ce point de vue ainsi que sur l’aspect technique avec cette contrainte initiale d’@IP externe « dynamique », est atteint et c’est le plus important 😊😊😊 Le fichier « .pdf » de ce tutoriel : [TUTO] Configuration MailPlusServer avec une @IP dynamique_20200616.pdf Bien évidemment, je prendrais en compte toutes remarques et suggestions visant à corriger si besoin mais surtout à améliorer ce tutoriel. MERCI de vos retours ... Cordialement Oracle7😉
  19. Bonjour, EDIT 20/06/2021 §4 : Complément à la commande de création du certificat suite aux récentes évolutions du Shell script ACME. §6 : Ajout lié au renouvellement. Pour faciliter la compréhension, le texte lié à cette édition est repéré en bleu. EDIT 10/01/2021 § 5.1 : Ajout d’une astuce évitant un problème de renouvellement lié au cookie DID de la double authentification. EDIT 21/08/2020 § 6 : Évolution du script Python pour être aussi compatible de la dernière et actuelle version du langage Python : version 3.x.x § 10 : Mise à jour du texte d’aide associé à l’option « -h ». Suppression des fichiers de trace « cleanlog » et « cleanlogerr » qui n’apportaient rien de plus à la trace existante. Remaniement du fichier de trace pour que soit généré un nouveau fichier à chaque exécution du script. On dispose ainsi d’un historique « tournant » basé sur 9 fichiers : « acme_renew_python.log.1 » à « acme_renew_python.log.9 ». Le fichier à l’indice « 1 » étant toujours le dernier donc le plus récent. Nouvelle version v1.44 du script Python (à remplacer simplement dans le répertoire « /volume1/Scripts »). Pour faciliter la compréhension, le texte lié à cette édition est repéré en bleu. EDIT 11/08/2020 § 10 : Ajout d’une trace complète et systématique du processus de renouvellement. § 10 : Ajout de l’option « -f » au script Python de renouvellement. La partie configuration du renouvellement automatique du certificat au §6 a été revue grâce à l’aide de @bruno78 que je remercie vivement ici, pour prendre en compte une anomalie liée au Shell script « acme.sh » et à l’environnement particulier du NAS Synology. Cette anomalie ainsi que sa résolution, est décrite au § 10 ci-dessous. EDIT 01/06/2020 § 2 : Utilisation du "vrai" root pour la connexion SSH au lieu du "sudo -i" § 3.1 : Utilisation de l'Id principal de connexion OVH § 5.2.1 : Réaffectations de services à faire suite à la création du certificat en mode Ajout. Objectif de ce tutoriel : Créer un certificat « Wilcard » Let’s Encrypt (LE) afin : d’une part, de prendre en compte tous les domaines de second niveau de votre domaine personnel, et d’autre part, de s’affranchir de la limite fatidique de 256 caractères imposée par Synology pour les SAN (Subject Alternative Name – Autre nom de l’objet) lors de la création des certificats dans DSM. Pour mémoire, la méthode de création du certificat « wilcard » LE décrite dans le Tutoriel « Certificat TLS/SSL - Let's Encrypt "Wildcard" » de @unPixel utilisait le service ‘SSL For Free’. Malheureusement, ce service n’étant plus gratuit depuis le 18 mai 2020, il convenait alors pour moi de m’orienter sur un autre moyen pour obtenir un certificat « wilcard » LE et gratuit de surcroît. Nota : ‘SSL For Free’ fournit toujours gratuitement son service mais uniquement pour un seul nom de domaine du type « ndd.tld » (NomDeDomaine.Top-LevelDomain). En fouillant un peu la toile, j’ai fini par trouver cet autre moyen. Il est basé sur l’utilisation du client ACME via le Shell script « acme.sh » disponible sur GitHub. Je vous livre donc ci-après la méthode que j'ai suivie. J’ai essayé de la rendre aussi détaillée que possible. En fait elle est conçue pour « les nuls » 😊, mais pas que ... Sachez que c'est un mixte de différents tutoriels trouvés sur la toile, car aucun pris individuellement ne donnait complètement satisfaction vis-à-vis du but à atteindre et il fallait souvent s’adapter et/ou corriger en fonction de leurs contextes parfois légèrement différents. Je ne m’en cache pas, je n’ai pas réinventé la roue, vous retrouverez ici certaines explications directement extraites et traduites de ces tutoriels. Selon le cas, le lien vers l’original sera donné. Mais avant toutes choses, il convient pour mémoire, de faire un petit rappel contextuel. Depuis que Synology a introduit LE dans la gestion des certificats associés à ses NAS et Routeurs, beaucoup d'entre nous bénéficient du SSL gratuit et c’est très bien. D'un autre côté, beaucoup d'entre nous ne veulent pas exposer les ports 80 et 443 à Internet, y compris l'ouverture de ces ports sur le routeur. Malheureusement, l'actuelle implémentation Synology de LE ne prend en charge que la méthode de validation dite WEB, basée sur le protocole « HTTP-01 » qui nécessite d'exposer notamment le port 80 à Internet. Une alternative à cette non exposition est de passer par l’utilisation de la méthode de validation dite par DNS basée sur le protocole « DNS-01 ». Ce protocole présente l’avantage de ne pas avoir besoin d’ouvrir de ports lors de la création du certificat LE mais surtout lors de son renouvellement et là c’est le « plus » indéniable du point de vue sécurité qu’apporte cette méthode. Mais pour utiliser cette méthode de validation par DNS, il est obligatoire d’avoir la main sur la zone DNS du domaine concerné. En effet, LE vérifie la présence d’un enregistrement de type « TXT » sous la forme de « _acme‑challenge.votre-domaine.tld » contenant la valeur d’autorisation. Cet enregistrement permet de prouver que la personne qui demande le certificat, contrôle également la zone DNS du domaine en question. Il convient aussi de noter que le protocole « DNS-01 » est utilisé pleinement par les fonctions d’API (Application Programming Interface) développées par nos fournisseurs de domaines tels que OVH et que l’on va utiliser ici. Pour l’exemple, la méthode présentée ici, utilise les API de mon fournisseur OVH. Mais vous pouvez très bien utiliser les API d’un autre fournisseur car ACME prend en charge de nombreux autres services DNS. Il faudra alors adapter la méthode en fonction de ces autres fournisseurs. Rien de bien compliqué en soit, les paramètres diffèrent quelque peu mais le principe de mise en œuvre reste le même. Par ailleurs, l’utilisation du Shell script ‘acme.sh’ est rendu possible par le fait que nous pouvons accéder au NAS via une connexion SSH pour le configurer pour renouveler les certificats au lieu d'utiliser le tableau de bord WEB. Maintenant, cerise sur le gâteau si je puis dire, depuis peu Synology a introduit dans DSM le code nécessaire pour qu’il ne soit plus nécessaire d'exécuter le Shell script ‘acme.sh’ sur votre NAS pour renouveler le certificat. Le Shell script ‘acme.sh’ devra simplement être exécuté sur quelque chose (votre PC/Mac ou autre) qui a accès à l'interface d'administration de DSM. Du coup, les méthodes de déploiement du certificat généré sont considérablement simplifiées et c’est qui va être exploité dans la présente méthode. Voilà pour le discours préliminaire, on passe aux choses sérieuses … 1 Pré-requis · Disposer d’un nom de domaine personnel chez OVH. · Attribuer l’@IP externe de votre Box/Routeur à votre nom de domaine personnel. Pour cela, se rendre sur l'espace client d'OVH. Une fois connecté : Si vous avez une @IP fixe : aller dans l'onglet : « Web / Domaines / votre-domaine.tld / Zone DNS » vous devez avoir un enregistrement de type « A » dans le quel votre « votre-domaine.tld » pointe vers cette @IP fixe. Si vous avez une @IP dynamique : aller dans l'onglet : « Web / Domaines / votre-domaine.tld / DynHost » vous devez avoir une ligne avec « votre-domaine.tld » qui a pour cible votre @IP du moment (i.e. l’@IP externe de votre Box/Routeur). Ce même DynHost doit être également défini sur le NAS (« Panneau de configuration / Accès externe / DDNS » où le nom d’hôte est : « votre-domaine.tld ». 2 Installation du Shell script ‘acme.sh’ L’installation du Shell script ‘acme.sh’ doit s’effectuer dans un répertoire qui n’est pas modifié/réinitialisé lors des mises à jour de DSM. Pour ce faire, on va donc créer un répertoire spécifique d’installation « Certs/Acme_install » sous « /volume1 » et surtout pas sous le répertoire « /root » qui lui est régulièrement « nettoyé » par le système. Ce répertoire « /root » est également utilisé par défaut par ACME. Ceci expliquant cela. · Sous Windows ouvrir une session SSH sur le NAS (en tant qu’utilisateur « root ») avec « PuTTY » ou « WinSCP » · Sous Mac ouvrir une session SSH en lançant le « Terminal » puis tapez : ssh utilisateur-admin@ipdunas (si le port n'est pas 22 alors il faut rajouter « -pXXXXX » où XXXXX = No du port personnalié sudo -i (pour passer en « root » - c'est la procédure normale). · EDIT : Il s'avère que passer sous « root » via un « sudo -i» sur PC comme sur Mac, génère une erreur dans l'exécution de la commande « ./acme.sh». Aussi, je vous invite à suivre le Tuto sur les "Accès SSH et ROOT via DSM6" de @unPixel et ainsi de configurer un accès par le "vrai" « root ». Cela marche tout de suite bien mieux ... Nota 1 : Pour ma part sous Windows, je préfère l’utilisation de « WinSCP » à « PuTTY », tout simplement à cause de son interface graphique qui est très agréable de mon point de vue et aussi parce que l’on peut accessoirement directement sélectionner le texte affiché dans la Console pour le Copier/Coller ailleurs dans une autre application. C’est tout bête mais bien pratique au demeurant. Certes « PuTTY » le permet aussi mais je le trouve beaucoup moins souple de ce point de vue, et ce n’est que mon avis ... Nota 2 : Pour mémoire et ceci est valable pour toute la suite : le symbole « $ » présent en début des lignes de commandes Shell présentées ici, est ce qu’on appelle l’invite de commande du Shell. Dans le cas présent, il est propre à l’outil « WinSCP » que j’ai utilisé pour exécuter les différentes commandes Shell de cette procédure. Bien évidemment, il ne faut pas le sélectionner si vous faites des Copier/Coller du texte de ces commandes. Je préfère prévenir même si c’est évident pour certains initiés … · Tapez successivement les commandes suivantes : On crée le répertoire d’installation d’ACME : « /volume1/Certs/Acme_install » et on s’y place : $ cd /volume1 $ mkdir -p Certs/Acme_install $ cd Certs/Acme_install On télécharge ACME chez GitHub $ wget https://github.com/acmesh-official/acme.sh/archive/master.tar.gz On décompresse le fichier téléchargé et on se place dans le répertoire qui a été automatiquement créé lors de la décompression : $ tar xvf master.tar.gz $ cd acme.sh-master On lance l’installation d’ACME (pensez avant à remplacer dans la commande : « email@gmail.com » par votre @Mail personnelle) $ ACME_HOME="/usr/local/share/acme.sh" $ CERT_HOME="/volume1/Certs" « CERT_HOME » est le répertoire où seront générés les fichiers du certificat. Vous pouvez l’adapter à besoins. $ ./acme.sh --install --nocron --home "$ACME_HOME" --cert-home "$CERT_HOME" --accountemail "email@gmail.com" --nocron : spécifie de ne pas installer par défaut le « cron job ». Vous comprendrez de vous-même pourquoi plus loin. --home : désigne le répertoire « customisé » d’installation du Shell script ‘acme.sh’. C’est un répertoire dit « invariant ». C’est-à-dire qu’il n’est pas modifié par les mises à jour de DSM. Sinon par défaut, le script aurait été installé dans « ~/.acme.sh » où « ~ » correspond au répertoire ‘home’ de l’utilisateur « root » en l’occurrence : « /root ». Pour mémoire le répertoire « /root » est lui, dit « variant », donc sujet à modifications par les mises à jour de DSM. --cert-home : désigne le répertoire où seront générés les fichiers du certificat « wilcard » LE. Cette disposition permet de les sécuriser d’une part et d’autre part permet de les rendre accessibles facilement sans avoir à replonger dans les acarnes de DSM pour les retrouver en cas de besoin autre. Nota :Pour votre information, ce répertoire n’est pas un répertoire partagé au sens Synology. De fait, il ne sera donc pas visible sous « File Station » par exemple ce qui quelque part le protège de vos utilisateurs. Il ne sera donc visible qu’au travers d’une connexion directe au NAS dans une session SSH sous l’utilisateur « root ». Durant la courte installation, vous aurez certainement un message du style : It is recommended to install socat first. We use socat for standalone server if you use standalone mode. If you don't use standalone mode, just ignore this warning. Il faut savoir que ‘Acme.sh’ recommande l'installation du paquet « socat » pour gérer les certificats en mode standalone, mais comme nous n'allons pas utiliser ce mode, vous pouvez largement ignorer ce message. Vous trouverez donc, le dossier d'installation d’ACME dans le répertoire : « /usr/local/share/acme.sh ». Maintenant, il faut régénérer le fichier « .profile » de l'utilisateur courant (« root ») pour pouvoir utiliser immédiatement les commandes Shell. Pour cela, tapez simplement : $ source ~/.profile · Vérifier si besoin les droits d'exécution du fichier « acme.sh » : $ cd $ACME_HOME $ ls -al Normalement c’est bon mais si besoin, tapez : $ chmod a+x acme.sh · On active la mise à jour automatique du client (c’est préférable mais ce n’est pas une obligation) : $ ./acme.sh --upgrade --auto-upgrade Nota 1 : si vous souhaitez désactiver la mise à jour automatique d’ACME, tapez : $ ./acme.sh --upgrade --auto-upgrade 0 Comme vous pouvez aussi commenter manuellement la ligne : AUTO_UPGRADE="1" dans le fichier « /usr/local/share/acme.sh/account.conf » par l’ajout du caractère « # » en tout début de ligne. Nota 2 : Si vous êtes curieux et que vous souhaitez voir toutes les commandes disponibles pour ACME, tapez : $ ./acme.sh --help NE PAS quitter la session SSH 3 Configuration DNS 3.1 Création des clés Pour générer un certificat « wilcard » et pouvoir le renouveler automatiquement, on va donc utiliser l’API d’OVH. Pour ce faire, on va créer une application dans l’API qui va nous permettre de générer trois clés nommées respectivement : « application key », « application secret » et « consumer key ». Il est aussi une bonne pratique de sécurité que de limiter ce qu'une clé API donnée peut faire, dans le cas où elle serait perdue, volée ou que quelque chose de mal se produirait et ce, pour en limiter les dommages potentiels. Cela tombe bien, les clés API OVH peuvent être limitées à une zone de domaine spécifique à l'aide d'un mécanisme de modèle simple. On va donc en profiter pour restreindre une clé API OVH à la gestion de « votre-domaine.tld », en utilisant les paramètres suivants : GET=/domain/zone/votre-domaine.tld/* &POST=/domain/zone/votre-domaine.tld/* &PUT=/domain/zone/votre-domaine.tld/* &GET=/domain/zone/votre-domaine.tld &DELETE=/domain/zone/votre-domaine.tld/record/* Il est clair que cela peut facilement être personnalisé pour prendre en charge un ou plusieurs domaines si le besoin en est. Je vous renvoie à la documentation en ligne d’OVH pour plus de détails. · On se rend donc sur l’API d’OVH en saisissant l’URL suivante dans un navigateur WEB : https://api.ovh.com/createToken/?GET=/domain/zone/votre-domaine.tld/*&POST=/domain/zone/votre-domaine.tld/*&PUT=/domain/zone/votre-domaine.tld/*&GET=/domain/zone/votre-domaine.tld&DELETE=/domain/zone/votre-domaine.tld/record/* Nota : Dans le cas où vous ne souhaiteriez pas restreindre la gestion de la clé API OVH à votre domaine, il suffit simplement d’utiliser les paramètres suivants : ?GET=/domain/zone/* &POST=/domain/zone/* &PUT=/domain/zone/* &DELETE=/domain/zone/*/record/* o L’URL à utiliser pour aller sur l’API d’OVH, est alors : https://api.ovh.com/createToken/?GET=/domain/zone/*&POST=/domain/zone/*&PUT=/domain/zone/*&DELETE=/domain/zone/*/record/* · Donc avec le premier cas, on arrive sur l’écran suivant : Nota : Dans le second cas l’écran est très similaire, je vous laisse vous adapter. · On saisit les informations : o Account ID : votre identifiant principal de connexion chez OVH Nota : Si vous utilisez votre @Mail vous aurez un message d’erreur lors de la création des clés. o Password : votre mot de passe de connexion chez OVH. o Script name : Ce que vous voulez (par ex : « Synology_acme_sh ») mais avec que des caractères, pas d’espaces ni de points et pas de caractères spéciaux sinon cela bloque. o Script description : Ce que vous voulez (par ex : « Certificat wilcard LE – ACME ». o Validity : Dans le popup sélectionnez l’item « Unlimited ». · On clique en fin sur le bouton « Create keys ». · On obtient l’écran suivant, où il convient immédiatement de copier les clés et de les sauvegarder dans un fichier « .txt » : 3.2 Retour dans la session SSH · Taper successivement les commandes suivantes : $ export OVH_END_POINT=ovh-eu $ export OVH_AK="votre application key" $ export OVH_AS="votre application secret" $ export OVH_CK="votre consumer key" 4 Création du certificat Avant de créer effectivement le certificat il convient de préciser un point sur la méthode de chiffrement associée à la génération du certificat LE. Sans aucun paramètre spécifique, ACME utilise une clé de chiffrement de type RSA fixée à 2048 bits par défaut. Dans notre cas, on va directement forcer cette clé RSA à 4096 bits pour renforcer le niveau de sécurité, ce qui se fait par l’emploi du paramètre « -- keylength 4096 » dans la commande de création du certificat. Maintenant pour ceux qui le souhaitent, on peut aussi passer en mode « paranoïaque » et poussez plus loin les choses en adoptant un chiffrement basé sur une clé ECDSA qui elle s’appuie sur des courbes elliptiques. Malgré une faible longueur, ces clés sont très robustes et peut-être bien plus sécures que les clés RSA et sachant aussi que ces dernières sont déjà bien suffisantes pour nos besoins courants. Pour comparaison, une clé ECDSA 256 bits est équivalente à une clé RSA 3072 bits, et une clé ECDSA 384 bits est équivalente à une clé RSA 7680 bits ! À noter que LE reconnait les courbes elliptiques P-256 et P-384 mais le P-521 n'est pas encore reconnu. Donc dans ce dernier cas de figure, le paramètre à employer serait par exemple : « -- keylength ec-394 ». A vous de voir … Bon, il est maintenant vraiment temps de créer le certificat « wilcard » LE pour « votre-domaine.tld » : · Tapez successivement les commandes suivantes : $ cd $ACME_HOME $ export CERT_DOMAIN="votre-domaine.tld" $ export CERT_WDOMAIN="*.votre-domaine.tld" $ export CERT_DNS="dns_ovh" $ ./acme.sh --issue --keylength 4096 -d "$CERT_DOMAIN" -d "$CERT_WDOMAIN" --dns "$CERT_DNS" --set-default-ca --server letsencrypt Edit du 20/06/2021 : Suite aux récentes évolutions du Shell script ACME la commande de création du certificat doit être complétée par deux options. En effet, dorénavant lors de la création d'un nouveau certificat, par défaut c'est un certificat ZeroSSL qui est créé par ACME. Donc dans notre cas, comme l'on veux générer un certificat LesEncrypt, on doit ajouter les options suivantes à la commande de création pour forcer la génération du certificat LE : --set-default-ca --server letsencryp ainsi le shell script ACME prendra en compte ce choix qu'il retiendra d'ailleurs par la suite lors du renouvellement du certificat. Le processus de création du certificat se déroule et affiche un message du type : /usr/local/share/acme.sh$ ./acme.sh --issue --keylength 4096 -d "$CERT_DOMAIN" -d "$CERT_WDOMAIN" --dns "$CERT_DNS" [Sun May 24 22:42:07 CEST 2020] Create account key ok. [Sun May 24 22:42:07 CEST 2020] Registering account [Sun May 24 22:42:08 CEST 2020] Registered [Sun May 24 22:42:08 CEST 2020] ACCOUNT_THUMBPRINT='l7IOxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfro' [Sun May 24 22:42:08 CEST 2020] Creating domain key [Sun May 24 22:42:13 CEST 2020] The domain key is here: /volume1/Certs/votre-domaine.tld/ votre-domaine.tld.key [Sun May 24 22:42:13 CEST 2020] Multi domain='DNS:votre-domaine.tld,DNS:*.votre-domaine.tld' [Sun May 24 22:42:13 CEST 2020] Getting domain auth token for each domain [Sun May 24 22:42:15 CEST 2020] Getting webroot for domain='votre-domaine.tld' [Sun May 24 22:42:15 CEST 2020] Getting webroot for domain='*.votre-domaine.tld' [Sun May 24 22:42:15 CEST 2020] Adding txt value: TLMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxQWk for domain: _acme-challenge.votre-domaine.tld [Sun May 24 22:42:15 CEST 2020] Using OVH endpoint: ovh-eu [Sun May 24 22:42:15 CEST 2020] Checking authentication [Sun May 24 22:42:16 CEST 2020] Consumer key is ok. [Sun May 24 22:42:16 CEST 2020] Adding record [Sun May 24 22:42:17 CEST 2020] Added, sleep 10 seconds. [Sun May 24 22:42:27 CEST 2020] The txt record is added: Success. [Sun May 24 22:42:27 CEST 2020] Adding txt value: QXMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkJQ for domain: _acme-challenge.votre-domaine.tld [Sun May 24 22:42:27 CEST 2020] Using OVH endpoint: ovh-eu [Sun May 24 22:42:27 CEST 2020] Checking authentication [Sun May 24 22:42:27 CEST 2020] Consumer key is ok. [Sun May 24 22:42:27 CEST 2020] Adding record [Sun May 24 22:42:28 CEST 2020] Added, sleep 10 seconds. [Sun May 24 22:42:38 CEST 2020] The txt record is added: Success. [Sun May 24 22:42:38 CEST 2020] Let's check each dns records now. Sleep 20 seconds first. [Sun May 24 22:42:58 CEST 2020] Checking votre-domaine.tld for _acme-challenge.votre-domaine.tld [Sun May 24 22:42:58 CEST 2020] Domain votre-domaine.tld '_acme-challenge.votre-domaine.tld' success. [Sun May 24 22:42:58 CEST 2020] Checking votre-domaine.tld for _acme-challenge.votre-domaine.tld [Sun May 24 22:42:59 CEST 2020] Domain votre-domaine.tld '_acme-challenge.votre-domaine.tld' success. [Sun May 24 22:42:59 CEST 2020] All success, let's return [Sun May 24 22:42:59 CEST 2020] Verifying: votre-domaine.tld [Sun May 24 22:43:02 CEST 2020] Success [Sun May 24 22:43:02 CEST 2020] Verifying: *.votre-domaine.tld [Sun May 24 22:43:06 CEST 2020] Success [Sun May 24 22:43:06 CEST 2020] Removing DNS records. [Sun May 24 22:43:06 CEST 2020] Removing txt: TLMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxQWk for domain: _acme-challenge.votre-domaine.tld [Sun May 24 22:43:06 CEST 2020] Using OVH endpoint: ovh-eu [Sun May 24 22:43:06 CEST 2020] Checking authentication [Sun May 24 22:43:06 CEST 2020] Consumer key is ok. [Sun May 24 22:43:09 CEST 2020] Removed: Success [Sun May 24 22:43:09 CEST 2020] Removing txt: QXMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkJQ for domain: _acme-challenge.votre-domaine.tld [Sun May 24 22:43:09 CEST 2020] Using OVH endpoint: ovh-eu [Sun May 24 22:43:09 CEST 2020] Checking authentication [Sun May 24 22:43:09 CEST 2020] Consumer key is ok. [Sun May 24 22:43:13 CEST 2020] Removed: Success [Sun May 24 22:43:13 CEST 2020] Verify finished, start to sign. [Sun May 24 22:43:13 CEST 2020] Lets finalize the order, Le_OrderFinalize: https://acme-v02.api.letsencrypt.org/acme/finalize/xxxxxxxxx/xxxxxxxxxxxxxx [Sun May 24 22:43:14 CEST 2020] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5c1f [Sun May 24 22:43:15 CEST 2020] Cert success. -----BEGIN CERTIFICATE----- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -----END CERTIFICATE----- [Sun May 24 22:43:15 CEST 2020] Your cert is in /volume1/Certs/votre-domaine.tld/votre-domaine.tld.cer [Sun May 24 22:43:15 CEST 2020] Your cert key is in /volume1/Certs/ votre-domaine.tld/votre-domaine.tld.key [Sun May 24 22:43:15 CEST 2020] The intermediate CA cert is in /volume1/Certs/votre-domaine.tld/ca.cer [Sun May 24 22:43:15 CEST 2020] And the full chain certs is there: /volume1/Certs/votre-domaine.tld/fullchain.cer Voilà déjà une bonne chose de faite … NE PAS quitter la session SSH 5 Déploiement du certificat Comme expliqué en préambule, Synology nous a facilité la vie pour le déploiement des fichiers du(des) certificat(s) généré(s). Cela se passe par l’emploi du « Synology DSM deployhook ». 5.1 Cas de la double authentification Si vous n’utilisez pas la double authentification pour vous connecter à votre NAS, passez directement au §5.2 ci-dessous. Mais avant de réaliser le déploiement effectif du certificat, il y a encore un point préciser car il y a un paramètre supplémentaire à prendre en compte dans le cas où, comme moi vous utilisez la double authentification pour vous connecter à votre NAS. En effet, si on ne renseigne pas ce paramètre, le processus de double authentification viendrait bloquer le déploiement du certificat tel qu’il sera décrit ci-après. Ce serait dommage convenez-en. Donc, habituellement lorsqu’on se connecte au NAS après avoir saisi son id/pseudo et son mot de passe, la double authentification réclame la saisie d’un code à six chiffres que l’on obtient à partir d’une application tierce installée idéalement sur un smartphone/iPhone. Pour n’en citer que quelques-unes, il y a : « FreeOTP Authenticator », « Google Authenticator », « Microsoft Authenticator », etc … (le choix est grand ! - pour la mise en place de la double authentification sur le NAS, reportez-vous à l’excellent Tutoriel de @Fenrir sur la sécurisation des accès au NAS). Bref, on récupère et on saisit donc ce code à six chiffres et on coche la case « Faire confiance à ce périphérique ». Cette dernière action a pour effet caché de créer un « cookie » dans votre navigateur qui lui, évite par la suite que ce code à six chiffres, ne vous soit systématiquement demandé à chaque connexion. Ce « cookie » stocke en interne un code nommé « DID » dont il nous faut récupérer la valeur pour alimenter le paramètre suscité. Pour récupérer la valeur de ce code « DID », normalement un simple clic gauche sur le cadenas situé à gauche de la barre d’URL du navigateur, suivi de la sélection de l’item « cookies » permet d’afficher ce code « DID ». Sauf que cela ne marche pas avec le navigateur FireFox. Pour contourner le problème, j’ai installé l’excellent module complémentaire « Cookie Quick Manager » dans FireFox. Ensuite on procède ainsi : · Se placer sur la page de connexion ou si déjà connecté, sur la page du navigateur affichant le bureau DSM de votre NAS. · Dans le popup de « Cookie Quick Manager », clic gauche et sélectionner l’item « Rechercher les cookies pour : URL de la page suscitée ». Cela peut-être selon : « https://nom-du-nas.ndd.tld » ou http://@IP_du_NAS:5000 ou encore « https://@IP_du_NAS:5001 ». · Une nouvelle page s’ouvre dans le navigateur, vous montrant tous le détail du cookie associé à la page du NAS. · Dans la partie droite de cette page, on trouve la valeur du fameux code « DID ». · Sélectionnez et Copiez cette valeur et refermez la page du cookie. · Revenez sur la session SSH et tapez la commande suivante en y collant la valeur du « DID » : $ export SYNO_DID=xxxxxxxxxxxxxxxValeur_du_DIDxxxxxxxxxxxxxxxxx Edit du 10/01/2021 Suite au retour de plusieurs utilisateurs dont le renouvellement du certificat avait échoué avec un message du style : « Tue Dec 15 15:58:28 CET 2020] Unable to authenticate to localhost:5000 using http. [Tue Dec 15 15:58:28 CET 2020] Check your username and password. » voici la « parade ». En fait, ce message survient parce que le cookie DID est périmé. Il s’avère qu’il n’a en fait qu’une durée de vie d’un mois et qu’il change donc tous les mois. Aussi, toute l’astuce va être d’aller éditer le cookie et de modifier sa date de péremption pour la repousser aux « calandres grecques ». Donc pour cela, comme expliqué ci-avant, vous éditez le cookie DID et vous modifiez le champ « expire » en indiquant une date en 2050 par exemple. Cela devrait suffire 😀. Dans le cas, où le cookie DID aurait changé, il vous faut alors aller modifier, dans une session SSH sous l’utilisateur « root » avec PuTTY ou WinSCP sur Windows ou dans un Terminal sur Mac, le fichier « /volume1/Certs/votre-domaine.tld/votre-domaine.tld.conf » pour mettre en accord la valeur de votre nouveau cookie DID avec le contenu de la variable « SAVED_SYNO_DID » sauvegardée par le système dans ce fichier. Ajout du 2021-02-15 : Il faut aussi mettre en accord la variable « SAVED_DID » qui se trouve elle, dans le fichier « /usr/local/share/acme.sh/account.conf ». Toujours pareil, attention lors du copier/coller de la valeur à ne pas prendre de caractères parasites ! N’oubliez pas aussi d’enregistrer le fichier à l’issue de vos modifications. Ainsi, plus de soucis de renouvellement à ce niveau … 5.2 Réalisation du déploiement du certificat Nota préliminaire : Tout ce qui suit présume que vous n’avez pas quitté la présente session SSH. Sinon, il faut réexporter toutes les variables définies précédemment. Sans quoi rien ne fonctionnera correctement ! Ce serait dommage, non ? Maintenant, deux cas de figure se présentent selon que l’on procède à un déploiement du nouveau certificat : · avec un mode « Annule et remplace » du certificat existant marqué « par défaut », · ou que l’on se contente d’ajouter simplement le nouveau certificat à la liste existante de vos certificats. Vous avez le choix, c’est vous qui décidez … 5.2.1 Mode « annule et remplace » du certificat par défaut Rappel : Ici on va ECRASER le certificat marqué par défaut dans le tableau de bord de DSM. Il n’existera plus !!! Vous êtes prévenus … · Dans la session SSH tapez successivement les commandes suivantes : o Par prudence, on vérifie que l’on est bien toujours placé dans le répertoire : « /usr/local/share/acme.sh ». $ pwd o Selon votre usage, décommentez et exécutez l’une ou deux ou les trois commandes suivantes : # export SYNO_Scheme="http" Par défaut : « http » mais on peut fixer à « https » # export SYNO_Hostname="localhost" Par défaut : « localhost » mais à spécifier si vous n’utilisez pas sur la présence machine. Les « très initiés » comprendront. # export SYNO_Port="5000" Port utilisé pour DSM, par défaut : 5000 pour HTTP et mais on peut fixer à 5001 pour HTTPS. o On poursuit les définitions de variables d’environnement : Attention ici, les « simples cotes » « ' » sont utilisées pour « échapper » les éventuels caractères spéciaux présents dans vos identifiants et mots de masse. $ export SYNO_Username='DSM_Admin_Username' $ export SYNO_Password='DSM_Admin_Password!123' La commande suivante est quant à elle impérative. Elle correspond à la description du certificat visible dans le tableau de bord de DSM. Toutefois pour pouvoir remplacer le certificat par défaut, il est nécessaire de spécifier une chaîne vide pour ce paramètre. Ne me demandez pas pourquoi ! (si un « initié » sait, je corrigerai en conséquence avec l’explication du pourquoi). $ export SYNO_Certificate="" · Et on déploie enfin le certificat … $ ./acme.sh --deploy -d "$CERT_DOMAIN" --deploy-hook synology_dsm 5.2.2 Mode « ajout » du nouveau certificat Ici, on va simplement ajouter le nouveau certificat à la liste des certificats éventuellement déjà présents sur le NAS. Le processus est sensiblement le même que celui décrit au §5.2.1 ci-dessus. · Dans la session SSH tapez successivement les commandes suivantes : o Par prudence, on vérifie que l’on est bien toujours placé dans le répertoire : « /usr/local/share/acme.sh ». $ pwd o Selon votre usage, décommentez et exécutez l’une ou deux ou les trois commandes suivantes : Par défaut : « http » mais on peut fixer à « https » # export SYNO_Scheme="http" Par défaut : « localhost » mais à spécifier si vous n’utilisez pas sur la présence machine. Les « très initiés » comprendront. # export SYNO_Hostname="localhost" Port utilisé pour DSM, par défaut : 5000 pour HTTP et mais on peut fixer à 5001 pour HTTPS (dans ce dernier, il faut ajouter l'option "--insecure" à la commande de déploiement donnée plus loin). # export SYNO_Port="5000" o On poursuit les définitions de variables d’environnement : Attention ici, les « simples cotes » « ' » sont utilisées pour « échapper » les éventuels caractères spéciaux présents dans vos identifiants et mots de masse. $ export SYNO_Username='DSM_Admin_Username' $ export SYNO_Password='DSM_Admin_Password!123' La commande suivante est quant à elle impérative. Elle correspond à la description du certificat visible dans le tableau de bord de DSM. Toutefois pour pouvoir ajouter le nouveau certificat, il est nécessaire de spécifier une chaîne non vide pour ce paramètre. Là, cela paraît évident … (Quoi que …) Vous nommez votre certificat comme bon vous semble. Pour ma part je lui donne le nom qui précise mon domaine « ACME_Wilcard_LE_*.ndd.tld » pour plus de clarté. Encore une fois, c’est vous qui voyez … $ export SYNO_Certificate="Nom_du_certificat" o Une dernière variable d’environnement : Par défaut : ce paramètre est sur « off » et n’est pas enregistré mais on peut le fixer à « 1 » pour indiquer au système de créer le certificat s’il n’existe pas déjà. $ export SYNO_Create=1 · Et on déploie enfin le certificat … $ ./acme.sh --deploy -d "$CERT_DOMAIN" --deploy-hook synology_dsm Dans cette commande, pour le cas où vous le souhaiteriez, on peut préciser un domaine de second niveau. La commande est alors : $ ./acme.sh --deploy -d "secondNiv.$CERT_DOMAIN" --deploy-hook synology_dsm Nota : On peut remarquer dans le message ci-dessus la ligne : « http services were NOT restarded », ne sachant pas ce qu’il faut en faire, je l’ai provisoirement ignorée. Je n’ai d’ailleurs pas constaté par la suite de disfonctionnements qui lui soient liés. Cela dit, je compte sur les « initiés » pour me dire s’il y a une quelconque action à exécuter vis-à-vis de ce message. D’avance merci, je mettrai à jour la présente procédure en conséquence. Toujours est-il, le nouveau certificat est maintenant visible dans « Panneau de configuration / Sécurité /Certificat » de DSM : Ici par défaut on constate que : · d’une part le nouveau certificat a été automatiquement marqué pour une utilisation « par défaut », · • et d’autre part là, deux cas de figures peuvent se présenter : Soit vous êtes dans le cas d’une toute première création du certificat i.e. aucun autre certificat pour « votre-domaine.tld » n’existait auparavant, alors il est obligatoire de réaliser une affectation manuelle du certificat aux services qui vont l’utiliser pour une bonne prise en compte de celui-ci. Pour cela : Sélectionnez le certificat. Cliquez sur le bouton « Configurer » et affectez le certificat aux services de votre choix en le sélectionnant dans le popup en regard du service concerné. Soit vous êtes dans le cas d’une nouvelle création du certificat avec déjà un certificat pour « votre-domaine.tld » existant auparavant, alors avec cette création, le constat est qu’il n’a pas repris les assignations aux services qui existaient pour le certificat précédemment marqué par défaut. Il vous faut alors reprendre ces assignations manuellement. Toujours pareil, vous adaptez à votre besoin … Nota : Dans ce dernier cas, sachez que ce comportement est normal puisque l’on crée le certificat. Un dernier constat : on ne le voit pas sur la copie d’écran, mais bien évidemment, le certificat précédemment marqué pour une utilisation par défaut, n’a pas disparu. Il est bien toujours présent dans la liste des certificats. Il n’est tout simplement plus marqué pour une utilisation par défaut. Rien n’a été perdu, c’est ce qui importe ! NE PAS quitter la session SSH 6 Configurer le renouvellement du certificat Maintenant que le certificat « wilcard » LE a été créé et déployé sur le NAS, il faut assurer son renouvellement à l’échéance fatidique de 3 mois. En fait, cette échéance est variable dans le sens où selon la date de génération du certificat il peut se passer entre 89, 90, 91 et 92 jours. Mais en pratique lors de son exécution, le script « acme.sh » contrôle par défaut si la date courante est supérieure de plus de 60 jours par rapport à la date de création du certificat avant de lancer ou non le renouvellement effectif de celui-ci. Par sécurité, on ne va pas « s’embêter », on va programmer tout simplement cette opération de contrôle du besoin de renouvellement, avec une exécution hebdomadaire à un horaire de faible charge du NAS (par exemple tous les Lundi et donc a priori la nuit soit à 00h00). Libre à vous de modifier cette périodicité selon vos propres besoins. C’est vous qui voyez … Mais avant toute choses, on va installer un petit programme/script écrit en langage Python (Encore MERCI à @bruno78 qui l’a développé) destiné à compléter l’action normale du script « acme.sh » en réalisant un certain nombre d’autres opérations spécifiques et rendues nécessaires par l’environnement du NAS Synology (pour les plus curieux, ces actions sont explicitées en détail au § 10 ci-dessous). Rassurez-vous, vous n’avez pas besoin de connaître le langage Python. Celui-ci est nativement géré par le NAS Synology au travers du package « Python module ». Vérifiez juste que ce package est bien installé sur votre NAS et auquel cas installez le via le centre de paquets. EDIT 21/08/2020 Le script Python est maintenant compatible de la dernière et actuelle version 3.x.x du langage Python. Si vous envisagez d’utiliser Python3 il vous faut alors installer le package « Python3 » disponible dans la rubrique « Outils de développement » dans le centre de paquets de DSM. Donc, le package « Python module » ou le package « Python3 » étant installé : Créez un répertoire spécifique pour accueillir ce script Python : On crée le répertoire : « /volume1/Scripts » et on s’y place : Nota 1 : Ce chemin peut être tout autre selon vos besoins, mais veillez à rester cohérent dans son utilisation par la suite. Nota 2 : Ce répertoire, tout comme le répertoire « Volume1/Certs » créé précédemment, n’est pas un répertoire partagé au sens Synology. De fait, il ne sera donc pas visible sous « File Station » par exemple ce qui quelque part le protège de vos utilisateurs. Il ne sera donc visible qu’au travers d’une connexion directe au NAS dans une session SSH sous l’utilisateur « root ». $ cd /volume1 $ mkdir -p Scripts $ cd Scripts Téléchargez sur votre PC/Mac le fichier du script Python : acme_renew.py Copiez/Collez ce fichier sur le NAS dans le répertoire « /volume1/Scripts ». (via WinSCP c’est on ne peut plus simple !). Le script Python étant en place, on va programmer effectivement l’exécution périodique de ce script. Nota :En préalable et pour ceux qui seraient tentés de le faire, il faut également savoir qu’Il n'est pas conseillé de configurer directement un « cron job » personnalisé car le conseiller de sécurité DSM va rapidement vous rappeler à l’ordre et vous dira que vous avez un avertissement critique concernant un ou des cron job(s) inconnu(s). Donc pour ce faire, on va configurer une tâche dans le planificateur de tâches de DSM. · Dans « Panneau de configuration / Planificateur de tâches », cliquer sur le bouton « Créer » et sélectionner dans le popup : « Tâche planifiée / Script défini par l’utilisateur » · Dans la fenêtre « Créer une tâche » onglet « Général » nommez la tâche à exécuter périodiquement. Par exemple : « RenewCertif_W_LE ». L’utilisateur doit être « root » et la case « Activé » est cochée. · Dans l’onglet « Paramètres de la tâche » : o Pour la partie « Paramètres généraux » : si vous voulez recevoir par eMail les détails d’exécution de la tâche : cochez la case correspondante et saisissez votre @Mail. Vous pouvez aussi décider de ne recevoir ces eMails uniquement si l’exécution de la tâche se termine de façon anormale. Dans ce cas cochez la case correspondante. o Pour la partie « Exécuter la commande » : saisir la commande suivante : python /volume1/Scripts/acme_renew.py -l votre-domaine.tld Ou si vous souhaitez utiliser la version sous « Python3 » : python3 /volume1/Scripts/acme_renew.py -l votre-domaine.tld Dans cette commande : - Le chemin d’accès au script « acme_renew.py » (ici « /volume1/Scripts/ ») devra être modifié selon que vous en aurez défini un autre ci-avant. - Le paramètre « -l » est quant à lui optionnel. Libre à vous de l’indiquer ou pas. Néanmois je ne peux que vous conseiller de le mentionner pour le cas où … On n’est jamais trop prudent. Si vous l’indiquez explicitement, sachez qu’à chaque renouvellement, un fichier de « log » nommé « acmelog » sera automatiquement généré dans le répertoire « /volume1/Certs/Acme_renew/ » lui-même créé automatiquement par le script Python. Donc si un quelconque problème survenait, vous disposerez alors d’une trace complète de toutes les opérations réalisées lors du processus de renouvellement du certificat« wilcard » LE. Si tout est OK, vous aurez tout de même une trace mais forcément « light ». - Le paramètre « votre-domaine.tld » est quant à lui OBLIGATOIRE et est bien évidemment à remplacer par l’intitulé de votre propre domaine pour lequel le certificat doit être renouvelé. · Dans l’onglet « Programmer » : o Sélectionner « Exécuter les jours suivants » o Dans le popup, cochez la case « Lundi ». o Dans la zone « Temps » : laisser les valeurs par défaut. · Valider l’ensemble de votre paramétrage en cliquant sur le bouton « OK ». EDIT du 20/06/2021 : Suite aux récentes évolutions du Shel script ACME (voir plus haut pour la commande de création du certificat) il n'y a normalement rien à faire si vous disposer déjà d'un certificat LE. Le Shell script ACME de lui même s'adapte et assure le rouvellement de votre certificat comme avant. Toutefois, afin de s'assurer et forcer ce renouvellement avec LetEncrypt, il convient d'ajouter (sous SSH à la fin du fichier) la ligne suivante dans votre fichier "account.conf" (/usr/local/share/acme.sh/account.conf) : DEFAULT_ACME_SERVER='https://acme-v02.api.letsencrypt.org/directory' 7 En cas de problème suite à une mise à jour de DSM En cas de problème suite à une mise à jour de DSM, on peut réparer l’environnement ACME en exécutant les commandes suivantes dans une session SSH sous l’utilisateur « root » : $ cd /usr/local/share/acme.sh $ ./acme.sh --force --upgrade --nocron --home /usr/local/share/acme.sh Vous pouvez aussi ajouter la ligne suivante dans le fichier « /root/.profile » et régénérer le « .profile » en tapant : . "/usr/local/share/acme.sh/acme.sh.env" $ source /root/.profile 8 Arrêter le renouvellement du certificat Pour arrêter le renouvellement d’un certificat, vous pouvez exécuter dans une session SSH sous l’utilisateur « root » , les commandes suivantes pour supprimer le certificat de la liste de renouvellement : $ cd /usr/local/share/acme.sh $ ./acme.sh --remove -d votre-domaine.tld Les fichiers « .cert » et « .key » de votre certificat ne sont pas supprimés du disque. Vous pouvez supprimer le répertoire correspondant (par exemple : « /volume1/Certs/votre-domaine.tld ») par vous-même. 9 Un dernier truc utile Vous pouvez éventuellement avoir besoin de convertir votre certificat en un fichier « .p12 » ou « .pfx » exploitable sous Android. C’est utile par exemple, pour un client VPN installé sur le smartphone. Dans ce cas, vous pouvez exécuter dans une session SSH sous l’utilisateur « root » , les commandes suivantes : $ ACME_HOME="/usr/local/share/acme.sh" $ CERT_HOME="/volume1/Certs" $ cd $ACME_HOME $ ./acme.sh --toPkcs -d votre-domaine.tld Enter Export Password: Verifying - Enter Export Password: [Mon May 25 20:00:28 CEST 2020] Success, Pfx is exported to: /volume1/Certs/votre-domaine.tld/votre-domaine.tld.pfx « Password » est le mot de passe utilisé pour ouvrir la session SSH. 10 Évolution du processus de renouvellement du certificat EDIT du 11/08/2020 et du 21/08/2020 Afin d’améliorer la recherche de la (les) cause(s) d’un éventuel dysfonctionnement dans le processus de renouvellement du certificat, la trace complète de toutes les opérations effectuées lors du déroulement de ce processus a été remaniée de façon à fournir un historique « tournant ». Ces informations sont inscrites dans un fichier nommé « acme_renew_python.log.x » qui est automatiquement généré dans le répertoire « /volume1/Certs/Acme_renew ». Cette trace est systématiquement générée que vous utilisiez ou non l’option « -l » pour obtenir un « log » du processus. Au total, vous disposerez de neuf (9) fichiers de trace sachant que le fichier ayant l’indice « 1 » sera toujours celui correspondant à la dernière exécution du script, donc le plus récent. Si pour une quelconque raison vous aviez besoin de renouveler votre certificat LE avant sa date normale de renouvellement, une option dédiée à cet effet à été ajoutée au script Python (v1.40). Cette option « -f » ou « --force » doit toutefois être utilisée avec parcimonie. En effet, LetsEncript limite le nombre de modifications d’un certificat d’un même domaine à cinq (5) par semaines calendaires. Au-delà de ces cinq (5) modifications dans une même semaine, vous serez bloqués et ne pourrez pas renouveler votre certificat durant une semaine à compter de la dernière modification tentée. Vous êtes donc prévenus ... EDIT du 25/07/2020 Suite aux retours de plusieurs utilisateurs « initiés », il a été fait le constat que le processus de renouvellement du certificat tel qu’il existait, n’était pas pleinement satisfaisant. En effet, même si en apparence le certificat semblait renouvelé dans le « Panneau de configuration / Sécurité / Certificat » avec une nouvelle date d’expiration affichée en vert et qu’il était bien marqué « par défaut », en fait il ne l’était pas complétement. À l’usage il générait encore des messages liés à une connexion non sécurisée avec une erreur du type « SLL_ERROR_BAD_CERT_DOMAIN ». La raison en était que les fichiers « .pem » du nouveau certificat n’avaient en fait, pas été recopiés partout où ils auraient dû l’être et du coup les navigateurs Web utilisaient toujours les anciens fichiers. Pour les plus sceptiques vis-à-vis de cette apparence trompeuse et pour bien se rendre compte que c’était toujours l’ancien certificat qui était pris en compte par les navigateurs Web, il suffit effectuer les manipulations suivantes : Effacer le cache du navigateur Web. Recharger le site web consulté où l’erreur SSL était apparue. Examiner le certificat utilisé par le navigateur dans ce cas. On constate que c’est toujours l’ancien certificat à la vue de sa date d’expiration. On obtient aussi la preuve que le processus de renouvellement pour le cas particulier de l’environnement du NAS Synology n’était pas complet, en examinant via une connexion SSH sous « root », les fichiers « .pem » contenus dans le répertoire « /usr/local/etc/certificate/WebStation/vhost_xxxxxx ». Ces fichiers correspondaient exactement à l’ancien certificat. Par ailleurs, après sa création et/ou son renouvellement, il avait été constaté que le nouveau certificat n’était pas non plus, appliqué et/ou réappliqué aux services à l'image de ce qui existait pour le certificat précédemment actif et marqué par défaut. Il fallait alors reprendre manuellement via le menu « Configurer », toutes les affectations de ce nouveau certificat aux différents services qui l’utilisaient. Opération laborieuse s’il en était … Nota : Je vous rappelle si besoin en est, qu’après toute création du certificat (qu’il en existe déjà un ou non pour « votre-domaine.tld »), cette opération d’affectation du certificat aux services est obligatoire pour la bonne prise en compte de celui-ci. Vous en conviendrez donc, du point de vue automatisation ce n’était pas top ! 🤔 Ces différents problèmes nous ont donc conduits @bruno78 et moi-même à plancher sur une automatisation COMPLETE de la procédure de renouvellement du certificat et il faut bien le dire ici, sans les talents de développeur de @bruno78, nous n’aurions pas aujourd’hui une procédure pleinement fonctionnelle et efficiente. Donc, @bruno78 a développé un script en langage Python nommé « acme_renew.py » qui réalise maintenant correctement tout le « boulot » si je puis dire. À noter que ce script dispose également de certaines fonctionnalités disponibles uniquement dans le cadre une utilisation manuelle en mode SSH sous « root » que je vais vous détailler plus loin. Pour d’ores et déjà satisfaire la curiosité des utilisateurs « initiés », de façon succincte, ce script Python réalise les opérations suivantes : Lecture des fichiers « INFO » et « DEFAULT » (« /usr/syno/etc/certificate/_archive ») Vérification de l’atteinte ou non de la date de renouvellement (minimum T0+60 jours, valeur par défaut inscrite dans le code du Shell script « acme.sh »). Sauvegarde du répertoire « /usr/syno/etc/certificate/_archive » y compris des fichiers « INFO » et « DEFAULT » Récupération des services du certificat originel par défaut selon qu’il a été généré avec une clé de chiffrement de type RSA ou ECDSA. Renouvellement du certificat : On reprend ici la commande originelle de renouvellement du script « acme.sh » à laquelle on a ajouté des paramètres spécifiques (« /usr/local/share/acme.sh/acme.sh --cron –force –debug --log --home /usr/local/share/acme.sh/ ») : « --force » pour le forcer à renouveler le certificat (la simple option « –renew » n’est pas suffisante car elle génère un message d’erreur qui stipule de surcroît d’utiliser l’option « --force », donc on applique cette option directement). « --debug » pour avoir un maximum de messages de traçage des opérations réalisées. « --log » pour récupérer les messages générés dans un fichier « Log » de trace. Lecture des nouveaux fichiers « INFO » et « DEFAULT » générés suite au renouvellement. Mise à jour du fichier « INFO » en inscrivant les services sur le nouveau certificat « par défaut » Renommage de la description de l'ancien certificat en "xxx_old". Distribution les nouveaux fichiers du certificat dans les répertoires système du NAS « /usr/syno/etc/certificate » et « /usr/local/etc/certificate ». Recherche et constitution de la liste des packages et services qui utilisent le certificat. Redémarrage global de ces packages et services en incluant leurs dépendances. Donc comme évoqué précédemment, le script Python « acme_renew.py » peut être utilisé selon deux modes de fonctionnement : En mode dit « Standard ou automatique » : c’est celui qui est typiquement utilisé pour la commande de renouvellement intégrée à la tâche périodique que vous avez définie dans DSM au § 6 ci-dessus et dans lequel la description des paramètres que le script accepte, est précisée. Veuillez-vous y reporter. En mode dit « Manuel » : ce mode correspond à une utilisation directe en lignes de commandes dans une connexion au NAS via une session SSH sous l’utilisateur « root ». Donc, ouvrez une connexion SSH sous « root » et tapez les commandes suivantes : $ cd /volume1/Scripts $ python acme_renew.py -h Avec ce paramètre « -h » vous obtenez une aide sur tous les paramètres utilisables avec le script Python « acme_renew.py » : Les informations fournies par cette option « -h » se suffisent à elles-mêmes. Elles ne seront donc pas décrites/détaillées plus avant. Nota : Dans cette aide le paramètre « ndd.tld » correspond bien évidemment à « l’intitulé » de votre domaine soit « votre-domaine.tld ». Toutefois, dans le cas particulier d’une utilisation avec le paramètre « -c » il convient de préciser ceci : En aucun cas vous ne devez utiliser la commande « python acme_renew.py -c votre-domaine.tld » ou « python3 acme_renew.py -c votre-domaine.tld » dans une fenêtre de console sous WinSCP ! La raison en est, que la console de WinSCP ne supporte pas l’exécution de commandes dites « interactives ». Si d’aventure vous faisiez cette erreur, sachez que vous allez entrer dans une boucle sans fin et que le seul moyen d’en sortir sera de « tuer » le process WinSCP dans le gestionnaire de tâches de Windows. Maintenant vous êtes prévenus ! Par contre, il n’y a aucun souci pour exécuter cette commande interactive dans une fenêtre « Terminal » de PuTTY sur PC (même si celle-ci est lancée à partir de WinSCP) ou d’une fenêtre « Terminal » sur Mac. Voilà c’est fini, profitez bien de votre certificat « wilcard » Let’sEncrypt !!! GRATUIT !!! et ne nécessitant plus d’ouvrir les ports 80 et/ou 443 sur votre NAS pour son renouvellement. À l’usage, on en oublierait presque la chose … Le fichier ".pdf" de cette procédure : Création_Certif_Wilcard_LE_avec_ACME_20210215.pdf Bien évidemment, je prendrais en compte toutes remarques et suggestions visant à corriger si besoin mais surtout à améliorer ce tutoriel. MERCI de vos retours ... Merci à @maxou56 pour ses compléments d’informations liées au monde Mac. Cordialement Oracle7😉
  20. Bonjour, les paquets WordPress disponibles avec nos NAS Synoogy (DSM 6) permettent de simplifier la mise en place d'un site web sur la base de ce CMS. Les procédures associées automatisent les différents liens techniques entre les briques logicielles requises. Cependant, les dépendances associés (version PHP, serveur apache) peuvent en dérouter certains, soucieux de : disposer d'une version PHP à jour éviter une couche logicielle supplémentaire pour le serveur web sachant que nos NAS fonctionnent nativement sur serveur web NGINX. Ce TUTO est fait pour : permettre une installation manuelle de WordPress sur la base du serveur natif installé sur nos NAS (NGINX) sans recourir (autant que possible) à d'autres paquets tels que PhPMyAdmin pour les éléments requis en lien avec la base de données MariaDB 10 PRÉ-REQUIS Quelques connaissances techniques générales sur le CMS wordpress (composants techniques, installation et fonctionnement général) quelques notions Linux (en shell) pour passer des commandes en accès SSH quelques notions SQL pour créer les éléments requis (user privilèges et base de données) pour l'utilisation du CMS WordPress disposer d'un utilisateur associé au groupe administrator pour passer les commandes citées et bien sur.. d'un NAS Synology sous DSM 6 et > (version utilisée pour la création du tuto - DSM 6.2.2-24922 Update 4) de notions avancées dans le paramètrage et l'administration de son NAS (sécurité et certificat) Par ailleurs, il est entendu que : un NDD (en propriété directe - chez un registar comme OVH ou autre - ou via un fournisseur gratuit comme Synology -NDD.synology.me par exemple) est créé les ports idoines pour un accès web de l'extérieur sont routés vers le NAS (à minima 443 et 80)* service WebStation installé, dossier web présent, site web accessible - ie ce qui est disponible sous ce dossier est visible en tant que pages html de l'extérieur ou à minima via un simple navigateur internet - (*) Si l'on souhaite accéder au site WordPress depuis l'extérieur. Cf d'autres tutos sur l'accès externe et la sécurité. Structure , modalités et "AVERTISSEMENTS" Afin d'éviter un long et très (trop) détaillé sujet, j'ai volontairement limité les actions, inclus des étapes de contrôle - ie si l'étape -1 n'est pas OK.. inutile de poursuivre... - et des images écrans, afin de rendre je l'espère, plus accessible l'ensemble pour le plus grand nombre, mais: l'ensemble des actions demeurent sous la responsabilité de celui qui les réalise. une telle installation même si elle n'enfreint pas les licences logicielles de nos NAS Synology ni des composants tiers utilisés, sort du cadre d'assistance potentielle dispensée par Synology. en clair en cas de problème y compris sur un autre sujet avec votre NAS, ils peuvent vous demander de revenir en arrière sur cette installation - jamais eu le cas de figure mais ils ont le droit - une mise à jour DSM peut changer certains éléments techniques paramétrés ainsi et "casser" l'installation - là encore, situation pas rencontrée suite à différentes MAJ réalisées.. Mais ça peut arriver 0- PAQUETS A INSTALLER WebStation est installé (sans paramètrage particulier) et à la saisie du NDD de votre NAS (pas de proxy ou dans ce cas il faut un NDD ou sous domaine pour votre site web) vous devez arriver à cette page (ou à minima http://ip_du_NAS) Récupérer la dernière version de WordPress depuis le site https://fr.wordpress.org/download/ déposer ce paquet dans le dossier web du NAS via FileStation. Décompresser l'archive - on doit avoir un dossier wordpress à la racine du dossier web. (A noter si plusieurs sites indépendants souhaités, on indice le dossier ou on le renomme) MariaDB 10 paramètré comme suit Avec un mot de passe définit pour root (l'admin de la base de données globale) PHP dernière version si pas déjà présent Optionnel mais pratique : l'éditeur de texte. Par défaut on suppose que les paquets sont installés sur le Volume1 du NAS. (à adapter par la suite si différent) Sur sa machine (PC sous Windows ou macOS ou Linux) Terminal pour accéder en mode SSH au NAS ou via un logiciel comme Putty pour Windows. Pour un accès SSH : Admin du NAS Panneau de configuration Terminal SNMP on coche l'accès qui va bien et les paramètres par défaut comme suit (sinon on adapte..) optionnel : un requeteur SQL si vous souhaitez effectuer des requêtes distantes (en réseau local) sur votre Base De données, par exemple HeidiSQL pour Windows ou Sequel Pro pour macOS 1 - CREER BASE DE DONNEES ET USER Dans cette étape, via l'accès SSH linux au NAS on entre dans l’interpréteur SQL de MariaDB pour créer la base de données pour WordPress et l'utilisateur administrateur pour cette base. Les étapes sont des commandes à saisir (les exemples ci-dessous peuvent être copiés mais doivent selon les cas adaptées) Attention la saisie du mot de passe n'est pas affichée : surveillez votre saisie. Accès SSH au NAS (via Terminal ou Putty selon la plateforme utilisée) passage en mode root sudo -i Appel de l'interpréteur Mysql de MariaDB /usr/local/mariadb10/bin/mysql -uroot -p Le mot de passe demandé ici est celui de root de MariaDB définit sur l'admin du NAS en amont. Création de la base de données pour WordPress : CREATE DATABASE BDmonsite; Création de l'utilisateur Admin de cette base : CREATE USER 'BDmonsite_admin'@'localhost' IDENTIFIED BY 'MAJmin&123'; BDmonsite_admin est le nom de cet utilisateur autorisé en local (localhost) ie depuis le NAS lui même avec MAJmin&123 comme mot de passe - Il faut respecter les exigences de mot de passe MariaDB 8 caractères Maj Min chiffres et symbole. On donne les droits d'administration à cet utilisateur sur la base concernée : GRANT ALL PRIVILEGES ON BDmonsite.* TO 'BDmonsite_admin'@'localhost'; Maintenant, pour que les nouveaux droits attribués soient pris en compte, il est nécessaire de lancer la requête FLUSH. FLUSH PRIVILEGES; [ Optionnel ] Vérifier la prise en compte des paramètres passés : SHOW DATABASES; SELECT User, Host FROM mysql.user; [optionnel +] créer un super utilisateur pour une utilisation sur réseau local via un requeteur SQL CREATE USER 'supermoi'@'192.168.1.%' IDENTIFIED BY 'MajMin#&987aliasroot'; Utilisateur 'supermoi' avec mot de passe 'MAjMin#&987aliasroot' autorisé depuis le réseau local. (A adapter selon le masque réseau chez vous - peut être limité à une IP ou ouvert au grand vent par % seul) Lui donner les droits complets GRANT ALL PRIVILEGES ON *.* TO 'supermoi'@'192.168.1.%'; On confirme FLUSH PRIVILEGES; On quitte MySql de MariaDB exit 2 - Créer l'hôte virtuel dans WebStation Admin du NAS, WebStation Vérification paramètrages : PHP dernière version et serveur web NGINX Adaptation du paramètrage PHP, on modifie le profile par défaut On s'assure que le cache PHP est activé ainsi que les plugins requis. (merci @Mic13710) ) Puis, on adapte le profil PHP pour certains items Sauf cas particulier pour un thème avancé ou si plusieurs sites WordPress, on peut dans ce cas, pour chaque hôte, spécifier le profile PHP utilisé. Il faut préciser le port et le chemin de la pile TCP utilisée par PHP pour MariaDB. Paramètres PHP Modifier le profil par défaut Onglet coeur filtrer sur mysqli saisir les valeurs (selon paramètrage MariaDB sur NAS) mysqli.default_port –> 3307 mysqli.default_socket –> /run/mysqld/mysqld10.sock Création de l'hôte virtuel pour le site utilisant WordPress monsite.fr représente le NDD ou sous domaine pour accéder au site wordpress. Pour le serveur c'est NGINX et pour PHP le profile par défaut paramètré. Pour l'accès en SSL : - HSTS pour la couche SSL (suppose un certificat associé) Optionnel : - HTTP/2 pour limiter l'usage de la bande passante (- vaste débat, longtemps décrié et sujet à des failles de sécurité aujourd'hui corrigées -) A Vérifier : En théorie DSM vous informe que pour gérer cet hôte virtuel le groupe http doit passer en écriture sur le dossier web. Si ce n'est le cas vérifier ce point dans l'administration du NAS. Requis si vous souhaitez pourvoir faire une MAJ de votre CMS et de ses plugins automatiquement (en cas contraire il faut mettre en place un lien ftp) 3 - Mise en conformité du certificat SSL avec le NDD utilisé pour le service web. Lors de la création de l’hôte virtuel, le certificat par défaut du NAS est associé. Si le NDD du site est différent du NDD du NAS il faut associer le certificat SSL en conséquence. (suppose qu'il est créé...) Admin du NAS panneau configuration sécurité onglet certificat Configurer associer site avec son certificat i.e : mon nas est mondomaine.com, mon site web siteweb.mondomaine.com. Mon certificat mondomaine.com est associé à siteweb.mondomaine.com. Dans la sécurité j'associe le bon certificat avec le bon domaine. Le siteweb n'apparait ici que si l'hôte virtuel est créé en amont. 4 - Adaptation spécifique pour WorpRess et serveur NGINX Afin d'éviter la mauvaise getion des erreurs 404 sur WordPress et autoriser le changement des permaliens, il faut ajouter manuellement un fichier de configuration NGINX dans un dossier créé par WebStation. a) Création du fichier a-1)) Copier le texte suivant : (ou récupérer le ici) location /{ try_files $uri $uri/ /index.php?$args; } a-2) Connexion au NAS, Editeur de texte, Fichier Nouveau fichier enregistrer format text codage UTF8 sous le nomdans le dossier web du NAS user.conf.wordpress-permalink b) Identification du dossier réceptacle de ce fichier selon les paramètres de WebStation accès SSH au NAS passage en mode root (sudo -i) on localise les dernieres lignes du fichier de configuration concerné : ATTENTION : depuis la version DSM7 le chemin pour localiser le fichier server.webstation-vhost.conf est : /etc/nginx/sites-enabled/. ATTENTION : depuis la version DSM7.2 dans ce dossier on trouve de configuration de webstation comme par exemple : webservice_portal_2000bf3a-bb82-4d3e-9b59-ab7f2258747d webservice_portal_3c616e71-dc68-457e-8d42-ed8428a5c2ba chacun représentant les services ajoutés. Il convient de lire le contenu de ces fichiers pour localiser le dossier vers lequel on trouvera le fichier de configuration indiquant le dossier où le fichier permalink est requis. More webservice_portal_3c616e71-dc68-457e-8d42-ed8428a5c2ba aficche toutes les informaitons le début permet de vérifier qu'on est sur le bon nom de domaine : ligne server_name : machintruc.com la dernières lignes le dossier dans lequel il faut ensuite se rendre include conf.d/.service.6bdb4391-b794-4c12-a94a-e9dd73c13169.383d4d42-325d-4b78-92e3-6ec9a3120b2f.conf*; ici le fichier est caché (débutant par un point) - .service.6bdb4391-b794-4c12-a94a-e9dd73c13169.383d4d42-325d-4b78-92e3-6ec9a3120b2f.conf*; AVANT DSM 7 tail /etc/nginx/app.d/server.webstation-vhost.conf Dans cet exemple le chemin est : /usr/local/etc/nginx/conf.d/3c616e71-dc68-457e-8d42-ed8428a5c2ba. en lien avec le NDD.COM correspondant au site web créé dans WebStation. A noter : si plusieurs sites Virtuels faire la commande MORE ou CAT et localiser selon le NDD concerné par cet hôte virtuel. c) copie du fichier issu du dossier web vers ce dossier (pour éviter des erreurs on le fait en 2 temps pour s'assurer d'être à destination en 1er lieu) Pour DSM avant 7.2 se déplacer dans ce dossier cd /usr/local/etc/nginx/conf.d/3c616e71-dc68-457e-8d42-ed8428a5c2ba copier le fichier issu du dossier web dans ce dossier cp /volume1/web/user.conf.wordpress-permalink user.conf.wordpress-permalink Bien respecter la syntaxe, partant du postulat que le dossier web est sur le volume1 [optionnel] Vérifier la présence du fichier ls On redémarre le serveur NGINX pour la prise en compte de cet ajout nginx -s reload DEPUIS DSM 7.2 se rendre dans le dossier /etc/nginx/conf.d faire un ls -a (pour affichier les dossier/fichiers cachés) MORE .service.6bdb4391-b794-4c12-a94a-e9dd73c13169.383d4d42-325d-4b78-92e3-6ec9a3120b2f.conf affiche le contenu du fichier de configuration (localisé précédement) et en dernière ligne le dossier où l'on va copier notre fichier pour les permaliens exemple : include /usr/local/etc/nginx/conf.d/383d4d42-325d-4b78-92e3-6ec9a3120b2f/user.conf*; ouf il est enfin localisé ! on peut le créer mkdir /usr/local/etc/nginx/conf.d/383d4d42-325d-4b78-92e3-6ec9a3120b2f se rendre dans ce dossier pour y copie rle fichier permalink cd /usr/local/etc/nginx/conf.d/383d4d42-325d-4b78-92e3-6ec9a3120b2f cp /volume1/web/user.conf.wordpress-permalink user.conf.wordpress-permalink On redémarre le serveur NGINX pour la prise en compte de cet ajout nginx -s reload Vous pouvez supprimer le fichier user.conf.wordpress-permalink situé en dossier web. Vous n'êtes ammenés à refaire cette manipulation que dans le cas où vous crééer un nouvel hôte virtuel dans WebStation - pour le CMS WordPress- (sinon mettez le de côté mais hors le dossier Web) 5 - Appropriation du dossier wordpress de Web par le groupe http Le groupe http est le groupe d'autorité du NAS pour le serveur web NGINX (avec droits d'écriture sur le dossier web dans l'admin du NAS). Afin que les mises à jours WordPress puissent se faire, on confirme l'appropriation du dossier concerné par ce groupe (possible via FileStation dans les propriétés du dossier) Toujours en accès SSH root, saisir les commandes suivantes : Déplacement dans le dossier web cd /volume1/web Appropriation des droits sur le dossier et ses sous-dossiers et contenu par groupe et user http. chown -R http:http wordpress Fin de l'accès SSH On peut quitter le mode SSH (exit 2 fois, - 1x pour la sortie du mode root, 1 x pour la sortie de l'utilisateur connecté) Dans l'admin du NAS on désactive l'accès SSH (Admin du NAS, Panneau de configuration, Telnet SMNP on décoche l'accès SSH) 6 - Installation de WordPress Via un navigateur web, saisir l'adresse du NDD utilisé pour ce site web, on bascule en installation de WordPress. Il faut définir le nom de la base, l'utilisateur administrateur de cette base le mot de passe associé Autant d'informations connues en amont. [ ici BDmonsite, BDmonsite_admin et son mot de passe MAJmin&123 ] 7- Vérifications Au delà du fonctionnement nominal d'accès au site wordpress ainsi créé, il faut s'assurer que : Mise à jour possible Dans WordPress, administration on fait une réinstallation de WordPress PAR Wordpress Modification des permaliens opérationnel Après avoir ajouté un article on vérifie qu'on y accède Puis dans l'admin de WordPress on change le règlage des permaliens et on vérifie qu'on accède toujours à l'article selon la nouvelle dénomination.
  21. Bonjour, Vous venez d'acheter un NAS et vous ne savez pas par ou commencer, et bien nous allons voir ensemble les principales étapes les plus importantes et surtout prioritaires afin d'éviter de futurs problèmes ! Un NAS, c'est un serveur de stockage en réseau. Il est donc important que le système soit correctement installé et surtout sécurisé. Il est vivement recommandé de suivre toutes ces étapes ci-dessous et surtout d'essayer de les comprendre ! Si vous avez des questions, vous pouvez bien entendu les poser à la suite de ce tutoriel ou sur les tutoriels en question indiqués ci-dessous quand ça concerne un de ces derniers. INSTALLATION DE DSM Pour installer DSM, ce n'est pas compliqué et il suffit de suivre étape par étape ce qui est demandé sur votre écran. On va voir les grandes étapes ci-dessous : Recherche du NAS : On part du principe que vous avez déjà installer un (ou plusieurs) disques dur vierges dans votre NAS et que ce dernier est allumé. Vous avez même déjà entendu le bip sonore qui indique que le NAS est fonctionnel. Si vous ne savez pas comment aller consulter votre routeur pour connaitre l'adresse IP du NAS, je vous recommande de télécharger l'utilitaire "Synology Assistant" qui se chargera de trouver votre NAS sur votre réseau. https://www.synology.com/fr-fr/support/download Vous pouvez aussi essayer de le trouver en consultant ce lien : http://find.synology.com/ NOTE : certaines extensions de sécurité sur votre navigateur peuvent bloquer la recherche sur le réseau local ce qui a été mon cas sous Firefox ce qui m'a obligé à faire une recherche du NAS avec le navigateur Iridium pour ce tutoriel. Installation de DSM : (version 6.2.1 au moment de la rédaction de ce tutoriel) On a le choix entre l'installation de DSM en mode manuel ou en mode téléchargement. J'avais personnellement téléchargé le fichier .pat pour l'installer en local. Pour se faire, j'ai récupérer le fichier .pat sur mon ordinateur. Message d'avertissement qui préviens de la suppression des données sur les disques. On doit remplir ces champs qui sont dans l'ordre : nom du serveur > compte administrateur > mot de passe > confirmation du mot de passe. Ne mettez pas des noms génériques comme administrateur, administrator, admin etc... Et surtout utilisez un mot de passe long et compliqué. Le top étant une passphrase. Ex : Je suis allé avec ma femme chez le fleuriste en mai 2019. On nous demande si on veut utiliser le service QuickConnect. Je vous conseille de cliquer sur "Skip this step" (sauter cette étape). Comme expliqué un peu partout sur le forum, nous ne recommandons pas ce service ! En cliquant sur "Skip this step", nous obtenons ce message : "Si vous ignorez cette étape, vous devrez configurer la redirection de port pour accéder à distance à votre diskstation via Internet." Ca tombe bien, le tuto de Fenrir recommandé un peu plus loin dans ce tuto en parle de la redirection de ports 😜 L'installation de DSM commence. Une fois l'installation terminée, ça nous demande si l'on souhaite que le NAS sur le réseau soit reconnu pour le domaine find.synology.com Libre à vous de lire les conditions générales et d'accepter ou non. Perso, je refuse ! L'installation de DSM est persque terminée. On clique sur Got It. Et enfin, on nous demande si on veut partager des statistiques avec Synology (et peut-être avec d'autres partenaires de Synology comme Google). Libre à vous d'accepter ou refuser, perso, je refuse ! Voilà, DSM est installé 🙂 Nous recommandons aussi vivement de tester vos disques durs avant de les mettre en production. Pour se faire, je vous recommande ce très bon tuto. Choisir son RAID : Le système RAID (Redundant Array of Independent Disks) est une technologie de stockage qui permet de combiner plusieurs disques durs en un seul espace de stockage. Il existe différents types de RAID, chacun fournissant différents niveaux de performance, de capacité de stockage et de fiabilité. En gros car j'en ai certainement perdu quelques un d'entre vous, si on utilise par exemple un RAID 1 avec deux disques durs dans le NAS, ça veut dire que les premier disque dur est cloné sur le deuxième à l'identique. Si un des deux disque dur tombe en panne alors le serveur peut continuer à fonctionner sous réserve de remplacer rapidement le disque dur tombé en panne. NOTE : le système RAID est utilisé principalement pour de la continuité de service et en aucun cas comme de la sauvegarde ! Voici une page mise en place par Synology pour simuler/comparer un RAID. https://www.synology.com/fr-fr/support/RAID_calculator Pour choisir un type de RAID, vous pouvez aussi visiter ce lien : https://www.synology.com/fr-fr/knowledgebase/DSM/help/DSM/StorageManager/storage_pool_what_is_raid En général, on appliquera un RAID 1 (SHR) pour deux disques durs et un RAID 5 (SHR) pour trois/quatre disques durs. Voici un guide qui en dira aussi pas mal sur les volumes, groupe de disques, RAID/SHR, système de fichiers etc... 😉 ALIMENTATION Onduleur : Il est important de prendre en compte que votre NAS contient de l'électronique et surtout des disques durs mécaniques. Ces disques durs et l’électronique n'aiment pas du tout les surtensions et encore moins les coupures de courant inopinées ! Nous vous recommandons donc vivement de mettre entre la prise électrique et le NAS ce qu'on appelle un onduleur afin d'éviter de subir des pertes de données et même pire votre matériel. Le but de l'onduleur sera de réguler correctement la tension mais aussi de prévenir en cas de soucis sur la ligne électrique. Dans ce cas, si c'est bien configuré, le NAS pourra passer en mode sans echec Pour plus d'explications sur le sujet, je vous renvoi vers cette page qui l'explique très bien : http://www.europ-computer.com/dossiers/dossier_6_18.html Dans le cas ou vous auriez un onduleur, il faut bien entendu l'ajouter au NAS. Il y a deux possibilités pour faire cela. Brancher l'onduleur sur le NAS directement Connecter le NAS à l'onduleur via son serveur si il est déjà sur un autre NAS par exemple. Nous allons voir la première possibilité. Branchez votre onduleur sur le NAS et rendez-vous sur : Panneau de configuration > Matériel et alimentation > UPS c'est ici que vous pourrez ajouter votre onduleur. Pour l'ajout d'un onduleur qui est en mode serveur, ça sera pratiquement la même chose. Extinction et/ou hibernation : Un NAS, ce n'est pas qu'un simple disque dur et nous ne recommandons pas d'éteindre votre NAS régulièrement. Nous sommes en 2019 et ces appareils ont été fabriqués pour tourner 7/7 H24. Le faite de redémarrer régulièrement un NAS (plusieurs fois par jour) peut user prématurément les disques durs. Quant à l'hibernation des disques durs, c'est vivement déconseillé de le faire sur un NAS ! Petite exception : Si comme moi ou d'autres membres, vous avez un NAS qui est destiné uniquement à recevoir et stocker des sauvegardes de temps en temps (une fois par jour par exemple), alors vous pouvez le configurer pour qu'il s'éteigne et s'allume automatiquement avant le lancement de la sauvegarde. Pour se faire, nous allons aller sur : Panneau de configuration > Matériel et alimentation > Planif. alim Sur cette fenêtre, on peut créer des règles pour éteindre ou allumer le NAS. On peut aussi laisser le NAS allumé en permanence et choisir uniquement de mettre en veille les disques durs (je rappelle que ce n'est pas conseillé de le faire régulièrement). Pour se faire, on se rend sur : Panneau de configuration > Matériel et alimentation > Hivernation du disque dur Et là, on peut choisir la durée de non utilisation des disques durs avant qu'ils ne passent en veille. Note : il faut prendre en compte que la sortie de veille peut prendre quelques instants. Pourquoi mes disques durs ne rentrent pas en hibernation ? Certains services désactivent l'hibernation des disques durs. Voici la liste de ces services : https://www.synology.com/fr-fr/knowledgebase/DSM/tutorial/Management/What_stops_my_Synology_NAS_from_entering_System_Hibernation SAUVEGARDE Il est aussi très important d'envisager un moyen de sauvegarde pour vos données. Pour se faire, je vous redirige vers ce tutoriel : SÉCURITÉ Sécurisation : Maintenant que votre NAS est installé et qu'il est fonctionnel, il faut penser en priorité à sa sécurisation. C'est le point le plus important avant de l'utiliser et vouloir le mettre en production ! Pour la sécurité de votre NAS, rien de mieux que de suivre le très bon tutoriel de Fenrir 😉 J'ajouterais que pour l'ouverture des ports, Synology répertorie tous les ports utilisés par défaut sur un NAS Synology. En voici le lien : https://www.synology.com/fr-fr/knowledgebase/DSM/tutorial/Network/What_network_ports_are_used_by_Synology_services Bien entendu, nous vous recommandons vivement d'utiliser uniquement les ports 80 (uniquement avec une redirection automatique) et 443 avec un Reverse Proxy d'installé (lien du tuto plus bas). Accès VPN : Si vous avez une bonne connexion internet et que vous voulez ouvrir votre NAS vers l'extérieur, nous vous recommandons aussi vivement d'utiliser un accès VPN. Pour se faire, autant continuer avec Fenrir et son super tuto 🙂 DIVERS Voici quelques petites astuces qui pourraient vous sauver la vie ou faciliter votre quotidien avec votre NAS. Journal : Pour avoir un aperçu de ce qui est fait sur le NAS, nous pouvons utiliser le paquet "Centre des journaux". Ce dernier se présente ainsi : On peut en cliquant sur l'onglet "Journaux" voir toute la journalisation du système sur le NAS. On peut aussi affiner une recherche : File Station : Pour la journalisation de ce qui est fait sur le NAS au niveau de la manipulation des fichiers, nous allons activer le journal de File Station. Ça aura pour conséquence de mémoriser dans le journal la création de répertoires/fichiers, modifications, suppressions etc... ce qui peut être pratique pour remonter à la source d'un problème rencontré. File Station > Paramètres Le journal se présentera comme ceci en détaillant ce qui a été fait et par qui. Corbeille : Je vous recommande vivement d'activer les corbeilles sur vos dossiers partagés. Ça aura pour conséquence qu'en cas de suppression accidentelle, vous pourrez avoir un moyen de récupérer ces données. Je pars du principe que si la corbeille n'est pas activée alors les données sont perdues définitivement. Il y a bien des moyens d'essayer de récupérer ses données mais ce n'est pas fiable à 100% et ça peut prendre beaucoup de temps. Autant l'appliquer de suite 🙂 NOTE : l'activation de la corbeille n'est pas généralisée pour tous les dossiers partagés. Il faut donc le faire pour chaque dossier partagé 😉 Dossier qu'on créer en direct : Dossier partagé déjà créé : Panneau de configuration > Dossier partagé > (clic droit sur un dossier partagé existant puis modifier) On peut ensuite aller voir notre dossier partagé et y trouver la corbeille. On peut bien évidemment consulter la corbeille et restaurer les données supprimées. Corbeille : On peut aussi programmer le vidage des corbeilles automatiquement. On se rend sur : Panneau de configuration > Dossier partagé > Action > Créer une planification de vidage de la Corbeille On est redirigé sur le planificateur de tâches et une nouvelle fenêtre s'ouvre. On lui donne un nom puis on se rend sur l'onglet "Programmer". On choisit la programmation souhaitée du lancement de la tâche puis on se rend sur "Paramètres de tâche". Ensuite, on a différent paramètres : Choix des corbeilles à vider. On peut choisir la corbeille d'un dossier partagé, de plusieurs dossiers partagés ou les corbeilles de tous les dossiers partagés. On peut appliquer une politique de conservation. Ex : pas de suppression des données ayant une ancienneté de moins de 7 jours. Nous avons aussi des paramètres avancés que je liste juste en dessous. Le bouton "Paramètres avancés" propose ceci comme options : Une fois validé, on retrouve la tâche dans le planificateur de tâche (désactivé pour le tuto) : Panneau de configuration > Planificateur de tâches Autres Nom de domaine Si vous comptez utiliser un nom de domaine, voici un sujet qui en parle : Avec ça, je vous recommande le tuto de Fenrir sur l'installation d'un serveur DNS : Puis pour aller un peu plus loin, l'utilisation d'un proxy inversé : FIN DU TUTO
  22. Bonjour tout le monde, J'ai l'impression qu'il y a pas mal de monde intéressé par la possibilité d'utiliser un NAS Synology pour faire du Reverse proxy (depuis DSM 6.0). Je voulais ajouter ma pierre à l'édifice en complétant les tutos réalisés, sur ce topic ou ailleurs. Tout d'abord, je voulais remercier InfoYann pour son tuto et ses réponses à mes questions. Merci également à Fender, qui a écrit le 1er tuto sur le sujet. Pour finir, merci à Fenrir, pour son méga tuto de sécurisation d'un NAS (une vraie bible...), qui aborde le sujet du reverse proxy. LE REVERSE PROXY DE A à Z I. Utilité et intérêt d'un Reverse proxy Un Reverse proxy redirige des noms de domaines vers des équipements présents sur le réseau local ou des applications présentes sur le NAS. Cela permet de ne pas avoir à retenir et taper le port des différents services pour y accéder. Par conséquent, ça évite d'avoir à ouvrir sur l'extérieur autant de ports que de services : on se sert juste du port utilisé par défaut pour les connexions HTTPS, le port 443. Par exemple, si on a affecté le port 45000 à Audio Station et le 45001 à Video Station, il faut normalement taper https://nomdedomaine.fr:45000 ou https://nomdedomaine.fr:45001 pour accéder à ces 2 services. Ce n'est pas très explicite, et il faut que les ports 45000 et 45001 soient ouverts sur le routeur. Plus y il y a de services, pire c'est. Grâce à un reverse proxy, on se contente de taper https://music.nomdedomaine.fr ou https://video.nomdedomaine.fr, et tout passe par le port 443 utilisé par le protocole HTTPS. C'est beaucoup plus simple. Pour plus d'infos, consultez ce tuto et celui-là. Par contre, il faut absolument préciser https dans l'URL, sans quoi on utilise le HTTP par défaut et ça ne marche pas. Pour éviter ce problème, on va mettre en place une redirection automatique grâce à Web Station. II. Configuration du nom de domaine chez le registrar Je prends le cas d'une IP fixe car j'ai la chance de ne pas être confronté au problème des IP dynamiques ! Avoir son nom de domaine (NDD) va nous permettre d'accéder à notre réseau local depuis Internet. Une fois le NDD loué, il faut ajouter 2 entrées dans sa zone DNS : - une entrée de type A qui redirige le NDD vers l'IP fixe de la box (ndd.fr. => IP fixe) - une entrée de type CNAME qui redirigera l'ensemble des sous-domaines vers le NDD (*.ndd.fr. => ndd.fr.) Après cette étape, les tentatives de connexion à fichiers.ndd.fr, video.ndd.fr,… seront acheminées à la box. III. Configuration du routeur De l'extérieur, on a besoin que le port 443 soit ouvert pour pouvoir se connecter aux applications du NAS de manière simple (pas de port exotique à préciser) et sécurisée (car 443 = HTTPS). Let's Encrypt se connecte par le port 80 pour délivrer le certificat SSL et pour le renouveler. De plus, si on profite de Web Station pour créer un site web, il faut également ouvrir le port 80 pour autoriser les connexions à ce site en HTTP. Donc on va utiliser les ports externes 80 et 443. Du côté du NAS, le Reverse proxy "écoute" sur le port 443 ou sur le port DSM sécurisé. Vu que je ne trouve pas souhaitable d'exposer DSM sur internet, les connexions sécurisées seront redirigées vers le port 443 du NAS. Web Station utilise le port 80. On va donc rediriger les connexions externes non sécurisées vers le port 80 du NAS. En résumé, sur le routeur, il faut rediriger les ports externes 80 et 443 vers les ports internes 80 et 443 du NAS. Après cette étape, les connexions utilisant les ports 80 et 443 seront acheminées de la box au NAS. IV. Configuration du pare-feu du NAS Pour que les connexions ne soient pas rejetées par le NAS, il faut modifier son pare-feu. Plutôt que d'ouvrir complètement les ports 80 et 443 : - on ouvre les ports 80 et 443 pour le trafic en provenance de France, pour limiter les risques d'attaque. - on ouvre également le port 80 pour le trafic venant des 2 IP que Let's Encrypt utilise pour le renouvellement du certificat (64.78.149.164 et 66.133.109.36, cf ici). Correction de la modération : ces IP ne sont plus valides. Pour la création ou le renouvellement de vos certificats, vous pouvez suivre les explications données plus loin, ou vous référer aux différents tutos qui traitent de cette question, ou bien encore utiliser le certificat fourni par Synology pour votre nom de domaine personnalisé (xxxx.synology.me) Ces règles sont à entrer dans le pare-feu du NAS (panneau de configuration/Connectivité/Sécurité/onglet "Pare-feu", puis "Modifier les règles"). NB : Les IP utilisées par Let's Encrypt peuvent changerLes IP ci-dessus ne sont plus valides. Il est donc conseillé d'ouvrir complètement le port 80 (au moins pour le trafic en provenance des Etats-Unis) avant la demande initiale de certificat ou en cas de problème de renouvellement de celui-ci. Après cette étape, les connexions pourront parvenir jusqu'au Reverse proxy du NAS (et jusqu'à WebStation). V. Configuration du portail des applications de DSM Il faut d'abord définir les ports HTTP qui seront utilisés par les applications auxquelles on veut accéder depuis l'extérieur. Pour ça, aller dans le panneau de configuration/Applications/Portail des applications/onglet "Application". NB : Il n'est pas nécessaire de définir un port HTTPS pour les applications vu que la connexion est déjà en HTTPS jusqu'au reverse proxy. En effet, il est inutile et contre-productif de doubler les chiffrements. Après cette étape, si on tape IP_locale_du_NAS:45000, on ouvre directement Audio Station. Il faut ensuite définir le reverse proxy à proprement parler, à savoir faire correspondre les différents sous-domaines avec les différentes applications. Ça se passe sur la même page, dans l'onglet "Proxy inversé". Pour chaque application, il faut renseigner : - la source (nom du sous-domaine, protocole (HTTPS) et port (443)) - la destination (nom d'hôte (localhost quand l'appli est sur le NAS, IP s'il s'agit d'un autre élément du réseau), protocole (HTTP) et port (défini à l'étape précédente)). NB : On utilise "localhost" pour désigner le NAS, car si celui-ci change d'IP, on n'aura pas besoin de reparamétrer le reverse proxy. Il faut activer le HTTP/2. Par contre, je déconseille le HSTS (c'est le navigateur qui enregistre cette information et il ne laissera plus passer autrement qu'en HTTPS, même si ce dernier est coupé). Après cette étape, quand on tape https://music.ndd.fr, on est bien redirigé vers audio station, mais avec un avertissement de sécurité du navigateur comme quoi la connexion n'est pas sûre. VI. Obtention du certificat SSL pour le domaine et ses sous-domaines Il ne faut jamais utiliser de certificat auto-signé (comme celui installé par défaut dans la plupart des équipements), tout comme accepter des exceptions de sécurité (peut provoquer des interceptions de données même sur des sites protégés par de vrais certificats). Le mieux et le plus simple est de se tourner vers une autorité de certification comme Let's Encrypt, bien intégrée chez Synology. Dans le panneau de configuration de DSM, partie "Connectivité", section "Sécurité", onglet "Certificat", cliquer sur le bouton "Ajouter". A la 2e étape, choisir de se procurer un certificat auprès de Let's Encrypt. A la 3e étape, remplir le NDD et l'adresse mail. Dans le champ "Autre nom de l'objet", mettre le nom de tous les sous-domaines, séparés par des points-virgules. Enfin, cliquer sur "Appliquer". Après cette étape, le reverse proxy fonctionne sans avertissement de sécurité. Cependant, quand on tape music.ndd.fr dans un navigateur, celui-ci ne nous redirige pas automatiquement vers https://music.ndd.fr. A la place, il nous renvoie vers ndd.fr:port_DSM_non_sécurisé (même si la connexion n'aboutit pas). Le registrar ne peut pas mettre en place de redirection car seul le nom de domaine est loué chez lui, aucun site n'est hébergé. L'option de redirection présente dans le panneau de configuration/Connectivité/Réseau/Paramètres de DSM n'est pas envisageable car elle casse le mécanisme du reverse proxy. Pour éviter ça, on va créer un site web. Ça nous permettra la création d'un fichier .htaccess, qui redirigera automatiquement les requêtes en HTTPS. VII. Auto-hébergement d'un site web et mise en place des redirections Il faut installer Web Station. Une fois que c'est fait, ouvrir l'application. Dans la partie "Statut", il faut installer les 2 versions du serveur HTTP Apache et les 2 versions de PHP. Pour ça, cliquer sur les icônes de raccourci présentes dans la colonne "Gestion". Une fois que c'est fait, on passe à la partie "Paramètres généraux". On sélectionne les versions les plus récentes d'Apache et de PHP, puis on coche la case "Activer un site web personnel" (ce n'est possible que si on a installé les 2 versions d'Apache et de PHP à l'étape précédente). On n'a pas besoin de changer les paramètres PHP ou de créer un Virtual Host (à moins d'avoir plusieurs sites web à héberger sur le même NAS). Avec l'installation de Web Station, un dossier Web a été créé à la racine du volume. Le fichier index.html est la page d'accueil du site hébergé sur le NAS. On peut en profiter pour modifier ce fichier afin que notre page d'accueil présente plusieurs liens permettant de se connecter aux différents services présents sur le NAS. Pour mettre en place la redirection automatique, il faut créer un fichier .htaccess. Pour ça, il faut créer un fichier texte dans le dossier Web. A l'intérieur de ce fichier, on écrit le code suivant : RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} On enregistre sous ".htaccess" (donc sans nom mais juste avec l'extension htaccess). Il faut ensuite redemander un certificat à Let's Encrypt, en ajoutant www.ndd.fr dans le champ 'Autre nom de l'objet" (en plus des noms de tous les sous-domaines). Après cette étape, quand on tape music.ndd.fr dans un navigateur, celui-ci nous redirige automatiquement vers https://music.ndd.fr. NB : Il faut préciser le port 443 dans le formulaire de connexion des applications mobiles, sans quoi elles n'arrivent pas à se connecter (donc music.ndd.fr:443 et non music.ndd.fr pour se connecter à DS Audio). Voir un retour intéressant ici, concernant le reverse proxy et la certification par Let's Encrypt. Si quand on tape ndd.fr on est redirigé vers l'interface de connexion à DSM (ce que je ne veux pas), il faut vérifier que la case "Activer un domaine personnalisé" dans le panneau de configuration/Connectivité/Réseau/Paramètres de DSM est décochée (ou bien qu'on a mis un autre nom de domaine que ndd.fr dans ce champ, cf tuto DNS Server). Par contre, pour se connecter à l'interface de gestion du NAS, il faudra désormais taper l'IP locale du NAS + le port DSM non sécurisé dans la barre d'adresse du navigateur (à moins d'avoir mis en place une zone DNS locale, avec une adresse comme nas.super_nom.lan qui pointe sur le NAS). J'espère que ce tuto vous sera utile. Je suis preneur de tout retour, remarque ou suggestion !
  23. Note du 08/10/2023 Ce tuto a été créé sous DSM 6.x et doit être appliqué par les utilisateurs utilisant cette version. Néanmoins, bien qu'il soit toujours d'actualité, certaines sections de DSM sont organisées différemment depuis l'arrivée de DSM 7, avec quelques nouveautés par rapport à la version précédente. C'est pour cette raison qu'un nouveau tuto spécifique à cette version a été élaboré par @.Shad. Les utilisateurs de DSM 7 peuvent bien entendu continuer à se référer au présent tuto pour notamment y trouver des explications plus fournies sur certains points qui ont été allégés dans le nouveau tuto pour des raisons de clarté. ____________________________________________________________________________________________________________ Préambule L'objectif de ce tutoriel est de vous aider à correctement sécuriser votre boitier et en particulier les accès à ce dernier. Il ne s'agira pas ici d'un guide permettant d'avoir un haut niveau de sécurité (il n'y a pas de qu'il faut dans nos boitiers), mais simplement d'une énumération des différentes étapes permettant de limiter les risques à un seuil acceptable. Tous les points ne sont pas nécessairement à suivre, chacun est libre d'appliquer ou non ces recommandations, l'important étant de comprendre de quoi il s'agit. Voyez ce TUTO comme une liste de restrictions qu'il est possible de mettre en place, selon vos besoins, certains réglages pourront ne pas convenir. Comme depuis quelques années le terme NAS est de moins en moins compris par la plupart des utilisateurs et est détourné par les fabricants, un petit rappel s'impose. Un NAS (Network Attached Storage ou boîtier de stockage en réseau) est un système permettant de stocker des fichiers et d'y accéder via le réseau. C'est tout, terminé. Si nos boitiers ne faisaient que ça, ce tutoriel aurait eu un tout autre aspect (on aurait parlé de RAID, de TRIM, d’instantanés, d'onduleur, ...), mais on constate que sous cette appellation se trouvent de nombreuses fonctions qui n'ont rien à voir avec un NAS, ce sont des fonctionnalités de serveur (hébergement de site, streaming, messagerie, applications, ...) et un serveur a souvent vocation à être consulté depuis n'importe où (ou presque). Il faut donc en sécuriser les accès. Notes de lectures Je fais emploi de la première personne du singulier dans de nombreux points pour indiquer qu'il s'agit d'avis personnels Par soucis de compréhension, malgré son utilisation impropre, le terme NAS sera employé par la suite Plusieurs liens sont présents dans ce tutoriel, je vous invite à les consulter au fur et à mesure Je vous recommande fortement de lire ce tutoriel en entier une première fois avant de commencer à faire des modifications, puis de le reprendre étape par étape par la suite. De même, faites une sauvegarde de la configuration avant de commencer Afin de limiter le texte, vous trouverez de nombreuses copies d'écran avec les réglages que je recommande. Enfin, vous avez parfaitement le droit de ne pas être d'accord avec mes recommandations, n'hésitez pas en m'en faire part dans les commentaires. Sécurité ? La sécurité est un domaine très vaste en informatique et probablement celui qui revêt le plus d'aspects, mais force est de constater que c'est aussi le sujet le moins prioritaire pour la plupart des utilisateurs. Je vois 2 raisons à ça : les consommateurs sont de plus en plus en attente de produits simples et prêts à l'emploi dès le déballage hors de question de lire la documentation => erreur hors de question de se former (ou pire, d'être formé) => erreur et de toute manière on ne court aucun risque => erreur la sécurité est perçue comme une contrainte que des empêcheurs de tourner en rond essayent d'imposer c'est trop compliqué => ce point est souvent vrai ça fait perdre trop de temps => erreur et de toute manière on ne cours aucun risque (bis) => erreur Ces points ne sont que des exemples qui concernent à peine 95% des acheteurs de matériel informatique en tout genre. Il est probable que "vous" qui lirez ces lignes êtes dans les 5% restant. Faites votre possible pour convaincre les autres. Un constat assez curieux, c'est que dès qu'on parle de sécurité dans un domaine non informatique (chambre de bébé, maison, compte en banque, ...), la plupart des personnes sont réceptives si ce n'est volontaires, mais dès que ça touche à l’informatique, il n'y a plus personne pour écouter et surtout entendre. C'est un vrai problème car de nos jours, nos bébés sont sous vidéo-surveillance, nos enfants ont des ordinateurs (une tablette est un ordinateur, même si très limité), notre maison dispose d'une alarme connectée et nos comptes en banque sont accessibles de partout. Mais curieusement, les gens ne font pas le rapprochement . Sans oublier la meilleure des réponses - "Je n'ai rien à cacher". Quoi sécuriser ? Vous êtes maintenant convaincu que la sécurité est un point à ne pas négliger, y compris en informatique ? Que devez-vous sécuriser ? Comme indiqué plus haut, en informatique, la sécurité couvre de nombreux domaines, dans le cas de nos NAS/serveurs, il y a 3 principaux domaines sur lesquels on peut agir : sécurité des accès physique : je serais surpris que votre boitier se trouve sur votre pas de porte de même, je pense que votre nas est au sec reste à gérer la problématique des vols, ou pire, des enfants, mais c'est un autre sujet sécurité des données : 2 mots => sauvegarde + chiffrement sauvegarde : ayez toujours vos données sur au moins 2 supports distincts (nas+disque externe par exemple) chiffrement : si vous avez des données privées et/ou confidentielles, le chiffrement des partages est à envisager sécurité des accès distants : c'est le sujet qu'on va aborder dès maintenant Comment faire ? La plupart des réglages sont à faire dans le panneau de configuration, donc commencez par l'ouvrir : nb : certaines applications disposent aussi de paramètres liés à la sécurité, il ne faudra pas oublier d'aller les vérifier ######################################### "Il nous baratine sur plusieurs paragraphes à propos de la sécurité et voilà qu'il commence à parler d'heure ?" En informatique et plus particulièrement sur l'aspect sécurité, l'heure est un maillon essentiel. Une machine qui n'a pas un système horaire fiable va rencontrer un jour ou l'autre les problèmes suivants : problèmes de connexion : les systèmes d’authentification et de chiffrement utilisent l'heure dans les plupart des traitements problèmes de mise à jour : l'heure est une composante importante pour les tâches planifiées et la gestion des caches problèmes de sauvegarde : comment savoir ce qui a changé depuis la dernière sauvegarde si l'heure n'est pas fiable problèmes de diagnostic : si l'heure du système n'est pas fiable, celle des journaux (logs) ne le sera pas non plus Notez bien que je parle d'heure fiable, pas nécessairement d'heure juste. L'important n'est pas d'être à la bonne heure, mais que la pendule avance à la bonne vitesse et soit en accord avec celle des autres systèmes qui y sont connectés (en gros votre pc, les serveurs de Synology, ...). Vous avez donc le choix de mettre une heure fantaisiste à la condition d'aller régler les horloges de tous les autres équipements liés (par effet ricochet, vous allez devoir régler l'heure des satellites en orbite autour de Mars ...). Le plus simple reste d'être à l'heure juste à mon avis Ça se passe ici : Sélectionnez bien votre fuseau horaire et entrez l'adresse d'un serveur de temps fiable (vous en trouverez plusieurs ici) ou choisissez en un dans la liste proposée. Comme cette synchronisation va passer par Internet, il est recommandé de choisir un serveur de sa zone géographique (pool.ntp.org le fait tout seul) : Vous pouvez aussi activer la fonction de serveur NTP de votre boitier si vous souhaitez que vos autres équipements (vos caméras de surveillance par exemple) s'en servent comme horloge de référence : Il suffira alors de les configurer pour utiliser votre NAS comme serveur de temps (ça peut aussi être fait via le DHCP, options 004 et 042). ######################################### En sécurité, une des règles d'or consiste à réduire la surface d'attaque. Moins il y a des programmes qui tournent, mieux c'est. Accessoirement ça libérera des ressources (donc il sera plus rapide, il consommera moins et il chauffera moins). Dans cette section, n'activez que les services que vous utilisez. Si vous n'utilisez pas le FTP ou le NFS ou ... désactivez les. À noter que certains protocoles disposent d'options liées au chiffrement ou à la sécurité en générale, par exemple choisir SMB3 (dans Service de fichiers Windows) permet de chiffrer la communication en AES (pour Windows 8 et plus récent, les distributions GNU/Linux avec un noyau > 3.12 et les dernières versions de MacOS) : ######################################### On peut lire un peu partout qu'il faut renommer ou désactiver le compte admin car il sera attaqué. La recommandation est, partiellement, valable, mais la raison est mauvaise. C'est une bonne chose de créer un (ou plusieurs) compte(s) d'administrateur(s) et de ne pas utiliser (ni modifier) celui par défaut : s'il y a plusieurs personnes amenées à administrer un équipement ça permet une meilleure traçabilité, ça évite de devoir se refiler le mot de passe et ça permet de couper un administrateur en particulier si besoin sans impacter les autres si vous êtes seul à administrer votre équipement ça a au moins le mérite de laisser intact le compte par défaut La raison est mauvaise car les attaques ne s’arrêtent pas si le compte admin ne marche pas, elles s’arrêtent lorsque l'attaquant a testé tous les login/password de sa liste. Un autre point qui est souvent oublié c'est que le compte admin reste obligatoire pour certaines opérations avec les anciennes versions de DSM (inférieurs à DSM6.0). nb : certaines applications ne sont pleinement fonctionnelles qu'avec des droits d'administrateurs (ce n'est pas normal mais c'est comme ça) Nous allons donc créer un nouvel administrateur, mais un peu particulier : Choisissez un login explicite mais pas celui que vous utilisez tous les jours : Il faut bien entendu qu'il soit membre du groupes "administrators" : Ici je bloque les accès à tous les partages, certains vont penser que ça ne sert à rien puisqu'un membre du groupe "administrators" peut toujours se remettre les droits et c'est vrai. L'intérêt est que, si pour une raison ou une autre, ce compte arrive à accéder une des applications de gestion des fichiers (FileStation par exemple), il ne puisse pas faire grand-chose. nb : si vous utilisez PhotoStation, vous ne pourrez pas changer les droits de ce dossier, il faut le faire directement depuis les paramètres de l'application avec un compte administrateur On ne peut pas placer de quota sur un admin, donc on passe : Comme plusieurs protections valent mieux qu'une, on peut aussi bloquer l'accès à toutes les applications, mais dans ce cas, vous ne pourrez plus les administrer (c'est logique !). Personnellement je n'ai coupé l'administration que pour les applications qui sont accessibles depuis Internet en direct (chez moi la liste est courte, il n'y en a qu'une) et quand je veux administrer cette application (c'est rare), je me connecte avec cet administrateur, je lui donne les droits, je fais mon réglage et je retire les droits. À adapter en fonction de vos besoins (au début c'est très contraignant, mais une fois que le NAS est bien configuré, on n'y prête plus vraiment attention). Dans tous les cas, autorisez l'accès au "Bureau" à votre super admin afin de conserver l'accès au panneau de configuration : Avec un peu de parano, on peut aussi ralentir les opérations sur les fichiers pour décourager l'attaquant (ça vous demandera d'activer le contrôle du trafic) : Et on applique : Une fois notre administrateur créé, on vérifie qu'il fonctionne, donc on se déconnecte et on se reconnecte avec ce nouveau compte. Si ça fonctionne et qu'il accède bien au panneau de configuration comme un administrateur on peut continuer en spécifiant une politique pour les mots de passe. Un bon mot de passe c'est un mot de passe facile à retenir ou à retrouver de tête (donc pas sur un post-it) et relativement long. On lit souvent qu'il faut utiliser des caractères spéciaux car ça rend les mots de passe plus complexe. C'est vrai si ces 3 conditions sont réunies : les utilisateurs arrivent à s'en souvenir sans le noter les utilisateurs arrivent à le taper (clavier mobile, braille, étranger, ...) sa longueur est d'au moins 12 caractères Je trouve pour ma part qu'il est plus facile d'utiliser un long mot de passe avec des lettres, des chiffres et des majuscules qu'un mot de passe avec des caractères spéciaux. Pour ce qui est de la sécurité, imposer des caractères spéciaux à un mot de passe ne le complexifie que d'un "bit" en équivalent cryptographique. Ajouter 2 caractères "normaux" le complexifie de 11 bits. Pour un humain, deviner une chaine de 10 caractères spéciaux est très complexe, pour une machine c'est plus facile qu'une chaine de 10 caractères "normaux". Je ne dis pas qu'il ne faille pas inclure des caractères spéciaux, je recommande juste de ne pas l'imposer car ça facilite la vie des utilisateurs : En activant la vérification en 2 étapes, un assistant va se lancer, suivez le guide : Je recommande FreeOTP pour gérer vos jetons (il fonctionne aussi pour FaceBook, Google, ...) mais il existe d'autres applications similaires. Entrez le code généré par l'application (si votre NAS ou votre client ne sont pas à la même heure, ça échouera probablement) : Renseignez une adresse fiable et sécurisée ici : Et on valide : Encore une fois, on teste avant de continuer, donc on se déconnecte et on se reconnecte : Cette fois ci avec une étape supplémentaire : C'en est terminé de la création de notre administrateur, on peut maintenant couper celui par défaut : Arrivez ici vous allez penser que ce compte (monadmin) est inutilisable. C'est faux, c'est un compte d’administrateur qui peut effectuer toutes les tâches d'administration, il n'a pas besoin de voir des vidéos, d'envoyer des photos, ... Donc maintenant vous pouvez/devez créer des comptes "normaux" (sans les droits d'administration) et le compte d'administration sera réservé aux tâches d'administration. Je recommande aussi de créer des comptes utilitaires pour les besoins spécifiques. À titre d'exemple, sur mes NAS j'ai créé plusieurs comptes de ce type, dont : routeur (non admin) : ce compte sert à mon routeur pour exporter les modifications de configuration, il a juste le droit de faire du FTPs dans un dossier spécifique sauvegarde (admin) : ce compte est dédié aux tâches de sauvegardes, il a un mot de passe de 64 caractères (merci Keepass) En complément j'ai plusieurs comptes "normaux" pour l'utilisation au quotidien (ma famille et moi). Ça peut paraitre contraignant, mais normalement, enfin je l'espère pour vous, vous ne passez pas votre temps à faire des tâches d’administration sur votre NAS, donc vous ne devriez pas en avoir besoin souvent. Encore une fois il ne s'agit là que de recommandations, vous êtes libres d'utiliser le login admin avec le mot de passe "1234" pour consulter vos données privées depuis la Chine. ######################################### Ici on va aller vite, je déconseille d'activer ce service si on tient un tant soit peu à la sécurité. Pour informations, voici comme fonctionne QuickConnect : votre NAS établi un tunnel OpenVPN avec un serveur tiers loué par Synology (donc de fait, ils ont un accès direct au NAS s'ils le souhaitent) en parallèle il créé et met à jour un enregistrement DNS avec votre IP public (comme un DynDNS) lorsque vous entrez l'adresse QuickConnect de votre boitier, votre client va essayer de déterminer si vous pouvez vous connecter en direct si ce n'est pas le cas, votre trafic sera dirigé sur un serveur de Synology qui se chargera de router le trafic dans le tunnel du point 1 (donc ils peuvent voir tout ce qui passe) Le résultat est un trafic souvent très lent, relativement instable et difficile à maitriser. Néanmoins, si vous souhaitez conserver QuickConnect, pensez à limiter les applications accessibles, en particulier, n'autorisez pas DSM (en pratique l'accès à DSM on s'en fiche, ce qui est important dans un NAS ce sont les fichiers, mais bloquer l'accès aux fichiers sur un NAS limite grandement son utilité ...). ######################################### Il y a 3 sections dans ce menu : Cette section vous permet de configurer un service de DNS dynamique, c'est pratique pour ceux qui n'ont pas d'adresse IP fixe, rien de compliqué ici : Ne cliquez pas ici, ça fait partie des options que Synology devrait vraiment retirer de ses boitiers. C'est très dangereux du point de vue sécurité. Ça sert à ouvrir automatiquement des ports dans votre routeur/box, ça peut paraitre sympa comme ça mais en pratique c'est une faille de sécurité très importante. Là on entre en plein dans les comportements que je décrivais au début de ce tutoriel : les gens veulent du "clef en main" et la sécurité ça complique les choses ! 2 exemples pour essayer de vous convaincre : pour que cette fonction marche, votre routeur doit gérer l'UPnP, donc tous les équipements de votre réseau pourront faire de l'ouverture dynamique de port, le PC qui vient de se prendre un virus pourra automatiquement, sans la moindre notification, ouvrir un port permettant à un attaquant d'entrer dans votre réseau de même, si vous avez configuré des redirections de ports pour plusieurs équipements, ces redirections risquent de sauter si une requête UPnP demande le même port Un petit menu que beaucoup oublient de configurer, il n'est pas obligatoire et pas lié (pas directement du moins) à la sécurité mais ça permet d'éviter de chercher des heures la raison pour laquelle un lien de partage (par exemple) ne fonctionne pas. Attention, il faut vider ces champs si vous utilisez des noms de domaine ou des ports spécifiques (portail des application, reverse proxy, ...). nb : si vous avez changé les ports de DSM (directement ou via votre routeur), il faut l'indiquer ici ######################################### On ne peut pas parler d'accès distant sans parler d'IP, donc allons y : Du point de vue confort, fiabilité et sécurité, l'attribution dynamique (DHCP) est recommandée, néanmoins, certains services nécessitent d'avoir une adresse IP fixe (c'est le cas du DKIM avec MailServer mais aussi du serveur DHCP et quelques autres applications), donc à choisir en fonction de vos besoins. Si vous choisissez DHCP, fixez l'adresse dans votre serveur DHCP (votre box probablement), si vous choisissez l'IP en dur, prenez une IP en dehors de la plage DHCP. Pour l'IPv6, même si je ne devrais pas le dire (car l'IPv6 c'est bien), du point de vue sécurité je vous recommande de le désactiver pour le moment. Le problème ne vient pas de Synology (qui permet de régler le pare-feu en IPv6), c'est plus général (j'en parle ici). Une fois que vous aurez bien compris ce que ça implique, vous pourrez revenir l'activer. Merci de ne pas changer les ports par défaut, ça n'apporte presque rien du point de vue sécurité (on gagne moins d'une seconde face à un scanner) et ça complique les usages. Si vraiment vous souhaitez les changer depuis Internet, faites-le sur votre box ou avec un "reverse proxy". Je ne redirige pas automatiquement les connexions HTTP vers HTTPS car je n'expose pas DSM directement sur Internet (il y a un serveur VPN pour ça), mais si vous le faites, activez la redirection. Attention, j'ai pu constater qu'activer la redirection HTTP vers HTTPS cassait certains mécanismes, au moins le reverse proxy pour les applications de base (audio/download/file/surveillance/video - station). Si vous souhaitez profiter de la redirection sans casser le reverse proxy, le plus simple est de créer un petit fichier php à la racine de Webstation (/web/index.php) pour gérer cette redirection : <?php $http_host = $_SERVER['HTTP_HOST']; // 307 Temporary Redirect header("Location: https://$http_host",TRUE,307); exit; ?> Vous pouvez bien entendu adapter le script pour utiliser des ports différents si besoin. Pour la dernière option, l'HSTS, ne l'activez que si vous n'accédez jamais à votre NAS autrement qu'en HTTPS (c'est votre navigateur qui enregistrera cette information et il ne vous laissera plus passer autrement qu'en HTTPS, même si ce dernier est coupé). ######################################### J'ai pris les menus dans l'ordre (ou presque), donc la section "Sécurité" n'arrive que maintenant, pourtant tout ce que l'on a vu précédemment est aussi lié à la sécurité ... Ces réglages devraient convenir à la plupart des utilisateurs : Pour le pare-feu, même si votre NAS n'est pas exposé sur Internet, activez-le, ça ne coute presque rien en ressources et ça limitera la casse si un jour il est exposé (une box qui passe en bridge, une erreur de manipulation, ...). Vous pouvez laisser les notifications activées, mais ne vous en servez pas (ne cliquez pas sur le bouton OK lorsqu'elles apparaissent), utilisez-les simplement comme un rappel que vous avez tel ou tel port à ouvrir. Les règles de pare-feu ci-dessous seront valable chez pratiquement tout le monde, en toute rigueur, il ne faudrait autoriser que les adresses "fiables" sur des services précis, mais sauf à avoir des espions dans son réseau, ça ne devrait pas poser de problèmes. On va dire que c'est un compromis entre confort et sécurité. nb : si vous souhaitez faire de l'IPv6, pensez à ajouter les adresses locales (fe80::/10 et ff00::/8) Dans un premier temps, je vous recommande vivement de configurer votre pare feu avec les 4 règles ci-dessous, à l'identique !! UPDATE: Dans chaque section d'interface modifier le paramètre : Si aucune règle n'est remplie : Refuser l'accès" ("Autoriser l'accès" par défaut). nb : dans les 3 premières règles, il faut bien choisir "Sous-réseau" et pas "Hôte unique" ni "Plage d'IP" ici j'utilise uniquement la table "Toutes les interfaces" car c'est plus simple à gérer et suffisant pour la plupart des besoins, si vous souhaitez utiliser les règles par interfaces, lisez ceci Une fois ces 4 règles en place, vous pourrez ajouter les autres règles dont vous avez besoin (il faut les ajouter juste avant la dernière règle) si vous souhaitez que certains services de votre NAS soient accessibles depuis Internet. Les règles ci-dessus n'autorisent que les réseaux locaux et bloquent tout le trafic venant d'Internet. Voici un exemple plus complet qui n'est pas à reprendre aveuglement, c'est juste pour illustrer : En plus des réseaux locaux (ou privés), j'autorise les services suivants : ports TCP 80 et 443 depuis l'adresse 192.0.2.3 (il s'agit d'une adresse IP public d'exemple, ce n'est pas une adresse privée => https://tools.ietf.org/html/rfc5737) port UDP 1194 (OpenVPN) uniquement depuis la France ports UDP 500, 1701 et 4500 (L2TP/IPSec) uniquement depuis la France et les ports TCP 7000 et 7001 que j'ai associé à une application, autorisés depuis la France la Guyane française nb : les règles sont évaluées dans l'ordre, de haut en bas ps : si votre NAS est derrière une Box, il faudra aussi transférer (forward) les ports sur cette dernière Une recommandation, n'autorisez pas l'accès en direct à DSM (ports TCP 5000 et 5001 par défaut) depuis Internet mais servez vous du portail des applications (cf plus bas) pour limiter les accès aux seules applications nécessaires. Si vous devez administrer votre NAS depuis Internet, l'utilisation du Serveur VPN est vivement conseillée. Une petite case à cocher pour limiter les chances que votre boitier soit rendu inaccessible suite à un certain type d'attaque : A adapter selon vos interfaces connectées. Cette fonction bloquera les adresses IP des personnes ayants fait trop d'erreurs d'authentification (ça ne fonctionne qu'avec certaines applications, mais c'est déjà ça). nb : n'ajoutez pas d'adresses dans la liste des autorisations, si vous vous bloquez vous même, changez juste l'adresse de votre poste pour le débloquer ou attendez l'expiration du blocage Un peu plus haut on a parlé d'HTTPS, or qui dit HTTPS dit certificat. Ici on se heurte à un vrai problème du point de vue de la sécurité. Il est assez difficile de l'expliquer sans en faire des pages, mais pour faire simple, n'utilisez jamais un certificat auto-signé (comme celui installé par défaut dans la plupart des équipements). La solution la plus sécurisée consiste à créer votre propre autorité de certification et à émettre vous-même vos certificats. Cette méthode présente quelques avantages mais aussi quelques inconvénients : Avantages : vous n'avez pas à faire confiance à une entreprise que vous ne connaissez pas vous n'avez pas à payer cette entreprise pour vos certificats (même si avec LetsEncrypt et quelques autres entités, c'est gratuit) vous pouvez émettre autant de certificats que nécessaire vous pouvez choisir ce qu'ils acceptent (wildcard ou multi domaine par exemple) Inconvénients : vous devez savoir le faire vous devez installer votre autorité partout où vous l'utilisez (dans vos navigateurs, smartphones, ...) La solution recommandée est donc d'utiliser un certificat signé par une autorité reconnue en standard (Synology vous permet de créer un certificat signé par LetsEncrypt, c'est gratuit et ça marche assez bien). Dans un cas comme dans l'autre, supprimez le certificat installé par défaut. Enfin, la solution qui n'en est pas une consiste à accepter les avertissements de sécurité, en faisant ça, vous installez dans votre navigateur des certificats qui n'ont été validés par personne. C'est très dangereux mais il est assez difficile de vous expliquer pourquoi en quelques mots, gardez juste à l'esprit qu'accepter un certificat non reconnu peut permettre à un attaquant d'intercepter toutes vos communications vers le site de votre banque, même si ce dernier est protégé par un vrai certificat. ps : en passant, 2 modules pour Firefox que je recommande : Y U no validate et SSleuth Donc pour la plupart d'entre vous, le bon choix est de passer par l'assistant pour créer un certificat signé par LetsEncrypt (le port 80 doit être ouvert le temps de la génération du certificat et tous les 3 mois pour son renouvellement). N'activez jamais la compression HTTP (il y a une faille de sécurité dans ce protocole qui rend l'HTTPS inefficace) et utilisez les suites de chiffrement "moderne". ######################################### Un point important en sécurité consiste à être prévenu lorsqu’un problème survient. Le paramétrage des notifications est fait pour ça. Ici j'ai configuré les notifications par mail, mais vous pouvez utiliser les SMS (si vous avez un abonnement compatible comme FreeMobile) ou encore par Push (je déconseille ce mode car il est peu pratique à l'usage). Dans le dernier onglet, vous pouvez choisir le type de notification à activer pour la plupart des événements pouvant se produire. Au début cochez tout, puis en fonction de votre usage, vous pourrez décocher certaines notifications (chez moi j'ai désactivé les notifications pour les sauvegardes réussies). ######################################### Maintenir ses équipements à jour est un moyen assez simple de limiter les problèmes de sécurité. Je recommande de laisser le NAS détecter et télécharger les mises à jour automatiquement mais de ne pas le laisser les installer tout seul. Synology sort des mises à jour de bonne qualité en général, mais il arrive, surtout pour les mises à jour majeurs, que des problèmes surviennent (en clair, elles sont parfois boguées). Laissez le NAS vous prévenir qu'une mise à jour est disponible et renseignez-vous sur d'éventuels soucis de compatibilité avant de l'installer. nb : désactivez aussi les mises à jour automatique dans le Centre de paquets pour la même raison Parmi les actions à effectuer de temps en temps, surtout lorsque vous vous apprêtez à faire de gros changements (comme en suivant ce tutoriel), la sauvegarde de la configuration n'est pas à omettre. ps : pour information, le fichier de sauvegarde est une archive tar.xz contenant une base sqlite, il est donc possible de le consulter pour récupérer un élément de configuration précis Notez en passant que seuls certains paramètres sont sauvegardés, pensez à sauvegarder le reste d'une manière ou d'une autre : ps : cette sauvegarde de la configuration du NAS n'est pas à sauvegarder sur le NAS lui-même ######################################### Ici vous avez la possibilité de restreindre l'accès à certaines applications pour certains comptes. Par exemple si vous vous servez de votre NAS comme d'un système de dépose de fichiers pour des clients, via FileStation, il n'est pas nécessaire de leur laisser accès à vos vidéos de vacances avec VideoStation. De même il est peut être utile de limiter les accès à certaines machines. Sélectionnez une application et cliquez sur Modifier, la suite est assez explicite. ######################################### Par défaut la plupart des applications sont accessibles via DSM (ports 5000 et 5001) et l'adresse de votre nas, mais si vous souhaitez que seule telle ou telle application soit accessible depuis Internet, ou dispose d'une adresse spécifique ou écoute sur un port particulier, ou encore tout ça à la fois, c'est ici qu'il faut se rendre. Vous avez 2 menus : Applications : ça permet de configurer l'adresse et le port d'écoute de certaines applications Synology Proxy Inversé : ça permet de faire la même chose pour les autres applications ou faire des configurations plus avancées Ces options vous permettent, par exemple, de faire écouter les différentes applications sur des ports précis et ainsi, grâce au pare-feu, de limiter leurs accès aux seules adresses autorisées. Ci-dessous un exemple un peu plus complexe (la seconde partie n'est réalisable qu'avec du loopback ou si vous avez un DNS en interne ou qui gère les vues, j'en parle à la fin du tuto VPN) Dans un premier temps j'ai déclaré des ports spécifiques pour chacune des applications que j'utilise : => depuis un navigateur, si j'entre l'adresse de mon nas en précisant le port 7043 je tombe directement sur Audio Station J'ai ensuite configuré le Proxy inversé pour faire correspondre les différentes applications avec des noms de domaine différents mais sur un seul port (tcp 443/https). J'ai aussi créé une entrée pour une application non Synology (il s'agit ici d'un Docker) : => depuis DSAudio, j'entre l'adresse dsaudio.mon.domaine:443 nb : dans les applications mobiles, il ne faut pas oublier le numéro de port dans l'adresse pour que ça fonctionne de partout (en interne comme depuis Internet), sinon certaines d'entre elles essayent systématiquement de trouver une configuration QuickConnect (qui n'existe pas chez moi) ps : cette configuration ne fonctionnera pas si vous avez activé la redirection HTTP vers HTTPS de DSM (cf remarque un peu plus haut) ######################################### Même si vous n'avez pas l'intention de vous en servir, activez le SSH. En cas de problème d'accès à DSM, c'est souvent la seule manière de débloquer la situation sans devoir faire un reset du NAS. Par contre ne l'ouvrez pas depuis Internet, limitez son accès à votre seul réseau local. Et en passant, choisissez le mode de chiffrement le plus élevé : ######################################### Synology a eu la bonne idée (de mémoire avec DSM 5.2) d'ajouter l'application "Conseiller en sécurité". Cette application analyse certains fichiers et certains réglages de votre NAS afin de vous prévenir en cas d'anomalies. Elle ne va pas encore assez loin à mon gout, d'où ce tutoriel, mais c'est déjà pas mal. Globalement elle fait bien son travail, donc il serait dommage de s'en passer (n'oubliez pas de planifier une analyse régulière) : Néanmoins je ne suis pas d'accord avec 3 des recommandations de Synology, celles concernant les changements de ports, donc je les désactive (tout le reste devrait être activé) : Lancez l'analyse une première fois, si vous avez suivi mes recommandations, tout devrait être au vert.
  24. Bonjour à tous, Nous somme de plus en plus nombreux à posséder une seedbox pour stocker et diffuser plein de choses qui regarde que nous, mais dernièrement j'ai cherché à transférer du contenue de ma seedbox vers mon nas et le seul moyen que l'on m'a conseiller c'est un client ftp en ligne de commande sur mon nas ou de passer par mon PC Comme j'administre ce genre de tache à distance quand j'y pense c'était pas super pratique Mais j'ai trouvé une solution pour le faire depuis l'interface web du syno et pareille pour la seedbox Prérequis -Downloadstation installer -gestion à distance du NAS via le client web possible -une seedbox Tout d'abord il faut récupter l'adresse ftp de la seedbox. ftp://front75.seedbox.co Vous enregistrer la pages dans vos favori et vous aller modifier votre url pour avoir une adresse dans ce style ftp://votrelogin:%votremotdepasse%@front??.seedbox.co ou les ?? sont les numéros de votre front Vous enregistrez tout les modifs, et quand vous cliquer sur votre favoris, vous arrivez normalement dans le répertoir index de votre serveur ftp Il ne vous restes plus qu'à faire un clique droit sur le fichier que vous voulez charger sur votre syno puis copier l'adresse du lien Sur votre interface syno vous ouvrez download station Cliquez sur ajouter vous coller l'url qui va être du type ftp://votrelogin:%votremdp%@front71.seedbox.co/Helix%film%de%vacance.mkv choisissez la destination du fichier Penser a vérifier le mdp, car il rajoute des % et si vous ne les enlevez pas vous aurez un message d'erreur Et voilou, normalement votre fichier charge, mais il ne sera visible qu'une fois completer, avant il est charger dans un fichier temp je ne sais plus où. En espérant en avoir dépanné quelques uns avec cette bricole. Bonne journée
  25. A DATER DU 06/02/2022 CE MESSAGE AINSI QUE LES DEUX QUI SUIVENT ET CEUX VERS LESQUELS ILS POINTENT SONT "HISTORIQUES"; UN NOUVEAU TUTORIEL EST DISPONIBLE PLUS LOIN DANS CE FIL DE DISCUSSION (ICI). LES MESSAGES "HISTORIQUES" SONT CONSERVÉS A TITRE D'INFORMATION. ----- Tutoriel complet et opérationnel des tutoriels complémentaires sont disponibles plus loin dans le fil de discussion: installation de l'architecture de plugins (ici), installation du plugin Settings (ici), installation du plugin Syslog (ici), récupération des logs d'Apache (ici), visualisation des informations SMART (ici), templates pour le monitoring des bases MySQL (ici), procédures relatives avec la mise à jour du firmware du Synology (ici), mise à jour de Cacti (ici), mise à jour de l'architecture de plugins et mise à jour des plugins suite à la mise à jour de Cacti (ici), géolocalisation des adresses IP sous le plugin Syslog (ici) ----- NOTE IMPORTANTE: Ce tutoriel a été originellement réalisé avec le firmware 728 et Cacti 0.8.7b. Depuis le firmware a évolué, Cacti aussi, ainsi que les paquets IPKG requis. Cependant, l'installation de Cacti est très largement indépendante de la version de Cacti ou même du firmware de vos Synology. A cet égard, vous trouverez dans ce tutoriel des informations complémentaires ou alternatives (en violet) pour réaliser les différentes installations avec les dernières versions du firmware et/ou de Cacti. ----- Bonjour à toutes et à tous. Cacti est LA plateforme de monitoring de votre Synology et plus largement de votre réseau. C'est donc avec un plaisir certain (mais aussi une certaine fierté, j'ai vaincu la bête!) que je vous fais part de ce "petit" tutoriel. Il est certes un peu long mais il est tout public, pas besoin d'être expert sauf du ctrl+c/clic-droit (il n'y a, à peu de choses près, qu'à copier les commandes listées et les "coller" dans une fenêtre Telnet). Si vous avez des doutes et/ou questions, ce fil de discussion est là pour les accueillir. Seuls les trois premiers messages de ce fil de discussion sont utiles pour installer Cacti; ils intègrent les échanges présents dans ce fil de discussion et ayant engendré des mises à jour. Vous n'avez donc pas à lire en détail l'ensemble du fil de discussion. Des tutoriels supplémentaires, référencés ci-dessus, sont proposés en vue d'augmenter les fonctionalités de Cacti. ----- Tutoriel d'installation de Cacti (0.8.7*) (http://cacti.net/index.php) sur un Synology DS107 Version du noyau Linux : 2.4.22-uc0 Firmware : DSM 2.0-0728 Tutoriel applicable à n'importe quelle version de firmware. ----- Pré-requis: Cette installation requiert l'utilisation d'IPKG et que vous soyez connectés sous Telnet en root. Installation des composants de base: Cacti nécessite MySQL, PHP, RRDTool, Net-SNMP, Perl, et un serveur web supportant PHP comme Apache Perl est déjà installé. Apache est déjà installé mais pas forcément actif. Pour cela: Dans l'interface d'administration aller à Services Réseau > Services Web, et activer Web Station. Cocher aussi la case "Activer l'option de configuration PHP register_globals". Pour ce qui est de MySQL, on préfèrera une nouvelle installation à celle du Synology, de même pour PHP (justifications données plus bas). Pour ce qui est de RRDTool, et Net-SNMP, ils n'existent tout simplement pas sur le Synology. Il faudra donc les installer. Note: les dernières versions du firmware incluent SNMP. Je conseille cependant d'installer Net-SNMP. Si vous décidez d'utiliser le SNMP de Synology merci de nous faire un retour. Mise à jour de la liste des paquets IKPG shell> ipkg update Installation de rrdtool shell> ipkg info rrdtool Package: rrdtool Version: 1.2.27-1 Depends: zlib, libpng, freetype, libart Status: unknown ok not-installed Section: misc Architecture: powerpc maintainer: NSLU2 Linux <nslu2-linux@yahoogroups.com> MD5Sum: 701446a9b03bc18e365ec98ff9216e8a Size: 681277 Filename: rrdtool_1.2.27-1_powerpc.ipk Source: http://oss.oetiker.ch/rrdtool/pub//rrdtool-1.2.27.tar.gz Description: Round-Robin Database tool. Database collator and plotter Successfully terminated. La dernière version en date est 1.2.30-1. Cela n'a aucune incidence. shell> ipkg install rrdtool Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/rrdtool_1.2.27-1_powerpc.ipk Installing zlib (1.2.3-3) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/zlib_1.2.3-3_powerpc.ipk Installing libpng (1.2.34-1) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/libpng_1.2.34-1_powerpc.ipk Installing freetype (2.3.6-1) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/freetype_2.3.6-1_powerpc.ipk Installing libart (2.3.17-2) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/libart_2.3.17-2_powerpc.ipk Configuring freetype Configuring libart Configuring libpng Configuring rrdtool Configuring zlib Successfully terminated. Installation de net-snmp shell> ipkg info net-snmp Package: net-snmp Version: 5.4.2.1-1 Depends: openssl Status: unknown ok not-installed Section: net Architecture: powerpc maintainer: NSLU2 Linux <nslu2-linux@yahoogroups.com> MD5Sum: b42247073b38a426722d1a317e158e2b Size: 1550114 Filename: net-snmp_5.4.2.1-1_powerpc.ipk Source: http://easynews.dl.sf.net/sourceforge/net-snmp/net-snmp-5.4.2.1.tar.gz Description: net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both IPv4 and IPv6 Successfully terminated. shell> ipkg install net-snmp Installing net-snmp (5.4.2.1-1) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/net-snmp_5.4.2.1-1_powerpc.ipk Configuring net-snmp Successfully terminated. Installation de php, mysql et php-mysql L'installation de PHP est nécessaire car Cacti requiert un binaire PHP pour exécuter des scripts alors que PHP, sur vos Synology, n'est installé que sous la forme d'un objet partagé (.so) chargé par Apache. Il semble par ailleurs qu'il faille installer PHP-MySQL car l'objet partagé mysql.so n'est pas présent dans le répertoire des extensions de PHP (une fois ce dernier installé), répertoire défini dans /opt/etc/php.ini: extension_dir = /opt/lib/php/extensions L'installation de PHP-MySQL mettra à disposition mysql.so. Malheureusement n'installer que PHP et PHP-MySQL ne suffira pas car il manquera d'autres objets partagés (.so). Pour remédier à cela il faudra installer MySQL. Par contre, il semble qu'il y ait des conflits entre le MySQL IPKG le MySQL du Synology. Il faut donc veiller à ce que MySQL ne soit pas activé dans l'interface d'administration du Synology. Je n'ai malheureusement pas de solution à ce point potentiellement bloquant pour certains, point qui est discuté plus bas dans la suite du fil de discussion. Dans le contexte d'IPKG, PHP et MySQL sont des dépendances de PHP-MySQL, on installera donc directement ce dernier: shell> ipkg info php-mysql Package: php-mysql Version: 5.2.8-1 Depends: php, mysql Status: unknown ok not-installed Section: net Architecture: powerpc maintainer: Josh Parsons <jbparsons@ucdavis.edu> MD5Sum: 2cbff357195ad2ea88638ffb79740caa Size: 69382 Filename: php-mysql_5.2.8-1_powerpc.ipk Source: http://static.php.net/www.php.net/distributions//php-5.2.8.tar.bz2 Description: mysql extension for php Successfully terminated. La dernière version en date est 5.2.12-1. Cela n'a aucune incidence. shell> ipkg install php-mysql Installing php-mysql (5.2.8-1) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/php-mysql_5.2.8-1_powerpc.ipk Installing php (5.2.8-1) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/php_5.2.8-1_powerpc.ipk Installing bzip2 (1.0.5-1) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/bzip2_1.0.5-1_powerpc.ipk Installing libxml2 (2.7.2-1) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/libxml2_2.7.2-1_powerpc.ipk Installing libxslt (1.1.24-1) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/libxslt_1.1.24-1_powerpc.ipk Installing gdbm (1.8.3-2) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/gdbm_1.8.3-2_powerpc.ipk Installing libdb (4.2.52-3) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/libdb_4.2.52-3_powerpc.ipk Installing pcre (7.8-1) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/pcre_7.8-1_powerpc.ipk Installing libstdc++ (5.0.6-6) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/libstdc++_5.0.6-6_powerpc.ipk Installing cyrus-sasl-libs (2.1.22-2) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/cyrus-sasl-libs_2.1.22-2_powerpc.ipk Installing openldap-libs (2.3.43-1) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/openldap-libs_2.3.43-1_powerpc.ipk Installing mysql (4.1.22-2) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/mysql_4.1.22-2_powerpc.ipk Installing ncurses (5.7-1) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/ncurses_5.7-1_powerpc.ipk Installing readline (5.2-2) to /opt/... Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/readline_5.2-2_powerpc.ipk Configuring bzip2 update-alternatives: Linking //opt/bin/bzip2 to /opt/bin/bzip2-bzip2 Configuring cyrus-sasl-libs Configuring gdbm Configuring libdb Configuring libstdc++ Configuring libxml2 Configuring libxslt Configuring mysql Installing all prepared tables 090107 0:11:42 [Warning] Setting lower_case_table_names=2 because file system for /opt/var/lib/mysql/ is case insensitive Fill help tables 090107 0:11:43 [Warning] Setting lower_case_table_names=2 because file system for /opt/var/lib/mysql/ is case insensitive To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /opt/bin/mysqladmin -u root password 'new-password' /opt/bin/mysqladmin -u root -h syno password 'new-password' See the manual for more instructions. You can start the MySQL daemon with: cd /opt; /opt/bin/mysqld_safe &amp; You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory: cd sql-bench; perl run-all-tests Please report any problems with the /opt/bin/mysqlbug script! The latest information about MySQL is available on the web at http://www.mysql.com Support MySQL by buying support/licenses at http://shop.mysql.com Starting MySQL SUCCESS! Configuring ncurses update-alternatives: Linking //opt/bin/clear to /opt/bin/ncurses-clear Configuring openldap-libs Configuring pcre Configuring php Configuring php-mysql Configuring readline Successfully terminated. Pour mémoire: shell> ipkg info mysql Package: mysql Version: 4.1.22-2 Depends: zlib, ncurses, openssl, readline, libstdc++ Status: install ok installed Section: misc Architecture: powerpc maintainer: NSLU2 Linux <nslu2-linux@yahoogroups.com> MD5Sum: 1c9b8738180b65830618b95b16e911b4 Size: 5242072 Filename: mysql_4.1.22-2_powerpc.ipk Source: http://downloads.mysql.com/archives/mysql-4.1/mysql-4.1.22.tar.gz Description: Popular free SQL database system Successfully terminated. shell> ipkg info php Package: php Version: 5.2.8-1 Depends: bzip2, openssl, zlib, libxml2, libxslt, gdbm, libdb, pcre, cyrus-sasl-libs, openldap-libs Status: install ok installed Section: net Architecture: powerpc maintainer: Josh Parsons <jbparsons@ucdavis.edu> MD5Sum: d85e30893257b22d9150864d45f83063 Size: 1847224 Filename: php_5.2.8-1_powerpc.ipk Source: http://static.php.net/www.php.net/distributions//php-5.2.8.tar.bz2 Description: The php scripting language Successfully terminated. Définition du mot de passe de root pour la base MySQL (IPKG) MySQL intègre par défaut deux utilisateurs 'root' et '' (anonyme) qui n'ont pas de mot de passe associé: http://dev.mysql.com...privileges.html Il est recommandé de définir un mot de passe pour l'utilisateur root (http://www.nas-forum...oot-et-anonyme/, voir aussi les messages affichés à l'écran lors de l'installation de MySQL via IPKG) Dans les commandes qui vont suivre, remplacez password par le mot de passe que vous avez choisi et nom-hote par le nom d'hôte de votre Synology. Pour savoir quel est votre nom d'hôte: shell> cd /opt/bin shell> ./mysql -u root mysql> SELECT Host, User FROM mysql.user; mysql> exit Recherchez une ligne qui contient root dans la colonne User et quelque chose d'autre que localhost dans la colonne Host. Pour mémoire, le MySQL du Synology se trouve là: /usr/syno/mysql/bin shell> cd /opt/bin shell> ./mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password'); mysql> SET PASSWORD FOR 'root'@'nom-hote' = PASSWORD('password'); mysql> FLUSH PRIVILEGES; mysql> exit A partir de ce point, il est considéré qu'un mot de passe a été défini pour le compte root de MySQL et donc l'option -p est utilisée dans les lignes de commande. Note: Pour des questions de "sécurité", je vous engage à supprimer l'historique des commandes passées sous mysql, historique qui se trouve dans votre home (et donc /root) shell> cd /root shell> cat /dev/null > ~/.mysql_history ou bien: shell> cd /root shell> $ > ~/.mysql_history

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.

Account

Navigation

Rechercher

Rechercher

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.