Articles dans la catégorie ’Réseau’
Installation de GLPI sous CentOS 7
GLPI (Gestionnaire Libre de Parc Informatique) est une solution libre de gestion de parc informatique. Il s’agit d’une application Web écrite en PHP où les différents éléments (matériel, logiciels, licences, contrats, interventions, …) constituant votre parc peuvent être organisés et gérés.
Dans cette documentation, nous allons installer la dernière version stable de GLPI (0.90.1) sur une distribution CentOS 7 de manière fonctionnelle. Cette procédure d’installation ne sera donc ni optimisée, ni sécurisée. Nous aurons besoin d’un serveur Web (Apache/HTTPD), d’une base de données de type MySQL (MariaDB remplace MySQL sous CentOS 7) et de PHP.
A noter qu’un paquet glpi est également disponible dans le dépôt EPEL (Extra Packages for Enterprise Linux). Nous n’utiliserons pas ce dépôt.
Ces opérations sont à réaliser en tant qu’utilisateur root.
– Désactivez SELinux de façon permanente à travers son fichier de configuration : vi /etc/selinux/config
SELINUX=disabled
– La prise en compte de ce changement nécessite un redémarrage de la machine : reboot
GLPI requiert l’installation d’extensions PHP (CType, FileInfo, GD, JSON, Mbstring, MySQLi, Session, Zlib). Certaines extensions sont incluses directement dans le paquet php et d’autres doivent être installées explicitement. Dans le cas où vous souhaiteriez mettre en place une méthode d’authentification externe, d’autres extensions PHP seront à prévoir. Dans notre exemple, nous utiliserons une base locale de comptes pour l’authentification.
– Installez les paquets suivants (serveur Apache/HTTPD, PHP, extensions PHP, serveur MariaDB et l’utilitaire wget) : yum install httpd php php-mysql php-gd php-mbstring mariadb-server wget
– Lancez le serveur MariaDB au démarrage de la machine : systemctl enable mariadb
– Lancez le serveur MariaDB : systemctl start mariadb
– Exécutez l’utilitaire mysql_secure_installation pour sécuriser l’installation de MariaDB : mysql_secure_installation
> Enter current password for root (enter for none): > OK, successfully used password, moving on... > Set root password? [Y/n] Y > New password: > Re-enter new password: > Remove anonymous users? [Y/n] Y > Disallow root login remotely? [Y/n] Y > Remove test database and access to it? [Y/n] Y > Reload privilege tables now? [Y/n] Y
Pour commencer, l’utilitaire mysql_secure_installation nous demande le mot de passe actuel de l’utilisateur root (celui de MariaDB). Ce mot de passe est vide par défaut. Ensuite, plusieurs questions vous sont posées pour sécuriser l’installation de MariaDB : affecter un mot de passe à l’utilisateur root, supprimer les connexions anonymes, désactiver la possibilité à l’utilisateur root de se connecter à distance, supprimer la base de données prédéfinie test et recharger les privilèges des tables.
GLPI nécessite la création d’une base de données spécifique à son utilisation.
– Lancez l’invite de commandes de MariaDB/MySQL : mysql -u root -p
> Enter password: > MariaDB [(none)]> CREATE DATABASE glpidb; > MariaDB [(none)]> GRANT ALL PRIVILEGES ON `glpidb` .* TO 'glpiuser'@'localhost' IDENTIFIED BY 'MotDePasse'; > MariaDB [(none)]> quit
Le mot de passe de l’utilisateur root est demandé. Il s’agit d’entrer le mot de passe que vous avez choisi précédemment. La première commande SQL créé la base de données glpidb. La deuxième commande créé et associe l’utilisateur glpiuser avec cette base de données en lui octroyant les autorisations adéquates. Vous êtes bien entendu encouragé à modifier le mot de passe de l’utilisateur glpiuser.
Nous allons maintenant configurer le serveur Web pour les besoins de GLPI.
– Éditez le fichier de configuration de PHP afin de préciser le fuseau horaire : vi /etc/php.ini
[Date] date.timezone = "Europe/Paris"
Lors de l’installation de GLPI, le script d’installation vérifie que les répertoires config et files ne soient pas accessibles.
– Créez le fichier de configuration pour interdire l’accès aux répertoires config et files : vi /etc/httpd/conf.d/glpi.conf
<Directory "/var/www/html/glpi/config"> AllowOverride None Require all denied </Directory> <Directory "/var/www/html/glpi/files"> AllowOverride None Require all denied </Directory>
– Lancez le serveur Apache/HTTPD au démarrage de la machine : systemctl enable httpd
– Lancez immédiatement le serveur Apache/HTTPD : systemctl start httpd
CentOS 7 introduit le concept de zone réseau avec le pare-feu firewalld. Ce qui permet d’appliquer des règles en fonction de la zone réseau sur lequel on se trouve. Par défaut, la zone réseau est nommée public. Nous allons autoriser le service http pour la zone public de manière permanente et recharger les règles.
– firewall-cmd –permanent –zone=public –add-service=http
– firewall-cmd –reload
Nous allons passer à l’installation de GLPI.
– Placez-vous dans le répertoire suivant : cd /usr/local/src/
– Téléchargez la dernière version stable de GLPI (0.90.1 lors de l’écriture cette documentation) à l’aide de l’utilitaire wget : wget https://github.com/glpi-project/glpi/releases/download/0.90.1/glpi-0.90.1.tar.gz
– Décompressez l’archive de GLPI à la racine des documents du serveur Web : tar -xzvf glpi-0.90.1.tar.gz -C /var/www/html/
– Modifiez le propriétaire de manière récursive sur le répertoire de GLPI : chown -R apache:apache /var/www/html/glpi/
A l’aide de votre navigateur Web, vous devez entrer l’adresse du serveur Web suivi de glpi (http://xxx.xxx.xxx.xxx/glpi/). Un assistant vous guide dans l’installation de GLPI.
Sélectionnez la langue française dans la liste déroulante.
Acceptez la licence d’utilisation.
Une nouvelle installation complète doit être choisie.
Plusieurs tests sont effectués pour vérifier si les extensions PHP et la configuration sont conformes aux besoins de GLPI.
Indiquez les paramètres de connexion à la base de données.
Sélectionner la base de données existante glpidb.
Les différentes tables sont alors créées dans cette base de données.
L’assistant vous indique les comptes utilisateurs prédéfinis.
– Supprimez le script d’installation de GLPI : rm -f /var/www/html/glpi/install/install.php
Vous pouvez maintenant vous authentifier à l’interface Web de GLPI avec l’utilisateur glpi dont le mot de passe par défaut est aussi glpi.
Depuis le menu Administration, et le sous-menu Utilisateurs, vous pouvez modifier les mots de passe attribués aux utilisateurs prédéfinis (glpi, post-only, tech et normal).
A quoi ressemble l’interface Web de OCS Inventory NG en préparation ?
OCS Inventory NG est une solution d’inventaire de parc informatique basée sur Apache/HTTPD, MySQL, PERL, PHP. Un agent installé sur les différentes machines, est chargé de récolter la configuration matérielle et logicielle à intervalle régulier. Ces informations sont transmises sur le réseau en HTTP(s) et sont stockées dans une base de données. Une interface Web permet de visualiser les détails de l’inventaire et d’accéder aux paramètres de configuration.
La version 2.2 beta 1 publiée en décembre 2014, introduit une nouvelle interface Web que je vous propose de découvrir en images.
Installer et compiler le module mod_rpaf avec la version 2.4 de Apache/HTTPD
Le module mod_rpaf permet de remplacer l’adresse IP du client dans l’en-tête des requêtes HTTP. Utile lorsque vous avez des reverse proxy devant votre serveur Web.
En essayant de compiler le module mod_rpaf avec la version 2.4 de Apache/HTTPD, vous obtiendrez l’erreur suivante lors de la compilation :
/usr/local/httpd-2.4.3/build/libtool --silent --mode=compile gcc -std=gnu99 -prefer-pic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/httpd-2.4.3/include -I/usr/local/httpd-2.4.3/include -I/usr/local/httpd-2.4.3/include -c -o mod_rpaf-2.0.lo mod_rpaf-2.0.c && touch mod_rpaf-2.0.slo mod_rpaf-2.0.c: In function 'rpaf_cleanup': mod_rpaf-2.0.c:150: error: 'conn_rec' has no member named 'remote_ip' mod_rpaf-2.0.c:151: error: 'conn_rec' has no member named 'remote_addr' mod_rpaf-2.0.c:151: warning: implicit declaration of function 'inet_addr' mod_rpaf-2.0.c:151: error: 'conn_rec' has no member named 'remote_ip' mod_rpaf-2.0.c: In function 'change_remote_ip': mod_rpaf-2.0.c:164: error: 'conn_rec' has no member named 'remote_ip' mod_rpaf-2.0.c:183: error: 'conn_rec' has no member named 'remote_ip' mod_rpaf-2.0.c:186: error: 'conn_rec' has no member named 'remote_ip' mod_rpaf-2.0.c:187: error: 'conn_rec' has no member named 'remote_addr' mod_rpaf-2.0.c:187: error: 'conn_rec' has no member named 'remote_ip' apxs:Error: Command failed with rc=65536 .
Et pour cause, la version 2.4 de Apache/HTTPD apporte quelques modifications d’APIs.
Pour corriger ce problème, il suffit de remplacer les directives remote_ par client_ dans le fichier mod_rpaf-2.0.c.
Pour vous faciliter la tâche, je viens de créer un patch afin d’effectuer ces changements.
– Placez-vous dans le répertoire suivant : cd mod_rpaf-0.6
– Téléchargez le patch : wget http://www.be-root.com/downloads/mod_rpaf/mod_rpaf-2.0.patch
– Appliquez le patch suivant : patch -p0 < mod_rpaf-2.0.patch
patching file mod_rpaf-2.0.c
– Compilez le module mod_rpaf : apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
– Éditez le fichier de configuration de Apache/HTTPD : vi /etc/httpd/conf/httpd.conf
LoadModule rpaf_module modules/mod_rpaf-2.0.so <IfModule rpaf_module> RPAFenable On RPAFproxy_ips 127.0.0.1 xxx.xxx.xxx.xxx RPAFsethostname On RPAFheader X-Forwarded-For </IfModule>
xxx.xxx.xxx.xxx correspond à l’adresse IP de votre serveur Web.
– Redémarrez le serveur Web : service httpd restart
– Vérifiez le fonctionnement du module mod_rpaf dans le fichier de log de Apache/HTTPD : tail -f /var/log/httpd/access_log
127.0.0.1 - - [23/Aug/2012:20:31:19 +0200] "GET / HTTP/1.1" 200 83 "-" "Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1 192.168.0.1 - - [23/Aug/2012:20:31:19 +0200] "GET / HTTP/1.1" 200 83 "-" "Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1