Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
documentation:serveur_nfs_openbsd [2012/10/19 20:30]
127.0.0.1 external edit
documentation:serveur_nfs_openbsd [2015/05/01 13:27] (Version actuelle)
loran42o nettoyage (mediawiki)
Ligne 1: Ligne 1:
 ====== Serveur NFS OpenBSD ====== ====== Serveur NFS OpenBSD ======
  
- +====== Configuration du serveur ======
-**Partage NFS sous OpenBSD avec des clients “Debian like”**  +
-<​code>​Ce document a été rédigé dans l'​espoir qu'il soit utile mais **SANS AUCUNES GARANTIES** </​font>​ . +
-Le lecteur engage sa propre responsabilité et ne pourra **en aucun cas se retourner vers l'​auteur ou MayLUG** en cas de problèmes. +
-Il est rappelé au lecteur qu'il est le seul responsable de son système, de ses données ou de celle de son employeur. +
-Il est conseillé de **faire des sauvegardes** et de **s'​assurer qu'​elles fonctionnent** avant d'​entreprendre des modifications profondes de son système. +
-Par ailleurs, le lecteur serait bien avisé de lire les pages de manuel des commandes qu'il exécutera sur son système pour être sûre de ce qu'​elles impliquent. +
- +
-</​code>​====== Configuration du serveur ====== +
  
     * OpenBSD 4.9 amd64 -release     * OpenBSD 4.9 amd64 -release
  
- +===== Système de fichiers ​à exporter =====
-===== Création du filesystem ​à exporter ===== +
  
 Initialiser le disque sd1 pour un usage exclusif d'​OpenBSD,​ une seule slice sur la partition primaire 4/4: Initialiser le disque sd1 pour un usage exclusif d'​OpenBSD,​ une seule slice sur la partition primaire 4/4:
- +<​code>#​ fdisk -i sd1</​code>​
- +
-<​code>#​ fdisk -i sd1 +
- +
-</​code>​ +
  
 Partitionnement de la slice en mode interactif: Partitionnement de la slice en mode interactif:
- +<​code>#​ disklabel -E sd1</​code>​
- +
-<​code>#​ disklabel -E sd1 +
- +
-</​code>​ +
  
 //-> Création d'une seule partition de la totalité de l'​espace disponible// ​ //-> 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: Création d'un système de fichiers FFS sur le //​device// ​ /dev/sd1d:
- +<​code>#​ newfs sd1d</​code>​
- +
-<​code>#​ newfs sd1d +
- +
-</​code>​ +
  
 Création du point de montage du nouveau //device//: Création du point de montage du nouveau //device//:
- +<​code>#​ mkdir -p /​var/​data/​d250</​code>​
- +
-<​code>#​ mkdir -p /​var/​data/​d250 +
- +
-</​code>​ +
  
 Modification dans /etc/fstab: Modification dans /etc/fstab:
- +<​code>/​dev/​sd1d /​var/​data/​d250 ffs rw,​nodev,​nosuid 1 2</​code>​
- +
-<​code>/​dev/​sd1d /​var/​data/​d250 ffs rw,​nodev,​nosuid 1 2 +
- +
-</​code>​ +
  
 Création du groupe data: Création du groupe data:
- +<​code>#​ groupadd -g 1010 data</​code>​
- +
-<​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// ​ //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//:​ Fixation des permissions sur le //​filesystem//:​
 +<​code>#​ chown nobody:data /​var/​data/​d250 && chmod 775 /​var/​data/​d250</​code>​
  
- 
-<​code>#​ chown nobody:data /​var/​data/​d250 && chmod 775 /​var/​data/​d250 
- 
-</​code>​ 
     * l'​utilisateur nobody est tout désigné pour l'​export NFS     * l'​utilisateur nobody est tout désigné pour l'​export NFS
     * rwxrwxr-x sur le répertoire racine de l'​export     * rwxrwxr-x sur le répertoire racine de l'​export
- 
  
 ===== Mise en place de l'​export NFS ===== ===== Mise en place de l'​export NFS =====
- 
  
 Création du /​etc/​rc.conf.local avec ce qu'il faut dedans: Création du /​etc/​rc.conf.local avec ce qu'il faut dedans:
- 
- 
 <​code>​portmap=YES <​code>​portmap=YES
-nfs_server=YES +nfs_server=YES</​code>​
- +
-</​code>​ +
  
 Définition des règles d'​exports dans /​etc/​exports:​ 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>​
  
- 
-<​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.     * /​var/​data/​d250 ​  # le point de montage à exporter.
-    * +    * -alldirs ​  # permettre le montage distant des sous-répertoires de /​var/​data/​d250. 
- -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.
- -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 subnet ​pourrons monter cet export. +
  
 Démarrage des démons: Démarrage des démons:
- +<​code>​ 
- +# /​usr/​sbin/​portmap
-<​code>#​ /​usr/​sbin/​portmap+
 # echo -n >/​var/​db/​mountdtab # echo -n >/​var/​db/​mountdtab
 # /​sbin/​mountd # /​sbin/​mountd
 # /sbin/nfsd -tun 4 # /sbin/nfsd -tun 4
- 
 </​code>​ </​code>​
- 
  
 Si vos règles PF ne laissent passer que le trafic explicitement défini alors il faut prendre en compte les ports: 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     * nfsd    2049/​tcp/​udp
     * sunrpc ​ 111/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:​ 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
-<​code>#​ rpcinfo -p 192.168.200.1 | grep mountd+
    ​100005 ​   1   ​udp ​   606  mountd    ​100005 ​   1   ​udp ​   606  mountd
    ​100005 ​   3   ​udp ​   606  mountd    ​100005 ​   3   ​udp ​   606  mountd
    ​100005 ​   1   ​tcp ​   958  mountd    ​100005 ​   1   ​tcp ​   958  mountd
    ​100005 ​   3   ​tcp ​   958  mountd    ​100005 ​   3   ​tcp ​   958  mountd
- 
 </​code>​ </​code>​
- 
  
 ====== Configuration des clients ====== ====== Configuration des clients ======
- 
  
     * Debian GNU/Linux amd64 -testing (wheezy/​sid)     * Debian GNU/Linux amd64 -testing (wheezy/​sid)
     * Ubuntu 10.04 i386 LTS     * Ubuntu 10.04 i386 LTS
- 
  
 ===== Prise en charge de NFS ===== ===== Prise en charge de NFS =====
- 
  
 Installation des paquets permettant la prise en charge de //​filesystem// ​ 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é =====
  
-<​code>#​ aptitude install nfs-common portmap +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>​
-</​code>​ +
-===== Montage du filesystemexporté ===== +
- +
- +
-Création du futur point de montage+
- +
- +
-<​code>​ +
-# mkdir /var/data +
-</​code>​ +
- +
- +
-Mise en place d'un lien symbolique pour un accès depuis le //home// des utilisateurs:​ +
-<​code>​ +
-cd && sudo ln -s /var/data +
-</​code>​ +
  
 Modification du /etc/fstab: Modification du /etc/fstab:
- 
- 
 <​code>​ <​code>​
 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 /​var/​data nfs rw,​noauto,​noatime,​intr,​vers=2 0 0
 </​code>​ </​code>​
- 
  
     * 192.168.200.1:/​var/​data/​d250 # adresse du serveur et FS exporté.     * 192.168.200.1:/​var/​data/​d250 # adresse du serveur et FS exporté.
Ligne 188: Ligne 99:
     * vers=2 ​  # dégrade le protocole NFS à sa version 2, améliore grandement les perf' de lecture/​écriture.     * 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     * 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: 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>​ +<​code>​sudo mount /​var/​data</​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: +
  
 +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>​ <​code>​
 # Members of alias NFSUSERS can mount NFS exports from the data server # Members of alias NFSUSERS can mount NFS exports from the data server
Ligne 204: Ligne 109:
 NFSUSERS $LOCALHOST = NOPASSWD: /bin/mount /​var/​data/​serveur NFSUSERS $LOCALHOST = NOPASSWD: /bin/mount /​var/​data/​serveur
 </​code>​ </​code>​
- 
  
     * $USER est un utilisateur du système local qui pourra avoir accès au serveur NFS     * $USER est un utilisateur du système local qui pourra avoir accès au serveur NFS
     * $LOCALHOST est le nom du système local     * $LOCALHOST est le nom du système local
     * /​var/​data/​serveur est le point de montage local de l'​export NFS     * /​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//  //Il est aussi possible de passer par ////​**autofs** ​ ////pour s'​affranchir de la MOD// 
- 
  
 and voila 8-) and voila 8-)
  
 ====== Liens ====== ====== Liens ======
- 
  
     * [[http://​openbsd.org/​faq/​faq14.html|http://​openbsd.org/​faq/​faq14.html]]     * [[http://​openbsd.org/​faq/​faq14.html|http://​openbsd.org/​faq/​faq14.html]]