Vous êtes sur la page 1sur 175

M3105

Cours Supervision Réseau

Guillaume Urvoy-Keller
urvoy@unice.fr
De multiples dimensions

Source :
Un exemple : le réseau Unice


Surveillance par MRTG

Visualisation Dynamique

Résultat qualitatif public

Résultat de surveillance réservé au CRI

http://nephi.unice.fr/Router/

3
Plan de cours

Admin Réseau, admin système

Debugging réseau

Ping, traceroute

Aller plus loin : smokeping

Debugging système

Syslog, swatch

SNMP

Les bases

Ex d'outils : Observium et Shinken

Gestion de configuration

Puppet, Ansible
Debugging Réseau

5
Ping

Envoie réception de paquet ICMP

Internet Control Message Protocol

Code : echo request et echo reply

Mesure du temps d'aller-retour (RTT)

6
Ping

Example :

7
Traceroute

Envoie ICMP,UDP ou TCP avec un TTL croissant et reçoit
des routeurs des paquets ICMP code 11 (TTL expired)

Bonne pratique :

Les ISPs doivent configurer leurs routeurs pour répondre à
traceroute (i.e., répondre en ICMP)

MAIS, les ISPs veulent prévenir des attaques

Limitation du débit de réponse, type x paquets par secondes

Une '*' si pas de réponse du routeur

Q : comment choisir le time-out ?

Indice: quel est le temps maximum d'aller-retour entre 2 machines sur8
Internet ?
Traceroute

Traceroute sous debian (linux)

Envoie en burst (ici 16 paquets en 55 ms)

9
Traceroute depuis un ISP vers www.unice.fr

En ICMP

10
Traceroute depuis un ISP vers www.unice.fr

En ICMP, 1 paquet à la fois

Routeurs 1 à 5 répondent : limitation de débit

Routeurs 15 et 16 : muets !

11
Traceroute depuis un ISP vers www.unice.fr

En TCP

Routeur 9 filtre TCP

12
Aller plus loin

Ping et traceroute sont 2 outils de mesure actifs : envoie
explicite des données

Ping permet de tester une machine/routeur jusqu'à la
couhe IP

Traceroute permet de découvrir un chemin

Aller plus loin : smokeping

Ping généralisé (à tous les niveaux protocolaires)

Représentation graphique avec MRTG

Base de données RRD (Round Robin Database)
13
Smokeping

Idée de base :

Ping niveau ICMP (classique)

« Ping » niveau HTTP → un curl sur une page

« Ping » niveau SSL → openssl sur un serveur

« Ping » d'un serveur DNS → requête DNS

Niveau application : LDAP, NFS

Ces données sont stockées dans une base de données
RRD :

base de données optimisée pour les séries temporelles

Occupe une taille fixe sur le disque. Les données plus 14
anciennes sont stockées avec une granularité moins fine
Les figures - MRTG

15
Smokeping

« Smoke » car plusieurs « ping » à chaque fois et le
nuage présentent la médiane, le max, le min, la moyenne

16
Debugging Système

17
18
19
20
21
Envoie d'alerte avec swatch

22
SNMP

23
Plan

Qu'est-ce que la supervision de réseau?

Le modèle Internet - SNMP

Structure of Management Information: SMI

Management Information Base: MIB

Le protocole de transport SNMP

La sécurité

La couche présentation ASN.1

24
Le modèle SNMP
Définitions:

Entités :

Manager

Agents

MIB : les données

25
v

Source : A. Pras – Université de Twente - The Simple Web 26


Les standards

OSI CMIP SNMP: Simple Network Management



Common Management Protocol
Information Protocol ➢
Vient du monde Internet : successeur

Conçu dans les années 1980 de SGMP (Simple Gateway
Management Protocol)

Standardisation trop lente →
pas adopté par le marché

Objectif modeste (≠ usine à gaz
CMIP)

Déploiement et adoption rapide

Standard actuel: SNMP V3

Standard de facto

27
SNMP : 4 parties clefs

Management information base (MIB):

Information distribuée stockée sur les équipements gérés

Structure of Management Information (SMI):

Langage de définition des objets de la MIB

Le protocole SNMP

communication gestionnaire ↔ objets gérés

Sécurité

Communautés en SNMPv1 et v2, les vues

Ajout principal de SNMPv3
28
Remarque : SNMP est le nom du protocole pour le transfert de données et le nom
global de la solution de gestion de réseau
SMI: langage de définition des données
Objectif: syntaxe, sémantique non Types de base
ambigüe des données

Types de base: INTEGER

Voir colonne droite
Integer32
Unsigned32

OBJECT-TYPE
OCTET STRING

Type de données, statut,
OBJECT IDENTIFIED
sémantique
Ipaddress/NetworkAddress

MODULE-IDENTITY
Counter32 (ne peut que monter)

Groupement d'objets en relation Counter64
entre eux (par ex. liés à un
Gauge32 (monte/descend)
appareil ou un protocole) dans un
module de la MIB
Time Ticks (10ème de seconde)
Opaque
SEQUENCE OF 29

SEQUENCE
SNMP MIB
Module MIB spécifié via SMI
MODULE-IDENTITY
(100 MIBs standardisées, plus encore spécifiques aux
fournisseurs de matériels/logiciels)

MODULE
OBJECT TYPE:
OBJECT TYPE:
OBJECT TYPE:

Objets spécifiés via SMI


et le constructeur
OBJECT-TYPE
30
SMI: Exemple d' objets et de modules

OBJECT-TYPE: ipInDelivers MODULE-IDENTITY: ipMIB

ipMIB MODULE-IDENTITY
ipInDelivers OBJECT TYPE LAST-UPDATED “941101000Z”
SYNTAX Counter32 ORGANZATION “IETF SNPv2
MAX-ACCESS read-only Working Group”
CONTACT-INFO
STATUS current
“ Keith McCloghrie
DESCRIPTION ……”
“The total number of input DESCRIPTION
datagrams successfully “The MIB module for managing IP
delivered to IP user- and ICMP implementations, but
protocols (including ICMP)” excluding their management of
::= { ip 9} IP routes.”
REVISION “019331000Z”
………
::= {mib-2 48}

31
Exemple de MIB : le module UDP
Object ID Name Type Comments
1.3.6.1.2.1.7.1 UDPInDatagrams Counter32 total # datagrams delivered
at this node
1.3.6.1.2.1.7.2 UDPNoPorts Counter32 # underliverable datagrams
no app at portl
1.3.6.1.2.1.7.3 UDInErrors Counter32 # undeliverable datagrams
all other reasons
1.3.6.1.2.1.7.4 UDPOutDatagrams Counter32 # datagrams sent
1.3.6.1.2.1.7.5 udpTable SEQUENCE one entry for each port

in use by app, gives port #


and IP address

32
Nommage SNMP

question: comment nommer tous les objets standards (protocoles,


données, etc.) de tous les standards réseaux ??
réponse: Arbre hiérarchique de l'ISO :

Chaque branchement à un nom et un numéro

1.3.6.1.2.1.7.1
ISO udpInDatagrams
ISO-ident. Org. UDP
US DoD MIB2
Internet management 33
Arbre OSI (SMIv2)

Ccitt(0) Iso (1) Iso-ccitt(2)

standard Autorité enreg. Membre (2) Org.identifiée(3)

Dod (6)
Internet (1)

Répertoire (1) Admin.(2) Expérimental (3) Privé (4) Sécurité (5) Snmpv2(6)

Mib-2 (1)

System Interfaces Addr.trans IP Icmp TCP Udp Egp Transmission Exemple


(1) (2) (3) (4) (5) (6) (7) (8) (10) (11)

IP
IP==1.3.6.1.2.1.4
1.3.6.1.2.1.4

http://www.alvestrand.no/objectid/ 34
http://wwwsnmp.cs.utwente.nl/ietf/mibs/
Les MIBs d'un agent

Tout équipement doit implanter la MIB-2, i.e. gérer les
objets de cette MIB (RFC 1213) :

Statistiques sur les interfaces (vitesse, MTU, octets
envoyés/reçus, etc.)

Informations sur le système : localisation, contact

En plus de la MIB-2, un agent implantera :

Des MIBs standardisées supplémentaires

Ex : BGP version 4 MIB (RFC 1657), RADIUS Authentication Server
MIB (RFC 2619)

Des MIBS propriétaires
35
Les MIBs propriétaires

Dans l'arbre général, un sous arbre est dédié aux
entreprises iso.org.dod.internet.private.entreprises
(1.3.6.1.4.1)

Dans ce sous arbre, les entreprises ont chacune un
numéro (demandé à l'IANA – Internet Assigned Numbers
Authority)

Ex : CISCO a le numéro 9

iso.org.dod.internet.private.entreprises.cisco →
1.3.6.1.4.1.9
36
Savoir lire une MIB
Ex : objet interface MIB 2

Un objet fait d'une séquence de type


IfEntry
37
Savoir lire une MIB
Ex : objet interface MIB 2

Une liste
= une
structure
, mais pas
un objet.
Une colonne

...
38
Savoir lire une MIB
Ex : objet interface MIB 2

IfTable : table dont les colonnes sont définies par IfEntry

Attention aux majuscules/minuscules

IFTable non accessible!!! et obligatoire (mandatory en anglais)

IfEntry : définit une liste d'objets en colonne

ifEntry : définit les lignes effectives d'ifTable
➢ non accessible
➢ On accède à une ligne par un index : ifIndex

39
En pratique – ifTable avec un agent dans un PC
Windows et manager en Mac OSx

40
Le protocole SNMP
Deux façons de transférer l'information et les commandes

Manager Manager

requête
Msg trap
réponse

agent data agent data

Appareil géré Appareil géré

Mode requête/réponse Mode trap


41
Le protocole SNMP : les types de message

Type de message Fonction


GetRequest Mgr → agent: “donne moi les données”
GetNextRequest (instance unique ,suivant dans la liste, bloc)
GetBulkRequest*

InformRequest* Mgr → Mgr: voici une valeur de la MIB

SetRequest Mgr → agent: assignation valeur

Agent → mgr: valeur, réponses aux requêtes


Response

Trap Agent → mgr: informe manager


d'un événement exceptionnel 42
* SNMP v2 et v3 seulement
Le protocole SNMP : format des message

43
Communications Agent/Manager

Ports UDPs 161 et 162 utilisés

44
Contrôle d’accès SNMP

Communauté SNMP (v1 et v2c)

Sert de mot de passe, mais en clair sur le réseau (!)

Est associée à des droits : read-only, read-write

Chaque communauté snmp peut limiter les accès à des objets →
notion de vues


Valeurs par défaut communément utilisées

public : read-only

private : read-write

Il existe un « authentication trap » pour savoir si quelqu'un a essayé
de se connecter avec un mauvais mot de passe

SNMPv3 existe mais peu utilisé Requetes


En v2, comme le mot de passe est en clair, on va en plus indiqué à 45
l'agent l'adresse IP du manager
La pratique

Pour une variable scalaire simple, on fait un get en
ajoutant à la fin .0


Get next pour obtenir élément suivant :


Commande snmpwalk (du package Net-SNMP) sous
machines unix pour parcourir un sous arbre

Ex : voir ex précédent sur table ifTable
46
La pratique

Obtenir la description d'un objet : snmptranslate

IR : permet de ne pas donner le chemin absolu

Td : détails

47
Les Traps

Envoyés par l'agent

Sans accusé de réception

Trois types :

Traps génériques

48
Les Traps

Trap propriétaires

Inclus dans la MIB propriétaire

Ex : pour CISCO
iso.org.dod.internet.private.enterprises.cisco.specific-trap-
number
➢ Trap de MIB non propriétaires

Ex : MIB RDBMS (bases de données relationnelles) RFC 1697

49
Les Traps

Trap lié à une variable :

50
Les Traps

Recevoir les traps avec net-snmp

51
Configuration d'un agent

Important de configurer

SysLocation

SysContact

SysName

Communautés Read-write et Read-only

Et limiter les adresses IP desquelles on (le manager) peut se
connecter

Destination trap

Adresse IP du manager

52
Managers SNMP évolués
Observium

53
54
55
56
57
Exemple sur site demo.observium.org

58
Onglet ports

59
Exemple avec un Mac

60
Automatisation des tâches systèmes
Puppet
Puppet

On résume :

Facter assemble des infos localement (type de système, etc)
dont se sert puppet pour savoir quelle recette appliquée

Les types s'organisent en classes avec des notions
d'héritage

Les nœuds correspondent à des
clients sur lesquels on applique des
classes
Puppet

Après, ça se complique, les classes sont organisées en
templates (plus génériques)

Puis on a la notion de module qui groupe toute la logique
et les fichiers pour une application

Dans la pratique, on part de module déjà existant et on
adapte à ses besoins
Puppet

Alternatives à puppet

Il en existe plusieurs

Chef

Ansible (semble beaucoup plus simple)
M3105 – Supervision de réseaux

Service DNS

Guillaume Urvoy-Keller
urvoy@unice.fr
DNS: Domain Name System
➢ Base de données distribuée implantée par une hiérarchie de serveurs
de noms

➢ Protocole de niveau applicatif


➢ Protocole client/serveur
➢ Suite de requêtes/réponses

➢ Utilise UDP comme couche transport


➢ Port : 53
➢ UDP est suffisant car requêtes/réponses tiennent dans un datagramme
➢ Avec TCP, il faudrait établir la cx → perte de temps!
➢ Si requête (ou réponse perdue) le client réémet au bout d’un certain temps

➢ Sur windows/unix, commande nslookup


2
Services DNS


Traduction nom adresse IP

www.truc.com  121.7.106.32

Alias de machines

Noms canoniques, alias

Ex: une entreprise achète un gros serveur qu’elle
nomme grosserveur.entreprise.com

Grosserveur.entreprise.com est le nom canonique

Ce serveur est le serveur de mail de l’entreprise  alias
mail.entreprise.com pour grosserveur.entreprise.com

Ce serveur est le serveur web aussi  alias www.entreprise.com
pour grosserveur.entreprise.com

3
Services DNS

Alias des serveurs de mail

Vous utilisez copain@truc.com quand vous écrivez un mail

Truc.com est un nom de domaine

Le DNS permet de trouvez le serveur de mail pour un domaine

Par exemple truc.com aura pour serveur de mail mail.truc.com

On résoud ensuite l’adresse IP de mail.truc.com

4
Services DNS

Distribution de charge

Ex: serveurs Web repliqués : ensemble d’adresse IP
correspondant à un même nom canonique

www.google.com correspond en fait à plusieurs serveurs
physiques, donc plusieurs adresses IP

5
Services DNS

Distribution de charges (suite)

Si vous faites plusieurs requêtes à la suite sur google.com, l’ordre des
adresses change  permet de répartir la charge car votre client prend
la première adresse

6
Base de données hiérarchique,
distribuée
Serveur DNS racine (root)

Serveurs DNS com Serveurs DNS org Serveurs DNS edu

Serveurs DNS Serveurs DNS Serveurs DNS


Serveurs DNS Serveurs DNS
w3.org mit.edu stanford.edu
yahoo.com Amazon.com

Client DNS de votre machine veut obtenir l’IP de amazon.com (1ère


approximation!)

client interroge le serveur racine pour trouver un serveur pour com

client interroge un serveur DNS pour com pour trouver un serveur
pour amazon.com

client interroge un serveur DNS amazon.com pour avoir l’IP de
www.amazon.com

7
3+1 classes de serveurs DNS
➢ Serveurs Racines: 13 dans le monde
➢ Le saint des saints!
➢ « Root servers » en anglais
➢ Serveurs de domaine de premier niveau
➢ « TLD (top level domain) servers » en anglais
➢ Serveurs ayant autorité sur un domaine
➢ « Authorized servers » en anglais

➢ Serveur local
➢ Géré par l’entité qui vous fournit l’accès Internet
➢ Adresse serveur local fournit à la configuration de la machine
➢ Ne font pas stricto sensu partie de la hiérarchie mais servent
de point d’entrée pour les clients DNS des machines
➢ Mais souvent, serveur local est un serveur ayant autorité 8
DNS: Les serveurs DNS racines

Contactés par les serveurs DNS locaux lorsqu’ils ne savent pas traduire un
nom

Serveur DNS racine:

Le serveur racine connait la traduction ou connait un serveur ayant
autorité!

a Verisign, Dulles, VA
c Cogent, Herndon, VA (also LA)
d U Maryland College Park, MD k RIPE London (also 16 other locations)
g US DoD Vienna, VA
h ARL Aberdeen, MD i Autonomica, Stockholm (plus 28
j Verisign, ( 21 locations)
other locations)
e NASA Mt View, CA m WIDE Tokyo (also Seoul,
f Internet Software C. Palo Alto, CA Paris, SF)
(and 36 other locations)

13 serveurs racines
dans le monde
b USC-ISI Marina del Rey, CA
l ICANN Los Angeles, CA

9
TLD and Authoritative Servers

Top-level domain (TLD) servers:

responsables de com, org, net, edu, int, etc, et de toutes les
extensions de nom de pays

Ex:

l’entreprise Network Solutions maintient des serveurs pour le TLD com

Educause pour le TLD edu


Authoritative DNS servers:

Serveurs DNS d’organisations qui fournissent la traduction
nom/adresse IP pour les serveurs de ces organisations (ex:
Web, mail).

Les serveurs sont opérés par l’organisation elle-même ou un
fournisseur de service (entreprise privée)

10
Exemple de résolution
de nom
root DNS server

La machine cis.poly.edu
veut l’adresse IP de
gaia.cs.umass.edu 2
3
TLD DNS server
4
Requête itérative 5
 Le serveur contacté
répond avec un serveur local DNS server
dns.poly.edu
plus bas dans la
hiérarchie (“plus près”) à 7 6
1 8
contacter
 Cela veut dire qu’il fournit
authoritative DNS server
l’adresse IP du serveur à dns.cs.umass.edu
contacter et pas le nom Machine initiant
de ce serveur la requête DNS
cis.poly.edu 11

gaia.cs.umass.edu
Exemple de résolution
de nom root DNS server

Requête récursive : 2 3
 On demande au serveur
7 6
suivant de chercher lui-
même TLD DNS server
 Ce faisant, on augmente
sa charge de travail! local DNS server
 En général, la requête est dns.poly.edu 5 4
itérative
1 8
 Sauf entre la
machine qui initie et
son serveur local authoritative DNS server
dns.cs.umass.edu
(voir transparent
Machine initiant
précédent) la requête DNS
cis.poly.edu
gaia.cs.umass.edu
12
DNS: mise en cache des réponses

A chaque fois qu’un serveur apprend une traduction, il la
stocke

On dit qu’il la cache

Les entrées cachées ont une période d’expiration 
après cette période, le serveur les détruit

Les serveurs de noms locaux cachent les adresses
IP des serveurs TLD

Ainsi, les serveurs root sont moins souvent visités

13
Enregistrements DNS


DNS: base de données distribuée


Base de données : collection de données ayant une
structure similaire

Par exemple : (nom, numéro de téléphone)


Ces données sont appelées enregistrements (records en
anglais)

Pour le cas du DNS, on parle de “resource record” ou RR


Distribuée : les RR sont distribués sur un ensemble de
machines physiques (les serveurs DNS)

14
Enregistrements DNS
RR format: (nom, valeur, type, ttl)

 Type=A  Type=CNAME
 nom =alias
 nom = machine
 valeur = nom canonique (réel)
 valeur = addresse IP
www.lemonde.fr est réellement

 Type=NS www.lemonde.edgesuite .net


 nom = domain (e.g. unice.fr)
 valeur = nom du serveur
DNS ayant autorité sur le  Type=MX
domaine  valeur est le nom du serveurde
mail associé au nom
15
Comment insérer des
enregistrements dans le DNS?

Exemple: une jeune pousse (startup) “Network Utopia”


Etape 1: fait enregistrer le nom networkuptopia.com auprès d’une
entité accréditée appelée DNS registrar (e.g., Network Solutions)

NetworkUtopia doit fournie les noms et les adresses IP de serveurs de
nom (un primaire, un secondaire) ayant autorité pour son domaine

registrar introduit les RRs correspondant dans le serveur TLD com :

(networkutopia.com, dns1.networkutopia.com, NS)


(dns1.networkutopia.com, 212.212.212.1, A)


Etape 2: insertion par Network Utopia d’un RR de Type A pour
www.networkuptopia.com et de Type MX pour networkutopia.com
dnas SON serveur ayant autorité

16
Mise en œuvre DNS
➢ Côté client
➢ Le « resolver » (résolveur)
➢ Son seul rôle est d'interroger le serveur DNS local

➢ Coté serveur
➢ démon « named » de la suite logicielle bind (la plus
populaire – plus de 60% des serveurs)
➢ Fichier contenant la base de données pour la ou les
zones sur lesquels le serveur a autorité

17
Zones
➢ La racine est notée avec un ''.''
➢ Important, comme le ''/'' dans un chemin de fichier!!

18
Zones vs domaines
➢ Le domaine est une partie de l'arbre global
➢ La zone est ce dont un serveur est responsable
➢ Ex : le serveur en charge de la zone ca connait
les @ IP des serveurs qui gèrent les zones :
➢ ab.ca
➢ on.ca
➢ qc.ca

19
Zones et zones inverses
➢ Un être humain préfère voir des noms que des
adresses IP → on maintient une zone dite
inverse
➢ Cette zone est attachée à la hiérarchie DNS
➢ La zone inverse est hiérarchique, comme la
zone directe → on doit inverser l'ordre des
octets des adresses

20
Fichiers de zone
➢ On y trouve :
➢ Les enregistrements SOA (Start of Authority)
➢ movie.edu : nom du domaine
➢ IN : Internet (valeur par défaut)
➢ Terminator.movie.edu : nom du serveur
➢ al.robocop.movie.edu → al@robocop.movie.edu :
personne à contacter
➢ Autre infos → pour le serveur esclave

21
Fichiers de zone
➢ TTL : valeur globale que les clients DNS
devront utiliser pour tous les résultats obtenus
depuis le serveur
➢ NS record:
➢ Serveur ayant autorité
➢ Celui du SOA puis au moins un autre...

22
Fichiers de zone
➢ Adresses IP et Alias

23
Fichiers de zone
➢ Serveurs de mail
➢ Enregistrements MX
➢ On peut en spécifier plusieurs et mettre des
priorités

24
Fichiers de zone inverse

25
Zone inverse

26
Fichier de config global
➢ Indique pour quelles
zones le serveur est
primaire (ou
secondaire)

27
Serveur esclave

28
Serveur secondaire
➢ Numéro de série donné par primaire pour le
fichier de base
➢ Paramètre : quand le téléchargement se fait
dans le primaire

29
Les autres fichiers d'un serveur
➢ Connaissance des @ IP des serveurs root
(db.root)
➢ Fichiers pour loopback (db.127)
➢ etc.

30
Configuration client linux
➢ Fichier /etc/resolv.conf
➢ Mis à jour par DHCP ou manuellement
➢ Domaine → domaine par défaut ajouté si nom n'est
pas complet, ex : ftp kheops et non ftp
kheops.unice.fr
➢ Nameserver : si plusieurs, essaie dans l'ordre avec
des timeouts

31
Et pour finir... (côté serveur)
➢ Notion de forwarder : si vous voulez que les
requêtes allant vers l'extérieur passe par un
serveur spécifique

➢ Distribution de charge
➢ Fait automatiquement si plusieurs champs avec
même nom et IP différentes

32
Et pour finir … (côté client)
➢ Que se passe-t-il si un client reçoit plusieurs
serveurs ayant autorité?
➢ Il les interrogent les uns après les autres
➢ Un par requête client
➢ Il choisit celui avec le temps d'aller-retour le plus
petit
➢ Le plus proche

33
M3105 – Supervision de réseau
LDAP

Guillaume Urvoy-Keller
urvoy@unice.fr
Sources document
➢ Cours Pierre Mathieu TRC9
➢ Tutoriel LDAP L. Mirtain 1999
➢ UNIX AND LINUX SYSTEM ADMINISTRATION
HANDBOOK – Nemeth et al. Prentice Hall
2011

2
Introduction
➢ Entreprises ont besoin de distribuer des
données :
➢ Email
➢ Téléphone
➢ Comptes informatique
➢ Solution incontournable : LDAP – Lightweigth
Directory Access Protocol
➢ Standardisé par IETF
➢ Dans le monde Windows, Active Directory, pour
gérer les machines et les comptes basé sur 3
LDAP
Exemple d'annuaire
➢ Le DNS
➢ Correspondance nom/domaine distribuée
➢ LDAP pour maintenir des informations sur les
utilisateurs dans une entreprise
➢ Souvent pour permettre le login
➢ Permet aussi aux clients mail de compléter les
noms
➢ → LDAP fait pour interfacer avec pleins d'applications

4
LDAP – Applications clientes

5
Exemple d'informations stockées
➢ Un exemple typique d'une entrée dans
/etc/passwd exprimée sous forme LDAP
➢ (Version simplifiée)

6
Exemple d'informations stockées
➢ Dans l'exemple précédent :
➢ Les données sont entrées sous un format qu'on
appelle LDIF
➢ Les données sont stockées dans la base LDAP
sous une forme différente
➢ Mais la possibilités de convertir dans les deux sens
Base de données ←→ LDIF est une des clefs du
succès de LDAP

7
Exemple d'informations stockées
➢ Les entrées LDAP sont organisées de manière
hiérarchique avec un identifiant unique par
entrée appelé dn

➢ Données organisées en arbre


➢ dn donne chemin dans l'arbre
➢ dc=navy, dc=mil : schéma typique où on utilise
le domaine DNS pour définir la racine, ici
navy.mil 8
LDAP en détail
Un service d'annuaire électronique, c'est en plus...
➢ un protocole qui permet l'accès au contenu
➢ une syntaxe qui permet d’interroger la base

➢ Des techniques d'authentification, de


chiffrement et de contrôle de l'accès aux
données

9
Historique

Voir site IETF pour RFC plus récentes

10
LDAP
LDAP définit :
➢ le protocole -- comment accéder à l’information contenue dans l’annuaire,
➢ un modèle d’information -- le type d’information contenu dans l’annuaire,
➢ un modèle de nommage -- comment l’information est organisée et
référencée,
➢ un modèle fonctionnel -- comment on accède à l’information,
➢ un modèle de sécurité -- comment données et accès sont protégés,
➢ un modèle de duplication -- comment la base est répartie entre serveurs,
➢ LDIF -- un format d’échange de données.
➢ → back-up notamment
11
LDAP – le protocole

12
LDAP – le protocole

13
LDAP – le protocole

14
LDAP – le modèle d'information
Définit le type de données pouvant être stockées dans
l’annuaire.
➢ L’entrée (Entry) = élement de base de l’annuaire = les
informations sur un objet de l’annuaire.
➢ Ces informations sont représentées sous la forme
d’attributs décrivant les caractéristiques de l’objet.
➢ Les objets et les attributs appartiennent à des classes
d'objets/attributs normalisées.
➢ Le schéma de l’annuaire définit la liste des classes
d’objets qu’il connaît.
15
Les attributs

16
Les classes d'objets

17
Les classes d'objets
➢ Une entrée va héritée d'une ou de plusieurs
classes
➢ A la mode des langages objets.

➢ Les classes elles-mêmes sont organisées en


une hiérachie

18
Les classes d'objets

19
Les classes d'objets

20
Attention!!!
➢ Vous ne modifiez pas les objets et les attributs
➢ Il y en suffisamment de normalisés pour répondre à
vos besoins

➢ Par contre, vous créez votre hiérarchie des


données où chaque entrée aura une ou
plusieurs classes et donc plusieurs attributs!

21
Organisation des données dans la
base

22
Organisation des données dans la
base

23
Comment nommer une entrée

24
Choix du suffixe de la base

25
26
La base LDAP peut-être distribuée

27
Le modèle fonctionnel = comment
interroger la base

28
Interrogation LDAP

29
Exemple

Machine h sur port p (389 = port par défaut)

On cherche tout ce
qui a un cn commençant
par ned

Mot de passe sera demandé en interactif


Mot de passe de l'utilisateur donné par D

30
Exemple

31
Accès au serveur et aux données

32
Authentification

33
Le contrôle d'accès

34
Le contrôle d'accès

35
Le chiffrement
➢ LDAPs ou LDAP avec TLS
➢ LDAPs → SSL sur port dédié
➢ LDAP avec TLS
➢ SSL mais sur le même port
➢ On démarre SSL à la volée si le client le demande

36
37
Slapd : LDAP daemon

38
39
40
41
PAM: Pluggable Authentication
Module
➢ Spécifique à Unix
➢ De nombreuses commandes (ex: passwd) ou
démons ont besoin d'authentifier l'utilisateur
➢ Au « bon vieux temps »
➢ Lecture du fichier /etc/passwd
➢ Problème : changement de format de ce fichier ou
utilisation de NIS (base de données centralisée des
mots de passe) demande de ré-écrire et recompiler
tous ces programmes/démon

42
PAM
➢ Idée derrière PAM : une librairie dynamique
pour les commandes/démons et un fichier de
config par commande/démon.
➢ Délégation de l'authentification

➢ Seul le fichier de config (texte) doit être modifié


– plus de recompilation!
➢ Comment savoir si une commande est pam-
ifiée :
➢ ldd cmd | grep pamlib.so 43
Un fichier par application

44
PAM : fichier de config
➢ Stockés dans le repertoire /etc/pam.d.
➢ Un fichier contient 3 parties en général : passwd, auth,
session, account
➢ Chaque partie contient des lignes du type
auth sufficient pamrootok.so
➢ En fin de ligne, on trouve un module PAM qui va
retourner : succès ou erreur
➢ Le « control-flag » qui vaut sufficient,
required,requisite, optional, etc
➢ A chaque invocation, retour d'une seule valeur :
succès ou erreur 45


46
Architecture PAM : les modules

➢ Les modules implémentent les fonctions


d'authentification, de vérification des droits d'accès.
➢ Il faut regarder leur documentation (Linux PAM
Website) 47
PAM dans le système Unix

48
PAM : les règles
➢ Règles :
➢ si un sufficient → Succès global
➢ Si aucun sufficient, tous les required doivent réussir
➢ Requisite : si on échoue → échec global

➢ A retenir :
➢ PAM peut utiliser ldap ou kerberos pour
l'authentification
➢ Modules pam.ldap ou pam.krb
49
PAM : exemple
➢ Partie Auth ci-dessous
➢ Si utilisateur root → c'est bon
➢ Timestamp → si authentification gardée en cache,
alors c'est bon aussi
➢ Sinon, doit remplir les conditions de system-auth

50
Nsswitch
➢ Name Service Switch
➢ Wikipedia : autorise le remplacement des
traditionnels fichiers Unix de configuration (par
exemple /etc/passwd, /etc/group, /etc/hosts) par
une ou plusieurs bases de données
centralisées (ldap, etc)

51
M3105 : Gestion des logs avec ELK

Guillaume Urvoy-Keller

September 25, 2017

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Sources documents

James Turnbull, the logstash book


https://www.logstashbook.com/
Site Web elasticsearch : https://www.elastic.co/fr/
Présentation C. Düpmeier, KIT :
https://indico.scc.kit.edu/indico/event/89/session/
12/contribution/56/material/slides/

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Problématique

Vous gérez un grand nombre de machines physiques, virtuelles


(légères comme des containers ou lourdes)
Vous souhaitez consolidez les logs, c’est-à-dire les rassembler à
un endroit.
Vous souhaitez pouvoir naviguer dans ces logs.

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


ELK https://www.elastic.co/fr/

Logstash : récupération des logs, filtrage et mise en forme au


format JSON
Elasticsearch : indexation des entrées
Kibana : exploration et visualisation

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Logstash

Implémenté en JRuby et tourne dans une JVM (machine virtuelle


Java)
Collecte des données en ouvrant des ports d’écoute pour chaque
type, exemple log the syslog sur un premier port, log apache sur
un second,etc...
Une fois les données collectées, elles peuvent être filtrées et
enrichies
On choisit ensuite où elles peuvent être envoyées, par exemple
Elasticsearch ou un outil d’affichage comme Graphite

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Logstash - fichier de configuration
On retrouve 3 parties correspondant aux 3 fonctions :

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Logstash - fichier de configuration
Notez les ports tcp et udp d’écoute et le filtrage fait qui enrichit
l’information:

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Logstash - format JSON

Java Serial Object Notation. Une suite de champs/valeurs

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Logstasg - filtre

grok
Un exemple de plugin de filtre : grok. Permet ici de découper une
chaine de caractères en champs qui pourront être indexés par
Elasticsearch

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Envoi des données à Logstash

Installation de logstash directement sur la machine concernée :


lourd
Installation d’un client léger type Filebeat
Syslog peut envoyer des logs sur des machines distantes.

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Elasticsearch

écrit en Java
Basé sur le moteur d’indexation Apache Lucène
On peut ajouter un schéma (similaire à un schéma de base de
données)
Peut fonctionner en cluster pour le passage à l’échelle
On peut décider quelles données on garde dans elasticsearch et
sur lesquelles on crée des index de recherche
Garder en mémoire : la création d’un index accélère la recherche
mais occupe de l’espace mémoire

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Elasticsearch -Index

Ecrire un objet (de type employé) dans un index (megacorp) au travers


de l’API REST (accès à l’application structurée comme des objets
avec lesquels on interagit via des méthodes HTTP)

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Elasticsearch - Index
On relit l’objet une fois ajouté :

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Elasticsearch - Index
On cherche dans la base :

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Kibana
Pour naviguer dans les index elasticsearch, on va souvent utiliser un
outil graphique type Kibana.

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK


Kibana

On va ensuite former des dashboards (écrans personalisés) en


sélectionnant les champs dans les index générés par Elasticsearch

Guillaume Urvoy-Keller M3105 : Gestion des logs avec ELK

Vous aimerez peut-être aussi