Serveur NIS: Authentification linux centralisée avec Partage NFS

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

NIS

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

NIS

Pour sécuriser votre serveur, vous pouvez modifier le fichier suivant:

nano /etc/ypserv.securenets

NIS1

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

NIS3.PNG

  • 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.

NIS2.PNG

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 ».

NIS4.PNG

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

NIS5.PNG

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

NIS6.PNG

Puis on indique le serveur NIS dans le fichier hosts:

NIS7.PNG

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

NIS8.PNG

ypdomainname

NIS9.PNG

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

NIS10

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)

nis20.PNG

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!!

nis19.PNG

Si vous avez un problème de montage, ou un problème avec votre fichier fstab vous pouvez consulter ce site il m’a aidé en partie à comprendre un problème que j’ai pu rencontrer.

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.

nis16

Par exemple je crée le fichier « test » dans /home/test à partir du client:

nano test

 

nis17
Puis je vérifie sa présence sur mon serveur:

nis18

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

Un site Web propulsé par WordPress.com.

Retour en haut ↑