1/161 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
2/161 Switching Hub Ethernet Switch Ether 10/100 12345678 100 101236 125080 1 0 Quatrième partie Services orientés administration 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/161 Services orientés administration Serveur de nom du domaine : DNS Annaires : NIS, NIS+, LDAP Autres services : DHCP, Serveur de temps (NTP)
4/161 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/161 Serveur de nom (DNS) (1) DNS 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/161 Serveur de nom (DNS) (2) DNS 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/161 Extrait de la hiérarchie DNS..edu.com.fr univ paris13 loria jussieu iutv ig edu biomath painleve nantes armen glénant
8/161 Service DNS (1) DNS 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/161 Service DNS (2) DNS 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/161 Types de serveurs DNS (1) DNS 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/161 Types de serveurs DNS (2) DNS 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/161 Installation d un serveur DNS 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/161 Fichier de configuration (1) DNS 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/161 Fichier de configuration (2) DNS 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/161 Fichier de la zone racine DNS 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/161 Zone primaire (1) DNS 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/161 Zone primaire (2) DNS $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/161 Zone primaire inverse DNS 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/161 Installation d un client (1) DNS 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/161 Installation d un client (2) DNS 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/161 Interrogation d un DNS (1) DNS 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/161 Interrogation d un DNS (2) DNS 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/161 Fichier /etc/nsswitch.conf (1) DNS 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/161 Fichier /etc/nsswitch.conf (2) DNS Serveurs de nom : DNS (dns) NIS (nis) NIS+ (nisplus) Fichiers locaux (files) Bases locales db etc.
Fichier /etc/nsswitch.conf (3) Exemple standard : passwd: shadow: group: files nis nisplus files nis nisplus files nis nisplus DNS hosts: files nis dns nisplus bootparams: nisplus [NOTFOUND=return] files 25/161 #services: #networks: #protocols: #rpc: #ethers: #netmasks: ethers: netmasks: 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 files
26/161 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/161 Fonctionnalités de NIS 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/161 Domaine NIS (1) NIS 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
29/161 Domaine NIS (2) NIS 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
30/161 Domaine NIS (3) NIS Serveur NIS Client NIS Client NIS Serveur Esclave NIS
31/161 Machines sur un réseau NIS NIS 3 types de machines sur un domaine NIS : Serveur maître NIS (NIS Master Server) Serveur esclave NIS (NIS Slave Server) Client NIS
32/161 Serveur maître NIS 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
33/161 Tables NIS 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
34/161 Organisation des tables NIS 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
35/161 Opérations sur le serveur maître NIS 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)
36/161 Serveur esclave NIS (1) NIS 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
37/161 Serveur esclave NIS (2) NIS 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
38/161 Client NIS 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
39/161 Informations gérées par NIS 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
40/161 Opérations sur les tables NIS 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
41/161 Commandes d information NIS 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)
42/161 Installation du NIS 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)
43/161 Exemple de création d une table NIS (1) NIS 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 (...)
44/161 Exemple de création d une table NIS (2) NIS 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
45/161 Visualisation d une table NIS 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 (...)
46/161 Exemple de modification d une table NIS 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
47/161 Mise en place d un domaine NIS 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
48/161 Mise en place d un serveur maître NIS (1) NIS 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)
49/161 Mise en place d un serveur maître NIS (2) NIS Extrait du fichier nsswitch.conf passwd: shadow: group: hosts: files nis files nis files nis files nis dns
50/161 Mise en place d un serveur esclave NIS 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)
51/161 Mise en place d un client NIS (1) NIS 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
52/161 Mise en place d un client NIS (1) (2) NIS 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)
53/161 Sécurité sous NIS 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+
54/161 LDAP : introduction LDAP 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
55/161 Concepts de LDAP (1) LDAP 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)
56/161 Concepts de LDAP (2) LDAP 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
57/161 Le protocole LDAP (1) LDAP 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)
58/161 Le protocole LDAP (2) LDAP 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
59/161 Le protocole LDAP (2) LDAP 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
60/161 Une arborescence d information (DIT) (1) LDAP 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)
61/161 Une arborescence d information (DIT) (2) LDAP (C) FR (O) univ paris13 jussieu (OU) iutv lipn ig edu ccr biomath (...) (CN) 180345930 th hamon 101098123
62/161 Modèle de nommage (1) LDAP 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
63/161 Modèle de nommage (2) LDAP 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)
64/161 Modèle d information LDAP 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
65/161 Les attributs (1) LDAP 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
66/161 Les attributs (2) LDAP 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
67/161 Les attributs (3) LDAP 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
68/161 Les classes d objets (1) LDAP 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)
69/161 Les classes d objets (2) LDAP 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
70/161 Les classes d objets (3) LDAP 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
71/161 Les classes d objets (4) LDAP Exemple, objet inetorgperson : objectclass: top objectclass: person objectclass: organizationalperson objectclass: inetorgperson
72/161 Les classes d objets (5) LDAP Attributs : commonname, surname description, seealso, telephonenumber, userpassword (objet person) ; organizationunitname, title, postaladdress... (objet organizationalperson) ; mail, labeleduri, uid, photo,... (objet inetorgperson
73/161 Modèle fonctionnel LDAP 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
74/161 Modèle de sécurité LDAP 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)
75/161 Authentification (1) LDAP 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
76/161 Authentification (2) LDAP 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
77/161 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 LDAP
78/161 Les ACLs LDAP 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
79/161 Chiffrement des transactions LDAP 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
80/161 Le modèle de duplication (1) LDAP (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
81/161 Le modèle de duplication (2) LDAP 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
82/161 Le modèle de duplication (3) LDAP Duplication : arborescence entière sous-arbre partie des entrées et leurs attributs (spcification grâce à un filtre)
83/161 Le modèle de duplication (4) LDAP Synchronisation : mise à jour totale mise à jour incrémentale En temps réel ou à heure fixe
84/161 Le modèle de duplication (5) LDAP 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
85/161 Le modèle de duplication (6) LDAP 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
86/161 Le format LDIF (1) LDAP 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
87/161 Le format LDIF (2) LDAP 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)
88/161 Le format LDIF (3) LDAP Forme générale : dn: <distinguished name objectclassclass: <object class objectclassclass: <object class... <attribute type: <attribute value <attribute type: <attribute value..
89/161 Déploiement de LDAP 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
90/161 Informations nécessaires (1) LDAP 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
91/161 Informations nécessaires (2) LDAP 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.
92/161 Informations nécessaires (3) LDAP 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
93/161 Informations nécessaires (4) LDAP 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)
94/161 Conception du modèle de nommage LDAP 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é)
95/161 Choix du suffixe LDAP 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
96/161 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 : LDAP 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
97/161 Gestion des données LDAP 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)
98/161 LDAP et la sécurité (1) LDAP 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)
99/161 LDAP et la sécurité (2) LDAP 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
100/161 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 LDAP
101/161 Mise en place de LDAP from scratch Configuration du serveur - slapd.conf LDAP 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
102/161 Mise en place de LDAP from scratch Configuration du serveur - slapd.conf # Définition des ACLs include /etc/openldap/slapd.access.conf LDAP 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
103/161 Mise en place de LDAP from scratch Configuration du serveur - slapd.conf ########################################################### # database definitions ########################################################### LDAP 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
104/161 Mise en place de LDAP from scratch Configuration du serveur - slapd.conf LDAP # 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
105/161 Mise en place de LDAP from scratch Configuration du serveur LDAP 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
106/161 Mise en place de LDAP from scratch Configuration du serveur LDAP Fichiers de logs : /var/log/ldap.log Par defaut, mode local LOCAL4 de syslog local4.debug /var/log/ldap.log
107/161 Mise en place de LDAP from scratch Exemple de fichier base.ldif : dn: dc=foo, dc=org objectclass: organization dc: foo o: foo telephonenumber: 05 05 05 05 05 street: cours du General de Gaulle postalcode: 87000 postaladdress: Limoges l: Limoges st: Haute-Vienne LDAP dn: cn=manager, dc=foo, dc=org objectclass: top objectclass: person userpassword: secret cn: admin sn: Administrateur
108/161 Mise en place de LDAP from scratch Remplissage de la base Création de l annuaire : LDAP 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
109/161 Mise en place de LDAP from scratch Remplissage de la base Ajout d utilisateurs : fichier Personnes.ldif dn: uid=gtay,ou=people, dc=foo,dc=org givenname: Gary sn: Tay loginshell:/bin/bash uidnumber: 6167 gidnumber: 102 objectclass: top objectclass: person objectclass: organizationalperson objectclass: inetorgperson objectclass: posixaccount objectclass: shadowaccount uid: gtay cn: Gary Tay homedirectory: /home/gtay shadowlastchange: -1 shadowmin: -1 shadowmax: 99999 shadowwarning: 7 shadowinactive: -1 shadowexpire: -1 shadowflag: 0 LDAP
110/161 Mise en place de LDAP from scratch Remplissage de la base dn: uid=tuser,ou=people, dc=foo,dc=org givenname: Test sn: User loginshell: /bin/bash uidnumber: 99999 gidnumber: 102 objectclass: top objectclass: person objectclass: organizationalperson objectclass: inetorgperson objectclass: posixaccount objectclass: shadowaccount uid: tuser cn: Test User homedirectory: /home/tuser shadowlastchange: -1 shadowmin: -1 shadowmax: 99999 shadowwarning: 7 shadowinactive: -1 shadowexpire: -1 shadowflag: 0 gecos: Test User LDAP
111/161 Mise en place de LDAP from scratch Remplissage de la base Ajout d utilisateurs : fichier Personnes.ldif LDAP slapadd < Personnes.ldif Ajout d un groupe : fichier group.ldif dn: cn=users,ou=group,dc=foo,dc=org cn: Users gidnumber: 102 objectclass: top objectclass: posixgroup memberuid: tuser slapadd < group.ldif
112/161 Manipulation de la base LDAP 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
113/161 Manipulation de la base LDAP 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
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 LDAP 114/161 # 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 # The LDAP version to use (defaults to 3 # if supported by client library)
115/161 Mise en place de LDAP from scratch Configuration du client Fichier /etc/ldap/ldap.conf LDAP 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
116/161 Mise en place de LDAP from scratch Configuration du client LDAP Configuration de nsswitch.conf : passwd: group: shadow: files ldap files ldap files ldap
117/161 Mise en place de LDAP from scratch Configuration du client LDAP Exemple de test de configuration : getent passwd getent passwd gtay getent group Users
118/161 Mise en place de LDAP from scratch Configuration du client LDAP 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
119/161 Mise en place de LDAP from scratch Configuration du client LDAP 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
120/161 Logiciels LDAP Serveurs LDAP 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
121/161 Logiciels LDAP Clients LDAP 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
122/161 API LDAP 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)
123/161 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
124/161 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) DHCP
125/161 Protocole DHCP 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
126/161 Serveur DHCP 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;
127/161 Serveur DHCP 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
128/161 Client DHCP 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
129/161 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 NTP
130/161 Protocoles de synchronisation horaire NTP 1 Time Protocol : 2 Network Time Protocol (NTP) 3 Simple Network Time Protocol (SNTP) : RFC2030 Version simplifiée de NTP
131/161 Time Protocol NTP 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
132/161 Network Time Protocol (NTP) (1) NTP 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
133/161 Network Time Protocol (NTP) (2) NTP 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
134/161 Fonctionnalités NTP 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
135/161 Oragnisation des serveurs de temps NTP 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
136/161 Strates de serveurs de temps (1) NTP 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
137/161 Strates de serveurs de temps (1) NTP 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
138/161 Modes de fonctionnement (1) NTP 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
139/161 Modes de fonctionnement (2) NTP 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
140/161 Références de temps NTP 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)
141/161 Simple Network Time Protocol (SNTP) NTP 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.
142/161 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 : NTP NTPCLIENT_OPTS="-b ntp.tuxfamily.net" ou des serveurs : NTPCLIENT_OPTS="-b ntp.tuxfamily.net ntp.univ-lyon1.fr ntp.via.ecp.fr"
143/161 Configuration de NTP (2) NTP 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
144/161 Configuration de NTP (3) NTP # 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)
145/161 Configuration de NTP (4) NTP 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
146/161 Déploiement d un serveur de temps NTP 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
147/161 NIS+ Annexes 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
148/161 Domaine NIS+ Annexes 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
149/161 Définitions (1) Annexes (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
150/161 Définitions (2) Annexes 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)
151/161 Définitions (3) Annexes 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
152/161 Définitions (4) Annexes 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
153/161 Niveau de sécurité NIS+ Annexes 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
154/161 Commandes NIS+ (1) Annexes 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
155/161 Commandes NIS+ (2) Annexes 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
156/161 Machines NIS+ (1) Annexes 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
157/161 Machines NIS+ (2) Annexes 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
158/161 Installation d un serveur maître NIS+ (1) Annexes 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)
159/161 Installation d un serveur maître NIS+ (2) Annexes 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>
160/161 Installation d un serveur réplique NIS+ Annexes 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>
161/161 Installation d un client NIS+ Annexes 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