LinuxSystème

Authentification linux centralisée – NIS avec partage NFS HomeDir Debian 9

Authentification linux centralisée - NIS avec partage NFS HomeDir Debian 9

Présentation de NIS

NIS, qui signifie “Network Information Services” (services d’information réseau), est un protocole développé par Sun Microsystems pour centraliser l’administration de systèmes UNIX® (à l’origine SunOS™).

NIS est comparable au système de domaine Windows. C’est un système client/serveur basé sur les RPCs (remote procedure call) est un protocole réseau permettant de faire des appels de procédures sur un ordinateur distant à l’aide d’un serveur d’applications) permettant à un groupe de machines d’un domaine NIS de partager un ensemble de fichiers de configuration communs. Cela permet à un administrateur système de mettre en place des clients NIS avec un minimum de configuration et d’ajouter, modifier ou supprimer les informations de configuration à partir d’un unique emplacement.

Définition – Processus du protocole NIS

Terme Description
Nom de domaine NIS Un serveur maître NIS et tous ses clients (y compris ses serveurs esclaves) ont un domaine NIS. Similaire au nom de domaine Windows NT®, le nom de domaine NIS n’a rien à voir avec le système DNS.
Rpc

bind

Doit tourner afin d’activer les RPC (Remote Procedure Call, appel de procédures distantes, un protocole réseau utilisé par NIS). Si rpcbind ne tourne pas, il sera impossible de faire fonctionner un serveur NIS, ou jouer le rôle d’un client NIS.
ypbind Fait pointer un client NIS vers son serveur NIS. Il récupérera le nom de domaine NIS auprès du système, et en utilisant les RPC, se connectera au serveur. ypbind est le coeur de la communication client-serveur dans un environnement NIS; si ypbind meurt sur une machine cliente, elle ne sera pas en mesure d’accéder au serveur NIS.
ypserv Ne devrait tourner que sur les serveurs NIS, c’est le processus serveur en lui-même. Si ypserv(8) meurt, alors le serveur ne pourra plus répondre aux requêtes NIS (avec un peu de chance, un serveur esclave prendra la relève). Il existe des implémentations de NIS (mais ce n’est pas le cas de celle de FreeBSD), qui n’essayent pas de se reconnecter à un autre serveur si le serveur utilisé précédemment meurt. Souvent, la seule solution dans ce cas est de relancer le processus serveur (ou même redémarrer le serveur) ou le processus ypbind sur le client.
rpc.yppasswdd Un autre processus qui ne devrait tourner que sur les serveurs maître NIS; c’est un “daemon” qui permettra aux clients de modifier leur mot de passe NIS. Si ce “daemon” ne tourne pas, les utilisateurs devront ouvrir une session sur le serveur maître NIS et y changer à cet endroit leur mot de passe.

Who NIS work ?

Dans un environnement NIS il y a trois types de machines : les serveurs maîtres, les serveurs esclaves et les clients. Les serveurs centralisent les informations de configuration des machines. Les serveurs maîtres détiennent l’exemplaire de référence de ces informations, tandis que les serveurs esclaves en ont un double pour assurer la redondance. Les clients attendent des serveurs qu’ils leur fournissent ces informations.

Le contenu de nombreux fichiers peut être partagé de cette manière. Les fichiers master.passwd, group, et hosts sont fréquemment partagés par l’intermédiaire de NIS. A chaque fois qu’un processus d’une machine cliente a besoin d’une information qu’il trouverait normalement localement dans un de ces fichiers, il émet une requête au serveur NIS auquel il est rattaché pour obtenir cette information.

 Type de machine

  • Un serveur NIS maître. Ce serveur, analogue à un contrôleur de domaine Windows NT® primaire, gère les fichiers utilisés par tous les clients NIS. Les fichiers passwd, group, et les autres fichiers utilisés par les clients NIS résident sur le serveur maître.
  • Serveurs NIS esclaves. Similaire aux contrôleurs de domaine Windows NT® de secours, les serveurs NIS esclaves possèdent une copie des fichiers du serveur NIS maître. Les serveurs NIS esclaves fournissent la redondance nécessaire dans les environnements importants. Ils aident également à à la répartition de la charge du serveur maître: les clients NIS s’attachent toujours au serveur NIS dont ils reçoivent la réponse en premier, y compris si c’est la réponse d’un serveur esclave.
  • Clients NIS. Les clients NIS, comme la plupart des stations de travail Windows NT®, s’identifient auprès du serveur NIS (ou le contrôleur de domaine Windows NT® dans le cas de stations de travail Windows NT®) pour l’ouverture de sessions.

Installation et Configuration d’un serveur NIS sous Debian

  • Une machine serveur nis.sio.tp
  • Domaine NIS sio.tp
  • Une machine client client1.sio.tp

J’utilise également une serveur DNS, afin de ne pas utilisé différemment l’adresse IP de mon serveur NIS dans la configuration. Mais son utilisation n’est pas obligatoire dans ce TP.

Configuration du Serveur Maitre

Nous commençons donc par l’installation du package nécessaire.

apt-get update --yes

apt-get install nis --yes

Lors de l’installation, une fenêtre vous demandera d’indiquer le nom de domaine de votre serveur NIS, j’ai choisi « nis-sio ». Il est fortement déconseillé d’utilisé le même nom DNS et nom de domaine NIS, car cella pourrais engendrer des conflits.

Une fois l’installation terminée, il faut modifier le fichier /etc/hosts 

nano /etc/hosts

127.0.0.1 localhost

10.0.24.122 nis.sio.tp nis         # nomdelamachine.domaine nomdelamachine

Maintenant nous allons indiquer dans les fichiers de configuration que notre machine est le serveur maitre.

nano /etc/default/nis

La ligne NISSERVER=false doit devenir NISSERVER=master.

Dans le fichier /var/yp/Makefile on change les valeurs suivantes de « false » à « true » :

nano /var/yp/Makefile

MERGE_PASSWD = true

MERGE_GROUP = true

Et à la ligne commençant par « ALL = » on ajoute les données à gérer, ici il s’agis des fichier passwd group hosts.

ALL = passwd group hosts

Nous redémarrons la machine afin que les modifications soient prises en compte.

reboot

Après redémarrage du serveur il faut construire les bases de données.

/usr/lib/yp/ypinit –m

Le programme nous demande si nous avons des serveurs esclaves et si c’est le cas de spécifiez leurs différents noms de domaines. Dans notre cas nous n’en avons pas, donc nous ignorons cette partie cette partie « Control + D ».

La configuration du serveur NIS est terminé, nous allons créer un utilisateur pour nos futurs tests, et on définit max1 le propriétaire de /home/max1. On change les droits récursivement sur /home, le propriétaire à accès en lecture, écriture, exécution sur son home dir, tous les autres utilisateurs n’ont aucun droit.

adduser max1

chown test /home/max1

chmod –R 700 /home

Après toute modification des fichier passwd group hosts il faut actualiser les bases de données du serveur .

cd /var/yp; make

Et enfin on démarre le service sur notre serveur.

service nis start

Configuration du Client

Maintenant que le serveur maitre NIS est configuré, nous allons préparer une machine cliente Debian également..

Tout comme sur le serveur, on installe le package nis :

apt-get update –yes

apt-get install nis

On indique ensuite le nom du domaine NIS et le FQDN – ou adresses IP du serveur  dans le fichier /etc/yp.conf

nano /etc/yp.conf

domain nis-sio server nis.sio.tp

Puis on configure les fichiers à synchroniser avec le serveur en ajoutant “nis” au fichier concernés :

nano /etc/nsswitch.conf

passwd: compat nis

group: compat nis

shadow: compat nis

hosts: files dns nis

On indique le serveur NIS dans le fichier hosts de résolution local en y ajoutant une ligne avec l’IP du serveur NIS, le FQDN, puis le nom d’hôte.

nano /etc/hosts
127.0.0.1 localhost

10.0.24.122 nis.sio.tp nis

Enfin on redémarre la machine client et on démarre le service.

reboot

service nis start

Nous allons tester notre configuration, pour commencer nous allons voir si notre client nous retourne bien le nom de notre machine serveur et le nom de domaine de NIS :

ypwhich

nis.sio.tp

ypdomainname

sio.tp

Maintenant je me déconnecte de mon compte root sur la machine client et tenter de nous connectez avec le compte max1. Si tout ce passe nous sommes connecter via max1 sur la machine cliente, ce qui prouve que l’installation est fonctionnelle.

Il est possible de modifier un mot de passe utilisateur une fois connecter avec celui-ci, utiliser la commande yppasswd.

Partage du home directory de l’utilisateur

Le but étant que l’utilisateur est sont /home sur le serveur NIS et qu’il soit monter automatiquement sur sa machine cliente au démarrage.

Sur le serveur NIS

On commence donc par l’installation de nfs-kernel-server :

apt-get install nfs-kernel-server --yes

Sur le serveur NIS nous allons éditer le fichier /etc/exports. Le fichier /etc/exports permet non seulement de contrôler les systèmes de fichiers spécifiques qui sont exportés vers des hôtes distants, mais il permet également de spécifier des options.

nano /etc/exports

Exemple de configuration :

/home 10.0.23.104/16(rw,sync,no_sebtree_check)

/temp 10.0.23.104/16(rw,sync,no_sebtree_check)

On indique donc que le dossier /home est partagé avec toutes les machines clients présentes sur le réseau 10.0.0.0/16 (à modifier en fonction de votre environnement). Puis on spécifie les droits, dans notre cas on donne les droits d’écriture et lecture (rw), on active la synchronisation entre les machines (sync) et on ne vérifie pas les droits d’accès aux sous répertoires (no_subtree_check).

Et on redémarre le service NFS :

service nfs-kernel-server restart

Sur le client debian NIS

On commence donc par l’installation de nfs-kernel-server :

apt-get install nfs-kernel-server --yes

On configure le montage du lecteur réseau dans le fichier /etc/fstab.

nano /etc/fstab
nis.sio.tp:/home /home nfs defaults 0 0

nis.sio.tp:/temp /temp nfs defaults 0 0

On monte le /home présent sur le serveur nis.sio.tp l’aide de NFS au lieu du /home présent en local.

On finalise en redémarrant le service :

service nfs-common restart

Puis en redémarrant la machine client et le serveur :

reboot

Sources: www.freebsd.org

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *