Je possĂšde un NAS Synology chez moi depuis plusieurs annĂ©es…. Mon DS412 va bientĂŽt fĂȘter ses 10 ans et j’avoue qu’il n’est plus aussi rapide qu’au dĂ©but; nombreuses mises Ă jour ont fait de ce NAS un serveur de fichier qui reste correct, mais qui ne sais plus trop servir des services rapidement – notamment, tout ce qui est service WEB.
Je possĂšde aussi depuis quelques mois, un serveur privĂ© virtuel (aka « VPS ») qui fonctionne sous Linux Debian 10 et sur lequel je fais fonctionner diffĂ©rents services WEB : TTRSS, Nexcloud, etc…
Sauf que sous Nextcloud, j’aurais aimĂ© pouvoir accĂ©der Ă tous mes fichiers situĂ©s sur mon NAS. Voici une solution Ă partir de laquelle on va exploiter le partage de fichier que propose le NAS via le protocole NFS (et non pas SAMBA/NetBIOS/ciFS), sommaire :
Les VPN disponible
Les NAS Synology intĂšgrent 3 types de VPN : L2TP/IPSec, PPTP et OpenVPN.
Pour avoir accĂšs Ă ces VPN, il faut installer dans le NAS Synology le paquet « VPN Server » dans le centre de paquet. Si ce paquet n’est pas installĂ©, lancez alors l’installation de celui-ci
On a ainsi accĂšs aux 3 types de VPN disponible au sein de ce paquet.
PPTP (Point-to-point tunneling protocol – RFC 26371), protocole de tunnel point-Ă -point, est un protocole d’encapsulation PPP sur IP conçu par Microsoft. Il permet de mettre en place des rĂ©seaux privĂ©s virtuels (VPN) au-dessus d’un rĂ©seau public. Layer 2 Tunneling Protocol (L2TP) et IPsec sont des protocoles inspirĂ©s de PPTP et chargĂ©s de le remplacer. Cependant, le protocole PPTP continue d’ĂȘtre utilisĂ© car il est implĂ©mentĂ© nativement sur les machines Windows depuis Windows XP & 2000. Toute machine Microsoft est donc capable de mettre en place un tunnel PPTP avec une machine distante sans devoir ajouter de mĂ©canisme supplĂ©mentaire.
L2TP signifie Layer 2 Tunneling Protocol et ne fournit aucun cryptage par lui-mĂȘme. Cependant, L2TP VPN utilise gĂ©nĂ©ralement un protocole d’authentification, IPSec (Internet Protocol Security), pour le cryptage renforcĂ© et l’authentification, ce qui lui confĂšre un avantage ultime sur certains protocoles largement utilisĂ©s tels que PPTP. L2TP / IPSec utilise les ports UDP 1701.
OpenVPN permet Ă des pairs de s’authentifier entre eux Ă l’aide d’une clĂ© privĂ©e partagĂ©e Ă l’avance, de certificats Ă©lectroniques ou de couples de noms d’utilisateur/mot de passe. Il utilise de maniĂšre intensive la bibliothĂšque d’authentification OpenSSL ainsi que le protocole SSLv3/TLSv1. Disponible avec une multitude d’environnements tel que Solaris, OpenBSD, FreeBSD, NetBSD, Linux (Debian, Redhat, Ubuntu, etc.), Mac OS X, Windows 2000, XP, Vista, 7, 8 et 10, il offre de nombreuses fonctions de sĂ©curitĂ© et de contrĂŽle.
Le chois d’OpenVPN
Parmi ces trois VPN, OpenVPN semble ĂȘtre la solution multi-plateforme : la solution est disponible sur une large palette de systĂšme d’exploitation, allant de Windows Ă la famille des BSD et en passant par Linux comme MacOS.
Mise en place
Installer la méthode de partage de fichier sur le NAS
Pour que notre NAS puisse partager ses fichier au sein d’un systĂšme fonctionnant sous Linux, on utilisera NFS – contrairement aux partages de type SAMBA, alias « SMB » qui sont plutĂŽt orientĂ©s Windows.
Dans le panneau de configuration, se rendre dans le menu « Dossier partagé » puis éditez le dossier que vous souhaitez partager avec votre VPS pour accéder aux paramÚtres de celui-ci :
Une boite de dialogue s’ouvre et propose diffĂ©rents onglets : cliquez sur l’onglet « Autorisations NFS »
Dans mon cas, j’ai dĂ©jĂ intĂ©grer 2 types de partage NFS, un sur mon rĂ©seau local 192.168.0.x et un autre sur le rĂ©seau 10.8.0.x qui sera celui que notre VPN crĂ©era.
Pour ajouter votre configuration, cliquez sur le bouton « CrĂ©er » qui fera apparaĂźtre une nouvelle boite de dialogue : dans le champs « Nom d’hĂŽte ou IP », indiquez « 10.8.0.0/24 »
[tds_note]Le rĂ©seau 10.8.0.x est celui que votre VPN va crĂ©er et c’est l’adresse que votre VPS recevra : Ă aucun moment, votre VPN donnera une adresse IP de votre rĂ©seau local Ă votre serveur VPS. Il faut donc dĂ©finir un partage sur ce type de rĂ©seau 10.8.0.x[/tds_note]
Configuration OpenVPN
Par dĂ©faut, OpenVPN n’est pas actif dans une configuration fraĂźchement installĂ©e. Pour cela, il faut se rendre dans la section « OpenVPN » dans le menu de droite et cocher la case « Activer le serveur OpenVPN« ; cliquez sur le bouton « Appliquer » situĂ© en bas de la boite de dialogue.
[tds_warning]Information de sécurité
Dans la section « OpenVPN », ne cochez pas l’option « Autoriser aux clients l’accĂšs au serveur LAN » : en cas de compromission du serveur VPS, il ne sera pas possible au hacker de visiter votre LAN / rĂ©seau privĂ©.
[/tds_warning]
On choisira également les utilisateurs qui auront la possibilité de se connecter en VPN :
Récupération de la configuration OpenVPN
Pour récupérer la configuration OpenVPN, cliquez sur le bouton « Exporter la configuration ».
Un fichier « openvpn.zip » sera proposé en téléchargement; il contient 4 fichiers :
- VPNConfig.ovpn
- README.txt
- ca_bundle.crt
- ca.crt
Ouverture du Firewall de la BOX Opérateur
La configuration OpenVPN proposĂ©e par Synology utilise le protocole UDP (et non TCP): il faudra donc configurer le NAT de la BOX opĂ©rateur pour que les connexions entrantes UPD sur le port 1194 soient redirigĂ©es vers votre NAS Synology. Pour cela, ajouter simplement une nouvelle entrĂ©e que l’on nommera « OpenVPN » :
[tds_note]Si vous n’utilisez pas OpenVPN en dehors de cet article, autre que pour connecter votre VPS Ă votre NAS, je vous conseille de limiter l’accĂšs Ă votre NAT OpenVPN Ă la seule adresse de votre VPS.
Dans mon cas, l’adresse de mon VPS fini par .84.128[/tds_note]
Installation et paramĂ©trage d’OpenVPN sur le VPS
Installer OpenVPN sur votre VPS en lançant la commande :
- sur CentOS / RedHat
yum install openvpn
- sur Debian / Ubuntu
apt install openvpn
Envoyez le fichier openvpn.zip vers votre VPS et dans le dossier /etc/openvpn. DĂ©-zipper le fichier dans ce dossier.
Avant de se lancer OpenVPN, il faut commencer par Ă©diter le fichier VPNConfig.ovpn : dans ce fichier, renseignez l’adresse IP ou le nom DNS publique de votre NAS Synology
[tds_council]Pour permettre la communication entre vos deux serveurs, il faut que votre NAS soit accessible depuis Internet : vous devrez non seulement ouvrir les bons ports sur la BOX de votre opérateur, mais en plus, vous devrez mettre en place un DDNS (voir section « AccÚs externe » dans le panneau de configuration du NAS)[/tds_council]
Personnellement, j’ai renseignĂ© le nom DNS (dĂ©fini dans mon DDNS) que j’ai configurĂ© dans mon NAS : xxx.synology.me
…ou « xxx » est un nom personnel que je ne donnerais pas ici đ
Cette configuration VPN ne contient pas le USER et son Password qui devra se connecter; pour cela, on va encore modifier le fichier VPNConfig.ovpn :
-
- ajouter la ligne suivante dans le fichier : auth-user-pass credentials
- créer le fichier « credentials » dans le dossier /etc/openvpn et indiquer dans celui-ci :
1 2 |
<USER> <PASSWORD> |
[tds_note]Indiquer votre USER Ă la place du champs et votre mot de passe Ă la place de \<USER> et \<PASSWORD>[/tds_note]
Lancement du service
Le lancement du service OpenVPN se réalise facilement mais pour que ce dernier prenne la configuration automatiquement, il faut commencer par renommer le fichier « VPNConfig.ovpn » en tant que « VPNConfig.conf ».
[tds_info]Que cela soit sous Debian ou RedHat, le lancement des configurations OpenVPN se fait sur un nom de fichier qui se termine par « .conf« . SystemD demande ce type d’extension pour ĂȘtre pris en compte.[/tds_info]
Pour lancer le VPN, on exécute :
1 |
systemctl start openvpn@VPNConfig && systemctl status openvpn@VPNConfig |
Vous lancez ainsi la connexion et vĂ©rifiez que tout se passe bien. Vous pouvez Ă©galement lancer la commande « ifconfig » ou « ip a » pour vĂ©rifier qu’une nouvelle interface rĂ©seau est bien apparue et a bien reçu une adresse IP de type 10.8.0.x
Si l’interface TUN est correctement montĂ©e avec association d’une adresse IP de type 10.8…. vous pouvez alors activer par dĂ©faut cette configuration
1 |
systemctl enable openvpn@VPNConfig |
Montage des dossiers distant sur le VPS
Maintenant que notre NAS est accessible à notre VPS, il nous est possible de lancer la commande « showmount » pour connaßtre les points de montage NFS :
1 2 3 4 5 6 7 8 9 10 11 12 |
root@monVPS:/etc/openvpn# showmount -e 10.8.0.1 Export list for 10.8.0.1: /volume1/music 10.8.0.0/8,192.168.0.0/16 /volumeUSB2/usbshare 192.168.0.0/16 /volume1/hyperviseur 192.168.0.0/16 /volume1/DA 192.168.0.0/16 /volume1/Games 192.168.0.0/16 /volume1/DGFip 192.168.0.0/16 /volume1/photo 192.168.0.0/16 /volume2/Videos 192.168.0.0/16 /volume1/Programme 192.168.1.1/16 /volume1/video 192.168.0.0/16 |
[tds_warning]Si la commande « showmount » n’est pas reconnu sur votre VPS, c’est que les outils NFS ne sont pas installĂ©s. Pour les installer, faites :
- Sous Debian / Ubuntu : apt install nfs-common
- Sous RedHat / CentOS : yum install nfs-common[/tds_warning]
On voit dans le retour de la commande, que le dossier « music » est partagé sur les réseaux 192.168.0.0 mais également sur le réseau 10.8.0.0. Nous allons donc pouvoir monter le dossier « music » au sein de notre VPS puisque ce dernier à récupéré une adresse en 10.8.0.x via le VPN.
Pour « monter » une ressource de fichier dans le VPS en utilisant le protocole NFS, il faut savoir ou l’on va « dĂ©poser » l’accĂšs aux fichiers du NAS; dans mon exemple, je vais placer les fichiers du dossier « music » du NAS dans le dossier /mnt/music du VPS. On
On crée le dossier /mnt/music :
1 |
mkdir -p /mnt/music |
Une fois le dossier défini et créé, on commence par tester si le partage est fonctionnel :
1 |
mount -t nfs -o defaults,auto,noatime,nolock,bg,intr,tcp,user 10.8.0.1:/volume1/music /mnt/music/ |
Si aucune erreur n’est remontĂ©e, on se rend dans le dossier /mnt/music pour vĂ©rifier que tout est bien lĂ đ
[tds_warning]Si vous recevez au retour de la commande mount le message « mount.nfs: access denied by server while mounting 10.8.0.1:/volume1/music » cela signifie que votre partage n’a pas Ă©tĂ© fait ou correctement fait. Revoyez le chapitre qui en parle.[/tds_warning]
Maintenant que l’on accĂšde correctement Ă notre partage et qu’il est disponible au sein du VPS, on va fixer le montage afin qu’il soit disponible aprĂšs un reboot du serveur VPS. Pour cela, Ă©diter le fichier /etc/fstab avec votre Ă©diteur de texte prĂ©fĂ©rĂ© (vi, nano, joe, vim, etc…) :
1 2 |
# Montage Synology 10.8.0.1:/volume1/music /mnt/music nfs defaults,auto,noatime,nolock,bg,intr,tcp,user 0 0 |
Conclusion
Nous avons fait le tour des choses… Dans le cas d’un Nextcloud, si vous souhiatez avoir accĂšs aux fichiers de ce partage, il faudra monter la ressource « music » ailleurs que dans /mnt et activer la reconnaissance des fichiers au sein de l’application… Mais cela est un autre problĂšme que l’on Ă©voquera plus tard.