FreeNAS – Serveur Rsync


Présentation

Nous allons, dans ce tutoriel, configurer FreeNAS en tant que serveur Rsync.
Nous aborderons également l’aspect sécurité afin de protéger l’accès au serveur mais également de chiffrer le transfert des données.
Rsync est avant tout un protocole (et un outil) de synchronisation mais il est largement utilisé dans des scénarios de sauvegarde.

Ce tutoriel a été prévu pour un serveur FreeNAS.



1) Préparation de l’environnement

1.1) Création d’un utilisateur dans FreeNAS

Création d’un utilisateur backup dédié pour le service Rsync.

Ne pas l’ajouter dans des groupes inutiles et ne pas lui donner des permissions inutiles tel que “Permit Sudo” pour éviter de compromettre la sécurité de votre système.


1.2) Création d’un dataset Backups

Pour des questions d’organisation, créer un Dataset dédié (Ex : Backups).

La création de sous-datasets est possible pour organiser les backups.


1.3) Configuration des droits d’accès

Afin de se prémunir de problèmes de sécurité, le propriétaire sera l’utilisateur backup et seul lui aura les droits sur le Datasets.



2) Configuration de Rsync dans FreeNAS

2.1) Activation et Configuration de Rsync dans FreeNAS

Se rendre dans les Services de FreeNAS, cliquer sur le bouton pour Activer le service Rsync et cliquer sur le “crayon” de la colonne “Actions” pour configurer ce dernier.

Cocher la case pour que le service Rsync démarre automatiquement au lancement de FreeNAS.


2.2) Modification du port de Rsync dans FreeNAS

Pour des raisons de sécurité, il est vivement recommandé de ne pas utiliser le port par défaut.
A partir de maintenant, nous utiliseront le port 44873.


2.3) Création et configuration d’un Module Rsync dans FreeNAS

Se rendre dans la configuration du service Rsync, cliquer sur l’onglet Rsync Module puis cliquer sur ADD.

Access Mode : Read and Write
Si l’outil de sauvegarde dispose d’une fonction de restauration, Read and Write sera nécessaire.
En revanche si l’outil ne dispose pas de cette fonctionnalité, il serait judicieux de mettre Write Only pour éviter la suppression accidentelle et renforcer la sécurité du serveur Rsync.

User et Group : Utilisateur et Groupe utilisés pour executer Rsync.
Ils doivent avoir les droits nécessaires à l’emplacement indiqué dans Path.



3) Sécurisation de l’accès à Rsync

Cette étape est importante si votre serveur Rsync est en production ou accessible depuis internet.

A cette étape, le serveur Rsync est fonctionnel.
Cependant, le module configuré précédemment n’est pas sécurisé car il est accessible par tout le monde sur le réseau sans contrôle d’accès.
Il va falloir renforcer la sécurité.

3.1) Autoriser ou refuser des machines dans Rsync

Hosts Allow

Si les machines autorisées à se connecter au module Rsync sont connues, il serait judicieux de les renseigner dans Hosts Allow (adresses IP, plages d’IP ou adresses réseaux).
Seules les machines respectant ces critères pourront se connecter au module (A condition qu’elles ne se trouvent pas dans Host Deny).


Hosts Deny

Il est également possible de lister les machines, réseaux ou plages d’IP n’ayant pas le droit de se connecter au module grâce au paramètre Hosts Deny.


3.2) Authentification

Il est possible de sécuriser l’accès au module rsync grâce à une authentification.
Pour cela, il faudra configurer 2 paramètres :

  • auth users : Indique la liste des utilisateurs ayant le droit de se connecter au module.
  • secrets file : Indique le chemin d’accès du fichier faisant office de base de compte utilisateurs.
    Il contiendra User:MotDePasse en clair. L’accès à ce fichier doit donc être restreint.


Configurer ces 2 paramètres dans le champ “Auxiliary parameters” du module :

Note : Il est possible de mettre ces paramètres dans la configuration globale de Rsync (Onglet Configure et champ Auxiliary parameters).


Ouvrir une invite de commande dans FreeNAS et créer le fichier /usr/local/etc/rsyncd.secrets :
nano /usr/local/etc/rsyncd.secrets


Renseigner les informations de connexion de l’utilisateur :


Modification des droits sur le fichier rsyncd.secrets :
chmod 600 /usr/local/etc/rsyncd.secrets

Cette modification est importante car par défaut et pour renforcer la sécurité, rsync vérifie les droits du fichier rsyncd.secrets.
Si les autres utilisateurs ont accès à ce fichier, la connexion au module sera systématiquement refusée.

Il est possible de désactiver ce contrôle avec le paramètre strict modes = false mais ce n’est pas recommandé.


3.3) Désactiver la découverte du module Rsync

Par défaut, les clients peuvent lister les modules d’un serveur Rsync.
Pour renforcer la sécurité, il est possible de désactiver la découverte du module avec le paramètre list = false.

Note : Il est possible de mettre ce paramètre dans la configuration globale de Rsync (Onglet Configure et champ Auxiliary parameters).



4) Chiffrement du transfert Rsync

Cette étape est importante si votre serveur Rsync est accessible depuis internet.

Le protocole Rsync permet de sécuriser l’accès au serveur mais le données qui transitent du client au serveur ne sont pas chiffrées.
Nous allons voir ici les différentes solutions qui s’offrent à nous pour chiffrer le transfert.

4.1) Rsync et SSH

En utilisant Rsync au travers de SSH, le client Rsync contactera directement le serveur via SSH.
Ce qui signifie que le demon Rsyncd ne sera pas utilisé et la configuration du fichier rsyncd.conf n’aura donc plus aucun intérêt.

Exemple de ligne de commande coté client :
rsync -av -e "ssh -l userSSH" /home/jean/ 192.168.1.202://Backup/Path/

  • sshUser : Utilisateur SSH pouvant s’authentifier sur la machine 192.168.1.202 et disposant des permissions nécessaires sur le répertoire //Backup/Path/.


4.2) Rsyncd et SSH

Il est possible de chiffrer les données transférées tout en continuant à utiliser le demon rsyncd. Cette solution est selon moi plus contraignante car il y aura de la configuration supplémentaire. Je préconise donc l’utilisation de Rsync via SSH.
Si vous souhaitez tout de même utiliser Rsyncd et SSH il faudra :

Exemple de ligne de commande coté client :
rsync -av -e "ssh -l sshUser" /home/jean/ 192.168.1.202::ModuleName/BackupPath/

  • sshUser : Utilisateur SSH pouvant s’authentifier sur la machine 192.168.1.202 et disposant des permissions nécessaires sur le Module ModuleName.
  • Il faudra impérativement utiliser “::” pour séparer le serveur et le nom du module pour spécifier que l’on cherche à se connecter au demon Rsync et non au serveur SSH.



Vous avez enfin configuré le service Rsync sur votre serveur FreeNAS.
Il ne reste plus qu’à :

1 Trackbacks & Pingbacks

  1. Synology Hyper Backup - Sauvegarde vers FreeNAS - Français - Jj World

Laisser un commentaire

%d blogueurs aiment cette page :