Rapport Tpnisnpeftfan

Vous aimerez peut-être aussi

Vous êtes sur la page 1sur 13

UNIVERSITÉ DE YAOUNDÉ I UNIVERSITY OF YAOUNDE I

******** ********
FACULTE DE SCIENCE FACULTY OF SCIENCE
******** ********
DEPARTEMENT D’INFOMATIQUE DEPARTMENT OF COMPUTER
SCIENCE

Rapport de Travaux Pratiques D’INF 362 2 :


SERVICES RÉSEAUX

THÈME : AUTHENTIFICATION AVEC NIS

MEMBRE DU GROUPE :

- NEUSSI PATRICE EUGÈNE 21T2894


- MFENJOU ANAS CHERIF 21T2330

Sous la supervision de : Dr RODRIGUE DOMGA

Année Académie : 2023-2024

 PATRICE NEUSSI , ANAS MFENJOU 23 mai 1


2024 23 mai 2024
Table des matières

INTRODUCTION ......................................................................................................... 3
Composants NIS impliqués dans l'authentification .................................................... 4

Fonctionnement de l'authentification avec NIS ...............................................4

Architecture du Network Information System (NIS) .........................................4

configuration.............................................................................................................. 8
Résolution des Problèmes............................................................................................ 10

Mécanismes de communication .................................................................... 11

Synchronisation des mots de passe .............................................................12

Avantages et inconvénients de l'authentification NIS ....................................12


conclusion ............................................................................................................... 13

 PATRICE NEUSSI , ANAS MFENJOU 23 mai 2


2024 23 mai 2024
INTRODUCTION
La gestion d'un réseau local d'entreprise ou d'organisation comporte de nombreux défis. L'un des
principaux objectifs est de fournir un environnement transparent et cohérent pour les utilisateurs, en
s'assurant que les informations essentielles comme les comptes utilisateurs soient synchronisées sur
tous les hôtes du réseau.
C'est pour répondre à ce besoin que le Network Information System (NIS) a été développé par
Sun Microsystems. Le NIS offre un moyen de distribuer de manière centralisée certaines données
cruciales, telles que les fichiers passwd et groups, afin de donner l'impression que le réseau ne
forme qu'un seul système unifié.
Contrairement au service DNS qui se concentre spécifiquement sur la résolution de noms d'hôtes, le
NIS fournit un accès générique à des bases de données pour partager toute sorte d'informations sur
le réseau. Cela simplifie grandement la gestion des comptes utilisateurs et d'autres paramètres
communs à tous les systèmes.
Bien que le NIS originel ne soit plus activement maintenu, il existe plusieurs implémentations libres
et open source, comme celle issue du projet BSD Net-2 et une autre appelée YPS. De plus, un
projet de refonte complète du NIS, nommé NYS, est en cours de développement et ajoute de
nouvelles fonctionnalités intéressantes.
Ce rapport va explorer en détail le fonctionnement, les composants et la configuration du Network
Information System, afin de mieux comprendre comment il peut simplifier l'administration d'un
réseau local.

Composants NIS impliqués dans


l'authentification
Le processus d'authentification NIS fait intervenir plusieurs composants clés :

- Le serveur NIS (ypserv) qui héberge la base de données contenant les informations des comptes
utilisateurs.
- Le démon ypbind sur les clients qui se connecte au serveur NIS pour récupérer les données
d'authentification.
- Les commandes yppasswd et ypwhich qui permettent respectivement de modifier les mots de
passe et d'interroger le serveur NIS.
- La bibliothèque libnsl qui fournit les fonctions d'accès au service NIS depuis les applications.

 PATRICE NEUSSI , ANAS MFENJOU 23 mai 3


2024 23 mai 2024
Fonctionnement de
l'authentification avec NIS
Lorsqu'un utilisateur se connecte sur un client NIS, les étapes suivantes se produisent :

1. Le client interroge le démon ypbind pour obtenir les informations du serveur NIS.
2. ypbind contacte le serveur ypserv pour récupérer les entrées du fichier /etc/passwd correspondant
à l'utilisateur.
3. Les informations d'authentification sont transmises au client qui peut alors valider les identifiants
de l'utilisateur.

Architecture du Network
Information System (NIS)
Le NIS repose sur une architecture client-serveur permettant de centraliser et de distribuer les
informations sur un réseau. Ses principaux composants sont :
1. Serveur NIS (ypserv) :
o Héberge la base de données NIS contenant les informations à partager
o Fournit un service RPC (Remote Procedure Call) pour permettre aux clients
d'accéder aux données
o Peut être dupliqué pour assurer la haute disponibilité
2. Démon ypbind sur les clients :
 S'exécute sur chaque machine cliente
 Découvre dynamiquement le(s) serveur(s) NIS disponible(s) sur le réseau
 Établit une connexion avec le serveur NIS pour récupérer les données
3. Base de données NIS :
 Stocke les informations à partager, comme les fichiers /etc/passwd,
/etc/group, /etc/hosts, etc.
 Organisée sous forme de "cartes" (maps) accessibles via des noms
symboliques
 Peut être mise à jour manuellement ou automatiquement
4. Outils d'administration :
 yppasswd : permet de modifier les mots de passe utilisateurs
 ypwhich : interroge le serveur NIS pour connaître les cartes disponibles
 yppush : force la mise à jour des cartes sur les clients

 PATRICE NEUSSI , ANAS MFENJOU 23 mai 4


2024 23 mai 2024
Configuration
Environnement
 Serveur NIS: CentOS 7
 Clients NIS: CentOS 7
 Outils utilisés: Vagrant pour la création et la gestion des machines virtuelles

Préparation de l'Environnement
Création d'un fichier Vagrant pour configurer les machines serveur et clients:
Vagrant.configure("2") do |config|
# Configuration de la machine serveur
config.vm.define "server" do |server|
server.vm.box = "centos/7"
server.vm.network "private_network", ip: "192.168.56.10"
server.vm.provision "shell", path: "setup_server.sh"
end

# Configuration des machines clientes


(1..3).each do |i|
config.vm.define "client#{i}" do |client|
client.vm.box = "centos/7"
client.vm.network "private_network", ip: "192.168.56.1#{i}"
client.vm.provision "shell", path: "setup_client.sh"
end
end
end

Configuration du Serveur NIS


Script de Configuration du Serveur (setup_server.sh)
Le script suivant configure le serveur NIS:
#!/bin/bash

# Mettre à jour le système


sudo yum clean all
sudo yum -y update

# Importer la clé GPG


sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

# Installer les paquets nécessaires pour NIS

 PATRICE NEUSSI , ANAS MFENJOU 23 mai 5


2024 23 mai 2024
sudo yum install -y ypserv yp-tools rpcbind

# Démarrer et activer rpcbind


sudo systemctl start rpcbind
sudo systemctl enable rpcbind

# Configurer le domaine NIS


NIS_DOMAIN="tpnis.cm"
sudo domainname $NIS_DOMAIN
echo "NISDOMAIN=$NIS_DOMAIN" | sudo tee -a /etc/sysconfig/network

# Configurer /etc/yp.conf
echo "domain $NIS_DOMAIN server 192.168.56.10" | sudo tee -a /etc/yp.conf

# Configurer /var/yp/Makefile (facultatif, ajustez selon vos besoins)


sudo sed -i 's/MERGE_PASSWD=false/MERGE_PASSWD=true/' /var/yp/Makefile
sudo sed -i 's/MERGE_GROUP=false/MERGE_GROUP=true/' /var/yp/Makefile

# Initialiser les cartes NIS


sudo /usr/lib64/yp/ypinit -m <<EOF
192.168.56.10
EOF

# Démarrer et activer les services NIS


sudo systemctl start ypserv
sudo systemctl enable ypserv
sudo systemctl start yppasswdd
sudo systemctl enable yppasswdd

Création des Utilisateurs sur le Serveur

#!/bin/bash

# Création des utilisateurs


for i in {1..5}
do
username="user$i"
password=$(openssl rand -base64 12)
useradd -m -s /bin/bash "$username"
echo "$username:$password" | chpasswd
echo "Utilisateur $username créé avec le mot de passe : $password"
done

# Réinitialiser les cartes NIS


sudo make -C /var/yp

Redémarrage des Services NIS


sudo systemctl restart ypserv
sudo systemctl restart yppasswdd

 PATRICE NEUSSI , ANAS MFENJOU 23 mai 6


2024 23 mai 2024
Configuration des Clients NIS
Script de Configuration des Clients (setup_client.sh)
Le script suivant configure les clients NIS:
#!/bin/bash

# Mettre à jour le système


sudo yum clean all
sudo yum -y update

# Installer les paquets nécessaires pour NIS


sudo yum install -y ypbind yp-tools rpcbind

# Démarrer et activer rpcbind


sudo systemctl start rpcbind
sudo systemctl enable rpcbind

# Configurer le domaine NIS


NIS_DOMAIN="tpnis.cm"
sudo domainname $NIS_DOMAIN
echo "NISDOMAIN=$NIS_DOMAIN" | sudo tee -a /etc/sysconfig/network

# Configurer /etc/yp.conf
echo "domain $NIS_DOMAIN server 192.168.56.10" | sudo tee -a /etc/yp.conf

# Configurer /etc/nsswitch.conf pour utiliser NIS


sudo sed -i 's/passwd: files sss/passwd: files nis/' /etc/nsswitch.conf
sudo sed -i 's/shadow: files sss/shadow: files nis/' /etc/nsswitch.conf
sudo sed -i 's/group: files sss/group: files nis/' /etc/nsswitch.conf
# Démarrer et activer le service ypbind
sudo systemctl start ypbind
sudo systemctl enable ypbind

Tests de Connexion vagrant et vrification des


users NIS
Nous avons les 04 machines crees avec vagrant :

 PATRICE NEUSSI , ANAS MFENJOU 23 mai 7


2024 23 mai 2024
Image1 : Machine 1 (server )

Vérification des Utilisateurs NIS


Sur un client, exécutez:
ypcat passwd

Vous devriez voir la liste des utilisateurs créés sur le serveur NIS.

Fig2 : machine2 (client 1)

Fig3 : machine3 (client 2)

Fig4 : machine4 (client 3)

 PATRICE NEUSSI , ANAS MFENJOU 23 mai 8


2024 23 mai 2024
Connexion avec un Utilisateur NIS
Pour tester la connexion avec un utilisateur NIS (ex. neussi):

Pour tester la connexion avec un utilisateur NIS (ex. lon):

Pour tester la connexion avec un utilisateur NIS (ex. user):

 PATRICE NEUSSI , ANAS MFENJOU 23 mai 9


2024 23 mai 2024
Connexion avec un Utilisateur NIS en ssh
Pour tester la connexion avec un utilisateur NIS (ex. user1):
ssh user1@192.168.56.11 # Remplacez 192.168.56.11 par l'adresse IP de votre client

Résolution des Problèmes


 Problème de clé publique lors de la connexion SSH: Assurez-vous que le service
SSH est configuré pour accepter les mots de passe.
 Répertoires personnels manquants: Créez les répertoires personnels manuellement
si nécessaire et assignez les droits appropriés:
for user in user1 user2 user3 user4 user5; do
sudo mkdir -p /home/$user
sudo chown $user:$user /home/$user
sudo chmod 700 /home/$user
done

Mécanismes de communication
Le protocole NIS utilise les appels de procédures distantes (RPC) pour permettre la communication
entre les clients et les serveurs. Le serveur NIS, appelé ypserv, expose ses différents services via
cette interface RPC. Cela permet aux clients NIS d'invoquer à distance ces services fournis par le
serveur.
De plus, NIS transmet les requêtes et réponses en mode datagramme, en utilisant le protocole UDP
(User Datagram Protocol). UDP est un protocole de niveau transport simple et léger, qui ne garantit
pas la livraison des paquets, contrairement à TCP. Cela correspond bien aux besoins de NIS, qui
nécessite une communication rapide et efficace entre clients et serveurs.

 PATRICE NEUSSI , ANAS MFENJOU 23 mai 10


2024 23 mai 2024
Un autre aspect important des mécanismes de communication NIS est l'utilisation de ports RPC
dynamiques. Plutôt que d'utiliser des numéros de ports fixes, les serveurs NIS attribuent de manière
dynamique des ports RPC lorsqu'ils démarrent. Ces numéros de ports sont ensuite découverts par
les clients NIS via un service spécial appelé portmapper. Ce mécanisme de ports dynamiques
permet une plus grande flexibilité et facilite la configuration du système.

En résumé, les principaux éléments permettant la communication dans NIS sont les appels de
procédures distLe protocole NIS utilise les appels de procédures distantes (RPC) pour permettre la
communication entre les clients et les serveurs. Le serveur NIS, appelé ypserv, expose ses différents
services via cette interface RPC. Cela permet aux clients NIS d'invoquer à distance ces services
fournis par le serveur.
De plus, NIS transmet les requêtes et réponses en mode datagramme, en utilisant le protocole UDP
(User Datagram Protocol). UDP est un protocole de niveau transport simple et léger, qui ne garantit
pas la livraison des paquets, contrairement à TCP. Cela correspond bien aux besoins de NIS, qui
nécessite une communication rapide et efficace entre clients et serveurs.
Un autre aspect important des mécanismes de communication NIS est l'utilisation de ports RPC
dynamiques. Plutôt que d'utiliser des numéros de ports fixes, les serveurs NIS attribuent de manière
dynamique des ports RPC lorsqu'ils démarrent. Ces numéros de ports sont ensuite découverts par
les clients NIS via un service spécial appelé portmapper. Ce mécanisme de ports dynamiques
permet une plus grande flexibilité et facilite la configuration du système.
En résumé, les principaux éléments permettant la communication dans NIS sont les appels de
procédures distantes RPC, le protocole de transport UDP et l'utilisation de ports RPC dynamiques
découverts via le portmapper. Cette architecture client-serveur basée sur RPC et UDP confère à NIS
ses capacités de distribution d'informations réseau de manière efficace et évolutive.
Cette architecture client-serveur basée sur RPC et UDP confère à NIS ses capacités de distribution
d'informations réseau de manière efficace et évolutive.

Synchronisation des mots de passe


Le NIS permet également de gérer de manière centralisée la modification des mots de passe
utilisateurs. Lorsqu'un utilisateur change son mot de passe, la commande yppasswd met à jour la
base de données NIS, et cette modification est automatiquement répercutée sur tous les clients.

 PATRICE NEUSSI , ANAS MFENJOU 23 mai 11


2024 23 mai 2024
Avantages et inconvénients de
l'authentification NIS

Principaux avantages :
- Gestion centralisée et cohérente des comptes utilisateurs:L'un des principaux avantages du NIS est
sa capacité à centraliser la gestion des comptes utilisateurs sur un réseau. Au lieu d'avoir à
configurer manuellement les informations d'authentification (nom d'utilisateur, mot de passe, etc.)
sur chaque machine, le NIS permet de les stocker de manière centralisée sur le serveur NIS et de les
distribuer automatiquement à tous les clients.

- Pas besoin de configurer manuellement chaque machine


- Synchronisation automatique des mots de passe

Inconvénients :
- Dépendance critique au serveur NIS (en cas de panne)
- Sécurité moins granulaire que les fichiers locaux /etc/passwd
- Nécessite une configuration spécifique pour fonctionner avec NYS

Conclusion

Le NIS est un protocole client-serveur développé par Sun Microsystems pour permettre la
distribution de données de configuration système, telles que les informations sur les utilisateurs et
les hôtes, sur un réseau. Son architecture repose sur un serveur central qui maintient une base de

 PATRICE NEUSSI , ANAS MFENJOU 23 mai 12


2024 23 mai 2024
données d'informations, que les clients NIS peuvent alors consulter. Cette approche offre une
gestion centralisée des données, avec la possibilité de répliquer la base de données sur plusieurs
serveurs esclaves.

Cependant, le NIS présente certaines préoccupations en matière de sécurité, car il peut transmettre
des informations sensibles en texte clair sur le réseau. Pour répondre à ces problèmes, une
alternative plus sécurisée, NIS+, a été développée, bien que plus complexe à administrer.

Par ailleurs, le NIS s'appuie sur des mécanismes de communication spécifiques, comme les appels
de procédure distante (RPC) et le protocole UDP, nécessitant l'utilisation d'un service
supplémentaire, le portmapper, pour gérer les numéros de ports réseau.

Enfin, la RFC 2307 propose une autre approche pour remplacer le NIS, en utilisant LDAP comme
service d'annuaire réseau. Cette évolution reflète les efforts continus pour fournir des solutions
d'annuaire plus robustes et sécurisées, adaptées aux besoins actuels des environnements
informatiques.

En résumé, le NIS a joué un rôle important dans la distribution des informations de configuration
système, mais présente des limites qui ont conduit au développement d'alternatives plus modernes
et sécurisées, telles que NIS+ et LDAP..

 PATRICE NEUSSI , ANAS MFENJOU 23 mai 13


2024 23 mai 2024

Vous aimerez peut-être aussi