Outils pour utilisateurs

Outils du site


freebsd:un_nas_sous_freebsd_zfs_raidz_samba_nfs

Un NAS sous FreeBSD (ZFS, RAID Z, Samba, NFS)

Ce qui suit a été effectué sous FreeBSD 8.2 AMD64

Raid Z

Configuration

Comme décrit dans le HandBook, on crée un pool avec 3 disques durs dans lequel on va monter /home.

on ajoute dans /etc/rc.conf :

zfs_enable="YES"

on peut donc désormais lancer le script rc pour ZFS :

/etc/rc.d/zfs start

les disques dédiés au Raid Z sont ad5, ad6 et ad7, on défini donc le nouveau “pool” :

zpool create storage raidz ad5 ad6 ad7

Maintenant on crée un système de fichiers (/home) dans ce pool :

zfs create storage/home

et on déplace le contenu actuel de /home dans /storage/home :

mv /home/* /storage/home

Et pour finir on défini comme “permanent” le montage de storage/home :

zfs set mountpoint=/home storage/home

On a désormais un Raid Z opérationnel avec des répertoires utilisateurs bien protégés.

Usage

Pour avoir un status détaillé :

zpool status

Pour avoir un status sans détails :

zpool status -x

Si un disque est défaillant (ex : ad6) :

zpool offline storage ad6

Le disque est déconnecté, on peut éteindre la machine et le remplacer.

Une fois la machine rédémarrée :

zpool replace storage ad6

Pour avoir le status de votre pool dans le mail envoyé tous les jours par l'utilitaire “periodic”, il faut mettre à “YES” la ligne suivante dans /etc/defaults/periodic.conf :

daily_status_zfs_enable="YES"                           # Check ZFS

Samba

Installation

On installe donc samba depuis les ports :

portupgrade -N samba35

Configuration

Une fois fait, on edite /usr/local/etc/smb.conf, mon exemple :

[global]

workgroup = mongroupe de travail
server string = nom du serveur
security = user
log file = /var/log/samba/log.%m
max log size = 50
local master = no
dns proxy = no 
unix charset = UTF-8
dos charset = cp850

#Partages :
[repertoire1]
comment = Partage de tintin
path = /home/repertoire1/
writeable = yes
veto files = /fichier1/fichier2/.unfichiercache/
hide dot files = yes
guest ok = no
valid users = %S

[repertoire2]
comment = Partage de utilisateur2
path = /misc/
writeable = yes
veto files = /fichier1/fichier2/.unfichiercache/
hide dot files = yes
guest ok = no
valid users = %S

Samba converti les caractère à condition qu'on lui spécifie les locales utilisées des deux cotés

unix charset = UTF-8 : spécifie la locale utilisé coté serveur

dos charset = cp850 : idem coté client

0ptions qui me semblent intéressantes :

veto files : permet d'exclure des fichiers du partage

hide dot files : permet de cacher les fichiers commençant par un point, sinon les clients windows les verront.

valid users = %S : Autorise QUE le propriètaire, sinon un utilisateur, une fois authentifié, peut accèder au autres partages.

Pour le reste je pense que le fichier parle de lui même.

Pour pouvoir executer samba et qu'il se lance au démarrage on édite /etc/rc.conf et on ajoute :

samba_enable="YES"

Pour le lancer sans redémarrer :

/usr/local/etc/rc.d/samba start

On crée ensuite les utilisateurs avec la commande smbpasswd :

smbpasswd -a nom_d_utilisateur

Les utilisateurs samba créé doivent correspondrent au utilisateurs unix.

Utilisation

Pour voir tous les partages :

smbclient -I XXX.XXX.XXX.XXX -L \\\\groupedetravail

Pour accèder à un partage samba depuis une machine linux/FreeBSD… :

smbclient -I XXX.XXX.XXX.XXX \\\\groupedetravail\\nomdupartage -U nom_d_utilisateur

Montage d'un partage :

mount -t cifs -o ip=XXX.XXX.XXX.XXX,user=nom_d_utilisateur \\\\groupedetravail\\nomdupartage /mnt/rep

NFS

Configuration

il suffit d'ajouter ceci dans /etc/rc.conf :

nfs_server_enable="YES"
nfs_server_flags="-a -t -n 4"
rpcbind_enable="YES"
mountd_enable="YES"

il faut ensuite définir les dossier à exporter dans /etc/exports :

/usr/home/utilisateur XXX.XXX.XXX.XXX

Utilisation

Démarrer NFS :

/etc/rc.d/nfsd start

Après avoir ajouté un export il faut que mountd relise le fichier de conf :

etc/rc.d/mountd onereload

Voir sous quel version sont exportés les différents dossier :

rpcinfo -p

Monter un partage nfs depuis un client :

mount -t nfs server:/dossier/exporté /point/de/montage

dans un fstab :

server:/dossier/exporté /point/de/montage nfs noatime,rw 0 0

Accès SFTP chrooté

On installe le port scponly qui contient également scponlyc, un pseudo shell qui n'autorise que les commandes scp :

portupgrade -N scponly

On évite la prise en charge de gftp qui installe plus de 70 dépendances gnome

On ajoute ça dans /etc/rc.conf :

scponlyc_enable="YES"

Ensuite on crée un utilisateur pour le sftp, un script existe qui fait tout à notre place :

cd /usr/local/share/examples/scponly/ && /bin/sh setup_chroot.sh

Et on ne tente pas de lancer le script depuis un autre emplacement, il ne fonctionnera pas

On peut créer un utilisateur nommé “guest” avec un “vrai” mot de passe quand même, qui pourra ensuite utiliser un logiciel tel que filezilla pour se connecter à la machine et y déposer des fichiers. pensez également à rediriger le port SSH vers la machine pour un accès depuis l'extérieur en IPV4.

Plusieurs utilisateur possédant le mot de passe du compte pourront donc s'échanger des fichiers en sécurité, et n'auront pas la possibilité de remonter dans les autres répertoires utilisateurs, et donc pas d'accès à des données personnelles.

freebsd/un_nas_sous_freebsd_zfs_raidz_samba_nfs.txt · Dernière modification : 2011/09/26 16:24 de sheltem