Outils pour utilisateurs

Outils du site


linux:nis

NIS : Authentification linux centralisée

NIS authentification


Un serveur NIS stocke et distribue donc les informations administratives du réseau, qui se comporte ainsi comme un ensemble cohérent de comptes utilisateurs, groupes, machines, etc.

A l'origine, NIS est sorti sous le nom de « Yellow Pages » (YP) ou Pages jaunes mais le nom étant déposé par la compagnie anglaise British Telecom, Sun a renommé son protocole NIS. Cependant, les commandes NIS commencent toutes par yp.

Installation du serveur NIS

La première chose a faire est d'installer les paquets suivants qui seront nécessaires par la suite:

 aptitude install autofs unfs3 nis 

AutoFS et unfs3 nous servirons à créer et partager les répertoires personnels pour les différents utilisateurs, afin qu'il puissent y avoir accès depuis n'importe quelle machine.

Pour l'installation de NIS vous serez amenés à entrer un nom de domaine du type exemple.fr, quelque soit le type de machine sur laquelle vous installez NIS (client ou serveur).

NIS installation

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.

Configuration de NIS

 vi /etc/default/nis 
 
#
# /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=
Ceci est un exemple de fichier de configuration d'un serveur NIS. Il y'a 3 options principales à modifier:

NISSERVER= false/slave/master (non/escale/maitre)
NISCLIENT= true/false (oui/non)
NISMASTER= mon_serveur_nis_maitre

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

 vi /etc/ypserver.securenets 

#
# securenets    This file defines the access rights to your NIS server
#               for NIS clients (and slave servers - ypxfrd uses this
#               file too). This file contains netmask/network pairs.
#               A clients IP address needs to match with at least one
#               of those.
#
#               One can use the word "host" instead of a netmask of
#               255.255.255.255. Only IP addresses are allowed in this
#               file, not hostnames.
#
# Always allow access for localhost
255.0.0.0       127.0.0.0

# ACCES RESEAU
#0.0.0.0                0.0.0.0        # This line gives access to everybody.
255.255.0.0             192.168.0.0    # restriction d'accès aux clients du 192.168.0.0/16.

Avant de continuer, ne pas oublier de redémarrer le service nis afin de prendre en compte les modifications apportées.

 service nis restart 

NIS génère des tables à partir des fichiers systèmes locaux contenant les informations des utilisateurs (mot de passe, répertoire personnel , etc…)

  • Pour générer ces tables il est nécessaire d'invoquer la commande:

 /usr/lib/yp/ypinit -m 

At this point, we have to construct a list of the hosts which will run NIS
servers.  ServeurNIS is in the list of NIS server hosts.  Please continue to add
the names for the other hosts, one per line.  When you are done with the
list, type a <control D>.
        next host to add:  ServerNIS
        next host to add:
On peut ensuite éventuellement ajouter des serveurs esclaves pour NIS.
Si aucun serveur n'est a ajouter, appuyer sur CTRL+D pour que la commande commence a compiler.

NIS cluster

Configuration nfs et AutoFS pour le montage auto des HomeDirectory à distance

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.

Partage NFS des Homedir avec UNFS3:

 vi /etc/exports 
# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See unfsd(8).
#répertoire_partagé     hôte(options)     hôte2(options) ....
/home   192.168.0.0/24(rw,sync,no_root_squash)

Définition du montage auto avec AUTOFS:

 vi /etc/auto.master 
+auto.master
/users  yp:auto.home

 vi /etc/auto.home 
*       192.168.0.253:/home/&

Le fichier auto.master indique dans quel répertoire sera monter le partage sur le client (ici le répertoire /users).
yp:auto.home indique l'emplacement de la ressource à partager. Ici on oblige le client à passer par yp (qui est le démon NIS du client).
Le fichier auto.home indique la localisation du partage sur le réseau. Le & permet de ne récupérer que le dossier propre à l'utilisateur connecté.

  • Il faut ensuite indiquer à NIS de prendre en compte ces 2 fichiers lors de la génération des tables.

 vi /var/yp/MakeFile 
NOPUSH=false       # on peut en profiter pour enlever la synchronisation vers les serveurs esclaves.

ALL =   passwd group hosts rpc services netid protocols netgrp
#ALL += publickey mail ethers bootparams printcap
#ALL += amd.home auto.master auto.home auto.local
#ALL += timezone locale networks netmasks
ALL += auto.master auto.home                    # Ligne à ajouter au fichier.

Une fois la configuration autofs terminée, on peut passer à l'ajout des utilisateurs. Quelques règles à respecter:

  1. L'UID et le GID des comptes doit être supérieur a 1000.
  2. Le répertoire personnel doit être créé à la création du compte.

 useradd -m -c toto -u 1500 -s /bin/bash toto 

Il faut modifier ensuite dans le fichier /etc/passwd le répertoire de chaque utilisateur qui utilisera NIS afin de le positionner sur /users/mon_user. Il est nécessaire de procéder de la sorte et de ne pas créer directement le répertoire dans le dossier /users car le dossier partagé est /home et non /users. Cependant, lorsque l'utilisateur souhaiteras se connecter, il devra pouvoir atteindre /users/mon_user et non /home.

Il est nécessaire ensuite de recharger les tables NIS.

 sudo make -C /var/yp 

On peut ensuite passer à la configuration du client NIS.

Configuration du client NIS

Le client s'installe avec les mêmes outils que le serveur:

 aptitude install autofs unfs3 nis 
La différence se faisant dans les fichiers de configuration.

De même que pour le serveur, lors de l'installation NIS, il est nécessaire de rentrer le nom de domaine que l'on souhaite rejoindre.

 vi /etc/yp.conf 
domain antares.local server 192.168.0.253
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.

On indique ensuite à autofs d'utiliser NIS:

 vi /etc/nsswitch.conf 
passwd:         compat
group:          compat
shadow:         compat


hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
# A AJOUTER
automount:      nis

On doit ensuite modifier les fichiers /etc/passwd, group et shadow afin d'autoriser tout utilisateur non présent localement à se loguer:

 vi /etc/passwd 
sshd:x:115:65534::/var/run/sshd:/usr/sbin/nologin
statd:x:116:65534::/var/lib/nfs:/bin/false
+::::::
Attention! Le nombre de : est très important. vérifier bien que vous avez le même nombre que les lignes précédentes, ou que vous avez le nombre de champ d'une ligne au dessus -1.

 vi /etc/group 
.
.
.
+:::

 vi /etc/shadow 
sshd:*:15202:0:99999:7:::
statd:*:15202:0:99999:7:::
+::::::::

Vérification des tables NIS récupérées sur le client:

  • Cette commande permet d'afficher le contenu de la map qui lui est passé en paramètre.

ypcat

Connexion depuis le client NIS :

NIS connexion

Configuration de NIS pour le firewalling

Afin d'améliorer la sécurité de notre réseau, nous allons faire fonctionner NIS sur des ports fixes.

  • Modifier le fichier de conf /etc/default/nis:

vi /etc/default/nis
# Additional options to be given to ypserv when it is started.
YPSERVARGS="-p 834"

# Additional options to be given to ypbind when it is started.
YPBINDARGS="-p 835 -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="--port 836"

# Additional options to be given to ypxfrd when it is started.
YPXFRDARGS="-p 837"

  • Regénérer les tables NIS et relancer le service :

make -c /var/yp/
service nis restart
service portmap restart

  • Contrôler les appels RPC avec rpcinfo :

rpcinfo -p

RPCINFO

Les règles iptables pour le firewall sur NIS

  • Exemple de régles du LAN vers un NIS Slave:

# NIS YPBIND FORWARD LAN-DMZ
iptables -A FORWARD -i eth0 -o eth2 -s 192.168.0.0/24 -d 192.168.1.1 -p tcp --dport 835 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -d 192.168.0.0/24 -s 192.168.1.1 -p tcp --sport 835 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth2 -s 192.168.0.0/24 -d 192.168.1.1 -p udp --dport 835 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -d 192.168.0.0/24 -s 192.168.1.1 -p udp --sport 835 -j ACCEPT
echo "NIS YPBIND LAN-DMZ : OK"

# NIS PORTMAPPER FORWARD LAN-DMZ
iptables -A FORWARD -i eth0 -o eth2 -s 192.168.0.0/24 -d 192.168.1.1 -p udp --dport 111 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -d 192.168.0.0/24 -s 192.168.1.1 -p udp --sport 111 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth2 -s 192.168.0.0/24 -d 192.168.1.1 -p tcp --dport 111 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -d 192.168.0.0/24 -s 192.168.1.1 -p tcp --sport 111 -j ACCEPT
echo "NIS PORTMAPPER LAN-DMZ : OK"

linux/nis.txt · Dernière modification: 15/04/2016 à 21:15 (modification externe)

Outils de la page