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