====== 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. {{tag>freebsd nas zfs raidz samba nfs}}