Contrôle les adresses IP et toutes leurs modifications

phpIPAM, comme son nom l’indique, concerne la gestion et de l’administration, au moyen du langage PHP , des adresses de protocole Internet (en anglais “Internet Protocol Address Managament” et que nous abrégerons par IPAM), ce qui donne au logiciel un nom tout à fait unique, donc mnémonique (but du nom ?). Dans cet article, nous verrons comment utiliser phpIPAM plutôt comme un outil auxiliaire, même si nous verrons qu’il comporte certains composants basés sur la surveillance. Allez !

phpIPAM et Pandora FMS

phpIPAM

Dans un article précédent, nous expliquions ce qu’est une calculatrice IP et son fonctionnement mis en œuvre dans Pandora FMS. Il est certain que depuis mai 2014 (et officiellement publié en version 5.1 ). Pandora FMS comprend IPAM comme extension très utile à la gestion, la découverte, les associations d’agents existants, l’enregistrement des commentaires sur chaque IP adresses, et permettant aussi d’établir des dérogations du point de vue de la surveillance. Les adresses IP peuvent être détectées au moyen de ping ou des adresses IP fournies par les agents précédemment enregistrés : Pandora FMS sera chargé de nous faire les équivalences et les correspondances.

phpIPAM

Lorsque les détections sont régies par les agents sur Pandora FMS, nous avons l’avantage de connaître leurs systèmes d’exploitation représentés graphiquement dans l’extension IPAM. Nous pouvons définir des alertes pour le changement d’adresse IP, ainsi que pour afficher un aperçu de toutes les adresses ou de manière filtrée : périphériques actifs, périphériques gérés, etc. et ses combinaisons possibles.

Ainsi, quel est l’avantage d’utiliser phpIPAM?

phpIPAM

Il existe une large gamme de logiciels disponibles pour travailler avec IPAM et dans cet article, nous allons voir avec soin le logiciel phpIPAM comme outil auxiliaire mais d’abord, nous passerons en revue les concepts qui enveloppent les adresses Ipi : sans ce concept abstrait Internet, la surveillance serait beaucoup moins développée.

banniere bureau essai gratuit 100 appareil
banniere tablette essai gratuit 100 appareil
banniere mobile essai gratuit 100 appareil

Introduction

De nos jours, dans presque toutes les entreprises et les maisons, il y a un réseau local. À l’aube d’Internet, le système d’adresses IP a été planifié de manière à ce qu’il soit prévu de réserver trois types de réseaux à un usage privé dans les réseaux locaux. Ces adresses s’appellent adresses privées. Chaque organisation peut, au moyen de ces adresses privées, connecter ses périphériques et , chaque périphérique peut également posséder une ou plusieurs adresses IP . (Par exemple, un ordinateur portable peut être connecté par câble Ethernet, par son antenne “wifi” intégrée et également par une antenne “wifi” connectée par port USB. Généralement les serveurs Web sont redondants et disposent de 2 connexions Ethernet pour le trafic de données et au moins une connexion Ethernet pour la surveillance).

Les adresses sont répétées dans chaque organisation, mais il n’y a pas de problème car elles ne sont pas connectées les unes aux autres. et c’est d’où Internet vient, l’interconnexion de réseaux privés via le protocole de transfert d’adresse ) car sur Internet chaque adresse IP publique est unique et les routeurs obtiennent une adresse IP publique qu’ils «partagent» en interne, dans chaque organisation.

La pratique numérique (calculatrices IP)

De combien d’adresses IP avons-nous besoin dans notre organisation ?
Il existe trois classes pour usage privé :

  • Classe A: 10.0.0.0 à 10.255.255.255 (réseau 8 bits, hôte 24 bits).
  • Classe B: 172.16.0.0 à 172.31.255.255 (réseau 16 bits, hôte 16 bits)
  • Classe C: 192.168.0.0 à 192.168.255.255 (réseau 24 bits, 8 bits hôtes)

En bref, la classe A autorise un seul réseau avec des millions d’adresses IPv4, la classe B autorise 16 réseaux et chacun d’entre eux des milliers d’adresses IP et la classe C autorise des centaines d’adresses IPv4 (exactement 253). parce que 0 et 255 ont d’autres utilisations que nous verrons plus tard). Il y a d’autres types de réseaux mais, qui, n’ont pas beaucoup d’intérêt dans cet article. Il s’agit de ceux de la classe D pour la multidiffusion «multicast » et la classe E de recherche et développement.

En réalité, les réseaux de la classe C sont adaptés à nos besoins, tant à la maison que dans les petites entreprises. Pour comptabiliser une ou deux douzaines de périphériques dans le routeur partageant une adresse IP publique pour tout le réseau privé, il est facile et pratique à transporter et à gérer.

Mais dans les autres cas, des milliers, voire des millions, d’adresses IP sont un véritable cauchemar, une entreprise très laborieuse . Pour ces cas, vous devez suivre exactement les mêmes étapes que l’Internet Corporation pour l’Attribution de Noms et de Numéros (I CANN): attribuer à chacun des départements un sous-réseau et ainsi déléguer l’autorité aux chefs de département. Mais tout noter et enregistrer , dépasse facilement les capacités d’un tableur et , raison pour laquelle , le logiciel phpIPAM a été développé.

Brève histoire de phpIPAM

La première version publique était 0.1 et pour novembre 2014 phpIPAM lança sa version 1.1 de la main et l’œuvre de M. Miha Petkovsek, en janvier 2016 version 1.2 et en juillet 2017 la version 1.3 est sortie.

Il est développé sous la modalité de logiciel libre, licence GNU 3 depuis juin 2015, date à laquelle les dépôts ont été transférés à GitHub et apparemment, sa source de financement est un don, à la fois de l’argent et de l’hébergement Web.. En fait, la page se trouve sur une machine virtuelle dédiée, avec l’aide d’une société de “webhosting”. Ce modèle de logiciel libre a rassemblé une communauté sélecte. C’est pour cela qu’il est difficile de trouver des informations dessus.

Installation de phpIPAM

Contrairement aux détails historiques, il existe de nombreux tutoriels sur phpIPAM sur le réseau, certains mieux que d’autres. Nous l’avons testé sur Ubuntu 16 et à partir de là nous avons obtenu les captures d’écran d’images que vous apercevaient. La première chose que nous avons faite à la fin de l’installation a été de télécharger notre propre logo à des fins d’évaluation et de saisir les données qui identifient notre serveur de test, y compris l’envoi de courriels. Cette étape est très importante pour recevoir les alertes, qui sont moins fréquentes en raison de la nature du travail.

phpIPAM

En bref, vous avez besoin d’un serveur de base de données MySQL, d’un serveur Web Apache, des autorisations appropriées du pare-feu firewall, lorsque nous explorons notre réseau ou nos réseaux locaux, voire même les sous-réseaux, ce qui nous amène au point suivant.

Sous-réseaux (ou plutôt : comment fonctionne phpIPAM)

Nous ne travaillons pas tous avec des sociétés d’hébergement Web ou des fournisseurs d’accès à Internet. Les exemples présentés ici sont basés sur des adresses privées. Nous vous assurons que tout ce qui est décrit ici s’applique sur l’Internet et il existe des organisations qui « se font de l’argent » avec l’aide de phpIPAM,qui donne à son tour la “FreeBSD Foundation”. Ainsi, tout cela n’est qu’un cycle sans fin.

Les rôles de phpIPAM sont de garder le compte et de stocker les informations dans une base de données MySQL de :

  • Nos appareils et leurs adresses IP.
  • Nos armoires ou racks informatiques
  • Nos circuits (avec l’aide des API Google Maps)
  • Il supporte l’authentification par LDAP, ce qui nous facilite déjà du travail.
  • Gardez une trace des réseaux privés virtuels.
  • Les NAT que nous avons créés pour notre équipement doivent être connectés en externe.
  • Vous devez même prendre des notes pour le reste du groupe dans une sorte de micro-Wikipédia ! (bien que nous ne recommandions pas de gérer les incidents, cela pourrait éventuellement être effectué par ordre chronologique, cause / effet / solution, pour éviter de faire deux fois la même erreur).
  • Aussi les sous-réseaux que nous avons créés.

Pour parler sous-réseaux et tâche de routine difficile à synchroniser entre les équipes de travail, nous devons d’abord expliquer comment ils sont gérés et à quoi ils servent. En 1980, les appareils responsables de la connexion à Internet étaient des appareils très basiques. Ainsi, la nécessité de créer des sous-réseaux de travail est apparue, mais les équipes n’avaient pas la technologie nécessaire. La solution consistait donc à créer des masques de sous-réseau afin de permettre à ces périphériques de déterminer rapidement si le message ou le datagramme reçu appartenait au sous-réseau désigné pour fonctionner.

C’est pourquoi le masque permet de distinguer dans l’adresse IP, la partie qui identifie le réseau de la partie qui identifie le périphérique , à l’exception des nombres binaires. Les masques de réseau ont le même format d’adresses IPv4 mais toujours avec des valeurs pour chaque octet, par exemple, un masque de réseau pour un réseau privé classe A que nous allons créer dans phpIPAM serait le suivant :

11111111.00000000.00000000.00000000

C’est-à-dire, en notation décimale, 255.0.0.0 puisque notre réseau privé peut ainsi contenir des millions d’adresses IPv4 (multiplication des trois derniers octets 255 x 255 x 255 = 16581375 environ parce que l’adresse zéro identifie le réseau et que 255 est utilisé pour le multicast). Maintenant, imaginons que oui, il est possible que nous ayons au moins un million de périphériques dans notre organisation. Comment géreraient-ils le transport et la livraison de packages ou de datagrammes avec un tel volume d’utilisateurs?

La solution pratique de ce temps consistait à appliquer une opération AND (une opération AND est une simple multiplication) à chaque adresse de paquet et masque de réseau, afin de pouvoir déterminer s’il s’agissait du réseau ou du sous-réseau. Supposons que un paquet soit adressé à 10.0.7.23 de notre réseau privé classe A.

00000010.00000000.00000007.00010111 <-package adressé à 10.0.7.23
11111111.00000000.00000000.00000000 <- masque de réseau 255.0.0.0
00000010.00000000.00000000.00000000 <-oper. ET résultats 10.0.0.0 (multiplication)

Voici quelque chose qui est implicite : notre masque de réseau, “celui que nous avons choisi”, est implicite car dans un réseau classe A , le premier octet identifie le réseau, soit 8 caractères, donc dans une notation appelée CIDR (ce qui implique l’adresse de notre réseau et le masque de réseau ensemble) est représenté par ce qui suit : 10.0.0.0/8

Création d’un sous-réseau privé

Maintenant, imaginons que dans notre réseau privé , classe A , nous avons besoin d’un sous-réseau sur lequel nous placerons les machines pour nos tests de programmation. Pour cela, 253 adresses IPv4 suffisent amplement. Par accord mutuel avec notre équipe, ils nous attribuent 10.0.0.0/24. Cela signifie que, dans le réseau privé , classe A 10.0.0.0, nous aurons attribué un masque de réseau 255.255.255.0 et pour revenir au dernier exemple numérique, mais avec notre masque de réseau :

00000010.00000000.00000007.00010111 <-package adressé à 10.0.7.23
11111111.11111111.11111111.00000000 <- masque de réseau 255.255.255.0
00000010.00000000.00000111.00000000 <-oper. ET résultats 10.0.7.0
(ce n'est pas notre réseau, le nôtre est identifié comme 10.0.0.0)
)

Sous-réseau public

À la fin du siècle dernier, nous avons réalisé que les adresses IPv4 s’épuisaient en raison de la croissance exponentielle d’Internet. C’est pourquoi le ICANN a réalisé que de très grands blocs étaient attribués à de nombreux fournisseurs d’accès Internet (“Internet Service Providers” ou “FAI”), ce qui a causé des adresses IPv4 inactives. C’est une décision digne de Salomon : affectez des masques de réseau à chaque fournisseur pour ajuster la taille appropriée et croyez-le ou non, leurs ordinateurs effectuent ces calculs des millions de fois par jour : comparez les adresses à des masques de réseau pour voir s’ils le sont dans son sous-réseau (actuellement, d’autres mécanismes sont déjà implémentés dans les modems, routeurs, concentrateurs et répéteurs existants, mais le concept de base reste le même). C’est pourquoi nous avons fait remarquer que de nombreuses organisations tirent parti de l’utilisation de phpIPAM pour enregistrer et planifier les adresses attribuées.

Sous-modèles avec masque de longueur variable

S’ils ont compris jusqu’ici ce que nous avons expliqué, certains universitaires ou professionnels pourraient être scandalisés Nous pouvons avancer au concept de masques de réseau de longueur variable : aussi simples qu’ils ne se limitent pas aux valeurs par octets (8, 16 et 24) mais à toute autre valeur, telle que 10.0.0.0/28 pour notre exemple (nous vous laissons pour vous exercer avec votre calculateur IP).

Création d’utilisateurs et de groupes dans phpIPAM.

Après que cette base conceptuelle, nous commençons par recommander que lorsque vous travaillez avec , phpIPAM commence par la création de groupes, puis d’utilisateurs. phpIPAM apporte par défaut deux groupes créés : groupe d’administrateurs et groupe d’invités. Cela nous permettra simplement de regrouper nos utilisateurs lors d’une recherche ou d’une visualisation ou d’avoir dans notre esprit une sorte d’ordrc’est-à-dire qu’il ne fournit aucun autre utilitaire de droits d’écriture ni d’héritage.

phpIPAM

Dans la partie création d’utilisateurs, nous aurons le panorama complet : créer un utilisateur tel que utilisateur normal ou administrateur tout en nous montrant les groupes que nous avons créés (en vous rappelant que la description du groupe ne la lie pas à son contenu, la classification des utilisateurs. Un groupe décrit comme “Administrateurs Distants” ne signifie pas que ses utilisateurs disposent de droits d’administrateur). Souvent, la simplicité est la bienvenue, avec l’utilisation des deux groupes créés, nous pouvons travailler à moins que l’organisation ne soit extraordinairement grande.

Lors de la création d’un utilisateur, il nous indiquera comment les utilisateurs seront authentifiés et nous ne verrons que deux options : pour la base de données locale et pour Apache, méthode obsolète basée sur des fichiers non recommandés. Notre choix s’appliquera à LDAP, mais nous devons d’abord activer sur notre serveur Apache la bibliothèque php-ldap et redémarrer le service. Au total, il existe sept formes d’authentification possibles :

  • Local.
  • Apache.
  • Active Directory (AD).
  • LDAP.
  • NetIQ.
  • Radius.
  • SAMLv2.

Calculatrice IP

Une fois que nous avons préparé le terrain pour travailler, nous pouvons créer nos réseaux et nos sous-réseaux. Le moyen le plus simple que nous constatons, consiste à accéder au calculateur IP intégré, entrez notre CIDR attribué ou celui que nous allons créer dans le cas des réseaux privés. phpIPAM calculera et affichera toutes les valeurs et proposera de créer un réseau avec ce résultat et même ses sous-réseaux.

N.B. : si certains sous-réseaux ou sous-réseaux phpIPAM se chevauchent, il nous l’indiquera par un avertissement en lettres rouges.

phpIPAM

Une fois que nous avons correctement défini les valeurs CIDR, nous pourrons attribuer auxgroupes d’utilisateurs les droits correspondants sur ce réseau ou sous-réseau (notez que les droits sont éventuellement hérités ici). Ici, nous soulignons à nouveau la manière curieuse de gérer les droits de lecture et d’écriture dans phpIPAM!

phpIPAM

Exploration de périphériques dans phpIPAM

Pour faciliter l’ajout de phpIPAM, il a l’avantage d’utiliser le programme ping pour contacter les périphériques de notre réseau ou sous-réseau précédemment créés, mais voici un élément intéressant, deux manières en plus d’une pour les périphériques déjà existants et une autre pour les nouveaux appareils :

    • Au moyen d’agents : semblable à Pandora FMS, c’est-à-dire un logiciel installé sur chaque machine et approprié au système d’exploitation actuel. Dans l’environnement Windows, Active Directory nous permettra de massifier cette tâche et sous GNU / Linux avec SSH et des scripts bien conçus, nous serons en mesure de gérer des centaines voire des milliers de machines à volonté.
    • Voici le nouveau et très utile :
      • Lors de l’installation de nouveaux périphériques, nous pouvons les configurer
      • Avec votre script respectif, on se connecte à l’API de phpIPAM.
      • Vérifiez la dernière adresse IP libre de cette plage.
      • Cette valeur est auto-assignée.
      • Confirmez phpIPAM et restez enregistré dans la base de données MySQL.
      • De cette façon, phpIPAM devient une sorte de DHCP à la différence qu’il n’est consulté qu’une seule fois : lorsque la machine ou le périphérique virtuel est installé (il peut aussi être réel et s’applique de la même manière mais il est évident qu’un être humain est responsable du processus, cela se produirait lors du montage des “racks” de la batterie de serveurs, qui contiennent à leur tour les machines virtuelles).
      • Actuellement, il existe des machines virtuelles qui peuvent même créer nos propres clients à volonté dans nos batteries de serveurs (tous ceux qui choisissent leur système d’exploitation pour l’hyperviseur que nous avons configuré avec phpIPAM).
      • Bien sûr, cela inclut également des routines d’élimination, au cas où les périphériques virtuels sont supprimés ou que les périphériques réels sont déplacés ou dissociés de leur travail.

phpIPAM : outil auxiliaire

phpIPAM peut également enregistrer nos serveurs DNS, surveiller les adresses IP inactives et les dispositifs avec un simple ping , fping ou pear ping.

phpIPAM

Il utilise des agents, enregistre et gère les NAT ainsi que la surveillance de base avec SNMP, mais nous devons d’abord configurer notre serveur Apache avec le module php-snmp. Ensuite, nous pouvons configurer les périphériques pour surveiller. Cela nous permettra même de créer des traps SNMP , qui sont utiles pour la création d’alertes d’événements. Pour une meilleure compression nous dédions une entrée complète sur les aspects fondamentaux à consulter au moyen de SNMP.

phpIPAM

phpIPAM : exportation et importation de données.

Pour terminer, phpIPAM a la possibilité d’importer ou d’exporter des données au format tableur des sections dont nous avons besoin ou nous pouvons exporter (mais pas importer) la base de données complète au format SQL ou dans une grande feuille de calcul.

phpIPAM

Dans le cas d’importation des données, nous devons suivre un protocole détaillé, afin d’avoir une compatibilité exacte des données :

phpIPAM

Automatisation de l’exportation de données

Bien que l’option tableur soit disponible, nous recommandons de développer via l’API des scripts permettant d’extraire des données mises à jour et de savoir s’il y a eu des modifications sur le réseau et quelles sont ces modifications, si nous avons ajouté ou supprimé des périphériques, nous-mêmes ou nos clients à qui nous avons délégué la création de machines virtuelles et ainsi pouvoir surveiller l’infrastructure complète avec Pandora FMS .

Pour aller un peu plus loin, nous pourrions également créer un plugin ou un plugin pour Pandora FMS consulter directement dans la base de données à la recherche de modifications, mais il s’agit d’un thème avancé, ce ne serait pas un plugin normal (évidemment avec droits lecture seule, toujours de phpIPAM à Pandora FMS).

Conclusion

Nous prévoyons un avenir prometteur si avec phpIPAM, créé dans un logiciel libre et auquel nous avons accès à son code source, nous avons réussi à obtenir des données sur les périphériques à surveiller, de manière presque entièrement automatisée, tout en maintenant les équipes de planification et de développement, d’infrastructure complètement séparée de l’équipement de surveillance et de maintenance. Nous remarquons donc une excellente relation symbiotique entre les deux produits logiciels !

Laissez-nous vos commentaires ou opinions et nous nous ferons un plaisir de vous répondre.

Shares