Synology


Modèle Ds218+
Version Nas : DSM 6.2.1-23824 Update 4
Installer “nano” (paquets communauté)

Ajout domaine

Si vous souhaitez vous connecter à distance sur votre serveur NAS (Synology ou autre), alors vous avez deux possibilités. Soit vous connaissez par coeur votre IP et donc vous la tapez dans le navigateur pour atteindre le serveur NAS, soit vous utilisez un nom de domaine bien plus facile à retenir qu’une IP.

Chez Synology il y a un service qui propose de vous créer gratuitement un sous-domaine, c’est le service DDNS. Vous pourrez alors avoir un nom de domaine du style sousdomaine.synology.me

C’est très bien, mais moins personnalisable qu’un « vrai » nom de domaine. Je vais rapidement vous expliquez comment utilisé un nom de domaine en .fr, .com, .net… pour vous connectez à votre serveur NAS (cela fonctionne pour toutes les marques… Synology, QNAP, TECHUS, DLINK, ect…).

La première chose à faire est bien entendu d’acheter un nom de domaine chez un fournisseur. Cela peut être 1and1, OVH ou un autre, il fonctionne à peu près tous de la même manière. Personnellement j’achète mes noms de domaine chez OVH. Une fois le nom de domaine acheté, on doit rediriger le domaine vers l’adresse IP du serveur NAS, bien entendu, on ne parle pas ici de l’adresse IP locale, mais de l’adresse IP extérieure (celle de la box). Pour avoir l’adresse IP de votre box, vous pouvez tout simplement aller depuis votre navigateur préféré sur l’adresse : http://whatismyipaddress.com/ vous obtiendrez l’adresse IP de votre box, c’est celle-ci que vous aller devoir renseigner sur l’interface de l’hébergeur.

OVH Domaine

Domaine OVH : eolam.xyz Adress IP publique : 78.239.32.87

Zone Dns

$TTL 3600
@	IN SOA dns110.ovh.net. tech.ovh.net. (2019021402 86400 3600 3600000 300)
    3600 IN NS     dns110.ovh.net.
    3600 IN NS     ns110.ovh.net.
    3600 IN A      78.239.32.87
*   3600 IN CNAME  eolam.xyz.

Box Free

Modifier “Paramètres de la freebox → Gestion des ports” , ajouter

Let’s Encrypt SSL NAS Synology

Comment installer un protocole SSL Let’s Encrypt sur un NAS Synology

  1. Connectez-vous d’abord à votre DSM et naviguez jusqu’à : Panneau de configuration > Sécurité > Certificat et cliquez sur Ajouter
    Ajouter un certificat au NAS Synology

  2. Sélectionnez ensuite “Remplacer un certificat existant” pour remplacer votre certificat existant ou auto-signé.
    Synology remplace le certificat existant

  3. Sélectionnez maintenant “Obtenir un certificat de Let’s Encrypt” et cochez “Définir comme certificat par défaut”.
    Synology Obtenez un certificat de Let's Encrypt

  4. Enfin, entrez un nom de domaine eolam.xyz et une adresse courriel ,ajouter dans Autre nom de l’objet : nc.eolam.xyz et cliquez sur Appliquer.
    Synology Cryptons le nom de domaine

  5. A ce stade, votre NAS Synology recevra le SSL et redémarrera automatiquement ses services web
    Ajouter un certificat au NAS Synology
    et vous pourrez alors accéder à votre NAS via le nom de domaine https://eolam.xyz.

    Tous les 90 jours, votre Synology renouvellera automatiquement le certificat SSL Let’s Encrypt pour vous.

  6. Rediriger systématiquement et automatiquement tous les accès vers HTTPS
    Pour cela, rendez-vous dans la section « Réseau » de DSM, puis « Paramètres de DSM » et activez l’option « Rediriger automatiquement les connexions HTTP vers HTTPS ». Lorsque vous aurez appliqué les changements, toutes les connexions vers votre NAS utiliseront le chiffrement offert par le certificat SSL Let’s Encrypt.

TRES IMPORTANT
Après basculement en https , il faudra supprimer la connexion externe http (pour des raisons de sécurité) sur la box free (“Paramètres de la freebox → Gestion des ports”)
Texte alternatif
SI ON SUPPRIME , PAS DE RENOUVELLEMENT AUTOMATIQUE DES CERTIFICATS !!!

Comment renouveler les certificats NAS Synology

Il est possible que le renouvellement auto fonctionne car ouverture du port 80 !!!

Vérifications

Par ssllabs et le lien https://www.ssllabs.com/ssltest/analyze.html?d=eolam.xyz

Comment installer les certificats avec acme (NE PAS UTILISER)

https://github.com/Neilpang/acme.sh
https://github.com/Neilpang/acme.sh/wiki/Synology-NAS-Guide

Se connecter en SSH sur le NAS ,mot de passe admin

ssh -p 57022 admin@eola.synology.me

Toutes les opérations sur le NAS se font en mode su (sudo -i → Mot de passe admin)

Installer acme.sh

$ sudo -i
$ wget https://github.com/Neilpang/acme.sh/archive/master.tar.gz
$ tar xvf master.tar.gz
$ cd acme.sh-master/
$ ./acme.sh --install --nocron --home /usr/local/share/acme.sh #--accountemail "email@gmailcom"

Export des paramètres pour le dns OVH (le domaine est hébergé par OVH , lien pour création des clés OVH)

# application key
export OVH_AK="RE269874MyBq2FZrLN"
# application secret
export OVH_AS="32eqGDOfgh256j4kFgQdv1zX2DW7US"

Les éléments fournis ci-dessus sont fictifs

Génération des certificats

  • les certificats pour les répertoires correspondants à eolam.xyz et nc.eolam.xyz (/usr/syno/etc/certificate/_archive/XpIU8u)
  • si l’on veut les certificats dans le répertoire par défaut du NAS Synology /usr/syno/etc/certificate/system/default/

On lance les intructions une première fois

# premier passage
./acme.sh  --issue -d eolam.xyz -d nc.eolam.xyz --dns dns_ovh \
    --cert-file "/usr/syno/etc/certificate/_archive/XpIU8u/cert.pem" \
    --key-file "/usr/syno/etc/certificate/_archive/XpIU8u/privkey.pem" \
    --fullchain-file "/usr/syno/etc/certificate/_archive/XpIU8u/fullchain.pem" \
    --capath "/usr/syno/etc/certificate/_archive/XpIU8u/chain.pem"

on récupère le lien

[Wed Jul 10 14:13:57 CEST 2019] Please open this link to do authentication: https://eu.api.ovh.com/auth/?credentialToken=3JOgOXTjJaju4AgCkJy0cTlWtFmciPaLbdtMbr3NiQnewVzHkup7SFtldEGqlF9O

On se connecte au lien ci-dessus avec les paramètres de connexion OVH et on doit obtenir le message suivant

OVH authentication Success !

Effectuer le second passage domaine eolam.xyz et nc.eolam.xyz

cd /usr/local/share/acme.sh
./acme.sh  --issue -d eolam.xyz -d nc.eolam.xyz --dns dns_ovh \
    --cert-file "/usr/syno/etc/certificate/_archive/XpIU8u/cert.pem" \
    --key-file "/usr/syno/etc/certificate/_archive/XpIU8u/privkey.pem" \
    --fullchain-file "/usr/syno/etc/certificate/_archive/XpIU8u/fullchain.pem" \
    --capath "/usr/syno/etc/certificate/_archive/XpIU8u/chain.pem" \
    --reloadcmd "/usr/syno/sbin/synoservicectl --reload nginx" \
    --dnssleep 20

A la fin de la procédure

[Wed Jul 10 20:24:05 CEST 2019] Verifying: eolam.xyz
[Wed Jul 10 20:24:08 CEST 2019] Success
[Wed Jul 10 20:24:08 CEST 2019] Verifying: nc.eolam.xyz
[Wed Jul 10 20:24:11 CEST 2019] Success

[Wed Jul 10 20:24:23 CEST 2019] Your cert is in  /usr/local/share/acme.sh/eolam.xyz/eolam.xyz.cer 
[Wed Jul 10 20:24:23 CEST 2019] Your cert key is in  /usr/local/share/acme.sh/eolam.xyz/eolam.xyz.key 
[Wed Jul 10 20:24:23 CEST 2019] The intermediate CA cert is in  /usr/local/share/acme.sh/eolam.xyz/ca.cer 
[Wed Jul 10 20:24:23 CEST 2019] And the full chain certs is there:  /usr/local/share/acme.sh/eolam.xyz/fullchain.cer 
[Wed Jul 10 20:24:23 CEST 2019] Installing cert to:/usr/syno/etc/certificate/_archive/XpIU8u/cert.pem
[Wed Jul 10 20:24:23 CEST 2019] Installing CA to:/usr/syno/etc/certificate/_archive/XpIU8u/chain.pem
[Wed Jul 10 20:24:23 CEST 2019] Installing key to:/usr/syno/etc/certificate/_archive/XpIU8u/privkey.pem
[Wed Jul 10 20:24:23 CEST 2019] Installing full chain to:/usr/syno/etc/certificate/_archive/XpIU8u/fullchain.pem
[Wed Jul 10 20:24:23 CEST 2019] Run reload cmd: /usr/syno/sbin/synoservicectl --reload nginx
nginx reloaded.
[Wed Jul 10 20:24:23 CEST 2019] Reload success

Installer IPKG, OPKG, Java 8, Serposcope sur Synology 5 et 6

Installer IPKG, OPKG, Java 8, Serposcope sur Synology 5 et 6

Nextcloud

Installer nextcloud sur synology
Prérequis

  • apache server 2.4
  • php7.0
  • mariadb10
  • PhpMyAdmin

Créons dès à présent le dossier dans lequel les données de votre Nextcloud seront stockées : il est préférable que celui-ci soit séparé hors du dossier web, et différent du dossier d’installation de Nextcloud.

Rendez-vous dans File Station ou directement dans le Panneau de Configuration de Synology pour créer un nouveau dossier partagé, « nextcloud » . Sélectionnez l’emplacement de ce dossier sur vos volumes, puis appliquez pour finaliser la création. Vous pouvez choisir de chiffrer ou non le dossier, de cacher le dossier des utilisateurs sans droits etc.

Configuration préalable

Si vous utilisez déjà des bases de données sur votre NAS, vous pouvez passer directement à la partie Installation de cet article.

Base de données

Une fois MariaDB 10 installé et activé, il faut ajouter un mot de passe, ce dernier étant vide par défaut. Lancez MariaDB 10 puis cliquez sur « Changer le mot de passe MariaDB », et ajoutez-le à votre gestionnaire de mots de passe préféré

Connectez-vous à phpMyAdmin pour créer un utilisateur dédié à votre Nextcloud à l’aide de l’identifiant ‘root’ et du mot de passe choisi précédemment (soit en cliquant sur l’icône de l’interface web du Synology, soit en vous rendant directement sur https://eolam.xyz/phpMyAdmin/).

Dans l’onglet Comptes d’utilisateurs, cliquez sur « Ajouter un compte d’utilisateur ».

Entrez le nom de l’utilisateur voulu, sélectionnez « localhost » et choisissez un mot de passe fort. Cochez également la case « Créer une base portant son nom et donner à cet utilisateur tous les privilèges sur cette base. » Puis cliquer sur Exécuter

WebStation

Ouvrez WebStation, sélectionnez dans les paramètres généraux Apache 2.4 et PHP 7.0, et activez « Site Web personnel » si ça n’est pas le cas

Rendez-vous dans l’onglet Paramètres PHP, puis double-cliquez sur PHP 7.0 pour modifier le profil.

Nous allons commencer par modifier le champ open_basedir en ajoutant le chemin du dossier Data de Nextcloud (Le dossier créé précédemment), précédé de » : « , soit « :/volume1/Nextcloud », en choisissant bien le volume de votre dossier partagé.

Vérifiez également que les extensions curl, gd, mysqli, openssl, pdo_mysql et zip sont bien activées.

Dans l’onglet Cœur, configurez les lignes suivantes pour utiliser MariaDB 10 :

mysqli.default_port          3307
mysqli.default_socket     /run/mysqld/mysqld10.sock

Installation

Déploiement nextcloud

Première étape, télécharger Nextcloud depuis le site officiel

Déposez le fichier zip dans votre dossier /web via FileStation,

cd /volume1/web
sudo -s              # mot de passe admin , passage en super utilisateur (prompt #)
wget https://download.nextcloud.com/server/releases/nextcloud-15.0.4.zip

puis dézippez son contenu à la racine de /web avec File Station. Vous devriez obtenir un dossier /nextcloud.

Attribuer les bonnes permissions aux différents fichiers et dossiers : il va vous falloir personnaliser le script ci-dessous en fonction des dossiers dans lesquels vous avez installé Nextcloud et le dossier choisi pour les data (exécuter commande après commande directement en SSH)

chown -R http:http /volume1/web/nextcloud/
chown -R http:http /volume1/web/nextcloud/apps/
chown -R http:http /volume1/web/nextcloud/config/
chown -R http:http /volume1/web/nextcloud/themes/
 
chown -R http:http /volume1/Nextcloud/
 
chown http:http /volume1/web/nextcloud/.htaccess
 
find /volume1/web/nextcloud/ -type f -print0 | xargs -0 chmod 777
 
find /volume1/web/nextcloud/ -type d -print0 | xargs -0 chmod 777
find /volume1/Nextcloud/ -type d -print0 | xargs -0 chmod 777
 
chmod 777 /volume1/web/nextcloud/.htaccess

MariaDB , base nextcloud

On se connecte sur PhpMyAdmin https://eolam.xyz/phpMyAdmin/
Créer une base nextcloud avec un utilisateur nextcloud ayant tous les privilèges.

Virtual Host

Pour accéder à nextcloud en utilisant apache2.4 et php7.0 , on va créer un “hôte virtuel”

Création d’un “Virtual Host”
Web Station → Virtual Host → Création

Configuration nextcloud

Accès au site https://nc.eolam.xyz pour le paramétrage (on utilise mariadb comme base), et remplir les champs avec les infos suivantes :

    Username : admin
    Mot de passe : un mot de passe fort
    Data folder : /volume1/web/nextcloud/data

Database :

    Choisir MariaDB
    Database user : nextcloud
    Database password : xxxxxx
    Database name : nextcloud
    Adress : 127.0.0.1:3307 si vous êtes sur MariaDB 10 (et non localhost !)


ATTENTION !!! il faut remplacer localhost:3307 par 127.0.0.1:3307

Il n’y a plus qu’à cliquer sur Terminer l’installation

Par sécurité, Nextcloud empêche l’accès depuis des domaines non déclarés. Il va donc falloir ajouter votre sous-domaine au fichier de configuration.

Connectez-vous à nouveau en SSH à votre serveur (en super utilisateur) comme précédemment, puis rendez-vous dans le dossier /volume1/web/nextcloud/config/

Ajoutez votre sous-domaine en éditant le fichier « config.php » :

<?php
$CONFIG = array (
  'instanceid' => 'oc9k9aypkme0',
  'passwordsalt' => 'OC0swXGgasuquZysq9YvlnPjzoGpqn',
  'secret' => '89aAqfzI4vbrN4p2MpgVpr2si3Zl0az45+Xo/khNTYPgyDNX',
  'trusted_domains' => 
  array (
    0 => 'eolam.xyz',
    0 => 'nc.eolam.xyz',
  ),
  'datadirectory' => '/volume1/web/nextcloud/data',
  'dbtype' => 'mysql',
  'version' => '15.0.4.0',
  'overwrite.cli.url' => 'http://127.0.0.1',
  'dbname' => 'nextcloud',
  'dbhost' => '127.0.0.1:3307',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'oc_marina',
  'dbpassword' => 'sRXfMbBjILO3yzRyNPyxsGSkYnvRC6',
  'installed' => true,
);

Sauvegardez votre fichier puis quittez.

Pour réinitialiser un mot de passe en ligne de commande ,se connecter SSH sue le NAS

/volume1/web/nextcloud/occ user:resetpassword admin

Saisir et confirmer…

Nextcloud, problème PHP suite à mise à jour du NAS You are currently running 5.6.11. Please update your PHP version
PHP 7 obligatoire depuis Nextcloud 14

Se connecter SSH

root@DiskStation:~# cat /var/packages/WebStation/etc/php_profile/474ccf3d-6dd9-4769-9c48-0edf8c7d35a7/fpm.conf 
[global]
pid = /run/php-fpm/php73-474ccf3d-6dd9-4769-9c48-0edf8c7d35a7.pid
error_log=syslog
syslog.facility = daemon
syslog.ident = php73-fpm
log_level = warning
daemonize = no

La ligne syslog.ident = php73-fpm vous indique que vous êtes sur le bon profil (par opposé à syslog.ident = php56-fpm). Notez la chaîne de caractères correspondant au nom du profil , puis passons à la création du script :

#!/bin/bash
PHP_INI_SCAN_DIR=.:/usr/local/etc/php73/:/var/packages/WebStation/etc/php_profile/474ccf3d-6dd9-4769-9c48-0edf8c7d35a7/conf.d/
export PHP_INI_SCAN_DIR
php73 $*

Vous pouvez aussi tout faire via la console :

echo -e '#!/bin/bash\n PHP_INI_SCAN_DIR=.:/usr/local/etc/php73/:/var/packages/WebStation/etc/php_profile/474ccf3d-6dd9-4769-9c48-0edf8c7d35a7/conf.d/\n export PHP_INI_SCAN_DIR\n php73 $*' > /volume1/web/nextcloud/script_73.sh
chmod +x /volume1/web/nextcloud/script_73.sh