Archive

Archives pour 08/2002

Monter un domaine NIS

I) Introduction :

Un domaine NIS sert à centraliser des informations sur un réseau Unix. Par exemple, vous possédez un réseau de 30 postes et sur chaque poste vous avez autant d’utilisateurs déclarés car vos utilisateurs n’utilisent pas toujours le même poste. De même vous avez souvent à modifier votre fichiers /etc/hosts pour ajouter ou supprimer une machine. Si vous devez effectuer des opérations sur ces fichiers sur chacun des postes de votre réseau, vous allez y passer la journée. Alors pourquoi ne pas créer simplement un domaine NIS qui partagera ces informations sans que vous n’ayez à intervenir sur les clients par la suite?

Pour continuer cette présentation, je supposerais que NFS et portmap sont installés sur vos machines clientes et sur celle qui jouera le rôle de serveur. Ensuite vous aurez à installer les paquetages correspondant à NIS sur chacune de vos machine. Sous Debian :

 # apt-get install nis

Le paquet Debian contient l’ensemble des outils pour vous permettre de réaliser un serveur ou pour rendre vos clients membres d’un domaine NIS. Pour RedHat et Mandrake par contre, jetez un coup d’oeil aux paquets dont le nom commence par yp

II) Configuration du serveur :

Tout d’abord, remplissez votre fichier /etc/hosts avec les couples IP/nom de machine car NIS ne travaille pas avec DNS.

Ensuite, nous allons dire au serveur que c’est un serveur maître du domaine NIS.

# vim /etc/defaults/nis

et nous mettrons la valeur : NISSERVER=master

Ensuite, nous allons déclarer le nom du domaine NIS :

 # vim /etc/defaultdomain

et mettez-y le nom de votre domaine NIS, par exemple pour moi momolan.

Le gros fichier de configuration du domaine NIS est le fichier /var/yp/Makefile. Il sert à construire les différentes map de votre domaine. Les fichiers originaux étant des fichiers ASCII, il est en effet préférable de construire des bases de données binaires pour accélérer leur traitement et par la même occasion réduire la charge sur le serveur.

Activez la prise en compte du domaine NIS : # domainname nom_du_domaine_NIS

On construit les maps :

 # cd /var/yp
 # make

Maintenant pour que les clients puissent accéder depuis n’importe ou à leurs fichiers, nous allonrs exporter le répertoire /home du serveur via NFS :

 # vim /etc/exports

et rajoutez une ligne dans ce style au fichier :

 /home   192.168.0.0/255.255.255.0(rw,root_squash)
 # exportfs -a

III) Configuration du client :

On déclare le nom du domaine NIS :

 # vim /etc/defaultdomain

et mettez-y le nom de votre domaine NIS, ici momolan.

 # vim /etc/yp.conf

et mettez-y l’IP du serveur NIS et le domaine de cette façon :

 ypserver 192.168.0.3
 domain momolan server 192.168.0.3

 # vim /etc/nsswitch.conf
 passwd:         files nis
 group:          files nis
 shadow:         files nis
 
 hosts:          nis files dns
 netgroup:       nis

Et dans le même temps, ajoutez +:::::: à la fin du fichier /etc/passwd des clients.
De cette façon, un utilisateur non référencé en local tentera d’être autentifié sur le serveur. La ligne shadow n’est utile que si vous utilisez les shadow passords, mais c’est à la fois de plus en plus le cas et à la fois recommandé.

Activez la prise en compte du domaine NIS : # domainname nom_du_domaine_NIS

Maintenant on vas dire que le répertoire /home est monté depuis NFS. De la sorte les fichiers des utilisateurs sont stockés sur le serveur. Les utilisateurs n’ont plus à se soucier de savoir sur quel poste ils se trouvaient la dernière fois qu’ils sont venus travailler. De plus celà vous facilite la mise en place des quotas si vous souhaitiez mettre celà en place.

 # vim /etc/fstab
 serveur_nis:/home    /home    nfs    rsize=8192,wsize=8192,timeo=14    0    0

 # mout /home
 # /etc/init.d/nis start

Normalement à ce stade tout devrait marcher. L’utilisation de la commande ypwich sur les clients devrait vous retourner le nom du serveur NIS. Si tout marche, peu de choses à dire . Vous devriez réussir à vous logguer depuis les postes clients. Toutefois, pour ce qui est du changement de mot de passe, il vous faut maintenant tapper yppasswd pour que le changement soit pris en compte sur le serveur. Mais vous pouvez toujours rendre la commande transparente en faisant comme suit :

# mv /usr/bin/passwd /usr/bin/passwd.old
# ln -s /usr/bin/yppasswd /usr/bin/passwd

Pour approfondir, il serait interressant d’étudier le NIS-HOWTO sur www.tldp.org. Vous y découvrirez qu’il existe aussi le NIS+ et le NYS. Mais celà dépasse le cadre de cette initiation à NIS qui a d’ailleurs servi comme ma propre initiation.

Categories: GNU/Linux Tags:

Partage de fichiers avec NFS

I) Introduction :

NFS est le protocole standard sous Unix pour partager des fichiers. Pour ce faire, vous devrez compiler la partie concernant NFS dans votre kernel en built-in ou bien en modules dans la section File systems / Network File Systems et sélectionner :

NFS file system support
Provide NFSv3 client support
NFS server support
Provide NFS server support

Ensuite vous devrez installer certains paquetages :
Sous Debian : apt-get install portmap nfs-common nfs-kernel-server
Sous Redhat il vous faudra : nfs-kernel-clients… nfs-server…

II) Configuration du serveur :

Dans une configuration de base, il suffit d’éditer un unique fichier /etc/exports. C’est dans ce fichier que vous définirez les répertoires exportés.

Ce fichier possède la structure suivante :
Point de montage machine1(droits) machine2(droits)
exemple : /usr/local *.elèves.domaine.com(ro) *.professeurs.domaine.com(rw,root_squash) *.cdi.domaine.com(noaccess)

machine1 et machine2 concerne les clients qui seronts autorisés à monter le partage. Les possibilités de configuration sont souples ici. Vous pouvez par exemple avoir :

  • rien
  • un nom de machine : machine.domaine.com
  • son adresse IP : 192.168.1.24
  • un groupe de machine référencé dans un serveur NIS : @nomdugroupe
  • un joker : *.fr.domaine.com
  • un sous-réseau (Adresse réseau + Masque) : 192.168.0.0/255.255.255.0

Les droits peuvent être du type :

  • rw, ro : lecture écriture ou lecture seule.
  • root_squash : le root sur le client est invité sur le serveur .
  • no_root_squash : inverse de la précédente.
  • noaccess : l’accès est interdit pour la machine spécifiée.
  • et certaines autres options que vous trouverez dans la doc comme squash_uid et squash_gid.

On relance les démons :

# /etc/init.d/portmap restart
 # /etc/init.d/nfs-common restart
 # /etc/init.d/nfs-kernel-server restart

On vérifie le fonctionnement du portmapper :

 # rpcinfo -p

vous devriez obtenir quelque chose de la sorte :

    program no_version protocole  no_port
     100000    2   tcp    111  portmapper
     100000    2   udp    111  portmapper
     100024    1   udp  32768  status
     100024    1   tcp  32779  status
     100003    2   udp   2049  nfs
     100003    3   udp   2049  nfs
     100021    1   udp  32770  nlockmgr
     100021    3   udp  32770  nlockmgr
     100021    4   udp  32770  nlockmgr
     100005    1   udp  32771  mountd
     100005    1   tcp  32789  mountd
     100005    2   udp  32771  mountd
     100005    2   tcp  32789  mountd
     100005    3   udp  32771  mountd
     100005    3   tcp  32789  mountd
 

III) Le poste client :

Pour accéder à un partage NFS, on le monte comme n’importe quel système de fichier :

 # mount   serveur:/partage   /point_de_montage

Donc si on reprend l’exemple si dessus nous avons :

 # mount serveur.domaine.com:/usr/local /usr/local

Vous avez aussi la possibilité d’insérez une ligne relative au point de montage dans votre /etc/fstab :

 serveur:/partage    /point_de_montage    nfs    rsize=8192,wsize=8192,timeo=14    0    0

Les options rsize=8192,wsize=8192,timeo=14 servent à optimiser le traffic entre le client et le serveur.

Categories: GNU/Linux Tags: