Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
nis [Le 07/05/2018, 10:27]
78.252.111.98 [Authentification par NIS d'un poste de travail sous Ubuntu Linux lorsque le serveur NIS fonctionne sous SuSE Linux]
nis [Le 11/09/2022, 11:39] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 7: Ligne 7:
 <note warning>​FIXME Cette page n'a pas été vérifiée pour les dernières versions supportées d'​ubuntu. Si vous pouvez valider ces informations ou les compléter, merci d'​éditer cette page et de rajouter le tag de la version d'​Ubuntu sur laquelle cela fonctionne.</​note>​ <note warning>​FIXME Cette page n'a pas été vérifiée pour les dernières versions supportées d'​ubuntu. Si vous pouvez valider ces informations ou les compléter, merci d'​éditer cette page et de rajouter le tag de la version d'​Ubuntu sur laquelle cela fonctionne.</​note>​
  
-Lien : [[http://tldp.org/HOWTO/NIS-HOWTO/​index.html ​]]\\ +D'​après ​[[https://fr.wikipedia.org/wiki/NIS|Wikipedia]] NIS a pour but //« de distribuer les informations contenues dans des fichiers de configuration contenant par exemple les noms d'​hôte (/​etc/​hosts),​ les comptes utilisateurs (/​etc/​passwd),​ etc. sur un réseau »//. Un serveur NIS stocke et distribue donc les informations administratives ​du réseau et qui se comporte ainsi comme un ensemble cohérent de comptes utilisateurs,​ groupes, machines, etc.
-Consultez également le HOWTO du paquetage+
  
 +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. Cet héritage transparaît dans les commandes NIS commencent toutes par "​yp"​.
  
-D'​après [[http://​fr.wikipedia.org/​wiki/​NIS|Wikipedia]] (encyclopédie libre) : +De nos jours, NIS est réputé pour être faible en termes de sécurité. ​C'est pourquoi il est recommandé de se tourner vers des solutions alternatives,​ comme par exemple  ​:
-"Son but est de distribuer les informations contenues dans des fichiers de configuration contenant par exemple les noms d'​hôte (/​etc/​hosts),​ les comptes utilisateurs (/​etc/​passwd),​ etc. sur un réseau. +
- +
-Un serveur NIS stocke et distribue donc les informations administratives du réseau et 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. +
- +
-__NIS est réputé pour être faible en termes de sécurité."__ voir :+
   * [[:​slapd|LDAP]]   * [[:​slapd|LDAP]]
   * Kerberos   * Kerberos
Ligne 26: Ligne 19:
   * [[:​tutoriel:​comment_modifier_sources_maj|Activer le dépôt universe]].   * [[:​tutoriel:​comment_modifier_sources_maj|Activer le dépôt universe]].
   * [[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​nis]]**.   * [[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​nis]]**.
-  * Il sera demandé le nom de votre domaine NIS. C'est un choix arbitraire, il faut juste que ce soit le même pour le serveur et les clients. ​+  * Il sera demandé le nom de votre domaine NIS. C'est un choix arbitraire, il faut juste que ce soit le même pour le serveur et les clients.
  
 ===== Configuration du serveur NIS ===== ===== Configuration du serveur NIS =====
Ligne 42: Ligne 35:
 portmap ypserv ypbind : "liste d'​adresses IP" portmap ypserv ypbind : "liste d'​adresses IP"
 </​file>​ </​file>​
-... où "liste d'​adresses IP" sera la liste de toutes les adresses IP des clients ainsi que celle du serveur. Il faut mettre uniquement des adresses IP. Ceci a devenu obligatoire suite à une limitation de portmap qui ne supporte pas les noms d'​hôtes. ​+... où "liste d'​adresses IP" sera la liste de toutes les adresses IP des clients ainsi que celle du serveur. Il faut mettre uniquement des adresses IP. Ceci a devenu obligatoire suite à une limitation de portmap qui ne supporte pas les noms d'​hôtes.
   * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​default/​portmap** et commenter la ligne :   * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​default/​portmap** et commenter la ligne :
 <​file>​ <​file>​
 ARGS="​-i 127.0.0.2"​ ARGS="​-i 127.0.0.2"​
-</​file> ​+</​file>​
   * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​default/​nis** et définir la ligne NISSERVER à :   * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​default/​nis** et définir la ligne NISSERVER à :
 <​file>​ <​file>​
 NISSERVER=master NISSERVER=master
-</​file> ​+</​file>​
   * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​yp.conf** et ajouter une ligne de serveur sur la forme :    * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​yp.conf** et ajouter une ligne de serveur sur la forme : 
 <​file>​ <​file>​
Ligne 73: Ligne 66:
 sudo /​usr/​lib/​yp/​ypinit -m sudo /​usr/​lib/​yp/​ypinit -m
 </​code>​ </​code>​
-et suivre les instructions. Cela engendrera certainement des messages d'​erreurs disant que le programme n'est pas en mesure de contacter certaines choses. Ce n'est pas grave. (Les autres erreurs le sont probablement).  +et suivre les instructions. Cela engendrera certainement des messages d'​erreurs disant que le programme n'est pas en mesure de contacter certaines choses. Ce n'est pas grave. (Les autres erreurs le sont probablement). 
-  * Redémarrer les services appropriés : +  * Redémarrer les services appropriés :
 <​code>​ <​code>​
 sudo service portmap restart sudo service portmap restart
Ligne 80: Ligne 73:
 </​code>​ </​code>​
 <​note>​En cas de problème avec l'​arrêt de portmap le tuer avec la commande : <​code>​sudo kill -9 $(pidof portmap)</​code></​note> ​ <​note>​En cas de problème avec l'​arrêt de portmap le tuer avec la commande : <​code>​sudo kill -9 $(pidof portmap)</​code></​note> ​
-  * Par la suite, en cas de changement de configuration (par exemple, ajouter un utilisateur,​ etc.), ne pas oublier de lancer : +  * Par la suite, en cas de changement de configuration (par exemple, ajouter un utilisateur,​ etc.), ne pas oublier de lancer :
 <​code>​ <​code>​
 sudo make -C /var/yp sudo make -C /var/yp
Ligne 87: Ligne 80:
 ===== Sécurité ===== ===== Sécurité =====
  
-NIS est quelque chose de dangereuxN'​importe qui pouvant accéder au démon ​peut récupérer ​vos listes de mots de passe. ​Si ils peuvent le faire alors ils ont vos mots de passe. Peu importe qu'ils soient ​cryptés; il sont l'​équivalent des mots de passe clairs ​depuis que l'authentification s'​effectue à l'aide de mots de passe cryptés vous n'avez pas besoin du mot de passe clair, il faut juste écrire une application qui présentera ​correctement la version ​cryptées ​au système d'​authentification. Aussi assurons nous que cela n'arrive pas. Comment? Et bien, d'​abord en restreignant les accès:  +NIS est un service qui comporte des risques en terme de sécuritéTout utilisateur malveillant ayant accès a serveur ​peut récupérer ​les listes de mots de passe. ​Qu'ils soient ​stockés en clair ou chiffréscette information reste exploitable. Il suffit d'​écrire une application qui présente ​correctement la version ​chiffrée du mot de passe au système d'​authentification ​pour qu'elle soit authentifiée.
-  * N'​autorisez que certains membres du domaine à contacter les services appropriés dans le "​hosts.allow"​. Ceci implique que le "​hosts.deny"​ est paramétré à **ALL** afin que cela fonctionne.  +
-  * Limitez les clients à qui le serveur répondra en mettant les membres du domaine dans "/​etc/​securenets" ​.+
  
-Bien, nous avons restreint l'accès à des adresses IP spécifiqueson est doué quand même, non ? Et bien, pas tant que ça. Que se passe-t-il si quelqu'​un ejecte une de vos machines ​ du réseau,lui pique son adresse IP et récupère ​le fichier ​de mot de passe ? Vous êtes mort. **Solution:** **IPSec** (Allez voir le **IPSecHowTo**)Vous pouvez ​paramétrer tous les membres ​de votre domaine à ne communiquer ​que sur IPSec ce qui permettra ​de vérifier ​que vos clients sont bien qui ils affirment êtreComment? Et bien, le client crypte le trafic à destination du serveur avec la clé du serveur, et le serveur répond à chaque demande en cryptant avec la clé du client. Le trafic est décrypté avec les clés respectives. Ainsi, un client ne disposant pas des clés qu'il est supposé avoir ne pourra ni envoyer ni recevoir de données. Le fichier contenant les clés et raisonnablement protégé (lisible ​que par root), vous ne pouvez obtenir les clés sans compromettre le client. ​Si vous compromettez le client, ​vous pouvez tout de même obtenir la liste de mots de passe, ainsi l'​attaquant vous aura tout de même (ce qui est une faille dans la plupart des systèmes d'​authentification de domaine). ​+Pour éviter ce genre d'attaqueil est primordial ​de contrôler qui a accès à cette information : 
 +  * [[:​tutoriel:​comment_editer_un_fichier|Éditer ​le fichier]] **/​etc/​hosts.allow** et référencer les clients légitimes pour chaque service. [[:tutoriel:​comment_editer_un_fichier|Éditer le fichier]] ​**/​etc/​hosts.deny** avec **ALL** afin que cela fonctionne. 
 +  * [[:​tutoriel:​comment_editer_un_fichier|Éditer ​le fichier]] ​**/​etc/​securenets** afin de limiter à quels clients membre du domaine le serveur répondra. 
 + 
 +Ceci ne suffit cependant pas à prévenir le cas où une machine ennemie prend l'​adresse IP d'un client légitime. Pour prévenir ce genre de situation, il faut s'​appuyer sur [[http://​www.ipsec-howto.org/​t1.html|IPSec]]. L'​idéal est de paramétrer tous les membres ​du domaine ​de sorte à ce qu'​ils ​ne communiquent ​que par IPSec. Ceci permet ​de s'​assurer ​que chaque client est légitimeEn effet, le client crypte le trafic à destination du serveur avec la clé du serveur, et le serveur répond à chaque demande en cryptant avec la clé du client. Le trafic est décrypté avec les clés respectives. Ainsi, un client ne disposant pas des clés qu'il est supposé avoir ne pourra ni envoyer ni recevoir de données. Le fichier contenant les clés est raisonnablement protégé (il n'​est ​lisible ​qu'​avec des droits [[:root|root]]). Les clés peuvent être obtenues ​sans compromettre le client. 
 + 
 +Toutefois, si un client ​légitime est compromisl'​attaquant peut obtenir la liste de mots de passe (ce qui est une faille dans la plupart des systèmes d'​authentification de domaine).
  
  
Ligne 101: Ligne 98:
   * [[:​tutoriel:​comment_modifier_sources_maj|Activer le dépôt universe]].   * [[:​tutoriel:​comment_modifier_sources_maj|Activer le dépôt universe]].
   * [[:​tutoriel:​comment_installer_un_paquet|installer les paquets]] **[[apt>​nis]]** **[[apt>​portmap]]**.   * [[:​tutoriel:​comment_installer_un_paquet|installer les paquets]] **[[apt>​nis]]** **[[apt>​portmap]]**.
-  * Il sera demandé le nom de votre domaine NIS. C'est un choix arbitraire, il faut juste que ce soit le même pour le serveur et les clients. ​+  * Il sera demandé le nom de votre domaine NIS. C'est un choix arbitraire, il faut juste que ce soit le même pour le serveur et les clients.
  
 ===== Configuration du client NIS ===== ===== Configuration du client NIS =====
  
-**Une note concernant l'​administration**:​ Etant donné que le compte root est désactivé,​ assurez vous que celui qui administre ​la machine est présent dans le fichier ​"/​etc/​sudoers" ​du client. C'est également une bonne idée de définir ces utilisateurs en tant qu'​utilisateurs locaux avec **les mêmes  ​UID** que dans la liste de mot de passe du domaine. Cela permet de garder les choses propres et cohérentes,​ et s'il venait à y avoir un problème, vous pourriez avoir besoin d'un compte local afin d'​accéder à la machine.+<note>​Étant ​donné que sous ubuntu, ​le compte ​[[root|root]] est désactivé ​par défaut, assurez-vous que le profil administrateur de la machine est présent dans le fichier ​**/​etc/​sudoers** du client. C'est également une bonne idée de définir ces utilisateurs en tant qu'​utilisateurs locaux avec **les mêmes  ​UIDs** que dans la liste de mot de passe du domaine. Cela permet de garder les choses propres et cohérentes,​ et s'il venait à y avoir un problème, vous pourriez avoir besoin d'un compte local afin d'​accéder à la machine.</​note>​
    
   * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​hosts** et y ajouter le serveur, afin de rendre le client robuste aux pannes de serveur DNS.   * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​hosts** et y ajouter le serveur, afin de rendre le client robuste aux pannes de serveur DNS.
   * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​hosts.allow** une ligne pour portmap   * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​hosts.allow** une ligne pour portmap
-<code>+<file>
 portmap : adresse_du_serveur_nis portmap : adresse_du_serveur_nis
-</code>+</file>
 ... où adresse_du_serveur_nis correspond à l'​adresse du serveur NIS. ... où adresse_du_serveur_nis correspond à l'​adresse du serveur NIS.
- * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​passwd** et ajouter la ligne suivante en fin de fichier. Elle indique au système que d'​autres utilisateurs (réels, ou associés à des services) que ceux indiqués dans le fichier sont authentifiés grâce au serveur NIS :+  ​* [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​passwd** et ajouter la ligne suivante en fin de fichier. Elle indique au système que d'​autres utilisateurs (réels, ou associés à des services) que ceux indiqués dans le fichier sont authentifiés grâce au serveur NIS :
 <​file>​ <​file>​
 +:::::: +::::::
 </​file>​ </​file>​
   * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​group** et ajouter à la fin de celui-ci la ligne suivante :   * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​group** et ajouter à la fin de celui-ci la ligne suivante :
-<code>+<file>
 +::: +:::
-</code>+</file>
   * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​shadow** et ajouter à la fin de celui-ci :   * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​shadow** et ajouter à la fin de celui-ci :
-<code>+<file>
 +:::::::: +::::::::
-</code+</file
-Cela définit les services qui doivent inclure des entrées NIS si une correspondance n'est pas trouvée dans le fichier. Vous pourriez changer d'​autres services ​afin qu'ils utilisent NIS en éditant "/​etc/​nsswitch.conf"​, mais ceux-ci sont les plus importants.  +  * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​nsswitch.conf** ​Cela définit les services qui doivent inclure des entrées NIS si une correspondance n'est pas trouvée dans le fichier. Vous pourriez changer d'​autres services ​de nom, mais ceux-ci sont les plus importants. 
- * [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​yp.conf** et ajouter la ligne:  +<​file>​ 
-<code>+passwd: files nis 
 +group: files nis 
 +shadow: files nis 
 +</​file>​ 
 +  ​* [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​yp.conf** et ajouter la ligne:  
 +<file>
 domain domain_name server hostname_serveur domain domain_name server hostname_serveur
-</code>+</file>
 ... où domain_name est le nom de votre domaine NIS, et hostname_serveur est le nom de votre serveur NIS. ... où domain_name est le nom de votre domaine NIS, et hostname_serveur est le nom de votre serveur NIS.
 <note warning>​Il se peut que cela ne fonctionne pas en mettant le nom du serveur NIS, car ce sera transposé avec la correspondance contenue dans **/​etc/​hosts** donc par 127.0.01. <note warning>​Il se peut que cela ne fonctionne pas en mettant le nom du serveur NIS, car ce sera transposé avec la correspondance contenue dans **/​etc/​hosts** donc par 127.0.01.
Ligne 150: Ligne 152:
 <note warning>​Sur certaines machines sous ubuntu 8.04, ypbind refuse de démarrer correctement car dbus n'est pas encore lancé. Il suffit de le relancer à la main (sudo /​etc/​init.d/​nis restart). Une solution plus pérenne est de rajouter "​-no-dbus"​ à YPBINDARGS dans **/​etc/​default/​nis**. </​note>​ <note warning>​Sur certaines machines sous ubuntu 8.04, ypbind refuse de démarrer correctement car dbus n'est pas encore lancé. Il suffit de le relancer à la main (sudo /​etc/​init.d/​nis restart). Une solution plus pérenne est de rajouter "​-no-dbus"​ à YPBINDARGS dans **/​etc/​default/​nis**. </​note>​
  
-==== Cohabitation SuSe et Ubuntu ====+===== Cohabitation SuSe et Ubuntu ​=====
  
 Sous SuSE Linux, l'​algorithme d'​encryptage des mots de passe (mots de passe "​blowfish"​) a été amélioré par rapport à l'​encryptage UNIX standard, tout en restant compatible avec celui-ci. Cette évolution se traduit par le remplacement de la bibliothèque pam_unix.so par pam_unix2.so. Sous SuSE Linux, l'​algorithme d'​encryptage des mots de passe (mots de passe "​blowfish"​) a été amélioré par rapport à l'​encryptage UNIX standard, tout en restant compatible avec celui-ci. Cette évolution se traduit par le remplacement de la bibliothèque pam_unix.so par pam_unix2.so.
Ligne 157: Ligne 159:
   * [[:​tutoriel:​comment_installer_un_paquet|Installer le paquet]] **[[apt> libpam-unix2]]**.   * [[:​tutoriel:​comment_installer_un_paquet|Installer le paquet]] **[[apt> libpam-unix2]]**.
   * [[:​tutoriel:​comment_editer_un_fichier|Éditer les fichiers]] **/​etc/​pam.d/​common-auth** ​ et **/​etc/​pam.d/​common-password**,​ puis y remplacer "​pam_unix.so"​ par "​pam_unix2.so"​.   * [[:​tutoriel:​comment_editer_un_fichier|Éditer les fichiers]] **/​etc/​pam.d/​common-auth** ​ et **/​etc/​pam.d/​common-password**,​ puis y remplacer "​pam_unix.so"​ par "​pam_unix2.so"​.
 +
 +===== Voir aussi =====
 +
 +  * [[https://​tldp.org/​HOWTO/​NIS-HOWTO/​index.html|HOWTO du paquetage]]
 +  * [[https://​wiki.ubuntu.com/​SettingUpNISHowTo|Setting up NIS Howto]] (article original)
  
 ---- ----
Ligne 162: Ligne 169:
 // Contributeurs : [[utilisateurs:​fredb | FredB]], [[utilisateurs:​mamiemando|MaMieMando]] // // Contributeurs : [[utilisateurs:​fredb | FredB]], [[utilisateurs:​mamiemando|MaMieMando]] //
  
-// Article original : [[https://​wiki.ubuntu.com/​SettingUpNISHowTo|Setting up NIS Howto]]+
  • nis.1525681679.txt.gz
  • Dernière modification: Le 07/05/2018, 10:27
  • par 78.252.111.98