Supervision de réseau - Master Informatique première année

Transcription

Supervision de réseau - Master Informatique première année
Supervision de réseau
Master Informatique première année
Olivier Flauzac
[email protected]
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
1 / 58
Plan
1
Supervision de réseau
2
Le protocole SNMP
Introduction
Informations
Fonctionnement et protocole
3
Commandes UNIX
4
SNMP à travers un serveur Apache
SNMP et PHP
Connexion SSH depuis PHP
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
2 / 58
Plan
1
Supervision de réseau
2
Le protocole SNMP
Introduction
Informations
Fonctionnement et protocole
3
Commandes UNIX
4
SNMP à travers un serveur Apache
SNMP et PHP
Connexion SSH depuis PHP
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
3 / 58
Supervision
Généralités
nécessité de contrôler le fonctionnement d’un réseau
collecter les différents paramètres d’exécution
étudier les données collectées
définir des seuils d’alerte
être alerté des dysfonctionnement
configurer les entités du réseau à distance
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
4 / 58
Contrôle
Eléments contrôlables
ordinateurs
serveurs
ordinateurs “utilisateurs”
équipements réseau
routeur
commutateurs ...
périphériques réseau
imprimante
tout élément connecté capable d’interpréter une requête
machine à café
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
5 / 58
Informations collectées (1/2)
Informations réseau
traffic réseau “indifférencié”
traffic réseau “différencié”
protocole (TCP, UDP)
port / application
connexions
Etat
charge CPU
occupation mémoire
éléments système
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
6 / 58
Informations collectées (2/2)
Configuration système
info réseau (IP, DNS ...)
cartes et interfaces installés (drivers)
Configuration logicielle
système d’exploitation (type, version, révision ...)
logiciels installés (nom, version, date d’installation ...)
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
7 / 58
Alertes
Principe
non basé sur une interrogation
à l’initiative de “l’élément supervisé”
Types d’alertes
charge réseau
charge CPU
occupation mémoire
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
8 / 58
Plan
1
Supervision de réseau
2
Le protocole SNMP
Introduction
Informations
Fonctionnement et protocole
3
Commandes UNIX
4
SNMP à travers un serveur Apache
SNMP et PHP
Connexion SSH depuis PHP
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
9 / 58
Plan
1
Supervision de réseau
2
Le protocole SNMP
Introduction
Informations
Fonctionnement et protocole
3
Commandes UNIX
4
SNMP à travers un serveur Apache
SNMP et PHP
Connexion SSH depuis PHP
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
10 / 58
Généralités
SNMP
Simple Network Management Protocol
RFC 1157
protocole de supervision de réseau
Objectifs
gestion des équipements du réseau à distance
récupération d’informations
configuration
diagnostique de pannes
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
11 / 58
Environnement technologique
Ressources et protocoles
fonctionnement de type client / serveur pour les interrogations
exploitation du protocole UDP
léger et “rapide”
représentation des information avec ASN.1
“ouvert” : non limité à une plate-forme / architecture
exploitation sur un réseau hétérogène
extensible
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
12 / 58
Versions
SNMP v1
1988 normalisation IETF (RFC 1157)
intégré depuis dans la majorité des entités connectables
mécanisme de sécurité limité à une chaîne de caractères
SNMP v2
v2p, v2c, v2u, v2*
non issu d’un consensus de normalisation
essentiellement expérimentale
SNMP v3
mars 2002
intégration des éléments de sécurité :
usager
droits spécifiques pour les opérations
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
13 / 58
Equipements et informations
types d’équipements
éléments de réseau (routeur,
pont ...)
serveur
imprimante
machine de bureau
types d’informations
info de fonctionnement
(upTime)
infos système (version,
installation)
info matériel (processeur,
interfaces)
infos statistiques (interfaces,
charge ...)
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
14 / 58
Structure d’un système de supervision
Principe
échange d’informations entre des entités
collecte d’informations demandées
réception d’alertes (trap)
Eléments
équipements gérés (managed devices)
agents
systèmes de management réseau (network management systems
(NMS)
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
15 / 58
Equipemente gérés
Managed Devices
éléments de réseau
hub, routeur, serveur
dotés d’objets de gestion (managed objects)
informations sur le matériel
éléments de configuration
informations statistiques
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
16 / 58
Agents
Agents SNMP
application de gestion de réseau
résidant dans un périphérique
assure la transmission des informations
collect des données locales
mise en forme des données
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
17 / 58
Systèmes de management réseau
network management systems (NMS)
console de l’administrateur
gestion distante des unités du réseau
collecte d’informations
requêtes / réponses
configuration et modification
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
18 / 58
Plan
1
Supervision de réseau
2
Le protocole SNMP
Introduction
Informations
Fonctionnement et protocole
3
Commandes UNIX
4
SNMP à travers un serveur Apache
SNMP et PHP
Connexion SSH depuis PHP
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
19 / 58
Représentation des informations
MIB
Management Information Base
collection d’objets
structuration en base de données virtuelle
normalisation de la MIB
extensibilité de la base
possibilité de charger des “structures spécifiques”
adaptation aux spécificités des entités
extension offertes par les constructeurs
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
20 / 58
OID
Définition
Object IDentifer
identificateur d’un objet au sein de la MIB
identificateur unique associé à un élément
Structuration
définition selon un arbre
hiérarchisation des éléments
accès par le chemin entre la racine et l’élément
nommage des nœuds successifs
description numérotée
Identificateur de l’objet MIB
iso.org.dod.internet.mgmt.mib
1.3.6.1.2.1.
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
21 / 58
“Arbre”
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
22 / 58
Quelques groupes
MIB-II System Group : 1.3.6.1.2.1.1
sysDescr (1)
sysUpTime (3)
sysContact (4)
sysName (5)
sysLocation (6)
IP groupe 1.3.6.1.2.1.4
statistiques IP
éléments de routage
Protocoles de communication
TCP groupe 1.3.6.1.2.1.6
UDP groupe 1.3.6.1.2.1.7
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
23 / 58
Informations spécifiques
Gestion de l’hôte
.iso.org.dod.internet.mgmt.mib-2.host
.1.3.6.1.2.1.25
système
processus en cours d’exécution
installation de la machine
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
24 / 58
Quelques MIB spécifiques
Protocoles
ADSL
Token Ring
IPV6
Constructeurs
3Com
Lucent
CIsco
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
25 / 58
Plan
1
Supervision de réseau
2
Le protocole SNMP
Introduction
Informations
Fonctionnement et protocole
3
Commandes UNIX
4
SNMP à travers un serveur Apache
SNMP et PHP
Connexion SSH depuis PHP
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
26 / 58
Fonctionnement de SNMP
Schéma de fonctionnement
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
27 / 58
Requêtes
Ports
port de réception des agents : 161
port d’alerte de la station de gestion : 162
Requêtes SNMP
GetRequest : recherche d’une variable sur un agent
GetNextRequest : recheche de la variable suivante
GetBulk : recherche d’une ensemble de variables
SetRequest : modification d’une variable sur un agent
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
28 / 58
Réponses
Réponses
GetResponse : structure unique d’une réponse
ajout de noSuchObject en cas d’erreur
Trap
message à l’initiative des agents
alertes possibles :
ColdStart, WarmStart, LinkDown, LinkUp,
AuthentificationFailure
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
29 / 58
Trames snmp v1 et v2
Paquet SNMP
version
vesion utilisée pour les échanges
communauté
sécurité élémentaire (public, private)
PDU
données transmises
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
30 / 58
PDU SNMP v1, v2
Structure
type
GetRequest, GetnetRequest...
RequestID
numérotation des requêtes pour identification des réponses
Error Status
objet inexistant, permission
Data
suite de paires : ObjectName, Valeur
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
31 / 58
SNMP V3
Structuration
structuration en modules :
transport : permet l’indépendance de SNMP vis à vis des
protocoles utilisés (UDP, IPX ...)
traitement : décodage des paquets en fonction des versions de
protocole
sécurité : cryptage, authentification
application : définition des applications spécifiques qui exploitent le
protocole
accès : authorisation
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
32 / 58
Manager v3
Structure
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
33 / 58
Agent v3
Structure
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
34 / 58
Trame v3
Structure
version
en-tête
identificateur
taille maximale
contrôle et rapport (cryptage, authentification, attente de réponse)
sécurité
identification de la méthode
PDU
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
35 / 58
PDU SNMP V3
Structure
type
GetRequest, GetnetRequest...
RequestID
numérotation des requêtes pour identification des réponses
Error Status
objet inexistant, permission
Error Index
position de l’erreur
Data
suite de paires : ObjectName, Valeur
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
36 / 58
Sécurité de SNMP V3
Eléments de sécurité
authentification
localisation des mots de passe
cryptage
estampillage du temps
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
37 / 58
Plan
1
Supervision de réseau
2
Le protocole SNMP
Introduction
Informations
Fonctionnement et protocole
3
Commandes UNIX
4
SNMP à travers un serveur Apache
SNMP et PHP
Connexion SSH depuis PHP
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
38 / 58
Accès aux OID
snmptranslate
snmptranslate . 1 . 3 . 6 . 1 . 2 . 1 . 1 . 3 . 0
SNMPv2−MIB : : sysUpTime . 0
s n m p t r a n s l a t e −On SNMPv2−MIB : : system . sysUpTime . 0
.1.3.6.1.2.1.1.3.0
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
39 / 58
Accès aux Données
snmpget
snmpget −c p u b l i c −v 2c t e s t . net−snmp . org system . sysUpTime . 0
system . sysUpTime . 0 = T i m e t i c k s : (586731977) 67 days , 2 1 : 4 8 : 3 9 . 7 7
snmpgetnext
snmpgetnext −v 2c −c demopublic t e s t . net−snmp . org system . sysUpTime . 0
system . sysContact . 0 = Wes Hardaker wjhardaker@ucdavis . edu
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
40 / 58
Accès aux Données
snmpwalk
snmpwalk −v 2c −c demopublic t e s t . net−snmp . org system
system . sysDescr . 0 = HP−UX net−snmp B. 1 0 . 2 0 A 9000/715
system . s y s Ob j e c t I D . 0 = OID : e n t e r p r i s e s . u c d a v i s . ucdSnmpAgent . hpux10
system . sysUpTime . 0 = T i m e t i c k s : (586998396) 67 days , 2 2 : 3 3 : 0 3 . 9 6
system . sysContact . 0 = Wes Hardaker wjhardaker@ucdavis . edu
system . sysName . 0 = net−snmp
....
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
41 / 58
Plan
1
Supervision de réseau
2
Le protocole SNMP
Introduction
Informations
Fonctionnement et protocole
3
Commandes UNIX
4
SNMP à travers un serveur Apache
SNMP et PHP
Connexion SSH depuis PHP
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
42 / 58
Plan
1
Supervision de réseau
2
Le protocole SNMP
Introduction
Informations
Fonctionnement et protocole
3
Commandes UNIX
4
SNMP à travers un serveur Apache
SNMP et PHP
Connexion SSH depuis PHP
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
43 / 58
Principe
Requête HTTP
1
Requête SNMP
2
3
4
Réponse HTTP
Client WEB
Réponse SNMP
Serveur WEB - PHP
Elément réseau
Problème possible
temps de réponse de SNMP
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
44 / 58
Installation
Procédure
utilisation d’un gestionnaire de packages
installation de la lib SNMP (net-snmp)
installation de SNMP pour PHP
Test
relancer apache !
rechercher l’extension SNMP dans une page phpinfo
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
45 / 58
Opérations possibles
PHP SNMP
ensemble des opérations classiques SNMP
snmpget
snmpset
snmpwalk
...
accès à l’aide de fonctions de la bibliothèque
gestion des appels effectué par PHP
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
46 / 58
snmpget
Prototype simplifié
s t r i n g snmpget ( s t r i n g $hostname ,
s t r i n g $community ,
string $object_id )
Exemple
<?
$ s y s c o n t a c t = snmpget ( " 1 2 7 . 0 . 0 . 1 " ,
" public " ,
" system . SysContact . 0 " ) ;
?>
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
47 / 58
snmpgetnext
Prototype simplifié
s t r i n g snmpgetnext ( s t r i n g $host ,
s t r i n g $community ,
string $object_id )
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
48 / 58
snmpwalk
Prototype simplifié
a r r a y snmpwalk ( s t r i n g $hostname ,
s t r i n g $community ,
string $object_id )
Exemple
<?php
$a = snmpwalk ( " 1 2 7 . 0 . 0 . 1 " , " p u b l i c " , " " ) ;
f o r e a c h ( $a as $ v a l ) {
echo " $ v a l \ n " ;
}
?>
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
49 / 58
snmpset
Prototype simplifié
b o o l snmpset ( s t r i n g $hostname ,
s t r i n g $community ,
string $object_id ,
s t r i n g $type ,
mixed $value
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
50 / 58
Plan
1
Supervision de réseau
2
Le protocole SNMP
Introduction
Informations
Fonctionnement et protocole
3
Commandes UNIX
4
SNMP à travers un serveur Apache
SNMP et PHP
Connexion SSH depuis PHP
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
51 / 58
Limite de l’utilisation de l’extension SNMP
Fonctions SNMP
appel aux fonction de la bibliothèque standard de Net-SNMP
passage des informations au format ASN.1
passage des informations en clair :
possibilité de "captage" des communautés
possibilité de "captage" des mots de passe
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
52 / 58
Une autre approche : Utilisation d’un shell séurisé
Utilisation d’une connexion SSH : Principe
1
requête du client vers la page PHP
2
connexion du script PHP à un serveur SSH
3
"passage" de commandes Net-SNMP dans le shell sécurisé
4
récupération des résultats par la page PHP
5
traitement et affichage (si nécessaire) des résultats
6
réponse à la requête du client
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
53 / 58
6
Client
Serveur WEB
3
5
Serveur SSH
Requête SNMP
2
Requête SSH
1
Requête HTTP
Principe
4
Elément réseau
Problème possible
temps de réponse de SSH + temps de réponse SNMP
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
54 / 58
Mise en œuvre : actualisation du système
Mise à jour du système
apt−g e t update
apt−g e t upgrade
Installation
apache2 + php5 + php5-dev + openssl + libssl-dev + g++-3.4 +
make
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
55 / 58
Mise en œuvre : mise en place de la lib
libssh2
http://ovh.dl.sourceforge.net/sourceforge/libssh2/libssh2-0.14.tar.gz
. / c o n f i g u r e && make a l l
install
Le module ssh2
http://pecl.php.net/get/ssh2-0.10.tgz
phpize && . / c o n f i g u r e −−w i t h−ssh2 && make
copie du module dans le répertoire des modules PHP
définition de l’extension PHP ssh2
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
56 / 58
Mise en œuvre : Exemple
Exemple PHP
<?
/ / é t a b l i s s e m e n t de l a connexion
$conn = ssh2_connect ( ’ l o c a l h o s t ’ , 2 2 ) ;
/ / t e s t de l a connexion
i f ( $conn )
echo " connexion r é u s s i e \ n " ;
else
exit ( 1 ) ;
// authentification
ssh2_auth_password ( $conn ,
’ log ’ ,
’ pass ’ ) ;
/ / e x é c u t i o n d ’ une commande s u r l ’ hôte
$stream = ssh2_exec ( $conn ,
’ snmpwalk −v 2c −c p u b l i c l o c a l h o s t ’ ) ;
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
57 / 58
Mise en œuvre : Exemple suite
Exemple PHP
/ / mise en p l a c e du mode b l o q u a n t :
/ / a t t e n t e de r é c e p t i o n des données
s t r e a m _ s e t _ b l o c k i n g ( $stream , t r u e ) ;
/ / l e c t u r e des données i s s u e s du f l u x créé
while ( $ i n = f r e a d ( $stream , 8192 ) ) {
/ / a f f i c h a g e f o r m a t é des données
echo n l 2 b r ( $ i n ) ;
}
?>
Olivier Flauzac (URCA)
Supervision de réseau
[email protected]
58 / 58

Documents pareils