tutoriel | installer un domaine nis
Article publiée le 14 Septembre 2013
La difficulté du métier d'admin système dépend toujours de la grandeur de son infrastructure. Plus il y a de serveurs à administrer plus il faut-être malin.
Prenons le simple exemple de l'administration des utilisateurs. Si vous avez 1000 serveurs à votre actif je vous vois mal faire des useradd pendant deux jours!
Soit vous faite un script SHELL de déploiement, soit ...
Vous utilisez NIS!
Si vous en avez jamais entendu parlé, NIS est un protocole client/serveur permettant la centralisation des informations sur un réseau UNIX.
En gros vous pouvez centraliser tout les fichiers de configuration de vos serveurs UNIX.
Pratique me direz vous!
Ci-dessous la procédure d'installation de NIS adaptée pour Debian/Ubuntu et RedHat/Centos:
Faites très attention avec ce protocole, pensez à sécuriser votre infrastructure car une tel mise en place peut également représenter une faille de sécurité...
1) Installation partie serveur sous Centos/RedHat
- Installez les paquets:
yum install ypserv rpccind
- Initialisez votre domaine NIS
ypdomainname <nom de domaine>
- Editez le fichier /var/yp/Makefile
Remplacez "ALL = passwd group hosts rpc services netid protocols netgrp" par "ALL = passwd shadow group hosts rpc services netid protocols netgrp"
Exemple : ypdomainname vince.domain
- Ajoutez votre serveur NIS dans son propre domaine
vi /etc/sysconfig/network
Verifiez bien que vos machines disposent bien d'un DNS (via les fichiers hosts ou serveurs DNS)
- On démarre les services:
/etc/init.d/rpcbind start
/etc/init.d/ypserv start
/etc/init.d/yppasswdd start
- On fait en sorte que ces services soient démarrés au démarrage de la machine
chkconfig rpcbind on
chkconfig ypserv on
chkconfig yppasswdd on
- On initialise la base nis avec la commande /usr/lib64/yp/ypinit -m
Comme vous pouvez le constater c'est ici que vous entrez le nom des autres serveurs NIS si vous voulez mettre en place des slave (utile uniquement si vous avez une grosse infrastructure)
2) Installation partie serveur sous Debian/Ubuntu
- Installez les paquets:
apt-get install nis
Si cette écran apparaît renseignez le nom de votre domaine NIS
- Éditez le fichier /etc/default/nis
Remplacez "NISSERVER=false" par "NISSERVER=master"
- Éditez le fichier /var/yp/Makefile
Remplacez "ALL = passwd group hosts rpc services netid protocols netgrp" par "ALL = passwd shadow group hosts rpc services netid protocols netgrp"
- Exécutez la commande /usr/lib/yp/ypinit -m
- Redémarrez NIS:
/etc/init.d/nis restart
3) Installation partie client
Sous Centos:
- Editez le fichier /etc/sysconfig/network et rajoutez la ligne:
NISDOMAIN=<votre domaine NIS>
- Editez le fichier /etc/sysconfig/authconfig et modifiez "USENIS=no" par "USENIS=yes"
- Editez le fichier /etc/yp.conf et ajoutez la ligne
domain <nom de votre domaine NIS> server <Dns de votre serveur nis>
- Editez le fichier /etc/nsswitch.conf (permet de choisir quelles élément seront centralisé par le NIS), pour cela ajoutez "nis" après "files" :
- Faites en sorte que le service NIS démarre bien au démarrage de la machine:
chkconfig rpcbind on
chkconfig ypbind on
reboot
Il ne vous reste plus qu'à checker en créant un user sur le serveur et essayer de vous loguer avec sur la machine cliente!
Après la création d'un user n'oubliez pas de de faire un refresh de la base NIS. Pour cela:
cd /var/yp && make
Petite astuce: si vous voulez que le répertoire home de votre user se crée tout seul:
Ajouter cette ligne dans le fichier /etc/pam.d/system-auth
session optional pam_mkhomedir.so skel=/etc/skel umask=077
Sous Debian/Ubuntu
- Installez le paquet nis:
apt-get install nis
- Editez le fichier /etc/yp.conf
Rajouter la ligne :
domain <nom du domaine> server <nom du serveur NIS>
- Editez le fichier /etc/nsswitch.conf
Rajoutez "nis" après "compat" devant tout les éléments qui devront être centralisés
Exemple:
Il ne reste plus qu'à redémarrer.
Enjoy ! 🙂