informatique:hardware:synology_ds415plus
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| informatique:hardware:synology_ds415plus [2018/01/15 09:58] – Virtualisation pteu | informatique:hardware:synology_ds415plus [2025/07/11 21:20] (current) – [MAJ pihole] pteu | ||
|---|---|---|---|
| Line 18: | Line 18: | ||
| < | < | ||
| CPU : Atom Quad-Core C2538(4C/ | CPU : Atom Quad-Core C2538(4C/ | ||
| - | Mémoire : 2 GB DDR3 (non-extensible) | + | Mémoire : 2 GB DDR3 (extensible |
| Emplacements : 4x baies 3.5" hot-swappable ; max 24 TB (4 disques de 6 TB, connexion interne SATA II), tiroirs screwless (sans vis) | Emplacements : 4x baies 3.5" hot-swappable ; max 24 TB (4 disques de 6 TB, connexion interne SATA II), tiroirs screwless (sans vis) | ||
| Line 58: | Line 58: | ||
| < | < | ||
| - | + excellentes performances, | + | + excellentes performances |
| + petite taille (mais costaud.. ) | + petite taille (mais costaud.. ) | ||
| + bon rapport qualité/ | + bon rapport qualité/ | ||
| Line 64: | Line 64: | ||
| + l'OS DSM bien fini et extensible via les extensions | + l'OS DSM bien fini et extensible via les extensions | ||
| - | - pas de virtualisation possible, alors que d' | + | - il arrive |
| - | - les disques | + | - performances multi-tâches limitées |
| </ | </ | ||
| Line 71: | Line 71: | ||
| Cette partie traite de la sécurisation (hardening) d'un NAS Synology. Parce qu'il arrive qu'il contienne des données sensibles et qu'il soit connecté à Internet, il faut prendre quelques précautions. | Cette partie traite de la sécurisation (hardening) d'un NAS Synology. Parce qu'il arrive qu'il contienne des données sensibles et qu'il soit connecté à Internet, il faut prendre quelques précautions. | ||
| + | |||
| + | Sources: | ||
| + | * [[https:// | ||
| ====système==== | ====système==== | ||
| Line 175: | Line 178: | ||
| * **SynoCommunity** (Location=http:// | * **SynoCommunity** (Location=http:// | ||
| * **cphub** (Location=https:// | * **cphub** (Location=https:// | ||
| + | |||
| + | ====synogear==== | ||
| + | Certains outils de base des distributions Linux sont installables en CLI avec la commande '' | ||
| + | <code bash> | ||
| + | # installation, | ||
| + | synogear install | ||
| + | | ||
| + | |||
| + | # lister les composants installés | ||
| + | synogear list | ||
| + | </ | ||
| + | |||
| + | On retrouvera par exemple iperf, dig, iostat, tcpdump, tracepath, tmux etc... | ||
| ====Tiny Tiny RSS==== | ====Tiny Tiny RSS==== | ||
| Line 200: | Line 216: | ||
| Puis redémarrer le paquet tt-rss via l' | Puis redémarrer le paquet tt-rss via l' | ||
| + | ====Audio Station==== | ||
| + | |||
| + | [[https:// | ||
| + | * dans le Panneau de configuration, | ||
| + | * cliquer sur " | ||
| + | * valider puis cliquer sur " | ||
| + | |||
| + | Pour qu'un utilisateur puisse utiliser Audio Station, aller dans le Panneau de configuration/ | ||
| + | |||
| + | ====Jellyfin==== | ||
| + | Logiciel de catalogue et lecteur multimédia en mode web. Dockerisable, | ||
| + | |||
| + | Avec DSM 7 il faut octroyer les droits d' | ||
| + | {{ : | ||
| =====Virtualisation===== | =====Virtualisation===== | ||
| - | A l' | + | A l' |
| + | |||
| + | En pratique on peut quand même tester le **Virtual Machine Manager** fraîchement pondu par Synology, moyennant : | ||
| + | * d' | ||
| + | * d' | ||
| + | * d' | ||
| ====Upgrade de la RAM==== | ====Upgrade de la RAM==== | ||
| Line 228: | Line 263: | ||
| + | =====Docker===== | ||
| + | |||
| + | Pour installer Docker, aller dans Centre de paquets > Docker > Installer | ||
| + | |||
| + | {{ : | ||
| + | ====Installer pihole==== | ||
| + | |||
| + | Une fois Docker, installer, le lancer ; | ||
| + | * dans **Registre** on peut rechercher une image sur le dockerhub ; rechercher " | ||
| + | * une fois l' | ||
| + | |||
| + | Pour la configuration, | ||
| + | * donner un nom au conteneur, par ex " | ||
| + | * cliquer sur paramètres avancés | ||
| + | * dans **Volume**, on va partager des répertoires du Syno avec le conteneur, afin d' | ||
| + | <code bash> | ||
| + | # | ||
| + | docker/ | ||
| + | docker/ | ||
| + | </ | ||
| + | * dans l' | ||
| + | * dans l' | ||
| + | <code bash> | ||
| + | # mot de passe de l' | ||
| + | WEBPASSWORD=MDP4cc3sInterfaceWeb | ||
| + | |||
| + | # Spécifie au pihole de répondre à tous les clients qui lui demande | ||
| + | # Si on n'est pas sûr de ce que l'on veut faire, il vaut mieux préciser " | ||
| + | # que " | ||
| + | DNSMASQ_LISTENING=all | ||
| + | |||
| + | # port d' | ||
| + | WEB_PORT=8080 | ||
| + | |||
| + | # bind le serveur web sur toutes les adresses locales du NAS | ||
| + | # | ||
| + | |||
| + | |||
| + | # si vous avez configuré un DNS pour votre Syno, vous pouvez le préciser ici | ||
| + | VIRTUAL_HOST=pihole.local.perso | ||
| + | |||
| + | # dans mon cas j'ai déjà un résolveur DNS, donc je le spécifie ici. Sinon, ne pas ajouter cette ligne | ||
| + | PIHOLE_DNS_=192.168.1.65 | ||
| + | # on peut préciser plusieurs forwarders séparés par un ";", | ||
| + | PIHOLE_DNS_=192.168.1.65# | ||
| + | </ | ||
| + | |||
| + | On clique sur **Action > Démarrer** et c'est parti, on peut logiquement accéder à l' | ||
| + | |||
| + | A noter que si on choisit de changer des variables d' | ||
| + | <code bash> | ||
| + | ::: Testing lighttpd config: Error: duplicate array-key: VIRTUAL_HOST. Please get rid of the duplicate entry. | ||
| + | </ | ||
| + | Pour contourner cela, sélectionner le conteneur puis : " | ||
| + | |||
| + | ===Mise à jour du conteneur=== | ||
| + | |||
| + | Globalement la procédure consiste à arrêter le conteneur, le supprimer, supprimer l' | ||
| + | Pour automatiser la re-création du conteneur, on peut créer le user-script suivant dans le planificateur de tâche du syno (à lancer en root, et en désactivant la répétition pour ne le lancer que manuellement) : | ||
| + | |||
| + | <WRAP center round important 80%> | ||
| + | Depuis sa v6 pihole utilise de nouvelles variables incompatibles avec les précédentes il faut donc faire une passe pour convertir les variables d' | ||
| + | |||
| + | //Replacing any v5 image (2024.07.0 and earlier) with a v6 image will result in updated configuration files. These changes are irreversible.// | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | docker run -d --name=pihole \ | ||
| + | -e FTLCONF_webserver_port=" | ||
| + | -e FTLCONF_webserver_api_password=MDP4cc3sInterfaceWeb \ | ||
| + | -e FTLCONF_dns_listeningMode=all \ | ||
| + | -e VIRTUAL_HOST=pihole.local.perso \ | ||
| + | -e FTLCONF_dns_upstreams=" | ||
| + | -e TZ=FR \ | ||
| + | -v docker/ | ||
| + | -v docker/ | ||
| + | --net=host \ | ||
| + | --restart always \ | ||
| + | pihole/ | ||
| + | |||
| + | # pour mémoire, l' | ||
| + | docker run -d --name=pihole-new \ | ||
| + | -e WEB_PORT=3443 \ | ||
| + | -e WEBPASSWORD=MDP4cc3sInterfaceWeb \ | ||
| + | -e DNSMASQ_LISTENING=local \ | ||
| + | -e VIRTUAL_HOST=pihole.local.perso \ | ||
| + | -e PIHOLE_DNS_=127.0.0.1# | ||
| + | -e TZ=FR \ | ||
| + | -v docker/ | ||
| + | -v docker/ | ||
| + | --net=host \ | ||
| + | --restart=unless-stopped \ | ||
| + | pihole/ | ||
| + | </ | ||
| + | |||
| + | Ressources : | ||
| + | * https:// | ||
| + | |||
| + | |||
| + | ====Docs docker==== | ||
| + | |||
| + | * [[https:// | ||
| + | |||
| + | =====Hyperbackup===== | ||
| + | |||
| + | Mise en place d'une sauvegarde Hyperbackup sur un NAS Synology vers un serveur rsync " | ||
| + | |||
| + | Sur le serveur OMV distant : | ||
| + | * créer un nouveau partage " | ||
| + | * activer le SSHd et créer un utilisateur " | ||
| + | * activer le service rsyncd : dans Services> | ||
| + | * onglet Server : " | ||
| + | * créer un nouveau Module, déclarer le dossier partagé, activer " | ||
| + | |||
| + | Sur le NAS Syno source, installer puis lancer "Hyper Backup" | ||
| + | * type : serveur compatible rsync | ||
| + | * chiffrement activé | ||
| + | * saisir l'IP distante, l' | ||
| + | * choisir le répertoire à sauvegarder | ||
| + | |||
| + | Lancer la sauvegarde. Les fichiers **rsyncd.conf** et **rsyncd.secrets** seront créés dans le dossier distant. | ||
| =====Tips===== | =====Tips===== | ||
| + | ====Installer les plugins OMV-extra==== | ||
| + | |||
| + | Vu ici : https:// | ||
| + | <code bash> | ||
| + | wget -O - https:// | ||
| + | </ | ||
| ====Connexion SSH==== | ====Connexion SSH==== | ||
| Line 240: | Line 402: | ||
| ====Certificat SSL/TLS let's encrypt==== | ====Certificat SSL/TLS let's encrypt==== | ||
| - | Pour revalider | + | Pour renouveler |
| - | * ouvrir le port tcp/80 vers le syno | + | * ouvrir le port public |
| - | * lancer | + | * se logguer |
| <code bash> | <code bash> | ||
| - | / | + | sudo / |
| + | |||
| + | DEBUG: Issuer name of certificate. [Let'' | ||
| + | DEBUG: Issuer name of certificate. [Synology Inc.]-> | ||
| + | DEBUG: certificate is not issued by Let'' | ||
| + | DEBUG: start to renew [/ | ||
| + | DEBUG: setup acme url https:// | ||
| + | DEBUG: GET Request: https:// | ||
| + | DEBUG: GET Request: https:// | ||
| + | DEBUG: Post JWS Request: https:// | ||
| + | DEBUG: Post Request: https:// | ||
| + | DEBUG: Failed to port map router detect. [1] | ||
| + | DEBUG: failed to open port 80. | ||
| + | DEBUG: Post JWS Request: https:// | ||
| + | DEBUG: Post Request: https:// | ||
| + | DEBUG: dns-01 is not support for toto.fr | ||
| + | DEBUG: Setup challenge for toto.fr with type http-01 | ||
| + | DEBUG: Post JWS Request: https:// | ||
| + | DEBUG: Post Request: https:// | ||
| + | DEBUG: Post JWS Request: https:// | ||
| + | DEBUG: Post Request: https:// | ||
| + | DEBUG: Post JWS Request: https:// | ||
| + | DEBUG: Post Request: https:// | ||
| + | DEBUG: ==> start new-cert. | ||
| + | DEBUG: generate csr & private key | ||
| + | DEBUG: get new-cert | ||
| + | DEBUG: Post JWS Request: https:// | ||
| + | DEBUG: Post Request: https:// | ||
| + | DEBUG: Post JWS Request: https:// | ||
| + | DEBUG: Post Request: https:// | ||
| + | DEBUG: get issuer-cert | ||
| + | DEBUG: save to files | ||
| + | DEBUG: renew success. [/ | ||
| </ | </ | ||
| + | (PS : le '' | ||
| + | |||
| + | Et si KO : penser à ouvrir bien grand (permit any any) le firewall Syno, cf anecdote qui suit. | ||
| + | |||
| + | ====Erreur syno-letsencrypt==== | ||
| + | |||
| + | <WRAP center round tip 80%> | ||
| + | TL;DR : Le problème vient d'un filtrage géographique dans le firewall du Syno. Malgré que celui-ci soit désactivé, | ||
| + | </ | ||
| + | |||
| + | Je suis récemment tombé sur un os lors du renouvellement de mon certificat letsencrypt : alors que la redirection tcp/80 était bien en place sur mon routeur, le script se vautre en renvoyant l' | ||
| + | <code bash> | ||
| + | sudo / | ||
| + | [..] | ||
| + | DEBUG: DNS challenge failed, reason: {" | ||
| + | DEBUG: Normal challenge failed, reason: {" | ||
| + | </ | ||
| + | |||
| + | Sympa l' | ||
| + | |||
| + | On passe en mode Columbo : on désactive le firewall du Syno et on relance le script avec l' | ||
| + | <code bash> | ||
| + | # morceaux choisis du debug : | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | lD20Th6mHJzDNhBDkURHo1ZFBHxh5F-A-0: | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Ce challenge permet de valider que : | ||
| + | * c'est bien vous qui avez initié la demande de renouvellement | ||
| + | * c'est bien vous le propriétaire du domaine | ||
| + | |||
| + | Ce fichier est mis à disposition en HTTP par le serveur nginx du Syno : | ||
| + | <code bash> | ||
| + | grep -Ri -A3 " | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | </ | ||
| + | C'est bourrin mais ça paie : le dossier est bien configuré dans nginx, et il est situé "en vrai" dans **/ | ||
| + | |||
| + | Le dossier existe bel et bien et dispose des bons droits, mais en fouinant dans les logs d' | ||
| + | <code bash> | ||
| + | 2018/11/02 15:35:20 [error] 6972#6972: *51124 access forbidden by rule, client: 64.78.149.164, | ||
| + | "GET / | ||
| + | </ | ||
| + | J'aime les erreurs " | ||
| + | |||
| + | Les fichiers de challenge sont temporaires et supprimés à la fin du script ; aussi on va faire le test avec un autre fichier : | ||
| + | <code bash> | ||
| + | echo " | ||
| + | </ | ||
| + | |||
| + | Puis, j' | ||
| + | <code bash> | ||
| + | wget -d http:// | ||
| + | [..] | ||
| + | 2018-11-02 16:21:06 (121 KB/s) — « test » sauvegardé [5/5] | ||
| + | </ | ||
| + | Et là ça passe ! | ||
| + | |||
| + | C'est donc un filtrage en fonction de l'IP source ; n' | ||
| + | <code bash> | ||
| + | / | ||
| + | [..] | ||
| + | DEBUG: renew success. [/ | ||
| + | </ | ||
| + | ... et BIM ça marche ! | ||
| + | |||
| + | Aussi saugrenu que ça paraisse^W soit, chez Synology quand on décoche la case " | ||
| + | |||
| + | Mais ma curiosité s' | ||
| + | |||
| + | |||
| + | ====Erreur find en tâche planifiée==== | ||
| + | |||
| + | Description du problème : un script utilisant l' | ||
| + | > **find: cannot get current directory: Permission denied** | ||
| + | |||
| + | D' | ||
| =====Liens===== | =====Liens===== | ||
| Line 251: | Line 529: | ||
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * Topics utiles sur HFR : | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
informatique/hardware/synology_ds415plus.1516010310.txt.gz · Last modified: 2018/01/15 09:58 by pteu