Introduction aux Services d'Informations Réseau
Dans les réseaux de grande envergure avec plusieurs machines Linux, la gestion centralisée des comptes utilisateur devient essentielle. NIS (Network Information Service) permet d'unifier la gestion des fichiers comme /etc/passwd sur un serveur central. Ainsi, les modifications apportées aux comptes sont propagées automatiquemnet à tous les clients du domaine, simplifiant l'administration.
Composants clés de NIS
Côté serveur
Le serveur NIS héberge les bases de données des informations système et gère les requêtes des clients. Les fichiers de configuration principaux incluent /etc/ypserv.conf et /etc/netgroup. Les services essentiels sont ypserv et yppasswdd.
Côté client
Les clients NIS interrogeront le serveur pour les données utilisateur. Les configurations se trouvent dans /etc/yp.conf et /etc/nsswitch.conf. L'outil ypbind gère la liaison au serveur NIS.
Environnement NIS
Packages logiciels requis
Pour le serveur, installez ypserv, yp-tools et rpcbind. Les clients nécessitent ypbind, yp-tools et rpcbind. Le service rpcbind (ou portmap sur les anciennes versions) est crucial pour les appels RPC.
Architecture Serveur NIS
NIS supporte une configuration maître-esclave. Le serveur maître génère les bases de données à partir des fichiers système, tandis que les serveurs esclaves synchronisent ces données pour assurer la disponibilité.
Comportement du Client NIS
Lors d'une tentative de connexion, le client consulte d'abord ses fichiers locaux. Si l'information n'est pas trouvée, il diffuse une requête dans le réseau NIS, et le serveur qui répond le premier fournit les données.
Installation et configuration du serveur NIS
Sur le serveur, procédez comme suit :
# Installation des paquets nécessaires
dnf -y install ypserv yp-tools rpcbind
# Définition du domaine NIS dans la configuration réseau
echo "NISDOMAIN=domaine-nis.local" >> /etc/sysconfig/network
# Application immédiate du domaine NIS
nisdomainname domaine-nis.local
# Pour rendre le domaine persistant au démarrage
echo "/usr/bin/nisdomainname domaine-nis.local" >> /etc/rc.d/rc.local
# Configuration des restrictions d'accès dans ypserv.conf
cat > /etc/ypserv.conf << EOF
127.0.0.0:*:*:none
192.168.10.0/255.255.255.0:*:*:none
*:*:*:deny
EOF
# Démarrage des services NIS
systemctl start rpcbind yppasswdd ypserv
# Initialisation de la base de données NIS
/usr/lib64/yp/ypinit -m
# Redémarrage des services après l'initialisation
systemctl restart rpcbind yppasswdd ypserv
# Activation des services au démarrage
systemctl enable rpcbind yppasswdd ypserv
Configuration du client NIS
Sur chaque client, effectuez ces étapes :
# Installation des paquets client
dnf -y install ypbind yp-tools rpcbind
# Ajout du domaine NIS à la configuration réseau
echo "NISDOMAIN=domaine-nis.local" >> /etc/sysconfig/network
# Application du domaine NIS
nisdomainname domaine-nis.local
# Ajout des entrées pour le serveur NIS dans /etc/hosts
echo "192.168.10.10 serveur-nis.domaine-nis.local" >> /etc/hosts
# Configuration du client pour utiliser le serveur NIS
echo "domain domaine-nis.local server serveur-nis.domaine-nis.local" > /etc/yp.conf
# Démarrage des services client
systemctl start rpcbind ypbind
Validation de l'installation
Pour tester, créez des utilisateurs sur le serveur NIS :
# Création d'utilisateurs de test sur le serveur
for num in $(seq 1 5); do useradd "utilisateur-test$num"; done
for num in $(seq 1 5); do echo "motdepasse123" | passwd --stdin "utilisateur-test$num"; done
# Mise à jour de la base de données NIS
/usr/lib64/yp/ypinit -m
systemctl restart rpcbind yppasswdd ypserv
Sur le client, vérifiez l'accès :
# Test avec yptest
yptest
# Vérification de l'existence d'un utilisateur NIS
getent passwd utilisateur-test1
# Tentative de connexion (peut nécessiter la configuration du répertoire home via NFS)
su - utilisateur-test1
Résolution des problèmes courants
Si la connexion échoue, suivez ce processus de dépannage :
- Vérifiez la connectivité réseau entre le client et le serveur.
- Assurez-vous que les domaines NIS correspondent sur toutes les machines (commande
nisdomainname). - Contrôlez les fichiers de configuration : /etc/ypserv.securenets sur le serveur, /etc/yp.conf et /etc/nsswitch.conf sur le client.
- Confirmez la résolution des noms d'hôtes dans /etc/hosts si les noms sont utilisés.
- Redémarrez les services NIS et rpcbind.
Pour les répertoires home manquants lors de la connexion, configurez un partage NFS depuis le serveur NIS et utilisez autofs sur le client pour monter automatiquement les répertoires.