Vous êtes sur la page 1sur 41

TUTORIEL CONFIGURATION DE

FREENAS
FreeNAS est un système d’exploitation libre et gratuit, basé sur FreeBSD et
destiné aux serveurs NAS pour le stockage de données en réseau. Il est
maintenu par iXSystems, société spécialisée dans le stockage et les serveurs
open-source.

Si vous êtes arrivés là vous devez certainement déjà connaitre FreeNAS, si ce


n’est pas le cas vous pouvez faire un tour sur le site officiel du projet (en
anglais) pour en savoir plus.

Je vous propose ici une série de tutoriels couvrant la mise en place et la


création d’un NAS avec FreeNAS. Les tutos sont publiés sous forme d’article
séparés et cette page en est le tronc commun et le sommaire. Commençons
donc par un mot à propos des besoins matériels

Choix du matériel pour FreeNAS 9.3


Tout d’abord il faut savoir que FreeNAS utilise désormais uniquement le
système de fichier ZFS pour la création des nouveaux espaces de stockage. Il
est donc très important de connaitre ce système de fichier avant de
commencer car il va impacter les choix matériels, notamment au niveau de la
RAM (taille et ECC vs non-ECC).
Si vous ne connaissez pas ZFS, j’ai écris un article spécialement à son
sujet : ZFS : présentation, philosophie, vocabulaire
Concernant la configuration matériel minimale nécessaire pour utiliser
FreeNAS (en version 9.3 à ce jour), il faudra :
 Un processeur 64 bits (FreeNAS est
maintenant uniquement compilé en 64 bits)
 8 Go de RAM pour utiliser au mieux ZFS, ça
marche avec 4Go sans soucis, et même moins
pour de petits tests mais plus il y a de RAM et
plus ZFS est content et rapide.
 Une clé USB de 8Go minimum et de qualité
(marque reconnue) pour installer le système,
ou un disque dur mais celui-ci ne sera pas
utilisable pour le stockage
 Un port RJ45 (et oui, dans NAS il y a Network)
 Un autre ordinateur sur le réseau pour
administrer via l’interface web
Quelques points à souligner : FreeNAS est basé sur FreeBSD, qui intègre les
drivers au noyau, mais est parfois un peu touchy avec le matériel exotique.
Vous pouvez vérifier si votre matériel est compatible sur cette page : FreeBSD
9.3-RELEASE Hardware Notes
Certaines cartes-mères et/ou certaines clé USB semblent présenter des
problèmes de boot avec la version 9.3 de FreeNAS utilisant GRUB et une
partition GPT sur la clé USB conduisant à un freeze complet au moment du
démarrage. Parfois certains ports USB seulement présentent ce problème. Le
BIOS doit être capable de booter soit avec l’interface BIOS classique, soit avec
l’UEFI. A ce jour le seul moyen d’utiliser FreeNAS si votre matériel présente ce
problème est de l’installer sur un petit disque dur (ou SSD) qui ne pourra pas
être utilisé comme stockage. Ceci ne change rien au système mais a pour
inconvénient d’utiliser un port SATA.

Toute forme de RAID matériel et pseudo-matériel est à fuir, utilisez vos cartes
et contrôleurs en mode basique, ZFS se chargera du reste en étant bien plus
performant.

Et enfin, l’USB 3 n’est pas tellement supporté pour le moment par FreeBSD,
donc utilisez une clé USB2, un port USB2 et désactivez l’USB 3 dans le BIOS
pour éviter les problèmes.

A titre d’exemple, ma configuration personnelle pour une utlisation familiale


est la suivante :

Processeur : AMD Sempron 140


Carte mère MSI 760GM-P23, carte vidéo et
réseau gigabit intégrés.
 8Go de RAM Kingston CL9
 3 disques Western Digital Caviar Green de 2 To
 1 disque Seagate Desktop HD.15 de 4To
 Une clé USB Sandisk
 Boitier M-Cube de MaxInPower
Après assemblage de tout ce petit monde on obtient ça :
C’était avant installation des disques durs bien sûr.

Si vous prévoyez de faire du transcodage de vidéos, notamment avec le


plugin Plex Media Server, un processeur type i3 d’entrée de gamme est plutôt
conseillé.

Si vous souhaitez utiliser le cryptage (cryptage des données au niveau du


disque dur), un processeur supportant les instructions AES-NI est fortement
recommandé.

Si comme moi vous n’utilisez ni cryptage, ni transcodage, n’importe quel


processeur actuel de bureautique sera suffisant pour un usage familial.

Enfin pour des configurations avancées, des usages plus poussés, ou pour
maximiser la sécurité des données avec ZFS le matériel suivant est
couramment conseillé sur les forums FreeNAS :

 Carte mère type serveur


 RAM ECC
 Carte réseau ou chipset réseau Intel (les
Realtek et consorts grand public sont moins
performant avec FreeBSD et sollicitent bien
plus le processeur)
 Alimentation de qualité et onduleur

Installation et configuration du système


Les différentes étapes nécessaires à l’utilisation basique du NAS sont décrites
dans les tutoriels suivants, aboutissant à un système avec RAIDZ de 3
disques, 3 utilisateurs ayant un espace privé et des espaces partagés et un
accès depuis Internet :
1. Installation
2. Configuration initiale
3. Création du pool
4. Utilisateurs, datasets et permissions
5. Ajout de partages pour Windows
6. Certificats et partage WebDAV
7. Installation de Plugins : exemple de Plex et
minidlna

TUTO FREENAS 9.3 :


CONFIGURATION INITIALE
10 DÉCEMBRE 2014 MICKAËL 29 COMMENTAIRES

Continuons la mise en place de notre NAS sous FreeNAS en version 9.3 : nous
venons de voir les étapes nécessaires à l’installation dans le précédent
tutoriel. Il est désormais temps de se connecter à l’interface graphique pour
configurer le tout. On attaque dans cette partie la configuration de base.
A partir de notre navigateur préféré (là, c’est une question de goût, je ne me
prononce pas !) on se rend à l’adresse IP indiquée par le menu console. Pour
les étourdis on peut aussi y accéder par ici : http://freenas.local
Donc soit vous avez défini un mot de passe pour root à l’installation, dans ce
cas il faut se connecter avec « root » en nom d’utilisateur et votre mot de
passe (je vous rappelle à toutes fins utiles que le clavier était en qwerty lors
de l’installation…)

Sinon la première chose demandée est donc de définir maintenant ce fameux


mot de passe :

Définition du mot de passe root

Puis nouveauté de la version 9.3, nous tombons sur un assistant configuration


qui nous propose de créer un pool de stockage, puis des services
d’identifications, et enfin des partages et les utilisateurs associés.
Assistant configuration de FreeNAS 9.3

L’assistant est relativement bien fait, petit bémol au niveau des partages et
des utilisateurs, ce n’est pas la partie la plus simple. L’avantage est que cela
est assez rapide, l’inconvénient c’est qu’on ne maîtrise pas tout et surtout je
trouve que l’on ne comprend pas bien ce que l’on fait.

C’est donc pour ça que j’ai choisi de ne pas utiliser cet assistant pour le tuto,
on clique donc sur Exit.

NOTE IMPORTANTE : La configuration que nous allons faire ensemble


maintenant et pour la série de tutos à venir est basée sur une configuration à
minima. Le but est d’utiliser simplement le NAS dans un réseau domestique
classique avec une « box » de FAI (Freebox dans mon cas), plusieurs
utilisateurs avec un espace de stockage dédié et un espace commun, et un
partage CIFS (SMB) pour y accéder depuis Windows.

Configuration réseau
Commençons donc par terminer la configuration réseau de notre NAS : on se
rend dans Network -> Global Configuration
Configuration réseau

Ici il faut commencer par indiquer la passerelle par défaut dans IPv4 Default
Gateway, il s’agit d’indiquer à FreeNAS quelle machine sur le réseau lui
permet d’accéder à Internet : l’adresse IP de la box semble donc un bon
choix.
Puis dans au moins le premier des champs Nameserver il faut indiquer
l’adresse d’un serveur DNS pour permettre au NAS de résoudre les noms de
domaine : ici j’ai mis la Freebox car elle fait un pont vers ses DNS et en 2 et 3
les serveurs d’OpenDNS.
Cela fait n’oubliez pas de cliquer en bas sur Save sinon les modifs sont
perdues en changeant de rubrique dans l’interface. Vous devriez retrouver la
config dans Network->Network Summary

Configuration système
On se rend ensuite dans System -> General pour faire 3 réglages simples :
Configuration système générale

D’une part l’adresse de l’interface : WebGUI IPv4 Adress à paramétrer sur


l’adresse du NAS : c’est celle qu’utilisera le serveur intégré pour fournir
l’interface. Ensuite le fuseau horaire dans Timezone. Et enfin dans Console
Keyboard Mapon sélectionne French ISO-8859-1 (accent keys), si on a un
clavier français, ce qui permet d’avoir un clavier azerty dans la console : c’est
à dire uniquement quand on intervient directement avec clavier et écran
branché sur le NAS (ce dernier réglage est actif uniquement après reboot
d’après mes tests).
Si vous voulez changer la langue de l’interface, le français est disponible. La
traduction est partielle, c’est pourquoi je reste en anglais, mais les fonctions
ancienne et courantes sont bien traduites. N’oubliez pas de valider les
réglages par un clic sur Save.
Ensuite, facultatif mais pratique pour mieux comprendre et/ou se faire aider
en cas de problème : dans System -> Advanced on peut cocher la case Show
console messages in the footer pour voir les messages que le NAS écrit dans
le fichier /var/log/messages
Configuration système avancée

Paramétrage des mails


Il est important de configurer un compte e-mail avec lequel FreeNAS va
pouvoir nous envoyer des alertes en cas de problème, d’alerte SMART ou
d’opérations programmées. Comme on ne passe pas sa vie dans l’interface
pour voir le voyant Alert en haut à droite, c’est très pratique. Pour les
habitués : depuis la version 9, le rapport quotidien a disparu, les tests
associés ont bien lieu mais un rapport est envoyé uniquement en cas de
retour anormal.

L’envoi d’un mail de test à l’issue de la config se fait à l’utilisateur root, donc
on doit déjà paramétrer son adresse. Rendez vous dans Account -> Users -
> View Users puis sélectionnez la ligne de l’utilisateur root. Cliquez
sur Change E-mail et renseignez l’adresse que vous souhaitez.
Définition de l’adresse mail de root

Maintenant, on se rend dans System -> Email. Et on remplit les


champs : From est l’adresse écrite dans l’expéditeur du mail, je vous conseille
de mettre la même adresse que votre Username. Renseignez ensuite le
serveur smtp dans Outgoing mail server ainsi que le port dans Port to connect
to, éventuellement dans TLS/SSL un cryptage en fonction du serveur que vous
utilisez, Plain signifie pas de cryptage. Ci dessous un exemple utilisant gmail :
Paramètres e-mail

Cette partie de la configuration est très dépendante de votre serveur de


messagerie, en général le port est 587 pour du TLS, 465 pour le SSL ou 25
sans sécurisation.

Cochez ensuite la case (il y en a qu’une !) pour pouvoir inscrire votre nom
d’utilisateur et 2 fois le mot de passe, il s’agit bien ici de vos propres
paramètres de messagerie : nom d’utilisateur et mot de passe utilisés pour
accéder à vos e-mails. Un clic sur Save pour enregistrer le tout puis sur Send
Test Mail et …. vous devriez avoir reçu un mail de test !
Si cela ne fonctionne pas (l’erreur 65 est la plus fréquente): vérifiez que vous
avez bien défini une IP pour la passerelle et au moins un serveur DNS (voir la
partie ci dessus), vérifiez dans les spams (!), sinon selon votre fournisseur
d’accès l’utilisation de serveur smtp autre que ceux du fournisseur est peut
être bloqué, c’est notamment le cas chez Free par défaut, dans ce cas
enlevez le blocage dans la configuration de votre box ou utilisez le serveur
smtp de votre fournisseur.

Voilà pour la configuration système de base d’un FreeNAS, la prochaine étape


va être de configurer notre stockage avec tous les disques dur que l’on a
acheté.

La suite ici : Tuto FreeNAS 9.3 : Création du pool


FREENASTUTO
TUTO FREENAS 9.3 : CRÉATION DU
POOL
11 DÉCEMBRE 2014 MICKAËL 24 COMMENTAIRES

Troisième partie de la série de tutoriels consacrée à la mise en place d’un NAS


avec FreeNAS. Nous avons grâce à l’étape précédente, une installation toute
neuve et configurée de FreeNAS. Attaquons nous maintenant à la création de
l’espace de stockage : le pool ZFS.
Depuis cette version, FreeNAS ne propose plus qu’un seul système de fichier
à la création : le ZFS. Il est donc indispensable avant d’aborder cette partie
que vous maîtrisiez les fondamentaux de ZFS. Si ce n’est pas le cas, j’ai
fait un article sur le sujet pour aborder les bases. Idem pour les notions de
RAID, il y a un article sur Wikipédia.

Penser son pool


Il est important de bien savoir ce que l’on veut faire avec ses disques car les
modifications ultérieures sans détruire le pool sont limitées.

Un autre point très important est de bien garder en tête qu’un RAID quel qu’il
soit n’est pas une sauvegarde. Un RAID ne protège pas des erreurs de
manipulation, ne protège pas d’une grosse défaillance matériel (alimentation
par exemple), ne protège pas du vol de la machine, etc… Si le sujet de la
sauvegarde vous intéresse, j’ai posté là encore un mot à ce sujet, il date un
peu mais c’est toujours d’actualité. Le RAID quel qu’il soit doit être vu comme
un moyen d’assurer la disponibilité des données et la continuité du service en
cas de panne mais pas comme un moyen de sauvegarder ses données.
Vous seul pouvez jugez de vos besoin et de vos attentes en terme de
sécurité/valeur des données/utilisation/coût. Typiquement les possibilités
d’organisation sont :

 Un ou plusieurs vdev miroirs de 2 disques offrant une bonne sécurité et


de très bonnes performances en terme d’opérations par secondes, au prix
d’un coût de stockage multiplié par 2.
 Un vdev RAIDZ de 3 ou 5 disques : perte d’un disque possible, sécurité
moyenne, plus grand volume offert. Plus il y a de disques et plus le risque
est grand. Typiquement une utilisation « Médias »
 Un vdev RAIDZ2 de 6 disques : perte de 2 disques possible, meilleur
sécurité pour les grands vdev (maxi 10 disques par vdev recommandé), au
prix d’un espace utilisable plus amputé et donc un coût plus important.
Typiquement une utilisation « Stockage »
Le RAIDZ2 tend à être privilégié par rapport au RAIDZ simple pour les pools
récent avec des disques de grande taille (plus de 1-2To) car plus la taille du
pool est importante et plus l’opération de reconstruction après remplacement
d’un disque va être longue et intense. Le risque de perdre un second disque
est alors plus important. D’autre part comme l’a souligné SmallGuy en
commentaire : plus le disque est grand, plus la probabilité d’avoir une erreur
irrécupérable sur l’un des disques restant est forte, cette erreur sera détectée
par ZFS grâce à la checksum mais ne pourra pas être corrigée faute de
redondance à ce moment là dans un RAIDZ1. L’erreur peut n’impacter qu’un
fichier mais peut aussi conduire à l’impossibilité de reconstruire le pool.

Pour notre tuto qui s’inscrit dans un usage familial, nous allons faire un
RAIDZ avec 3 disques de 1To.
ATTENTION : Un RAID ne remplace pas une sauvegarde et vous seul
restez responsable de vos choix, encore plus quand il s’agit de la
sécurité de données personnelles.

Construction du pool
On se rend dans Storage -> Volumes -> Volume Manager pour découvrir la
nouvelle version du gestionnaire de volume. Celui ci inclus des protections
permettant théoriquement de limiter les erreurs du style ajout d’un vdev
stripe à un vdev RaidZ par exemple.
Volume Manager : exemple d’un pool miroir

Toutefois les protections peuvent être gênantes : il ne permet pas notamment


de créer un vdev avec des disques de différentes tailles, alors que cela est
tout à fait possible sachant que tous les disques ne seront exploité qu’à la
taille du plus petit. Si vous êtes gêné par cette limitation, il faudra cliquer sur
le bouton Manual Setup et l’ancien gestionnaire de volume. Son utilisation est
décrite dans cet ancien tuto.
Revenons à notre volume et commençons par lui donner un nom, sachant que
mirror, stripe, raidz, raidz2 et raidz3 sont des noms réservés. Il vaut mieux
trouver quelque chose qui ressorte bien.

Il est possible ici de choisir en cochant la case Encryption, de crypter le pool.


Cela s’effectue directement au niveau des disques puis le pool est construit
par dessus, c’est utile si vous travaillez à la CIA, sinon… chacun son choix
mais 2 choses à prendre en compte : d’une part si vous perdez la clé de
cryptage, impossible de retrouver les données, et d’autre part, il est
recommandé d’avoir un processeur supportant le jeu d’instructions AES-NI
pour ne pas avoir de diminution de performances.

Volume Manager, création d’un RaidZ

Dans Available disks, en passant la souris sur show on voit la liste des disques
détectés par le système. Un clic sur le bouton + les ajoute tous dans le pool.
Sinon en faisant glisser le petit curseur rond, on choisit le nombre de disque à
mettre dans le pool.
Le gestionnaire nous propose dans le menu déroulant la géométrie optimale :
ici avec 3 disques un RaidZ. Ça tombe bien c’est ce qu’on voulait (on peut
aussi faire un miroir triple si on manque de confiance ou un stripe si on aime
le risque !).

Quand tout est bon, un clic sur Add Volume et le pool est créé. Cela prend
quelques temps.

Visualiser la structure
Pour contrôler l’organisation de notre pool on se rend dans Storage -
> Volumes -> View Volumes. Cette page liste les pools et datasets présents
sur le système, attachons nous à bien la comprendre :

Visualiser les volumes

En tête de liste on retrouve notre pool : Stockage. Imbriqué en dessous, créé


automatiquement en même temps, le dataset « Stockage ». Le dataset est le
système de fichier ZFS en lui même, alors que le pool représente l’espace qui
lui est offert. On retrouve là toute la logique de ZFS : pour le système de
fichier, quel que soit la structure sous-jacente dans le pool, ce n’est qu’un
espace unique à diviser à volonté. Lorsque l’on créera d’autre datasets plus
tard ils seront dans le dataset Stockage.

Un clic pour sélectionner une ligne fait apparaître en bas les boutons
d’actions. Ici j’ai sélectionné le pool, si on clic sur le bouton Volume Status on
obtient l’état et le détail du contenu du pool :
Détail de l’état du pool

On retrouve donc notre pool stockage et les vdev qui le constituent : on est là
dans la partie « gestionnaire de volume » de ZFS. Donc on peut voir un vdev
de type raidz1 qui porte le numéro 0. Celui ci est composé des 3 disques
ada1, ada2 et ada3. Si on agrège d’autres vdev dans le pool, ils apparaîtrons
en dessous au même niveau que le vdev existant.

Les colonnes Read, Write et Checksum indiquent les erreurs éventuelles de


lecture, écriture et sommes de contrôle : il vaut mieux que tout reste à 0

Comprendre et adapter les options de ZFS


Pour finir à propos de notre espace de stockage, nous allons jeter un œil aux
options ZFS : toujours dans Storage -> Volumes -> View Volumes (ou
directement sur le bouton Storage du haut), nous sélectionnons le dataset (et
pas le pool) et cliquons en bas sur le bouton Edit Options qui est celui avec la
clé plate.
Options ZFS

On voit ici les paramètres appliqués par défaut lors de la création du dataset
racine. Premier paramètre, le choix de l’algorithme de compression, ici LZ4 :
ZFS permet, pour gagner de la place, de compresser au niveau du système de
fichier les données stockées. LZ4 est un algorithme rapide qui impactera peu
les performances, il est conseillé de le laisser activé.

Enable atime, pour « access time », contrôle le fait d’actualiser ou non l’heure
d’accès stockée dans les métadonnées d’un fichier quand il est lu. Mis sur Of,
cela permet d’économiser des écritures lorsque l’on lit simplement un fichier.
C’est le réglage que j’utilise mais cela peut parfois troubler certains logiciels
de sauvegardes par exemple.
Un mot sur la Deduplication enfin, dans le cadre de notre usage je n’aurais
qu’une forte recommandation : NE SURTOUT PAS Y TOUCHER. Par défaut
désactivée, la déduplication est un moyen permettant de ne pas dupliquer
des données déjà existantes ailleurs dans le stockage et d’enregistrer
simplement un pointeur vers un bloc unique. Problème : la table stockant tout
cela est en RAM, il faut donc 3 à 5 Go de RAM par To de stockage, s’il n’y en a
pas assez le système panique et une fois activée la déduplication ne peut
plus être désactivée.
La prochaine étape va être de créer nos utilisateurs, leur donner de l’espace
et créer les partages nécessaires pour accéder à nos données.

La suite ici : Tuto FreeNAS 9.3 : Utilisateurs, Datasets et Permissions


TUTO FREENAS 9.3 : UTILISATEURS,
DATASETS ET PERMISSIONS
12 DÉCEMBRE 2014 MICKAËL 19 COMMENTAIRES

Quatrième partie de la série de tutoriels consacrée à la mise en place d’un


NAS avec FreeNAS. Précédemment, nous avons créé notre pool de stockage,
nous voici alors avec cet énorme espace à organiser. C’est ce que nous allons
voir maintenant en créant des utilisateurs et en leur attribuant à chacun un
espace de stockage, le tout en gérant les permissions d’accès.
Comme dans l’étape précédente, nous allons avant tout commencer par
réfléchir. C’est une étape clé, il faut absolument savoir comment on va
s’organiser avant de commencer.

Faire le point sur les besoins


Dans le cadre de ce tuto nous allons avoir 3 utilisateurs : Pierre, Paul et
Jacques. Chacun aura un dataset « privé » auquel il sera le seul à avoir accès.
Pierre et Paul utilisent Windows, Jacques est sur Mac.

Schéma des accès

Pierre et Paul auront tous deux un accès libre à un dataset Medias, leur
permettant de mettre en commun leur musique et films. Et enfin un dataset
Public sera disponible pour les fichiers que les trois utilisateurs souhaiterons
se partager et ce dataset sera ouvert en lecture à toute autre personne
connectée à leur réseau.

Comprendre la gestion des droits


Un des point clé pour bien comprendre ce que nous faisons est d’être
familiarisé avec la gestion des permissions UNIX. C’est en effet par ce
système simple que l’on va régler les accès, depuis le NAS, à nos différents
datasets. Si vous avez ensuite des besoins avancés en terme de gestion de
droits pour des fichiers ou dossiers individuels il faudra le faire via le système
d’exploitation client : c’est là qu’entrent en jeu les ACLs. Nous n’aborderons
pas ce point ici et resterons sur les permissions de base type UNIX.

Il est très important de comprendre les notions d’utilisateur, de groupe, de


propriétaire ainsi que les actions sur lesquelles les droits sont attribuables :
Read, Write, Execute.

Allez lire les 2 premiers chapitres de la page Wikipedia consacrée aux


permissions UNIX, il est indispensable de maîtriser cela et c’est relativement
simple.
Création des datasets
Maintenant que l’on a mis à plat ce que l’on souhaite faire, on va commencer
par « découper » notre espace de stockage pour chaque usage. On va d’abord
créer un dataset pour chacun de nos utilisateurs et on va leur attribuer 200Go
chacun, c’est un exemple et l’intérêt est ici de voir que cela n’est pas fixe et
peut être augmenté ou modifié ultérieurement à volonté.

Donc dans Storage -> Volumes -> /mnt/Stockage (dans mon cas) -> Create
Dataset :

Création d’un dataset

Ici je choisi de donner aux datasets le même nom que l’utilisateur qui
l’utilisera, en effet ce sera également son dossier home, servant à stocker les
fichiers cachés propres à l’utilisateur et il est important que le dossier home ai
le nom de son détenteur.

Les paramètres laissés sur inherit sont repris sur le dataset parent : on laisse
par défaut ici comme cela convient mais vous pourriez choisir un niveau de
compression différent par exemple.

Le Share type est laissé sur UNIX, cela est dépendant du partage que vous
allez attribuer à ce dataset : pour du CIFS, on peut mettre Windows, ce qui
permet d’améliorer la prise en charge des ACLs pour gérer les droits mais je
trouve cela trop complexe pour un usage à domicile. Je prends donc le parti
de mettre UNIX pour tous mes datasets. Il s’agit là d’un choix personnel et
non d’une règle, libre à vous de tester et faire comme bon vous semble.
Point intéressant : on clique sur Advanced Mode, cela fait apparaître les
champs permettant de définir les quotas et réservation d’espace. Le quota
permet de limiter l’espace maximum que pourra occuper le dataset. Le même
réglage est possible pour le dataset et tous ses “enfants” (sous-datasets). 0
signifie : pas de quota. Mais vous pouvez indiquer par exemple 20G ou 1T
pour autoriser 20Go ou 1To maximum. Le quota est simplement une limite,
vous pouvez mettre 2 dataset avec 800Go de quota sur un pool de 1To.
La réservation d’espace va non seulement fixer la limite mais carrément
réserver l’espace : vous pouvez mettre une réservation de 500Go et stocker
seulement 100Go dans un dataset : celui ci prendra quand même 500Go
d’espace sur le pool.

Quota et réservation d’espace

Ici on donne un quota de 200Go maximum à Pierre, sans faire de réservation.


Un clic sur le bouton Add dataset et celui ci est créé.
De la même façon, on créé les datasets Paul, Jacques, Medias et Public :
Liste des datasets créés

Création des groupes


Nous allons commencer pour plus de facilité par la suite, par créer les
groupes puis nous ajouterons les utilisateurs dedans lors de la création de ces
derniers.

Les groupes vont permettre de gérer finement les accès utilisateurs


conformément au schéma établi plus haut. Ainsi on va créer un groupe
« GrpMedias » dans lequel on mettra Pierre et Paul et qui sera propriétaire du
dataset Medias. Un autre groupe appelé « TousUtilisateurs » regroupera nos 3
compères et ce groupe sera propriétaire du dataset Public. Le schémas
suivant résume les propriétaires de chaque dataset :
Groupes et propriétés

Créer un groupe est très simple : on se rend dans Account -> Groups -> Add
Group et on a simplement à remplir le nom du groupe sans se préoccuper du
reste :

Création d’un groupe

L’opération est répétée pour le groupe TousUtilisateurs.

Création des utilisateurs


Nous allons maintenant nous rendre dans Account -> Users -> Add User pour
créer nos utilisateurs :

Création d’un utilisateur 1/2


Création d’un utilisateur 2/2

Donc on remplit le nom d’utilisateur, on laisse coché Create a new primary


group for the user, qui va créer un groupe du même nom que notre utilisateur
et l’ajoutera dedans. Ici on créé donc un groupe Pierre en même temps que
l’utilisateur Pierre et Pierre est seul membre de ce groupe. Point important on
sélectionne le dataset « Pierre » comme Home Directory.
Puis viennent nom complet, adresse mail, mot de passe qui se passent de
commentaires.

Enfin dans Auxiliary groups on sélectionne pour Pierre « GrpMedias » et


« TousUtilisateurs » et on ajoute Pierre dedans par un clic sur >> qui fait
passer les groupes dans la liste selected. Cette opération peut aussi se faire
après coup dans Account -> Groups -> View Groups en sélectionnant le
groupe à modifier et en cliquant sur le bouton Members.
On reproduit l’opération pour Paul et Jacques, sachant que ce dernier est
ajouté uniquement dans le groupe « TousUtilisateurs ».

Attribution des permissions


Nous avons à présent nos datasets, nos utilisateurs et nos groupes, il ne reste
qu’à les lier ensemble et à paramétrer les accès. On veut donc que chaque
utilisateur ai accès à son dataset mais pas à celui des autres et que Pierre et
Paul puissent lire et écrire dans Medias mais pas Jacques et enfin que tous
puissent lire et écrire dans Public.
On se rend dans Storage -> View Volumes et on sélectionne le dataset Pierre
puis on clique en bas sur le bouton Change Permissions (le premier de la
ligne) :
Attention ! Je rappelle que la connaissance de la gestion des permissions
unix est nécessaire pour bien comprendre cette partie.

Modification des permissions Pierre

Les propriétaires utilisateurs et groupes ont été automatiquement définis à


Pierre (utilisateur) et Pierre (groupe) car le dataset est le dossier home de
Pierre. Nous décochons les cases Read et Write de Other pour n’autoriser un
accès qu’au propriétaire. Ici les droits du groupe n’ont pas d’importance
puisque Pierre est seul membre de son groupe éponyme.
Un clic sur Change valide les changements effectués. On procède de la même
façon pour Paul et Jacques.
Concernant le dataset Medias, c’est un peu différent :
Permissions du dataset Medias

Pour celui ci, il n’y a pas vraiment de propriétaire utilisateur car c’est un
dataset que l’on va partager, on choisi donc ici un propriétaire nobody, et
bien sur notre groupe GrpMedias comme groupe à qui appartient le dataset.
On coche toutes les permissions pour le groupe et décoche celles des autres
utilisateurs.

Pour le dossier Public enfin :

Permission du dataset Public

Cette fois on considère (par exemple) que les données sont destinées à être
partagée donc on coche Read et Executepour les autres utilisateurs, pour
l’instant il n’y en a pas d’autres mais on verra plus tard comment faire un
partage sans authentification de sorte que n’importe qui se connecte sur le
réseau puisse y accéder.
Nous voici maintenant avec un NAS bien organisé, la prochaine étape est de
créer des partages afin que les machines des utilisateurs puissent avoir accès
à ces espaces de stockage.

NOTE : Tous les paramétrages abordés ici ne sont que des exemples
permettant de comprendre le système, il est impossible de trouver une
configuration convenant à tout le monde donc libre à vous de l’adapter
ensuite à votre propre usage.

La suite ici : Tuto FreeNAS 9.3 : Ajout de partages pour Windows


TUTO FREENAS 9.3 : AJOUT DE
PARTAGES POUR WINDOWS
15 DÉCEMBRE 2014 MICKAËL 14 COMMENTAIRES

Cinquième partie du tutoriel concernant FreeNAS 9.3 : cette fois ci, nous
abordons la création des partages. Nous avons vu précédemment comment
créer des utilisateurs, leur attribuer des permissions d’accès à certaines
parties du stockage et voici maintenant le temps de leur créer une porte vers
ce nouvel espace.
Un partage c’est effectivement ni plus ni moins qu’une porte d’accès vers un
volume ou un dataset, afin qu’une machine distante puisse utiliser l’espace
de stockage.

Le type de partage à créer dépend du système d’exploitation qui va devoir


l’utiliser. Dans FreeNAS 9.3 cinq types de partages sont disponibles :

 Partage Windows (CIFS) : C’est celui qui est supporté par le plus grand
nombre d’OS : Windows, Mac OS X, Linux et BSD. Sa plus grande limitation
réside dans le fait que Samba, utilisé par FreeNAS pour fournir le partage
CIFS, est mono-thread, il n’utilise donc qu’un seul cœur du processeur,
même si celui ci en a 8 et cela le rend plus lent que les autres partages.
 Partage Apple (AFP) : uniquement pour Mac OS X
 Partage Unix (NFS) : Supporté par Mac OS X, Linux et BSD bien sûr,
mais aussi Windows, par contre uniquement dans ses versions Entreprise
pour Windows 8 ou Entreprise et Ultimate pour Windows 7.
 Partage iSCSI : partage de blocs, on en parlera pas ici car c’est une
utilisation plus « avancée »
 Partage WebDAV : le petit nouveau de FreeNAS 9.3, permet un accès
simple aux fichiers depuis un navigateur web ou un client webDAV, on en
parlera dans un prochain tuto.

POINT IMPORTANT : Il est extrêmement déconseillé de créer différents


types de partages vers le même dataset, même si cela est tentant et pas
interdit par l’interface. Si vous avez un Mac et un PC Windows qui doivent
accéder au même dossier, ne faites qu’un partage CIFS (ou NFS) mais surtout
pas un CIFS pour le windows et un AFP pour le Mac : ce serait s’exposer aux
ennuis.
Donc dans cette partie nous allons créer des partages CIFS car malgré ses
limitations (relatives) en terme de performances, c’est celui qui est accessible
par le plus grand nombre et les utilisateurs de Windows sont les plus
nombreux. Ceci s’effectue en 2 étapes : d’abord on configure le partage
proprement dit et ensuite il faut paramétrer le service chargé de fournir les
partages.

Création d’un partage CIFS avec


authentification
On peut créer deux types de partages : soit nécessitant une authentification
avec nom d’utilisateur et mot de passe, il est visible sur le réseau mais seul
les personnes autorisées à y accéder, soit un partage ouvert, visible sur le
réseau et montable par tout le monde. Commençons donc par la version
authentification :

Dans Sharing -> Windows (CIFS) Shares -> Add Windows (CIFS) Share, la
fenêtre basique est bien simplifiée par rapport aux anciennes versions :

Création du partage CIFS

Nous allons commencer par créer un partage pour les données de Pierre :
dans Path, nous renseignons le chemin du dataset vers lequel le partage doit
mener, en cliquant sur Browse on navigue vers le dataset et il suffit de le
sélectionner.
Ensuite dans Name, on indique le nom du partage : c’est ce nom qui sera
visible sur le réseau et depuis Windows. Et enfin comme on crée ici un
partage nécessitant pour y accéder d’avoir un compte sur le NAS et de
s’identifier avec, on laisse vide la case Allow Guest Access.
Apply Default Permissions concerne les ACLs, cela les configure avec les
options par défaut, je rappelle que j’ai choisi de ne pas m’en servir donc cela
sera sans effet.

Enfin, on valide avec OK… le partage est créé et FreeNAS, pas bête, se dit
qu’on vient de configurer un nouveau partage mais que comme c’est le
premier, le service n’est pas encore activé et il nous propose de le faire
maintenant :

Confirmation activation service CIFS

Chose que l’on s’empresse d’accepter. Le service CIFS (Samba en fait) est
démarré avec les paramètres par défaut, ce qui nous convient bien dans le
cas général, donc on ne touche à rien. La page de contrôle des services s’est
affichée et on voit que normalement le bouton CIFS est passé sur ON :
parfait !

Note : Dans les paramètres par défaut pour le CIFS c’est le groupe de travail
WORKGROUP qui est utilisé. Si à tout hasard ce n’est pas le cas chez vous il
faudra le modifier.

Connexion au partage depuis Windows


Pour accéder à notre partage depuis un poste Windows il y a plusieurs
possibilités, par exemple dans Ordinateur -> Réseau on voit apparaître le
NAS (cela peut prendre plusieurs minutes après activation du service)
Windows fenêtre réseau

On double-clic alors sur FREENAS et c’est la liste des partages du NAS qui
s’affiche, bon pour l’instant il n’y a pas trop de choix, on en a qu’un, donc on
y va et on l’ouvre. Ici 2 possibilités : soit vous avez fait sur le NAS un compte
avec le même nom d’utilisateur et le même mot de passe que Windows et
normalement ça doit marcher, soit comme moi vous ne vous appelez pas
Pierre et vous avez la fenêtre d’identification :
Windows fenêtre d’identification

Bien sûr on remplit avec le nom d’utilisateur et le mot de passe de notre


utilisateur FreeNAS, ici pour moi c’est « Pierre ». Et voilà ! on est connecté au
stockage, on peut déposer des fichiers.

Comme ce n’est pas très pratique de passer par « Réseau », on va monter le


partage comme un disque réseau pour l’avoir en accès simple en permanence
aux côtés des disques classiques. Pour cela on revient à la liste des partages
du NAS, clic droit sur celui à monter, et on sélectionne Connecter un lecteur
réseau…

Windows, montage d’un lecteur réseau


on lui attribue une lettre, et le tour est joué !

Une autre méthode pour connecter : via la ligne de commande, on ouvre un


terminal par Démarrer, exécuter, “cmd” et l’on tape :

net use x: \\nom_ou_IP_du_NAS\nom_du_partage /USER:utilisateur


avec x, la lettre de lecteur à attribuer et le chemin selon le votre évidemment.
“utilisateur” est à remplacer par le nom de l’utilisateur qui aura l’accès au
partage. On valide et Windows demande ensuite le mot de passe de
l’utilisateur. On le tape et c’est terminé, ce sera la seule fois.

Création d’un partage CIFS sans


authentification
L’autre méthode de création de partage est un accès invité (guest) : le
partage est visible de tous et n’importe qui présent sur le réseau et
bénéficiant des permissions associées peut y accéder sans avoir besoin de
compte utilisateur sur le NAS ou sans authentification.

ATTENTION : Accès sans authentification ne signifie pas partage ouvert à


tous vents : la partage n’est qu’un moyen d’accès à un dataset et les
permissions accordées restent toujours celles du dataset, que l’utilisateur soit
authentifié ou non. S’il n’est pas authentifié, les permissions sont donc celles
de la catégorie « Autres » : dans ce cas pour accéder au partage sans
authentification il faut que le dataset soit au moins en 705 et pour déposer ou
modifier un fichier en 707. Pour rappel si la gestion des droits n’est pas claire
pour vous, reportez vous aux chapitres 1 et 2 de cet article Wikipedia.
On va essayer avec le dataset « Public » (permissions réglées en 775
préalablement) que l’on va partager également. Nous retournons
dans Sharing -> Windows (CIFS) Shares -> Add Windows (CIFS) Share, et
cette fois on coche la case Allow Guest Access. Comme tout à l’heure on
sélectionne le dataset avec le bouton Browse.
Partage CIFS ouvert

On valide, et on s’empresse d’aller tester sur Windows : cette fois plus besoin
d’identification pour accéder au dossier partagé Public !

Cacher des fichiers et dossier : les veto files


Et pour finir sur les partages, une astuce un peu plus avancée : les datasets
Pierre, Paul et Jacques sont des dossiers « home », ils contiennent entre autre
des fichiers cachés commençant par un point (comme .login par exemple) qui
stockent des infos nécessaires au système. En aucun cas il ne faut les
modifier ou les supprimer. Par défaut il sont cachés mais un autre moyen
existe pour ne simplement pas les partager : l’utilisateur ne les verra
simplement jamais.

Pour cela on va éditer notre partage et afficher les paramètres avancés, ici je
le fait sur celui de Pierre :

Dans Windows (CIFS) Shares -> Perso Pierre, on clique sur Advanced Mode et
tout en bas de la fenêtre dans Auxiliary Parameters on ajoute ces deux
lignes :

veto files = /Temporary


Items/.DS_Store/.AppleDB/.TemporaryItems/.AppleDouble/.bin/.AppleDeskt
op/Network Trash
Folder/.Spotlight/.Trashes/.fseventd/.cshrc/.login/.login_conf/.mail_aliases/.
mailrc/.profile/.rhosts/.shrc
delete veto files = yes
le paramètre « veto files » défini une liste de fichiers ou dossier à ne pas
afficher.
« delete veto files » permet d’autoriser la suppression automatique des
fichiers lorsque vous supprimez un dossier qui vous semble vide mais qui
contiendrai en fait l’un des fichiers listé ci dessus.

Voilà, nous avons fait le tour des options de base concernant les partages
CIFS, le NAS est parfaitement fonctionnel à présent.

À suivre : création d´un certificat et partage WebDAV depuis l’extérieur.

TUTO FREENAS 9.3 : CERTIFICATS


ET WEBDAV
26 DÉCEMBRE 2014 MICKAËL 18 COMMENTAIRES

Continuons notre configuration du NAS : nous avons précédemment créé un


partage CIFS pour accéder au stockage depuis un PC situé sur le réseau local.
Une fonctionnalité intéressante peut être d’accéder à des données depuis
l’extérieur, depuis n’importe quel poste connecté à Internet, voyons ça dans
un premier temps avec WebDAV…

De la sécurité des données


On vient de parler d’accéder à des données personnelles depuis n’importe
quel poste Internet… c’est alléchant pour notre usage perso mais ça veut
aussi dire que n’importe qui parmi les 1,5 milliards d’appareils connectés à ce
jour peut potentiellement y accéder aussi. La première des priorités est donc
d’assurer la sécurité d’accès à nos données et la confidentialité lors de leur
transfert.
Concernant l’accès, tout dépend de l’endroit où vous allez mettre le curseur
de la sécurité : ça peut être ouvert à tous vents, protégé par un mot de passe,
uniquement accessible depuis votre réseau via VPN, derrière un VPN avec
authentification par clé ou carrément interdit : pour ce dernier cas, fin du
tuto
De la même façon on peut imaginer un partage en lecture seule, permettant
de montrer des photos à mamie ou visionner une vidéo stockée sur le NAS
depuis n’importe où, ou bien un partage en lecture-écriture permettant
l’upload, mais aussi la suppression ou modification…

A titre d’exemple tout à fait personnel, j’utilise de l’extérieur un accès SSH


avec authentification par clé et un accès VPN par mot de passe via le serveur
de la Freebox pour la navigation web depuis les hotspots wifi publiques
(hôtels, etc…) et depuis le VPN j’accède occasionnellement à mes partages
CIFS ou à l’interface de FreeNAS si besoin.

Ici nous allons nous voir un autre moyen : le partage WebDAV, très pratique
car il permet d’accéder à ses fichiers depuis n’importe quel navigateur web
moderne, c’est donc assez universel. La connexion sera bien sûr sécurisée et
cryptée (HTTPS/TLS). Le point faible de cette méthode réside dans
l’authentification par mot de passe, aussi pour diminuer les risques ce sera en
partage en lecture seule. Je le répète : CHACUN EST LIBRE DE SES CHOIX ET
SURTOUT DOIT LES ASSUMER, faites votre config en propre conscience.

Création d’un certificat


Pour pouvoir utiliser TLS (SSL) depuis FreeNAS, que ce soit pour l’interface,
WebDAV, FTP ou autres, il faut commencer par créer un certificat
électronique, et même avant cela une autorité de certification car nous
sommes en usage privé familial.
Ce processus est nouveau dans FreeNAS : auparavant un certificat par défaut
était créé à l’installation, le nouveau process permet à ceux bénéficiant de
certificats signés par une autorité reconnue de l’utiliser (utile pour une
société) et il nous permettra d’exporter le certificat créé et de l’importer dans
une future installation par exemple, cela permettant d’éviter certains soucis
de connexion sécurisée.

Tout commence donc dans System -> CAs pour l’autorité de certification, et
l’on clique sur Create Internal CA
Création d’une Autorité de Certification

Les points important sont de mettre au moins 2048 en longueur de clé et


SHA256 est pas mal comme algorithme par défaut, le reste c’est comme vous
le sentez. On valide par OK et voilà notre autorité est créée.

Prochaine étape dans System -> Certificates on va créer le certificat qui nous
intéresse en cliquant sur Create Internal Certificate :
Création d’un certificat

La fenêtre est très ressemblante à la précédente, sauf que l’on sélectionne


l’autorité qui signe le certificat et on remplit le reste comme précédemment.
Un clic sur OK et le certificat est généré. Il est maintenant disponible pour
chiffrer les connections.

Les limites et pièges de WebDAV


Dans FreeNAS il y a quelques limites avec le partage WebDAV : en effet, pour
s’authentifier sur un partage webDAV on n’utilise pas un nom d’utilisateur
créé auparavant mais l’utilisateur « webdav » préexistant dans le système.

Ceci implique donc que différents utilisateurs ne pourrons pas avoir des accès
privés et uniques à leurs données puisque tout le monde utilisera « webdav »
pour la connexion. Et donc comme l’accès à ce partage se fait via l’utilisateur
webdav, il faut que celui-ci ai les permissions d’accès aux fichiers et dossiers
à partager.
C’est là le piège : soit webdav est propriétaire du fichier ou dataset, soit il fait
parti d’un groupe qui a l’accès, soit dans les permissions « Autre » est réglé
au moins en lecture-exécution.

Exemple concret avec ce qu’on a défini précédemment, on se met dans l’idée


d’un partage WebDAV en lecture seule :

 Pour partager le dataset Public qui est en 775, il n’y a pas de problème
car Autre est en lecture-execution
 Pour partager le dataset Medias qui est en 770, il va falloir soit ajouter
l’utilisateur « webdav » au groupe GrpMedias, soit passer en 775.
 Pour partager le dataset Paul qui est en 700, il faut soit passer en 705
(pas terrible car ce n’est pas le but), soit ajouter « webdav » au groupe Paul
et passer le dataset en 750. C’est là qu’on comprend que n’importe quel
autre utilisateur accédant au partage WebDAV peut alors voir les données
du dataset Paul, ce qui n’est pas le but à l’origine.

Création d’un partage WebDAV


On va donc ici créer un partage WebDAV du dossier Medias afin que Pierre et
Paul aient accès aux fichiers de ce dataset en lecture seule.

NB : il est recommandé de ne pas créer plus d’un type de partage par


dataset, or Medias est déjà partagé en CIFS, ce qui va à l’encontre de la
recommandation. Certes, mais on ajoute ici un partage en lecture seule, ce
qui ne devrait pas créer de corruption de fichiers.

On commence donc par ajouter l’utilisateur webdav au groupe GrpMedias qui


détient le dataset Medias : dans Account -> Groups -> View Groups on clique
sur GrpMedias et sur le bouton Members :

Modification des membres d’un groupe

Dans la liste Available, on sélectionne webdav (tout en bas) et on clique


sur >> pour le passer en Selected. Évidemment on valide.
Puis dans Sharing -> WebDAV Shares -> Add WebDAV Share on remplit les
champs :
Création d’un partage WebDAV

Le nom du partage, un commentaire optionnel puis le chemin vers le dataset


à partager. Ici j’ai coché Read Only ce qui force le partage en lecture seule,
quelles que soit les permissions sur le dataset.
Point important : Dans notre cas on DECOCHE Change User & Group
Ownership. Cette case si elle est cochée va changer les propriétaires du
dataset Medias et de TOUS ses fichiers et sous-dossiers en webdav:webdav.
Ceci afin d’en permettre l’accès. Nous on a pris la méthode douce en mettant
webdav dans le groupe qui a accès à Medias donc on décoche.
En validant on nous demande si on veut activer le service WebDAV, on met
non car on va commencer par le configurer.

Dans Services -> WebDAV on va régler les paramètres impactant l’ensemble


des partages WebDAV :

Configuration du service WebDAV


On veut un accès sûr, donc HTTPS seul en protocole, concernant le port on
peut mettre celui qu’on veut mais il ne doit absolument pas être occupé par
un autre service, je vous conseille de changer celui par défaut pour plus de
sécurité également.

Pour le certificat, c’est simple, on sélectionne celui que l’on a créé au


début. Digest Authentication permet de ne pas faire circuler le mot de passe
en clair, surtout utile en HTTP mais on peut laisser, et enfin on défini le mot
de passe qui va être utilisé pour toutes les connexions aux partages WebDAV.
Plus il est fort et mieux c’est pour la sécurité des données. N’oubliez pas que
c’est la seule barrière ici.
Enfin, on valide et on active le service en le passant sur ON dans Services -
> Control Services.

Accéder au partage
Testons immédiatement tout ça, un petit coup de Firefox et on se rend à
l’adresse suivante :

https://ip.du.NAS:port/partage
Par exemple dans mon cas en interne :

https://192.168.0.9:8081/Medias
ALARME ! Alerte rouge ! Au feu ! Au loup ! « Connexion non certifiée, accès
non recommandé ». Qu’est ce que c’est que ça ?!?!

Ben oui, se créer soi-même son propre certificat est quand même assez
moyen au niveau authentification, donc le navigateur nous l’indique : on
choisi de poursuivre quand même en acceptant notre certificat et ajoutant
une exception.

Ensuite : nom d’utilisateur : webdav et mot de passe : celui que vous avez
choisi. Et voilà !
Accès au partage WebDAV

Bon, là il n’y a aucun fichier dedans mais l’esprit y est !

Pour un accès depuis l’internet, ce n’est pas plus compliqué : dans le routeur /
box, il suffit de faire une redirection du port choisi vers le NAS et de se
connecter avec votre adresse IP publique :

https://ip.publique:port/Medias
Et voilà pour WebDAV dont on a fait le tour, là on a utilisé un navigateur, on
peut faire pareil avec un client WebDAV sur smartphone par exemple…