Installation et Configuration d’un serveur NIS sous Debian avec Partage NFS
Nous allons dans cet article voir comment mettre en place un serveur NIS. Pour cela il nous faudra :
- Une machine serveur « mat »: 172.16.94.241
- Une machine client (pour effecteur nos tests) « ouessant »:172.16.94.80
Configuration du Serveur Maitre NIS
Commençons par l’installation du package NIS nécessaire:
apt-get update --yes && apt-get upgrade --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 « sio.tp » car j’ai un service DNS Bind9 à bord et que mon FQDN est «mat.sio.tp ».
En effet ce n’est qu’au sein du fichier de configuration que l’on indique a NIS si il doit agir en tant que serveur ou en tant que client.
Une fois l’installation terminée, il faut modifier le fichier /etc/hosts afin de spécifier que notre machine est bien un serveur NIS.
nano /etc/hosts
Voici un exemple du fichier de configuration d’NIS, avec tous les paramètres commentés en Anglais bien sur.
# /etc/defaults/nis Configuration settings for the NIS daemons. # # Are we a NIS server and if so what kind (values: false, slave, master)? NISSERVER=master # Are we a NIS client? NISCLIENT=false # Location of the master NIS password file (for yppasswdd). # If you change this make sure it matches with /var/yp/Makefile. YPPWDDIR=/etc # Do we allow the user to use ypchsh and/or ypchfn ? The YPCHANGEOK # fields are passed with -e to yppasswdd, see it's manpage. # Possible values: "chsh", "chfn", "chsh,chfn" YPCHANGEOK=chsh # NIS master server. If this is configured on a slave server then ypinit # will be run each time NIS is started. NISMASTER= # Additional options to be given to ypserv when it is started. YPSERVARGS= # Additional options to be given to ypbind when it is started. YPBINDARGS=-no-dbus # Additional options to be given to yppasswdd when it is started. Note # that if -p is set then the YPPWDDIR above should be empty. YPPASSWDDARGS= # Additional options to be given to ypxfrd when it is started. YPXFRDARGS=
Il y’a 3 options principales à modifier:
NISSERVER= false/slave/master (non/escale/maitre) NISCLIENT= true/false (oui/non) NISMASTER= mon_serveur_nis_maitre
Dans mon cas, seul le paramètre NISSERVER m’intéresse car ainsi je vais pouvoir indiquer que notre machine (ici « mat ») est le serveur maître.
nano/etc/default/nis
Pour sécuriser votre serveur, vous pouvez modifier le fichier suivant:
nano /etc/ypserv.securenets
Editer le fichier /var/yp/Makefile et lister sur la ligne commençant par all: les données à gérer :all: passwd group hosts:
nano /var/yp/Makefile
- Si vous utilisez les shadow password et que souhaitez fusionner
les fichiers passwd et shadow mettre à « true », MERGE_PASSWD=true. - De même si vous utilisez des shadow password pour les groupes mettre à « true »,
MERGE_GROUP=true.
Avant de continuer, ne pas oublier de redémarrer la machine afin de prendre en compte les modifications apportées.
reboot
NIS génère des tables à partir des fichiers systèmes locaux contenant les informations des utilisateurs (mot de passe, répertoire personnel , etc…).
Maintenant il faut construire les bases de données avec la commande:
/usr/lib/yp/ypinit –m
L’initialisation nous demande si nous avons d’autres 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 en pressant « Control + D ».
Nous avons maintenant terminé la configuration de notre serveur NIS. Avant de commencer celle de notre client, nous allons créer un utilisateur pour nos futurs tests.
adduser test #MDP Iroise29
Il faut actualiser les bases de données du serveur puisque nous avons apporté des modifications.
cd /var/yp; make
Et enfin on démarre le service sur notre serveur.
service nis start
Configuration du Client NIS
Le client s’installe avec les mêmes outils que le serveur:
apt-get update --yes && apt-get install nis
La différence se faisant dans les fichiers de configuration.
On indique ensuite le nom du serveur dans le fichier /etc/yp.conf
nano /etc/yp.conf
La modification indique au client NIS qu’il doit aller attaquer le serveur entrer en paramètre. Il n’est pas nécessaire de modifier le fichier: /etc/default/nis car celui-ci est par défaut un client NIS.
Ensuite on configure les fichiers à synchroniser avec le serveur :
nano /etc/nsswitch.conf
Puis on indique le serveur NIS dans le fichier hosts:
Et enfin on redémarre la machine client et on démarre le service.
reboot
service nis start
Maintenant nous allons tester notre installation, 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
ypdomainname
Nous allons maintenant nous déconnectez du compte local de notre machine client et tenter de nous connectez avec le compte « test » que nous avons créé sur le serveur NIS.
exit
Login : test
Password : Iroise29
On est bien connecté avec notre utilisateur de test, ce qui prouve que toute notre installation est bien fonctionnelle.
Pour modifier votre mot de passe, utilisez la commande « yppasswd » afin de le modifier directement dans la base de données associées sur le serveur NIS.
Configuration du partage NFS
Partie Serveur
Maintenant que les utilisateurs sont partagés entre nos clients et notre serveur, il faut qu’ils puissent accéder à leurs données depuis n’importe où. Nous allons donc configurer le partage des fichiers grâce au protocole NFS (Network Files System). Pour que chaque utilisateur puisse avoir accès à son répertoire personnel depuis n’importe quel machine, il faut partager le répertoire /home du serveur NIS.
On commence donc par l’installation de nfs-kernel-server :
apt-get install nfs-kernel-server --yes
Ensuite on paramètre le fichier exports afin d’autoriser l’accès aux fichiers pour les clients.
nano /etc/exports /home/ 172.16.0.0/16(rw,sync,no_subtree_check) 172.16.94.80/32(rw,sync,no_subtree_check)
On indique donc que le dossier /home est partagé avec toutes les machines clients présentes sur le réseau 172.16.0.0 (à 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). Si cela ne fonctionne pas on spécifie exactement l’@ IP de celui à qui on veut bien partager notre répertoire.
On redéfinit les droits sur le dossier /home grâce aux commandes :
chmod -R 755 /home chown -R test:test /home/mat/ --Cette ligne est optionnel pour vous
Et on redémarre le service NFS :
service nfs-kernel-server restart
Partie Client
Commençons par installer le service nfs-common (certaines distributions de Linux possède ce service par défaut):
apt-get install nfs-common --yes
Maintenant on configure le montage du lecteur réseau:
nano /etc/fstab mat.sio.tp:/home /home nfs defaults 0 0
!!Pensez à supprimer la ligne déjà présente qui monte le /home si non vous aurez des erreurs, et votre ajout ne sera pas pris en compte pour cause de double entrée!!
On indique donc que l’on utilise le fichier /home présent sur le serveur présent en 172.16.94.241 à l’aide de NFS au lieu du /home présent en local.
On finalise en redémarrant la machine client ou en montant les répertoires (distants ou pas):
reboot ou mount -a
Afin de vérifier que votre installation est fonctionnelle, il suffit de vous connectez sur une machine client à l’aide d’un utilisateur présent sur le serveur NIS et de créer des dossiers et/ou fichiers, ces derniers devraient se retrouver également dans le /home de l’utilisateur au sein du serveur NIS.
Déjà en se connectant avec l’utilisateur « test » on constate que le /home de notre serveur est bien monté sur le client.
Par exemple je crée le fichier « test » dans /home/test à partir du client:
nano test
Puis je vérifie sa présence sur mon serveur:
Voila tout est prêt, et fonctionnel.
Source 1:https://artduweb.com/linux/nis
Source 2:http://www.funix.org/fr/linux/nis.htm
Laisser un commentaire