1/169 Administration Système Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny cedex Tél. : 33 1.48.38.73.07, Fax. : 33 1.48.38.73.55 thierry.hamon@univ-paris13.fr http://www-limbio.smbh.univ-paris13.fr/membres/hamon/adsys-20112012 ADSYS
2/169 Switching Hub Ethernet Switch Ether 10/100 12345678 100 101236 125080 1 0 Quatrième partie Configuration/installation d une station de travail COL! Power Intégration dans un réseau informatique Configuration/installation d un réseau informatique Configuration réseau d une station de travail Services orientés utilisateurs Sécurité Services orientés adminstration réseau
3/169 Serveur de nom du domaine : DNS Annaires : NIS, NIS+, LDAP Autres services : DHCP, Serveur de temps (NTP)
4/169 Annuaires Problème de l administration système : assurer la consistance des fichiers de base du système Solution : centraliser les informations Utiliser une structure client/serveur Serveur : centralise les informations Client : ne possède aucune donnée localement (ou un minimum) et demande les informations au serveur Utilisation de services (non exclusifs) tels que DNS, NIS, NIS+
5/169 DNS Serveur de nom (DNS) (1) Domain Name Serveur ou BIND Berkeley Internet Domain Gestion de machines nommées dans un espace de nom (domaine, zone) (FQDN Fully Qualified Domain Name) Et résolution des adresses IP RFC 1032, 133, 1034, 1035 Implémenté sur quasiment toutes les plates-formes
6/169 DNS Serveur de nom (DNS) (2) Structure hiérarchique permettant une grande souplesse d administration Zone : ensemble de machines clientes de cette zone serveurs de cette zone, clients d une autre zone Principe de référence identique à celui d UNIX
7/169 DNS Extrait de la hiérarchie..edu.com.fr univ paris13 loria jussieu iutv ig edu biomath painleve nantes armen glénant
8/169 DNS Service DNS (1) Correspondance entre les adresses IP et le nom des machines d une zone Le serveur DNS possède tous les renseigenements sur la zone peut faire autorité (serveur primaire) délègue l autorité sur les zones de niveau inférieur
9/169 DNS Service DNS (2) Organisation hiérarchique suivant deux critères : Par secteur d activité (uniquement aux Etat-Unis) : nom de domaine sur 3 lettres Par pays : 2 lettres Domaines particuliers. : la racine de l arbre toplevels domains : domaine juste sous la racine Domaines de plus haut niveau dans chaque pays du monde, les prestataires de connexion, les universités (cf. norme ISO 3166)
10/169 DNS Types de serveurs DNS (1) serveur primaire : Contient la liste des correspondances entre les adresses IP et les noms de machines Les mises à jour doivent être effectuées sur le primaire serveur secondaire : Contient une copie de la base du serveur primaire Mise à jour automatique assurée par le serveur primaire Evite la surcharge du serveur primaire
11/169 DNS Types de serveurs DNS (2) serveur cache : Stocke en mémoire principale une partie de la liste Les serveurs primaires et secondaires sont des serveurs caches autres serveurs : forwarding server, stealth server
12/169 DNS Installation d un serveur Lancement du service : démon named Fichier de configuration : /etc/named.conf Informations : Type de serveur (primaire ou secondaire) Répertoire de travail où sont stockés les fichiers (correspondances IP/Nom, ) Nom du fichier contenant les 7 zones racines pour le serveur primaire, nom du fichier contenant la zone primaire et la zone primaire inverse
13/169 DNS Fichier de configuration (1) options { directory "/var/named"; forward first; forwarders { 194.254.164.6; 192.33.182.2; }; }; zone "." IN { type hint; file "root.hints"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "pz/127.0.0"; notify no; allow-update { none; }; };
14/169 DNS Fichier de configuration (2) zone "ig-edu.univ-paris13.fr" { type master; notify no; file "pz/ig-edu.univ-paris13.fr"; }; zone "0.168.192.in-addr.arpa" { type master; notify no; file "pz/192.168.0"; };
15/169 DNS Fichier de la zone racine A reconstruire régulièrement avec la commande dig. 6D IN NS M.ROOT-SERVERS.NET.. 6D IN NS I.ROOT-SERVERS.NET.. 6D IN NS E.ROOT-SERVERS.NET.. 6D IN NS D.ROOT-SERVERS.NET.. 6D IN NS A.ROOT-SERVERS.NET.. 6D IN NS H.ROOT-SERVERS.NET.. 6D IN NS C.ROOT-SERVERS.NET.. 6D IN NS G.ROOT-SERVERS.NET. M.ROOT-SERVERS.NET. 6D IN A 202.12.27.33 I.ROOT-SERVERS.NET. 6D IN A 192.36.148.17 E.ROOT-SERVERS.NET. 6D IN A 192.203.230.10 D.ROOT-SERVERS.NET. 6D IN A 128.8.10.90 A.ROOT-SERVERS.NET. 6D IN A 198.41.0.4 H.ROOT-SERVERS.NET. 6D IN A 128.63.2.53 C.ROOT-SERVERS.NET. 6D IN A 192.33.4.12 G.ROOT-SERVERS.NET. 6D IN A 192.112.36.4
16/169 DNS Zone primaire (1) Correspondance entre nom et adresse IP Définition : adresses en notation décimal (A) alias (CNAME) informations (HINFO) nom du DNS pour le domaine indiqué (NS) centre de tri de la messagerie MX etc.
17/169 DNS Zone primaire (2) $TTL 3D @ IN SOA ns.ig-edu.univ-paris13.fr. hostmaster.ig-edu.univ-paris13.fr. ( 199802151 ; serial, todays date + todays serial # 8H ; refresh, seconds 2H ; retry, seconds 4W ; expire, seconds 1D ) ; minimum, seconds ; NS ns ; Inet Address of name server MX 10 mail.ig-edu.univ-paris13.fr. ; Primary Mail Exchanger ; $ORIGIN ig-edu.univ-paris13.fr. localhost A 127.0.0.1 ns A 192.168.0.1 dns1.ig-edu.univ-paris13.fr. A 192.168.0.1
18/169 DNS Zone primaire inverse Correspondance inverse : entre adresse IP et nom $TTL 3D @ IN SOA ns.ig-edu.univ-paris13.fr. hostmaster.ig-edu.univ-paris13.fr. ( 199802151 ; Serial, todays date + todays serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D) ; Minimum TTL NS ns.ig-edu.univ-paris13.fr. $ORIGIN 0.168.192.in-addr.arpa. 1 PTR ns.ig-edu.univ-paris13.fr.
19/169 DNS Installation d un client (1) Recherche de l association adresse IP / nom de machine sur un DNS Appelé aussi solveur (resolver) Fichier de configuration /etc/resolv.conf : Nom du domaine Mot-clé : domain
20/169 DNS Installation d un client (2) Liste ordonnée des serveurs DNS à interroger ; Mot-clé : nameserver Exemple : domain ig-edu.univ-paris13.fr nameserver 194.254.167.2 nameserver 194.254.167.10 Informations sur la manière d effectuer la résolution : /etc/host.conf order hosts, bind multi on
21/169 DNS Interrogation d un DNS (1) Commandes nslookup ou dig (Linux) Commandes avec nslookup : Affichage des informations sur une machine : nom de la machine Exemple : >nantes.ig-edu.univ-paris13.fr Default Server: ns.ig-edu.univ-paris13.fr Address: 192.168.0.1 Name: nantes.ig-edu.univ-paris13.fr Address: 194.254.167.1
22/169 DNS Interrogation d un DNS (2) définition du serveur DNS : server Exemple : server f0f.univparis13.fr définition du type de requêtes : set q=type de requête Recherche d un DNS sur un domaine : set q=ns puis domaine Exemple : set q=any puis ig-edu.univ-paris13.fr. Recherche d une information quelconque sur le DNS : set q=any Affichez les informations sur des machines d enseignement telles que nantes.
23/169 DNS Fichier /etc/nsswitch.conf (1) Définition de l ordre de résolution des services par les serveurs de nom Services : Définition des utilisateurs : passwd et shadow Définition des groupes : group Correspondance IP/Nom de machine Alias utilisateur pour la messagerie Autres données : services, networks, procotoles, rpc, etc.
24/169 DNS Fichier /etc/nsswitch.conf (2) Serveurs de nom : DNS (dns) LDAP (ldap) NIS (nis) NIS+ (nisplus) Fichiers locaux (files) Bases locales db etc.
DNS Fichier /etc/nsswitch.conf (3) Exemple standard : passwd: shadow: group: files ldap files ldap files ldap hosts: files dns bootparams: nisplus [NOTFOUND=return] files 25/169 #services: #networks: #protocols: #rpc: #ethers: #netmasks: ethers: nisplus [NOTFOUND=return] files nisplus [NOTFOUND=return] files nisplus [NOTFOUND=return] files nisplus [NOTFOUND=return] files nisplus [NOTFOUND=return] files nisplus [NOTFOUND=return] files files
26/169 NIS NIS Network Information Service Appelé à l origine Yellow Page (YP) Nom des commandes NIS : généralement préfixé par yp. Service d administration centralisée des principales bases de données système (passwd, gropup, hosts, networks, etc.) Implémentation par SUN dans les années 80 Portabilité de NIS : disponible sur PC, VMS et sur la plupart des systèmes UNIX
27/169 NIS Fonctionnalités de NIS Déploiement sur un réseau local Autour d un machine centrale : NIS Master Server Clients : Référence aux informations présentes sur un domaine NIS Initialisation en broadcast Limitations : Absence de hiérarchie Impossibilité de communiquer entre deux domaines NIS
28/169 NIS Domaine NIS (1) Organisation des machines autour d un domaine NIS (espace de nom) Pas de hiérarchie possible Impossibilité de relier deux domaines NIS Nom : quelconque, pouvant être différent (souvent) du nom du domaine Défini dans le fichier defaultdomain ou dans des variables des fichiers de configuration rc* Exemple : Nom de domaine : ig-edu.univ-paris13.fr Nom du domaine NIS : enseignement.galilee
29/169 NIS Domaine NIS (2) Serveur NIS Client NIS Client NIS Serveur Esclave NIS
30/169 NIS Machines sur un réseau NIS 3 types de machines sur un domaine NIS : Serveur maître NIS (NIS Master Server) Gestion des informations disponibles sur le domaine Serveur esclave NIS (NIS Slave Server) Possession d une copie de la base du serveur maître Remplacement en cas de défaillance du serveur maître NIS Répartition de la charge sur le réseau Client NIS Exploitation des services de nom (/etc/nsswitch.conf) Dialogue avec les serveurs (maître ou esclave)
31/169 NIS Informations gérées par NIS Utilisateurs (passwd) Groupes (group) Résolution de nom (hosts) etc. (aliases, services, rpc, protocols, netgroup, tables d automontage)
32/169 LDAP LDAP : introduction Lightweight Directory Access Protocol Protocole d annuaire sur TCP/IP Historique : A l origine, passerelle d accès aux annuaires X500 Adaptation du protocole DAP à TCP/IP Depuis 1995, annuaire natif grâce à une équipe de l Université du Michigan (logiciel U-M LDAP) Formart de type dbm Caractéristiques : Stockage d une grande quantité de données mais de faible volume Accès en lecture très rapide grâce au modèle hiérarchique
33/169 LDAP Concepts de LDAP (1) Annuaire standard et extensible fournissant : protocole (accès à l informations dans l annuaire) modèle d information (définition du type de données contenues dans l annuaire) modèle de nommage (définition de l organisation et du référencement de l information) modèle fonctionnel (définition de l accès à l information)
34/169 LDAP Concepts de LDAP (2) modèle de sécurité (définition de la protection des données et des accès) Mécanisme d authentification pour le client modèle de duplication (définition de la répartition de la base entre les serveurs) APIs (développement d applications clientes) LDIF (format d échange des données) Reprise du modèle X500 (service annuaire mondial comme le DNS) Mais espace de nommage local
35/169 LDAP Le protocole LDAP (1) Définition de la communication client-serveur Commandes fournies : connexion et déconnexion recherche, comparaison, création, modification et effacement des entrées Protections des transactions et de l accès aux données : Mécanismes de chiffrement (SSL ou TLS) Mécanismes d authentification (SASL) Mécanismes de règles d accès (ACL Access Control List)
36/169 LDAP Le protocole LDAP (2) Communication client-serveur : Normalisation par l IETF (version 3 de LDAP), RFC 2251 Egalement : protocole de communication serveur-serveur pour l échange et la synchronisation des contenus (replication service) la création de liens entre annuaires (referral service) Communication normalisée sous le nom LDAP Duplication Protocol (LDUP) Dialogue LDAP au format de codage Basic Encoding Rule (DER), et non l ASCII = Sécurisation de l accès aux informations stockés dans la base
37/169 LDAP Le protocole LDAP (2) Possibilité d avoir une seule connexion pour passer plusieurs requêtes Possibilité d extensions sans modification de la norme LDAP extended operations : ajout d opération en plus des 9 opérations de base LDAP control : Ajout de paramètres associés à un opération, modification du comportement Simple Authentification and Security Layer : couche supplémentaire Utilisation de méthodes d authentification externes
38/169 LDAP Une arborescence d information (DIT) (1) Directory Information Tree Représentation des informations gérées sous LDAP dans une arborescence : DIT Entrées : branche DSE (Directory Service Entry) correspond à un objet abstrait ou réel (utilisateur, paramètres, etc.) constituée de couples clés/valeurs (attributs)
39/169 LDAP Une arborescence d information (DIT) (2) (C) FR (O) univ paris13 jussieu (OU) iutv lipn ig edu ccr biomath (...) (CN) 180345930 th hamon 101098123
40/169 LDAP Modèle de nommage (1) Structuration des données dans une arborescence hiérarchique : Directory Information Tree Chaque nœud correspond à une entrée de l annuaire : Directory Service Entry Sommet de l arbre : racine ou suffixe Schéma : ensemble des définitions relatives aux objets gérés par le serveur LDAP. Description des classes, les types d attibuts et la syntaxe Entrées : objets abstraits ou concrets (personne, imprimante) Attribut : champs contenant des valeurs Entrée spéciale : root directory specific entry (rootdse), description de l arbre et du contenu
41/169 LDAP Modèle de nommage (2) Possibilité de contrôle des attributs d une entrée à l aide de l attribut spécial objectclass attributs normaux : accessibles aux utilisateurs (givenname) attributs opérationnels : utilisés par le serveur pour l administration des données (modifytimestamp)
42/169 LDAP Modèle d information Basé sur des entrées : collection d attributs désignée par un nom unique : Distinguish Name (DN RFC2253) Chemin absolu de l entrée depuis le sommet de la hiérarchie (similaire à la hiérarchie UNIX) Exemple : uid=dupond,ou=etudiant,dc=institutgalilee,dc=fr Relative Distinguished Name : uid=dupond Schéma : ensemble des définitions d objets et d attributs gérés par un serveur LDAP
43/169 LDAP Les attributs (1) Entrée de l annuaire : suite de couple type d attributs valeur d attributs Exemple : type : cn (common name), valeur : Pierre Dupond type : mail, valeur : pierre.dupond@home.com type : jpegphoto, valeur : une photo au format JPEG
44/169 LDAP Les attributs (2) Définis par : identificateur Object Identificateur (OID) Indication si mono ou multi-valué Syntaxe et règle de comparaison Indicateur d usage Format ou limite de taille de valeur associée
45/169 LDAP Les attributs (3) Syntaxe : Type de données associées Type de comparaison des valeurs lors de la recherche Possibilité de hiérarchisation des attributs (standard X500), héritage de caractéristiques
46/169 LDAP Les classes d objets (1) Modélisation d objets réels ou abstraits à l aide d une liste d attributs optionnels ou obligatoires Définies par : identificateur OID Attributs obligatoires Attributs optionnels type (structurel, auxiliaire ou abstraits)
47/169 LDAP Les classes d objets (2) Type d une classe : Structurel : description d objets basiques de l annaire : personne, groupe, unité organisationnelles Une entrée appartient à au moins une classe d objet structurelle Auxiliaire : objets autorisant l ajout d informations complémentaires à des objets structurels mailrecipient ajoute des attributs concernant la messagerie d une personne. Idem pour labeleduriobject, pour les infos Web. Abstrait : objets basique de LDAP, top ou alias
48/169 LDAP Les classes d objets (3) Organisation dans une hiérarchie dont le sommet est l objet top Héritage des attributs du père Enrichissement d un objet par création d un objet fils avec ajout d attribut supplémentaire Appartenance d une entrée à un nombre non limité de classes d objets Attributs obligatoires : union des attributs obligatoires de chaque classe
49/169 LDAP Les classes d objets (4) Exemple, objet inetorgperson : objectclass : top objectclass : person objectclass : organizationalperson objectclass : inetorgperson
50/169 LDAP Les classes d objets (5) Attributs : commonname, surname description, seealso, telephonenumber, userpassword (objet person) ; organizationunitname, title, postaladdress... (objet organizationalperson) ; mail, labeleduri, uid, photo,... (objet inetorgperson
51/169 LDAP Modèle fonctionnel Définition des opérations d interrogation et de mise à jour des répertoires : Ajout d une entrée Suppression d une entrée Modification d une entrée Modification du nom d une entrée Recherche sur une partie de l annuaire à l aide de filtres
52/169 LDAP Modèle de sécurité Protection des données Plusieurs niveaux authentification pour la connexion à un service modèle de contrôle des données chiffrement des transactions (client/serveur, serveur/serveur)
53/169 LDAP Authentification (1) LDAP : protocole avec connexion ouverture de session : identification et mot de passe (optionel dans la version 3) Plusieurs types d authentification : Anonymous authentification : accès sans authentification Accès à des données sans restriction Root DN authentification : accès administrateur (tous les droits) Mot de passe en clair sur le réseau Kerberos V4
54/169 LDAP Authentification (2) Mot de passe + SSL (LDAPS) ou TLS Session chiffrée Certificats SSL : échange de certificats SSL (clefs publiques/privées) Simple Authentification and Security Layer (SASL) authentification externe (version 3) RFC 2222
55/169 LDAP Contrôle d accès aux données Attribution à un utilisateur identifié de droits d accès aux données (lecture, écriture, recherche et comparaison) Droits définis par l administrateur : ACLs ACLs placés : au niveau des entrées au sommet de l arbre sur un sous-arbre Application : utilisateur et groupe en fonction des adresses IP, des noms de domaine des clients ou les jours et heures Placement et portée dépendant du logiciel
56/169 LDAP Les ACLs Expression générique : <quoi> <qui> <comment> <quoi> : point d entrée de l annuaire sur lequel la règle <qui> : utilisateur, groupe ou machine sur lequel s appliquent ces droits (également tout le monde) <comment> : opérations autorisées/refusées Read Write Search Compare Selfwrite Add Delete Exemple (openldap) : access to * by self write by * read
57/169 LDAP Chiffrement des transactions Chiffrement LDAP versionx 3 : utilisation de SSL et TLS (starttls extended operation) Egalement pour l authentification par certificat Envoi de preuve d identité par le client au serveur, et réciproquement
58/169 LDAP Le modèle de duplication (1) (replication service) Définition de la copie d un annuaire sur plusieurs serveurs Objectif : pallier une panne de serveurs une coupure du réseau surcharge du service
59/169 LDAP Le modèle de duplication (2) Permet : garantie de la qualité de service (temps de réponse et sûreté de fonctionnement) amélioration des performances (placement des serveurs près des clients) répartition de la charge de travail entre plusieurs serveurs (load balancing) gestion locale des entrées et diffuser sur plusieurs sites
60/169 LDAP Le modèle de duplication (3) Duplication : arborescence entière sous-arbre partie des entrées et leurs attributs (spcification grâce à un filtre)
61/169 LDAP Le modèle de duplication (4) Synchronisation : mise à jour totale mise à jour incrémentale En temps réel ou à heure fixe
62/169 LDAP Le modèle de duplication (5) Stratégie de duplication : single-master replication : un serveur en lecture/écriture (master), les serveur répliques en lecture seulement multiple-master replication : plusieurs serveurs en lecture/écriture nécessite une synchronisation cascading replication : duplication en cascade
63/169 LDAP Le modèle de duplication (6) Contraintes : les serveurs doivent posséder le même schéma de données les règles d accès aux données dupliquées doivent être dupliquées La duplication doit être prévue au moment de la conception du DIT
64/169 LDAP Le format LDIF (1) LDAP Data Interchange Format Représentation des données LDAP au format texte standard Accès lisible aux données Deux objectifs : Importer/exporter la base Modifier les données
65/169 LDAP Le format LDIF (2) Syntaxe : nom d attribut suivi de la valeur (uid: dupond) premier attribut d une entrée : le DN (dn: uid=dupond,ou=etudiant,dc=institutgalilee,dc=fr Format : ASCII Données binaires codées en base 64 Jeu de caractères Unicode Transformation Format-8 (UTF-8)
66/169 LDAP Le format LDIF (3) Forme générale : dn: <distinguished name objectclassclass: <object class objectclassclass: <object class... <attribute type: <attribute value <attribute type: <attribute value..
67/169 LDAP Déploiement de LDAP Définir : la nature des données stockées la manière de récupérer les données l utilisation des données la gestion des données Mise en place d un annuaire LDAP : plusieurs phases de conception En général : mise en place ou du remplacement d un annuaire Élargir le service à d autres types d applications? Évaluer toutes les applications possibles, actuelles ou futures, d un annuaire LDAP
68/169 LDAP Informations nécessaires (1) Inventaire des applications, des données et leurs caractéristiques : format taille nombre d occurrence droits d accès dynamiques ou statiques partagées ou spécifiques à une application Mais aussi définir comment les récupérer et les maintenir à jour
69/169 LDAP Informations nécessaires (2) La plupart des données sont issues : d autres annuaires ou bases systèmes : Unix NIS, DNS, NT domain controler, etc Bases de données de l organisation : base du personnel, Apogée (université), etc. fichiers textes ou feuilles de calcul d utilisateurs bases propres à des applications : fichier htpasswd d Apache, carnet d adresses, etc.
70/169 LDAP Informations nécessaires (3) Définition des schémas : Choix des classes d objets et types d attributs à utiliser en fonction des données retenues Utilisation possible de schémas standards ou fournis avec les serveurs
71/169 LDAP Informations nécessaires (4) Conseils : Éviter de modifier le schéma existant : risque de rendre l annuaire inutilisable par les applications clientes ou les autres serveurs Préférer l ajout d une classe d objet et l exploitation du mécanisme d héritage d attributs des classes objets Documenter le schéma pour en faciliter la maintenance et l évolution Éviter de désactiver l option de la vérification de schéma (schema checking)
72/169 LDAP Conception du modèle de nommage Définition de l organisation, l accès et le nommage des entrées de l annuaire Plusieurs paramètres à prendre en compte : nombre d entrées prévu et son évolution nature des entrées actuelles et futures (type d objet) Choix de la centralisation ou de la distribution ds données Administration centrale ou déléguée partiellement Duplication liste des applications utilisant l annuaire (identification de leurs contraintes) Attribut de nommage des entrées (garantie d unicité)
73/169 LDAP Choix du suffixe suffixe = identifiant de l annuaire Choisir de préférence un suffixe unique au monde Pas de standard Pas d organisme de contrôle d attribution des suffixes : Pas de garantie d unicité Exemple de suffixe : utilisation de l attribut organisation(or) : o=université Paris13, c=fr utilisation de l attribut Domain Component (dc) (RFC 2377) conseillée dc=univ-paris13, dc=fr
74/169 LDAP Nommage des entrées Choix du RDN (Relative Distinguished Name) Contraintes : garantir l unicité éviter les changements de DN (Distinguished Name) donner une information pertinente prise en compte des clients Recommendations de letf : Identification des utilisateurs par leur email Exemple : dn = cn=thierry hamon,ou=ig-edu,dc=univ-paris13,dc=fr dn = uid=hamon,ou=ig-edu,dc=univ-paris13,dc=fr dn = uid=hamon@ig-edu.univ-paris13.fr,ou=ig-edu, dc=univ-paris13,dc=fr
75/169 LDAP Gestion des données Définition des administrateurs des données en fonction des attributs Plusieurs catégories : administrateurs de l annuaire (contrôle d accès...) les fournisseurs de données (service du personnel...) utilisateurs finaux (photo, téléphone...) applications (préférences...) services d annuaire Décrire la méthode et la fréquence de mise à jour Evaluer la qualité des données et les incidences sur les performances du serveur (notamment pour les données utilisateurs)
76/169 LDAP LDAP et la sécurité (1) Sécurité à prendre en compte lors de la conception Possibilité de configurer le serveur en lecture seulement ou en lecture/écriture Définir pour chaque attribut : niveau de confidentialité (numéro de sécurité sociale, adresse mail) les utilisateurs ou les applications ayant le droit d y accéder en lecture (tout le monde, cer tains utilisateurs, uniquement les administrateurs...) en écriture (utilisateur, manager, administrateur)
77/169 LDAP LDAP et la sécurité (2) Mécanismes de sécurité classiques : authentification signatures électroniques chiffrement filtrage réseau règles d accès (ACLs LDAP) aux données audit des journaux
78/169 LDAP Mise en place de LDAP from scratch Environnement général Fichiers de configuration : Fichier de configuration serveur : /etc/ldap/slapd.conf Vérification de la syntaxe : commande slapd -t Schémas prédéfinis : /etc/shema ou /usr/share/openldap/schema/ Référencement des définitions normalisées (ordre de définition, règles d héritage, etc.) Services : Fichier de configuration client : /etc/ldap/lapd.conf Démon : slapd Script de démarrage : /etc/init.d/slapd
79/169 LDAP Mise en place de LDAP from scratch Configuration du serveur - slapd.conf Include /usr/share/openldap/schema/cosine.schema include /usr/share/openldap/schema/corba.schema include /usr/share/openldap/schema/inetorgperson.schema include /usr/share/openldap/schema/java.schema include /usr/share/openldap/schema/krb5-kdc.schema include /usr/share/openldap/schema/kerberosobject.schema include /usr/share/openldap/schema/misc.schema include /usr/share/openldap/schema/nis.schema include /usr/share/openldap/schema/openldap.schema include /usr/share/openldap/schema/autofs.schema include /usr/share/openldap/schema/samba.schema include /usr/share/openldap/schema/kolab.schema # Inclusion des schémas utilisateurs include /etc/openldap/schema/local.schema
80/169 LDAP Mise en place de LDAP from scratch Configuration du serveur - slapd.conf # Définition des ACLs include /etc/openldap/slapd.access.conf pidfile /var/run/ldap/slapd.pid argsfile /var/run/ldap/slapd.args modulepath /usr/lib/openldap # Support de TLS, il faut créer un certificat dans /etc/ssl/openldap/lda # et décommenter les lignes ci-dessous #TLSCertificateFile /etc/ssl/openldap/ldap.pem #TLSCertificateKeyFile /etc/ssl/openldap/ldap.pem #TLSCACertificateFile /etc/ssl/openldap/ldap.pem # Journalisation loglevel 256
81/169 LDAP Mise en place de LDAP from scratch Configuration du serveur - slapd.conf ########################################################### # database definitions ########################################################### database bdb suffix "dc=foo,dc=org" rootdn "cn=manager,dc=foo,dc=org" # Mot de passe d accès à la racine de l arbre. rootpw secret # rootpw {crypt}ijfyncsnctbyg # Emplacement de la base de la base de données # The database directory MUST exist prior to running slapd AND # should only be accessable by the slapd/tools. Mode 700 recommended. directory /var/lib/ldap
82/169 LDAP Mise en place de LDAP from scratch Configuration du serveur - slapd.conf # Création des index sur la base index objectclass,uid,uidnumber,gidnumber eq index cn,mail,surname,givenname eq,subinitial # Contr^ole d accès aux données # Basic ACL (deprecated in favour of ACLs in /etc/openldap/slapd.access. access to attr=userpassword by self write by anonymous auth by dn="cn=manager,dc=foo,dc=org" write by * none access to * by dn="cn=manager,dc=foo,dc=org" write by * read
83/169 LDAP Mise en place de LDAP from scratch Configuration du serveur Démarrage et vérification # /etc/init.d/slapd start Starting OpenLDAP: slapd. # ps aux grep slapd root 17433 0.1 1.6 7780 2144? S 12:54 0:00 /usr/sbin/slapd root 17434 0.0 1.6 7780 2144? S 12:54 0:00 /usr/sbin/slapd root 17435 0.0 1.6 7780 2144? S 12:54 0:00 /usr/sbin/slapd root 17437 0.0 0.5 1716 716 pts/3 R 12:54 0:00 grep slapd # netstat -natup grep LISTEN tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 17433/slapd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 290/sshd
84/169 LDAP Mise en place de LDAP from scratch Configuration du serveur Fichiers de logs : /var/log/ldap.log Par defaut, mode local LOCAL4 de syslog local4.debug /var/log/ldap.log
85/169 LDAP Mise en place de LDAP from scratch Exemple de fichier base.ldif : dn: dc=univ-paris13, dc=fr objectclass: dcobject objectclass: organization dc: univ-paris13 o: univ-paris13 description: Universite Paris 13 street: avenue JB Clement postalcode: 93430 postaladdress: Villetaneuse l: Villetaneuse st: Ile de France
86/169 LDAP Mise en place de LDAP from scratch dn: ou=adsys, dc=univ-paris13, dc=fr objectclass: top objectclass: organizationalunit ou: adsys description: TP Adsys telephonenumber: 01 49 40 35 53 dn: cn=admin, dc=univ-paris13, dc=fr objectclass: top objectclass: person userpassword: secret cn: admin sn: Administrateur
87/169 LDAP Mise en place de LDAP from scratch Remplissage de la base Création de l annuaire : slapadd < base.ldif NB : deux commandes pour le remplissage de l annuaire : Avec ce fichier ldif ou ces fichiers, vous pouvez appeler la commande slapdadd ou ldapadd pour remplir l annuaire. ldapadd : le serveur LDAP doit être soit actif ldapadd -h localhost -x -f base.ldif slapadd : ajout d entrées vers une base ldap slapadd -l people.ldif Vérification (après redémarrage du serveur) : slapcat
88/169 LDAP Mise en place de LDAP from scratch Remplissage de la base Ajout d utilisateurs : fichier Personnes.ldif dn: uid=thierry,ou=adsys, dc=univ-paris13,dc=fr givenname: Thierry sn: Thierry loginshell:/bin/bash uidnumber: 6167 gidnumber: 502 objectclass: top objectclass: person objectclass: organizationalperson objectclass: inetorgperson objectclass: posixaccount objectclass: shadowaccount uid: thierry cn: Thierry Hamon homedirectory: /home/thierry shadowlastchange: -1 shadowmin: -1 shadowmax: 99999
89/169 LDAP Mise en place de LDAP from scratch Remplissage de la base shadowwarning: 7 shadowinactive: -1 shadowexpire: -1 shadowflag: 0 gecos: Thierry Hamon userpassword: {CRYPT}aEcP8IVwcI6VQ
90/169 LDAP Mise en place de LDAP from scratch Remplissage de la base Ajout d utilisateurs : fichier Personnes.ldif slapadd < Personnes.ldif Ajout d un groupe : fichier group.ldif dn: ou=groups,dc=univ-paris13,dc=fr objectclass: top objectclass: organizationalunit ou: groups dn: cn=users, ou=groups, dc=univ-paris13, dc=fr objectclass: top objectclass: posixgroup cn: Users gidnumber: 502 memberuid: thierry slapadd < group.ldif
91/169 LDAP Manipulation de la base LDAP Stockage de la base LDAP dans le répertoire /var/lib/ldap Modification de la base : commande ldapadd, ldapmodify $ ldapadd -x -D "cn=manager,dc=foo,dc=org" -w secret -f lefichier.ldif $ ldapadd -x -D "cn=manager, dc=foo, dc=org" -W -f le_fichier_ldiff # puis mot de passe
92/169 LDAP Manipulation de la base LDAP Interrogation de la base : commande ldapsearch ldapsearch -x -h localhost -b dc=foo, dc=org objectclass=person sn cn NB : Ces commandes nécessitent de préciser les paramètres machine et base à chaque fois. Modification du fichier ldap.conf pour éviter ça : BASE dc=foo, dc=org HOST 127.0.0.1 Commande équivalente à la précédente : ldapsearch -x objectclass=person sn cn Exemple d utilisation de la commande ldapsearch : ldapsearch -x objectclass=* # On veut tous les objets ldapsearch -x objectclass=person sn cn # On récupère les cn et sn ldapsearch -x uid=mlx mail # On veut le mail de la personnes d uid mlx
LDAP Mise en place de LDAP from scratch Configuration du client 3 composants : libnss ldap : librairie gérant la résolution de nom client LDAP module d authentification (PAM) Fichier /etc/libnss-ldap.conf # Your LDAP server. Must be resolvable without using LDAP. # Multiple hosts may be specified, each separated by a # space. How long nss_ldap takes to failover depends on # whether your LDAP client library supports configurable # network or connect timeouts (see bind_timelimit). host 192.168.1.5 # The distinguished name of the search base. base dc=foo,dc=org # Unix Domain Sockets to connect to a local LDAP Server. uri ldap://192.168.1.5 93/169 # The LDAP version to use (defaults to 3
94/169 LDAP Mise en place de LDAP from scratch Configuration du client Fichier /etc/ldap/ldap.conf host 192.168.1.5 base dc=foo,dc=org uri ldap://192.168.1.5 Fichier /etc/pam ldap.conf host 192.168.1.5 base dc=foo,dc=org uri ldap://192.168.1.5
95/169 LDAP Mise en place de LDAP from scratch Configuration du client Configuration de nsswitch.conf : passwd: group: shadow: files ldap files ldap files ldap
96/169 LDAP Mise en place de LDAP from scratch Configuration du client Exemple de test de configuration : getent passwd getent passwd gtay getent group Users
97/169 LDAP Mise en place de LDAP from scratch Configuration du client Configuration de PAM (Pluggable Authentication Modules) : Fichier /etc/pam.d/common-account account sufficient account sufficient pam_unix.so pam_ldap.so # (facultatif) création d un répertoire home lors de la première # connexion session required pam_mkhomedir.so umask=0022skel=/etc/skel/ silent Fichier /etc/pam.d/common-auth auth sufficient auth sufficient auth required pam_unix.so nullok_secure pam_ldap.so use_first_pass pam_deny.so
98/169 LDAP Mise en place de LDAP from scratch Configuration du client Fichier /etc/pam.d/common-password password sufficient pam_unix.so nullok obscure min=4 max=8 md5 password sufficient pam_ldap.so fichier /etc/pam.d/common-session session sufficient pam_unix.so session sufficient pam_ldap.so NB : Variation de configuration suivant les systèmes
99/169 LDAP Logiciels LDAP Serveurs Slapd University of Michigan Openldap Distributed Directory Server (Innosoft) Netscape Directory Server Directory Services (Sun Microsystems) DSSeries LDAP Directory (IBM) Serveurs acceptant des requêtes au format LDAP : NetWare Directory Services (NDS) 3.0 (Novell) Active Directory (AD) (Microsoft) Lotus Domino
100/169 LDAP Logiciels LDAP Clients Client avec accès natif Navigateur Web utilisant URLs LDAP Netscape Communicator Microsoft Outlook * Serveurs Netscape SuiteSpot (leur serveur mail, news, web...) PADL software Client aveec accès via une passerelle : LDAP versx. 500 et X. 500 vers LDAP HTTP vers LDAP (web500gw) WHOIS++ vers LDAP FINGER vers LDAP PH vers LDAP
101/169 LDAP API LDAP U-M LDAP SDK C (UMICH, OpenLDAP) Innosoft LDAP Client SDK (ILC-SDK) C (InnoSoft) Netscape Directory SDK Java, C (Netscape) PerLDAP Modules Perl (Netscape) Net- LDAPapi PERL (GNU) Java Naming and Directory Interface (JUNI) Java (SUN) Active Directory Service Interface (ADSI) COM (Microsoft)
102/169 DHCP DHCP Dynamic Host Configuration Protocol (Protocole de configuration dynamique de machines) Distribution de paramètres de configuration réseau (notamment adresse IP) par un serveur Obtention par une machine cliente de ces paramètres auprès du serveur pour un temps donné (bail) Compatibilité ascendante avec BOOTP Voir RFC 2131 (anciennement RFC 1531 Architecture logicielle : serveur : démon /usr/sbin/dhcpd client : processus /sbin/dhcpcd
103/169 DHCP Requêtes : Protocole DHCP (1) DHCPDISCOVER (Localisatoin des serveurs DHCP disponibles) DHCPOFFER (réponse du serveur à un paquet DHCPDISCOVER contient les premiers paramètres) DHCPREQUEST (requête quelconque du client par exemple prolongement du bail) DHCPACK (réponse du serveur contient des paramètres et l adresse IP du client) DHCPNAK (réponse du serveur annonce au client de la fin de son bail ou d une mauvaise configuration réseau) DHCPDECLINE (Annonce par le client au serveur que l adresse est déjà utilisée)
104/169 DHCP Protocole DHCP DHCPRELEASE (Libération de l adresse IP par le cleint) DHCPINFORM (Demande des paramètres locaux le client il possède déjà son adresse IP) Messages dans /var/log/messages Jun 16 15:03:04 dns-dhcp dhcpd: DHCPREQUEST for 192.168.60.73 from 00:e0:81:27:2 Jun 16 15:03:04 dns-dhcp dhcpd: DHCPACK on 192.168.60.73 to 00:e0:81:27:29:db vi Jun 16 15:03:15 dns-dhcp dhcpd: DHCPREQUEST for 192.168.60.35 from 00:04:75:d5:7 Jun 16 15:03:15 dns-dhcp dhcpd: DHCPACK on 192.168.60.35 to 00:04:75:d5:7e:a3 vi Jun 16 15:03:16 dns-dhcp dhcpd: DHCPREQUEST for 192.168.60.69 from 00:e0:81:27:1 Jun 16 15:03:16 dns-dhcp dhcpd: DHCPACK on 192.168.60.69 to 00:e0:81:27:1b:52 vi Jun 16 15:03:28 dns-dhcp dhcpd: DHCPREQUEST for 192.168.60.72 from 00:e0:81:27:2
105/169 DHCP Serveur DHCP Configuration du noyau avec le Multicast Adresse IP fixe Fichier de configuration : /etc/dhcpd.conf default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.1; option domain-name-servers 192.168.0.10; option domain-name "etudiants.univ-paris13.fr"; use-host-decl-names on; ddns-update-style ad-hoc;
106/169 DHCP Serveur DHCP subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.20 192.168.0.250; } #subnet 192.168.60.0 netmask 255.255.255.0 { } # Exemple d attribution dynamique host dyn150.etudiant.univ-paris13.fr { hardware ethernet 00:01:02:bd:e2:73; } # Exemple d attribution statique host F204-1.etudiant.univ-paris13.fr { hardware ethernet 03:14:00:e9:c9:1e; fixed-address 192.168.0.21; } Lancement du démon dhcpd dans le script de démarrage /etc/init.d/dhcpd
107/169 DHCP Client DHCP Fichier de configuration /etc/dhcpc/dhcpcd.exe Configuration de la machine en tant que client DHCP dans le fichier /etc/sysconfig/network-scripts/ifcfg-eth0 (Linux/Mandrake) Lancement de /sbin/dhcpcd au démarrage dans le script /etc/init.d/network
108/169 NTP Services de synchronisation horaire Notion de temps et d heure importante pour les systèmes informatiques : horodage de fichiers (make) corrélation de messages de logs de plusieurs systèmes Oblitération des courriers Gestion des caches DNS Problèmes : Remise à l heure régulière des oscillateurs à quartz (dérive de temps) Sur un réseau, heure différente entre diverses équipement pouvant accéder aux mêmes fichiers Réception de fichiers avant les avoir émis! NIS+ : utilisation de l horaire pour l authentification
109/169 NTP Protocoles de synchronisation horaire 1 Time Protocol : 2 Network Time Protocol (NTP) 3 Simple Network Time Protocol (SNTP) : RFC2030 Version simplifiée de NTP
110/169 NTP Time Protocol 1983 RFC868 Système simple d interrogation pour obtenir le temps d un serveur Utilisation du port 37 (UDP ou TCP) Envoi par les serveurs d un paquet contenant le temps en secondes écoulé depuis le premier janvier 1900 à 0H. Utilisation par le démon Unix timed Mais : faible résolution absence de spécification de mécanismes de compensation de délais de transit
111/169 NTP Network Time Protocol (NTP) (1) David L. Mills, Université du Delaware Synchronisation de l heure avec un serveur en ligne Protocole beaucoup plus sophistiqué Synchronisation permanente avec plusieurs serveurs Redondances multiples pour assurer une synchronisation permanente et fiable NTP version 3 : RFC 1305 Implémentation client/serveur
112/169 NTP Network Time Protocol (NTP) (2) Utilisation de serveurs géographiquement proches Correction des délais de transmission dérive des horloges locales Représentation du temps NTP sur 64 : résolution théorique de 232ps Débordement prévu en 2036
113/169 NTP Fonctionnalités Définition dans NTP : Permet : Algorithmes de filtrage et de sélection Modèles d implémentation Détermination par les clients NTP de la meilleure source de synchronisation Élimination des sources suspectes Correction les temps de transit dans le réseau. Implémentation de référence : le démon Unix xntpd Egalement sous Linux : ntpd
114/169 NTP Oragnisation des serveurs de temps Structure pyramidale Synchronisation des serveurs NTP grâce aux références de temps directement raccordés Référence Strate 1 Strate 2 Strate n
115/169 NTP Strates de serveurs de temps (1) Répartition suivant plusieurs niveaux (strate) Répartition de la charge des serveurs Strate 1 : les plus précis et les plus rares Accessible qu à des serveurs de strate 2 Synchronise les serveur de la strate 2 Liste des serveurs de temps (strate 1) : http://www.eecis.udel.edu/~mills/ntp/clock1a.html
116/169 NTP Strates de serveurs de temps (1) Strate 2 : Certains serveurs librement accessibles Liste des serveurs de temps (strate 2) : http://www.eecis.udel.edu/~mills/ntp/clock2a.html http://www.cru.fr/ntp/serveurs_francais.html http://ntp.isc.org/bin/view/servers/ StratumTwoTimeServers
117/169 NTP Modes de fonctionnement (1) Mode serveur simple : Réponse aux requêtes de ses clients Mode symétrique actif : Demande de synchronisation par d autres serveurs et réciproquement Mode symétrique passif : idem mais à l initiative des autres serveurs
118/169 NTP Modes de fonctionnement (2) Mode broadcast : destiné aux réseaux locaux Diffusion d informations horaires destinées à des clients pouvant être : passifs découvrant les serveurs avec lesquels ils vont se synchroniser Mode client : envoie des requêtes à un ou plusieurs serveurs
119/169 NTP Références de temps Dérivée ds horloges atomiques Horloges pilotées par des signaux radio émis par des émetteurs spécialisés comme DCF77 en Allemagne Horloges pilotées par des émetteurs de radio-diffusion publiques transmettant, en plus de leur programme, des informations horaires comme l émetteur TDF d Allouis diffusant France-Inter Systèmes de positionnement comme le Loran C ou, mieux, le GPS (excellentes sources de référence)
120/169 NTP Simple Network Time Protocol (SNTP) RFC2030 Version simplifiée de NTP Pas de mécanismes de sélection Destinée à des utilisations pour lesquel une précision de l ordre de la seconde est suffisante Synchronisation possible d un client SNTP sur un serveur NTP. Mise en oeuvre de serveur SNTP possible mais synchronisation directe sur une référence temporelle.
121/169 NTP Configuration de NTP (1) Synchronisation et changement de l heure immédiatement : ntpdate Fichier de configuration : /etc/conf.d/ntp-client Indication du serveur à contacter : NTPCLIENT_OPTS="-b ntp.tuxfamily.net" ou des serveurs : NTPCLIENT_OPTS="-b ntp.tuxfamily.net ntp.univ-lyon1.fr ntp.via.ecp.fr"
122/169 NTP Configuration de NTP (2) Utilisation du démon ntpd Fichiers de configuration : /etc/ntp.conf : détermination des sources de synchronisation et son mode d exécution /etc/ntp/ntpservers : liste des serveurs de temps /etc/ntp/step-tickers : serveur utilisé lors du démarrage de ntpd Interrogation du serveur ntpd : ntpq # ntpq -c pe remote refid st t when poll reach delay offset jitter ============================================================================== LOCAL(0) LOCAL(0) 10 l 24 64 377 0.000 0.000 0.004 *lptfpc46.obspm. 195.220.94.163 2 u 24 128 377 3.027 1.672 0.580
123/169 NTP Configuration de NTP (3) # ntpq -c rv status=0664 leap_none, sync_ntp, 6 events, event_peer/strat_chg, version="ntpd 4.2.0@1.1161-r Thu Sep 30 15:06:18 CEST 2004 (1)", processor="i686", system="linux/2.6.8.1-12mdksmp", leap=00, stratum=3, precision=-18, rootdelay=21.277, rootdispersion=51.409, peer=47565, refid=145.238.110.68, reftime=c5e574f7.a5a75cd0 Fri, Mar 18 2005 16:40:39.647, poll=7, clock=c5e575b4.9b430f49 Fri, Mar 18 2005 16:43:48.606, state=4, offset=1.672, frequency=163.707, jitter=1.630, stability=1.086 (ntpdc interrogation du serveur sur son état courant)
124/169 NTP Configuration de NTP (4) Statistiques : ntpstat : synchronised to NTP server (145.238.110.68) at stratum 3 time correct to within 58 ms polling server every 64 s Route des différents serveurs NTP : ntptrace localhost: stratum 4, offset 0.0019529, synch distance 0.144135 server2ozo.com: stratum 2, offset 0.0124263, synch distance 0.115784 usndh.edu: stratum 1, offset 0.0019298, synch distance 0.011993, refid WWVB
125/169 NTP Déploiement d un serveur de temps un site doit mettre en place des serveurs secondaires synchronisés sur des serveurs de strate 1 ou 2 suivant son importance (cf ci-dessus) attention a la redondance : chaque client et chaque serveur secondaire doit accéder à plusieurs serveurs en évitant les points de passage communs Distribution d un serveur de temps valide lors de l assignation d adresse IP par un serveur DHCP
126/169 Annexes Annexes
127/169 Annexes NIS Network Information Service Appelé à l origine Yellow Page (YP) Nom des commandes NIS : généralement préfixé par yp. Service d administration centralisée des principales bases de données système (passwd, gropup, hosts, networks, etc.) Implémentation par SUN dans les années 80 Portabilité de NIS : disponible sur PC, VMS et sur la plupart des systèmes UNIX
128/169 Annexes Fonctionnalités de NIS Déploiement sur un réseau local Autour d un machine centrale : NIS Master Server Clients : Référence aux informations présentes sur un domaine NIS Initialisation en broadcast Limitations : Absence de hiérarchie Impossibilité de communiquer entre deux domaines NIS
129/169 Annexes Domaine NIS (1) Organisation des machines autour d un domaine NIS Pas de hiérarchie possible Impossibilité de relier deux domaines NIS Nom : quelconque, pouvant être différent (souvent) du nom du domaine Défini dans le fichier defaultdomain ou dans des variables des fichiers de configuration rc* Exemple : Nom de domaine : ig-edu.univ-paris13.fr Nom du domaine NIS : enseignement.galilee
130/169 Annexes Domaine NIS (2) Principes et règles de bases : Coexistance de plusieurs domaines portant des noms différents sur un réseau local Nom de domaine : définition du groupe de machines (groupe d information) auquel on veut se rattacher Appartenance d une machine à un seul domaine NIS Visualisation du nom de domaine NIS avec la commande domainname Un seul serveur maître NIS par domaine NIS Amélioration des performances sur un domaine NIS : le serveur maître NIS s appuie sur des serveurs esclaves NIS
131/169 Annexes Domaine NIS (3) Serveur NIS Client NIS Client NIS Serveur Esclave NIS
132/169 Annexes Machines sur un réseau NIS 3 types de machines sur un domaine NIS : Serveur maître NIS (NIS Master Server) Serveur esclave NIS (NIS Slave Server) Client NIS
133/169 Annexes Serveur maître NIS Gestion des informations disponibles sur le domaine Utilisation des données locales (passwd, group, rpc, hosts, etc.) Transformation au format dbm (base de données indexée) utilisable par le démon serveur ypserv Fichier de configuration : ypserv.conf Tables : NIS Maps Gestion des tables (création, modification) uniquement par le serveur maître NIS
134/169 Annexes Tables NIS Fichiers générés à partir des fichiers locaux Founit les informations gérées par NIS Format : base de données binaires (dbm) Deux champs : clé indexée et informations correspondantes (option et ressources) Fichier généré à partir de n importe quel fichier ASCII avec la commande makedbm Accélération des recherches en générant plusieurs fichiers de données en fonction de clés différentes
135/169 Annexes Organisation des tables NIS Exemple : hosts hosts.byname : clé : nom de la machine donnée : adresse IP hosts.byadress : clé : adresse IP donnée : nom de la machine
136/169 Annexes Opérations sur le serveur maître Création de la base NIS initiale à partir des fichiers source (locaux) Envoi d informations aux clients à l aide du démon ypserv Mise à jour des tables sur les serveurs esclaves avec yppush Transfert des tables avec le démon ypxfrd Modification de la table passwd avec le démon yppasswdd lors du changement de mot de passe de l utilisateur (passwd ou yppasswd, suivant les systèmes)
137/169 Annexes Serveur esclave NIS (1) Résoudre le problème de la défaillance du serveur maître NIS Conseil : installation d un ou deux serveurs NIS esclaves par domaine Fonctionnalités du serveur esclave : Possession d une copie de la base du serveur maître envoi d informations aux clients avec le démon ypserv (rôle identique à celui sur le serveur maître) Aucune fonctionnalité de création ou de modification des tables NIS Possibilité de basculer un serveur esclave en serveur maître
138/169 Annexes Serveur esclave NIS (2) Synchronisation des esclaves : Mise à jour des tables NIS par le serveur maître Envoi par le serveur maître avec yppush : synchronisation des données sur l ensemble du domaine Cas d un esclave arrêté lors de la synchronisation : demande d envoi des tables par le serveur maître lors du redémarrage yppush : transfert de l intégralité des tables Engendre une surchage temporaire du réseau Exemple : pour un réseau de 1000 utilisateurs, le changement d un mot de passe engendre la circulation de la table passwd contenant 1000 entrées
139/169 Annexes Client NIS Envoi de requêtes vers les serveurs maîtres ou esclaves Tentative de connexion au serveur le plus proche (NIS binding) Liaison effectuée par broadcast Fonctionnalités : Exploitation des services de nom (/etc/nsswitch.conf) Dialogue avec les serveurs avec ypbind Fichier de configuration : /etc/yp.conf Identification du groupe de machines (Domaine NIS) auquel il appartient
140/169 Annexes Informations gérées par NIS Gestion sous NIS de toute information ASCII Les tables NIS correspondent aux besoins de commandes et d appels systèmes Fichiers/Tables : passwd, group, hosts, aliases, services, rpc, protocols, netgroup, tables d automontage Stockage des tables dans le répertoire /var/yp En général, les fichiers ASCII sont différenciés des fichiers locaux, dans /etc/nis ou /etc/yp
141/169 Annexes Opérations sur les tables NIS Génération des tables NIS A l aide d un Makefile dans /var/yp Lecture des fichiers ASCII se trouvant dans /etc/nis et transformation au format dbm (puis Propagation des tables aux serveurs esclaves avec yppush) Modification des tables NIS Sur le serveur maître Modification d un fichier source (dans /etc/nis) Mise à jour dans le répertoire /var/yp avec le fichier make
142/169 Annexes Commandes d information NIS ypwitch : Indication du nom du serveur auquel est rattaché le client ypwhich -m : Indication du nom du serveur maître du domaine ypcat nom de la table : Affiche le contenu de la table ypcat -k nom de la table : Affiche le contenu de la table en fonction de sa clé ypcat -k ypservers : Affiche la liste de servers NIS du domaine ypmatch motif nom de la table : Effectue la recherche d une entrée dans une table (à préférer à grep)
143/169 Annexes Installation du NIS 1 Modification du fichier /var/yp/makefile Définition des variables et des tables à exporter 2 Déclaration du serveur maître NIS La machine locale est considérée, par défaut, comme le serveur maître NIS /usr/lib/yp/ypinit -m (Installation des tables à exporter format DBM)
144/169 Annexes Exemple de création d une table NIS (1) Table de correspondance IP Nom de machine Copie du fichier /etc/hosts Suppression des lignes inutiles Ajout des déclarations des autres machines du réseau 192.168.60.50 painleve 192.168.60.64 bourbaki 192.168.60.11 F205-1 192.168.60.12 F205-2 192.168.60.13 F205-3 (...)
145/169 Annexes Exemple de création d une table NIS (2) Déplacement dans le répertoire /var/yp Mise à jour de la table avec make Mise à jour des fichiers : hosts.byname : hosts.byadress : Diffusion de la table NIS sur les serveurs esclaves
146/169 Annexes Visualisation d une table NIS ypcat < Nomdelatable > Exemple : 192.168.60.50 painleve 192.168.60.64 bourbaki 192.168.60.11 F205-1 192.168.60.12 F205-2 192.168.60.13 F205-3 (...)
147/169 Annexes Exemple de modification d une table NIS Ajout d un utilisateur : 1 Création d une entrée dans le fichier /etc/nis/passwd sur le serveur maître NIS 2 Déplacement dans le répertoire /var/yp 3 Mise à jour de la table avec make 4 Diffusion de la table NIS sur les serveurs esclaves
148/169 Annexes Mise en place d un domaine NIS Tâche importante nécessitant une planification : Définition du nom de domaine Sélection des tables diffusées sur le domaine Mise en place du serveur maître Mise en place des serveurs esclaves Mise en place des clients
149/169 Annexes Mise en place d un serveur maître NIS (1) 1 Identification du nom du domaine (domainname, defaultdomain) 2 Définition des serveurs esclaves NIS 3 Démarrage des processus liés au serveur (portmapper, /usr/sbin/ypserv, /usr/sbin/yppasswdd, /usr/sbin/rpc.yppasswdd) 4 Initialisation de la machine comme client NIS 5 Modification des fichiers de configuration du démarrage de la machine (/etc/init.d/, /etc/rc.inet2) 6 Définition de l ordre de recherche dans les services de nom (/etc/nsswitch.conf)
150/169 Annexes Mise en place d un serveur maître NIS (2) Extrait du fichier nsswitch.conf passwd: shadow: group: hosts: files nis files nis files nis files nis dns
151/169 Annexes Mise en place d un serveur esclave NIS 1 Identification du nom du domaine (domainname, defaultdomain) 2 Démarrage des processus liés au serveur (portmapper) 3 Initialisation de la machine comme client NIS 4 Initialisation de la machine comme serveur esclave (/usr/sbin/ypserv) 5 Modification des fichiers de configuration du démarrage de la machine (/etc/init.d/, /etc/rc.inet2 6 Définition de l ordre de recherche dans les services de nom (/etc/nsswitch.conf)
152/169 Annexes Mise en place d un client NIS (1) Identification du nom du domaine (domainname, defaultdomain) Définition du type de recherche du serveur maître ou esclave (fichier /etc/yp.conf) Trois possibilités : domain domainnis-galilee server serveurnis # domain domainnis-galilee broadcast # ypserver serveurnis
153/169 Annexes Mise en place d un client NIS (1) (2) Démarrage des processus liés au client (portmapper, ypbind) Initialisation de la machine comme client NIS Modification des fichiers de configuration du démarrage de la machine (/etc/init.d/, /etc/rc.inet2 Définition de l ordre de recherche dans les services de nom (/etc/nsswitch.conf)
154/169 Annexes Sécurité sous NIS Connaissance du nom du serveur : suffisant pour être client NIS L interrogation d un serveur NIS ne suppose aucune action de la part du serveur Faille importante dans la sécurité Solution : Utilisation du fichier /var/yp/securenets # netmask netadress 255.255.255.0 192.168.0.0 Insuffisant si la machine possède une adresse IP du réseau Autre solution : NIS+
155/169 Annexes NIS+ Network Information Service + Successeur de NIS Résolution de certains problèmes liés à NIS : Sécurité Structure hiérarchique permettant une administration répartie Administrateurs explicitement nommés (différenciés de root) Partie intégrante de l ONC+, approuvé par COSE Implémenté sur toutes les plates-formes (uniquement le client sous Linux) Modification d une entrée : uniquement diffusion de cette entrée
156/169 Annexes Domaine NIS+ Utiliser de préférence la même convention que celle des DNS Obligation de prendre un nom de domaine composé de 2 parties Chaque domaine peut posséder plusieurs sous-domaines Les objets d un domaine sont la propriété de son créateur (pouvant être différent du root) Création du domaine : dans le répertoire /var/nis Création d un répertoire UNIX de même nom que le serveur maître Dans ce répertoire, création de deux répertoires NIS+ : org dir, groups dir
157/169 Annexes Définitions (1) (Terminologie NIS+) Objets NIS+ : les éléments gérés par le serveur NIS+ Organisation et administration du domaine NIS+ similaires à UNIX Différenciation des objets :. (/ sous UNIX) répertoire : correspond à un répertoire UNIX. Contient des tables. NB : se présente sous la forme d un fichier UNIX table : correspond à un fichier UNIX. Contient des données NIS+. groupe : correspond à un groupe UNIX lien : correspond à un lien UNIX
158/169 Annexes Définitions (2) entrée : élément d une table Caractéristiques d un objet : nom du propriétaire nom du groupe droit d accès temps de vie dans le cache (ttl)
159/169 Annexes Définitions (3) Principal : un utilisateur connu du service de nom 2 formes : un utilisateur (login.domainename) une machine ou un super-utilisateur (host.domainename) Chaque principal possède un crédential Les classes de principaux : owner : le principal NIS+ propriétaire de l objet group : les principaux NIS+ membres du groupe propriétaire de l objet world : l ensemble des principaux NIS+ du domaine nobody : un principal non reconnu
160/169 Annexes Définitions (4) Crédential : mot de passe sauvegarde dans la table cred.org dir Permissions NIS+ : read : lecture de l objet modify : modification de l objet create : création de l objet destroy : destruction de l objet
161/169 Annexes Niveau de sécurité NIS+ Niveau 0 : destiné à la phase de mise au point et à l installation Pas de vérification des droits d accès (équivalent à NIS) Niveau 1 : réservé à des configurations non sécurisées Acceptation des requêtes avec des identifications DES ou LOCAL Niveau 2 : mode de fonctionnement normal (par défaut) Acceptation uniquement des requêtes DES Eviter la lecture des tables pour le world
162/169 Annexes Commandes NIS+ (1) Préfixées par nis Les commandes utilisateurs les plus courantes (dans /usr/sbin) : niscat : affiche le contenu des tables et des objets nisgrep : Recherche dans une table NIS+ à la manière de grep nisls : Liste le contenu d un répertoire NIS+ nismatch : recherche dans une table selon une ou plusieurs clés nispasswd : changement du mot de passe NIS et des informations relatives
163/169 Annexes Commandes NIS+ (2) Les commandes d administration les plus courantes (dans /usr/lib/nis) : nisaddent : Ajout d entrée dans une table nisinit : Initialisation d une machine (serveur ou client) nislog : Examen de l historique des transactions NIS+ nisstat : Affichage des statistiques
164/169 Annexes Machines NIS+ (1) Serveur maître NIS+ (le serveur racine en cas de sous-domaine) Abrite la base NIS+ Les modifications sont stockées dans des fichiers de transactions puis propagées Propagation forcée des modifications : /usr/lib/nis/nisping -C Serveur replique NIS+ : Maintenance d une copie de la base NIS+ du serveur maître Réduction de la charge du serveur
165/169 Annexes Machines NIS+ (2) Client NIS+ : Consultation de la base hébergée par le serveur Pas de recherche du serveur par émission d un broadcast (sauf lors de l installation) Les noms des serveurs du domaine sont enregistrés dans le fichier /var/nis/nis COLD START
166/169 Annexes Installation d un serveur maître NIS+ (1) Positionnement du domaine NIS+ dans /etc/defaultdomain Création du domaine : nisinit -r Création du fichier /var/nis/data/root.object (objet NIS+, répertoire racine du domaine créé) Création du fichier /var/nis/parent.object (description du domaine de niveau supérieur, s il existe) Lancement du démon servant les requêtes rpc.nisd -r -S 0 (niveau de sécurité 0)
167/169 Annexes Installation d un serveur maître NIS+ (2) Création de la base NIS+ : nissetup Création des tables NIS+ vides Modification du fichier /etc/nsswitch.conf Ensemble de ces opérations : /usr/lib/nis/nisserver -r -d <nom du domaine>
168/169 Annexes Installation d un serveur réplique NIS+ Installation du serveur en tant que client Lancement du démon rpc.nisd Lancement de la commande (sur le serveur maître) /usr/lib/nis/nisserver -R -d <nom du domaine > -h <nom du serveur réplique>
169/169 Annexes Installation d un client NIS+ Mise en œuvre assurée par le noyau à travers l interrogation d une librairie (pas de démon comme sous NIS) Positionnement du domaine NIS+ dans /etc/defaultdomain Modification du fichier /etc/nsswitch.conf Lancement de la commande /usr/lib/nisclient -c -H < nom du serveur maître> Création du fichier /var/nis/nis COLD START (émission d un broadcast) Lancement (non obligatoire) du démon nis cachemgr Gestion du cache de la base Création du fichier /var/nis/nis SHARED DIRCACHE