====== Serveur NFS OpenBSD ======
====== Configuration du serveur ======
* OpenBSD 4.9 amd64 -release
===== Système de fichiers à exporter =====
Initialiser le disque sd1 pour un usage exclusif d'OpenBSD, une seule slice sur la partition primaire 4/4:
# fdisk -i sd1
Partitionnement de la slice en mode interactif:
# disklabel -E sd1
//-> Création d'une seule partition de la totalité de l'espace disponible//
Création d'un système de fichiers FFS sur le //device// /dev/sd1d:
# newfs sd1d
Création du point de montage du nouveau //device//:
# mkdir -p /var/data/d250
Modification dans /etc/fstab:
/dev/sd1d /var/data/d250 ffs rw,nodev,nosuid 1 2
Création du groupe data:
# groupadd -g 1010 data
//le GID est fixé à 1010 car par défaut il était à 1001 ce qui allait poser des problèmes sur les clients//
Fixation des permissions sur le //filesystem//:
# chown nobody:data /var/data/d250 && chmod 775 /var/data/d250
* l'utilisateur nobody est tout désigné pour l'export NFS
* rwxrwxr-x sur le répertoire racine de l'export
===== Mise en place de l'export NFS =====
Création du /etc/rc.conf.local avec ce qu'il faut dedans:
portmap=YES
nfs_server=YES
Définition des règles d'exports dans /etc/exports:
/var/data/d250 -alldirs -mapall=nobody:data -network=192.168.100 -mask=255.255.255.0
* /var/data/d250 # le point de montage à exporter.
* -alldirs # permettre le montage distant des sous-répertoires de /var/data/d250.
* -mapall=nobody:data # tous les clients seront "mappés" sous l'utilisateur nobody et le groupe data, même root.
* -network=192.168.100 -mask=255.255.255.0 # seuls les clients sur ce sous-réseau pourrons monter cet export.
Démarrage des démons:
# /usr/sbin/portmap
# echo -n >/var/db/mountdtab
# /sbin/mountd
# /sbin/nfsd -tun 4
Si vos règles PF ne laissent passer que le trafic explicitement défini alors il faut prendre en compte les ports:
* nfsd 2049/tcp/udp
* sunrpc 111/tcp/udp
Pour mountd les ports changent à chaque //reboot//. Il faut donc les récupérer et mettre à jour les règles en conséquence:
# rpcinfo -p 192.168.200.1 | grep mountd
100005 1 udp 606 mountd
100005 3 udp 606 mountd
100005 1 tcp 958 mountd
100005 3 tcp 958 mountd
====== Configuration des clients ======
* Debian GNU/Linux amd64 -testing (wheezy/sid)
* Ubuntu 10.04 i386 LTS
===== Prise en charge de NFS =====
Installation des paquets permettant la prise en charge de //filesystem// NFS:
# aptitude install nfs-common portmap
===== Montage du système de fichiers exporté =====
Création du futur point de montage et mise en place d'un lien symbolique pour un accès depuis le //home// des utilisateurs:
$ sudo mkdir /var/data && sudo ln -s /var/data
Modification du /etc/fstab:
192.168.200.1:/var/data/d250 /var/data nfs rw,noauto,noatime,intr,vers=2 0 0
* 192.168.200.1:/var/data/d250 # adresse du serveur et FS exporté.
* /var/data # point de montage local.
* nfs # type de FS utilisé pour le montage local.
* rw # permissions sur le FS.
* noauto # pas de montage automatique, les clients bloquent au //boot// sans cette option.
* noatime # ne met pas à jour les temps d'accès aux inodes du FS, augmente les performances.
* intr # permet d’interrompre les opérations NFS tant que le serveur ne répond pas.
* vers=2 # dégrade le protocole NFS à sa version 2, améliore grandement les perf' de lecture/écriture.
* 0 0 # indique de ne pas lancer un fsck sur ce FS au boot de la machine
Création d'un lanceur pour le "MOD" (montage à la demande :-D ) à utiliser avant d'accéder pour la première fois aux données:
sudo mount /var/data
Pour ne pouvoir lancer cette commande il faut faire parti des "sudoers". Editez le fichiers qui-va-bien via le script visudo puis ajoutez:
# Members of alias NFSUSERS can mount NFS exports from the data server
User_Alias NFSUSERS = $USER1, $USER2, $USER3
NFSUSERS $LOCALHOST = NOPASSWD: /bin/mount /var/data/serveur
* $USER est un utilisateur du système local qui pourra avoir accès au serveur NFS
* $LOCALHOST est le nom du système local
* /var/data/serveur est le point de montage local de l'export NFS
//Il est aussi possible de passer par ////**autofs** ////pour s'affranchir de la MOD//
and voila 8-)
====== Liens ======
* [[http://openbsd.org/faq/faq14.html|http://openbsd.org/faq/faq14.html]]
* [[http://openbsd.org/faq/faq6.html#NFS|http://openbsd.org/faq/faq6.html#NFS]]
* [[http://nfs.sourceforge.net/|http://nfs.sourceforge.net/]]
* [[http://wtf.hijacked.us:8080/wiki/index.php/OpenBSD_NFS_Server_with_Linux_Clients|http://wtf.hijacked.us:8080/wiki/index.php/OpenBSD_NFS_Server_with_Linux_Clients]]