====== 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: <code># fdisk -i sd1</code> Partitionnement de la slice en mode interactif: <code># disklabel -E sd1</code> //-> 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: <code># newfs sd1d</code> Création du point de montage du nouveau //device//: <code># mkdir -p /var/data/d250</code> Modification dans /etc/fstab: <code>/dev/sd1d /var/data/d250 ffs rw,nodev,nosuid 1 2</code> Création du groupe data: <code># groupadd -g 1010 data</code> //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//: <code># chown nobody:data /var/data/d250 && chmod 775 /var/data/d250</code> * 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: <code>portmap=YES nfs_server=YES</code> Définition des règles d'exports dans /etc/exports: <code>/var/data/d250 -alldirs -mapall=nobody:data -network=192.168.100 -mask=255.255.255.0</code> * /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: <code> # /usr/sbin/portmap # echo -n >/var/db/mountdtab # /sbin/mountd # /sbin/nfsd -tun 4 </code> 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: <code> # 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 </code> ====== 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: <code># aptitude install nfs-common portmap</code> ===== 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: <code>$ sudo mkdir /var/data && sudo ln -s /var/data</code> Modification du /etc/fstab: <code> 192.168.200.1:/var/data/d250 /var/data nfs rw,noauto,noatime,intr,vers=2 0 0 </code> * 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: <code>sudo mount /var/data</code> Pour ne pouvoir lancer cette commande il faut faire parti des "sudoers". Editez le fichiers qui-va-bien via le script visudo puis ajoutez: <code> # 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 </code> * $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]]