IPAM (IP Address Management) est un type d’outil qui permet la gestion des adresses IP de votre infrastructure. L’outil permet de consulter l’inventaire des adresses IP attribuables et attribuées. Dans cet article, nous allons mettre en place un IPAM open source nommé phpIPAM sur Ubuntu 22.04.
Pré-requis
Mettre à jour Ubuntu
Pour commencer, mettez à jour votre système avec les deux commandes suivantes :
sudo apt upgrade

sudo apt upgrade

Installer les dépendances pour phpipam
Nous avons besoin de quelques éléments pour notre installation car phpIPAM ne supporte pas encore la dernière version de php alors commençons par la commande suivante pour ajouter les paquets de PHP en version 7.4 :
sudo add-apt-repository ppa:ondrej/php

Pour installer phpIPAM nous avons besoin de plusieurs éléments :
- Apache2 est le successeur du serveur Web Apache, l’un des serveurs Web open source le plus populaire et le plus fiable au monde. Il traite les requêtes HTTP et propose du contenu Web aux utilisateurs.
- MySQL est un système de gestion de bases de données relationnelles open source réputé pour ses performances rapides et sa fiabilité. Il stocke, récupère et gère les données de diverses applications, servant souvent de base à de nombreux sites Web et applications professionnelles.
- PHP, quant à lui, est un langage de script open source largement utilisé, spécialement conçu pour le développement Web. Il permet aux développeurs de créer du contenu Web dynamique en exécutant des scripts côté serveur.
Lorsqu’ils sont combinés, Apache2, MySQL et PHP (souvent appelé pile « AMP ») fournissent un environnement robuste pour l’hébergement et la fourniture d’applications Web dynamiques comme phpIPAM. Par chance une seule commande suffit :
sudo apt install apache2 mysql-server php7.4 php7.4-mysql libapache2-mod-php php7.4-gd php7.4-ldap php7.4-curl php7.4-gmp php7.4-xml php7.4-mbstring git -y

Configurer Mysql
Une fois Mysql installé, il faut le configurer. Pour ce faire, utilisons la commande mysql_secure_installation pour configurer les paramètres de bases avec le compte root de notre base de données. Il ne devrait pas y avoir de mot de passe donc appuyez une fois sur « Entrée » :
sudo mysql_secure_installation

Il nous est demandé si l’on souhaite supprimer l’utilisateur anonyme. Celui-ci est un utilisateur qui a le droit de se connecter à votre base de données sans mot de passe. Par mesure de sécurité, il vaut mieux le supprimer donc écrivez « Y » et validez :

Mettez « Y » puis validez pour supprimer l’accès du compte root à distance afin d’éviter de vous faire intercepter votre mot de passe à travers le réseau.

Ensuite, supprimons une base de données qui a été créée par défaut lors de l’installation de MariaDB et qui ne sert à rien. « Y » puis validez :

Validons la configuration que nous avons effectuée en pressant « Y » puis validez :

Et voilà, notre système de base de données est installé et pré-configuré, il ne nous reste plus qu’à créer la base de données pour phpIPAM. Pour ce faire connectez-vous à mysql avec la commande suivante :
sudo mysql -u root

Une fois connecté, nous commençons par créer notre base de données où « phpipam » est le nom que vous souhaitez lui donner :
CREATE DATABASE phpipam;

On commence par créer un utilisateur :
CREATE USER 'utilisateur'@'localhost' IDENTIFIED BY 'mdp';

Puis pour finir on donne à l’utilisateur les droits sur la base de données.
GRANT ALL PRIVILEGES ON phpipam.* TO 'utilisateur'@'localhost';

On applique le changement et on quitte mysql :
FLUSH PRIVILEGES;
exit;

Installation de phpIPAM
Accédez au site Web officiel de phpIPAM ou utilisez Git pour cloner le référentiel. Pour ce guide, nous utiliserons Git :
sudo git clone https://github.com/phpipam/phpipam.git /var/www/phpipam/

On se déplace directement dans le dossier créé :
cd /var/www/phpipam

On bascule le répertoire de travail actuel vers la révision en cours :
sudo git checkout 1.5

Nous devons également installer des sous-modules, pour ce faire utilisez la commande suivante :
sudo git submodule update --init --recursive

On créer le fichier « config.php » pour que phpIPAM ai directement les informations de la base de données :
sudo cp config.dist.php config.php

On modifie le fichier « config.php » pour ajouter les informations de connexion à la base de données :
sudo nano config.php

Dans le fichier on renseigne les informations de la base de données créée précédemment :

On va positionner les bons droits sur le dossier de notre site Web pour que Apache2 puisse le gérer. Pour ce faire utilisons les deux commandes suivantes :
sudo chown -R www-data:www-data /var/www/phpipam/
sudo chmod -R 755 /var/www/phpipam/

Pour finir on va peupler la base de données que nous avons créée :
sudo mysql -u root -p phpipam < db/SCHEMA.sql

Apache2 configuration
Maintenant, il faut configurer Apache2 pour qu’il prenne en considération notre nouveau site web phpIPAM. Commençons par modifier la configuration de Apache2 :
sudo nano /etc/apache2/sites-available/000-default.conf

Voilà le contenu de mon fichier, il faut surtout bien modifier le lien vers « /var/www/phpipam » :

On active le mode rewrite nécessaire pour phpIPAM :
sudo a2enmod rewrite

Ensuite on redémarre Apache2 :
sudo /etc/init.d/apache2 restart

Finalisation configuration phpIPAM
Et hop on accès à l’interface web en allant à l’adresse suivante et on clique sur « New phpipam installation » :
http://localhost

On sélectionne « Mysql/MariaDB import instructions » pour laisser l’outil nous donner les instructions que nous avons déjà réalisées précédemment :

Si tout s’est bien passé, vous pouvez cliquer directement sur « Login », votre installation étant finalisée :

Pour se connecter, utilisez les identifiants par défaut avec le nom d’utilisateur « admin » et le mot de passe « ipamadmin ». A la première connexion vous devrez changer le mot de passe par défaut :

Et vous voici enfin sur l’outil, BRAVO 👌 Vous pouvez maintenant utiliser l’outil à votre convenance. Je ferais probablement un prochain article sur l’utilisation de phpIPAM 😉 !

Si l’article vous a plu et si vous aimez mon travail, vous pouvez faire un don en suivant ce lien :
