Modifications entre les versions 1 et 2
Version 1 à la date du 2007-12-10 15:22:54
Taille: 4981
Éditeur: ThomasNoël
Commentaire: copié collé depuis l'ancien wikiteki
Version 2 à la date du 2008-02-21 22:10:06
Taille: 4985
Éditeur: localhost
Commentaire: converted to 1.6 markup
Texte supprimé. Texte ajouté.
Ligne 113: Ligne 113:
 * consulter la documentation du [http://www.linux-nis.org Linux NIS/NIS+ Project]
 * une documentation [http://uw713doc.caldera.com/en/NET_nis/CONTENTS.html Unix SCO sur NIS]
 * consulter la documentation du [[http://www.linux-nis.org|Linux NIS/NIS+ Project]]
 * une documentation [[http://uw713doc.caldera.com/en/NET_nis/CONTENTS.html|Unix SCO sur NIS]]
  • Attention cette page est un simple copié-collé d'une documentation de l'ancien wiki, écrite pour Debian Sarge 3.0. Peut-être y a-t-il des modifications à apporter. Dans tous les cas, regardez plutôt la page sur ../NssMysql

Anciennement connu sous le nom de "Yellow Pages" (nom déposé dans certains pays), NIS est un protocole qui permet à des postes clients de récupérer les informations telles que {login,password} à partir d'un serveur central ; ainsi, la gestion des utilisateurs se fait sur une seule machine (le serveur NIS).

Fonctionnement de NIS

NIS est un système, basé sur les RPC (Remote Procedure Call), qui permet à un serveur de transférer vers les clients les informations contenues dans /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow (et plus encore [Note de ProgFou : pas beaucoup plus avec NIS de base, mais énormément plus avec NIS+]) après les avoir converties au format DBM (dérivé des bases de données ASCII).

* Les démons coté serveur :

* Le coté client :

Installer NIS

Installer le paquetage nis (client/serveur) sur le(s) serveur(s) et le(s) client(s): #apt-get install nis ; apt va installer les package requis (netbase, portmap, ..). Lors du processus d'installation, debconf va demander le nom du domaine NIS (celui-ci doit être identique pour le client et le serveur) : NIS domain = "mon-domaine-nis" ; ce paramètre va ensuite être écrit dans /etc/defaultdomain.

Configurer un serveur NIS

  • éditer le fichier /etc/default/nis pour déclarer l'hôte comme serveur nis "maître" :

    • # /etc/defaults/nis
      NISSERVER=master
  • éditer le fichier de configuration du serveur NIS /etc/ypserv.conf et décommenter les lignes commençant par * afin d'activer l'exportation des cartes :

    • #/etc/ypserv.conf
      # Host : Map : Security : Passwd_mangle
      * : passwd.byname : port : yes
      * : passwd.byuid : port : yes
      * : * : none
      #
      * : shadow.byname : port
      * : passwd.adjunct.byname : port
      * : * : none
  • sécuriser l'accès au serveur NIS en éditant /etc/ypserv.securenets :

    • #/etc/ypserv.securenets
      # toujours permettre l'accès à localhost
      255.0.0.0 127.0.0.0
      # autoriser l'accès au réseau local
      255.255.255.0 192.168.0.0
  • relancer le service NIS :
    • # /etc/init.d/nis restart`
  • construire la base de donnée sur le serveur (master) en éxecutant la commande :
    • serveur-nis#/usr/lib/yp/ypinit -m

Configurer un client NIS

  • indiquant dans le fichier de configuration du client NIS (/etc/yp.conf) le ou les serveur(s) NIS ; indiquer une adresse IP plutôt qu'un nom de domaine permet d'éviter la dépendance vis à vis du DNS (à moins que le serveur soit déclaré dans /etc/hosts) :

    • # /etc/yp.conf
      ypserver 194.253.227.152
  • vérifier la configuration (par défaut) de nsswitch.conf :

    • # /etc/nsswitch.conf
      passwd: compat
      group: compat
      shadow: compat
      netgroup: nis
  • rajouter une ligne spéciale "+:::" * à la fin de chacun des fichier suivants :

    • # extrait de /etc/passwd
      root:x:0:0:root:/root:/bin/bash
      (...)
      apache:x:72:72::/var/www:/bin/sh
      user:x:501:501::/home/user:/bin/bash
      +::::::

      /!\ si on veut que l'utilisateur dispose d'un accès à un shell en local (utile pour un client KDE-print/cups ;-)), alors modifiera la dernière ligne de /etc/passwd ainsi : +:::::/bin/bash

      # extrait de /etc/shadow
      root:$1$werr9vh0dMSh.:12045:0:99999:7:::
      (...)
      apache:!!:12045:0:99999:7:::
      user:$1$6hzhhuDgvThn.:12053:0:99999:7:::
      +::::::::
      # fin de /etc/group
      +:::
      # fin de /etc/gshadow
      +:::

      /!\ le nombre de ":" dans la ligne rajoutée à la fin de chacun des fichiers est le même que celui dans les lignes précédentes.

  • démarrer et arrêter le service NIS :
    • # /etc/init.d/nis stop
      # /etc/init.d/nis start
  • récupérer la carte des utilisateurs :#ypcat passwd (ou encore getent passwd si les NSS sont bien configurées)

  • faire un "id login" avec un login du serveur : la réponse doit être 100% identique à celle donnée par la même commande sur le serveur lui-même

Pour aller plus loin avec NIS

Il est possible d'assurer la redondance grâce à la mise en place d'un serveur esclave.

Pour améliorer la sécurité, on peut migrer vers NIS+ qui utilise le cryptage de données et l'autentification sur RPC sécurisée.

Ressources & docs:

AuthentificationCentralisée/NIS (dernière édition le 2008-02-21 22:10:06 par localhost)