Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 1416 minIntermédiaire

Exploiter et sécuriser GLPI : cron, sauvegardes, mises à jour

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • faire tourner et surveiller les actions automatiques ;
  • sauvegarder et restaurer une instance complète ;
  • mettre à jour GLPI sans perte de données ;
  • sécuriser une instance et ses intégrations ;
  • appliquer le RGPD aux données de GLPI.

4 exercices corrigés

Exploiter GLPI au quotidien, c'est s'assurer que ses tâches automatiques tournent, que sa base et ses fichiers sont sauvegardés et restaurables, que l'application et ses plugins sont à jour, et que l'instance est protégée, puisqu'elle contient la carte complète du système d'information et des données personnelles. Ce chapitre rassemble les gestes d'administration : actions automatiques, sauvegarde et restauration, mise à jour de GLPI 11 vers 12, plugins, sécurité, journaux et conformité au RGPD.

Les actions automatiques et le cron

Beaucoup de fonctions de GLPI ne se déclenchent pas quand un utilisateur clique, mais à intervalles réguliers : ce sont les actions automatiques (Configuration > Actions automatiques). Chacune a une fréquence, un statut (active ou non), un mode d'exécution et une plage horaire.

  • En mode GLPI, l'action est lancée de temps en temps quand des utilisateurs naviguent dans l'interface : la nuit ou le week-end, rien ne se passe.
  • En mode CLI, l'action est lancée par une tâche planifiée du système, qui appelle front/cron.php. C'est le mode recommandé.
bash
# crontab de l'utilisateur du serveur web : sudo crontab -u www-data -e
* * * * * /usr/bin/php /var/www/glpi/front/cron.php

# forcer une action précise, par exemple la relève des courriels
sudo -u www-data php /var/www/glpi/front/cron.php --force mailgate

Les actions à connaître :

ActionRôleSi elle ne tourne pas
queuednotificationEnvoie les courriels en file d'attenteAucune notification ne part
mailgateRelève les boîtes des collecteursLes courriels au support ne deviennent pas des tickets
slaticket, olaticketEscalades et rappels des SLA et des OLAPas d'escalade, pas de rappel
closeticketClôture automatique des tickets résolusLes tickets restent « Résolu » indéfiniment
createinquestCrée les enquêtes de satisfactionPas d'enquête
RecurrentItemsCrée les tickets et changements récurrentsLa maintenance préventive n'est pas déclenchée
contract, infocom, software, certificateAlertes de fin de contrat, de garantie, de licence, de certificatLes échéances passent sans prévenir
CleanoldagentsTraite les agents qui ne contactent plus le serveurLes postes disparus restent « En service »
queuedwebhookEnvoie les webhooks en file d'attenteLes outils externes ne sont pas prévenus
savedsearchesalertsExécute les alertes des recherches sauvegardéesLes contrôles réguliers ne préviennent personne
session, purgesessionhistoryNettoie les sessions expirées et l'historique des connexionsLa base grossit, les données de connexion sont gardées trop longtemps
watcherSurveille les autres actions automatiquesUne action bloquée passe inaperçue

Depuis GLPI 12, une action qui échoue cinq fois de suite passe au statut Erreur et demande une intervention ; une action interrompue de l'extérieur passe au statut Interrompue et sera relancée. La colonne « dernière exécution » et l'onglet des journaux de chaque action sont les premières choses à regarder quand « GLPI ne fait plus » quelque chose.

Sauvegarder GLPI, et tester la restauration

Une sauvegarde de GLPI comprend trois choses, et oublier l'une d'elles rend les deux autres inutilisables :

ÉlémentEmplacement (installation du chapitre 2)Pourquoi
La base de donnéesBase glpi sur MariaDBToutes les fiches, les tickets, l'historique, la configuration
Les fichiers de données et les plugins/var/lib/glpi/files et /var/lib/glpi/pluginsDocuments joints aux tickets et aux fiches, images, plugins installés depuis le marketplace
La configuration/etc/glpiLes identifiants de la base et surtout la clé de chiffrement glpicrypt.key

La clé glpicrypt.key mérite une attention particulière : GLPI chiffre avec elle les secrets qu'il stocke en base (mot de passe du compte de lecture de l'annuaire, mots de passe des collecteurs, jetons). Une base restaurée sans sa clé fonctionne, mais tous ces secrets sont illisibles : l'authentification par l'annuaire et les collecteurs cessent de fonctionner.

Le script de sauvegarde nocturne de Cèdre Habitat :

bash
#!/bin/bash
# /usr/local/sbin/sauvegarde-glpi.sh, lancé chaque nuit par cron (compte root)
set -euo pipefail
DEST=/srv/sauvegardes/glpi
JOUR=$(date +%F)
mkdir -p "$DEST"

# 1. La base, dans une transaction cohérente, sans bloquer les utilisateurs
mariadb-dump --single-transaction --routines glpi | gzip > "$DEST/glpi-base-$JOUR.sql.gz"

# 2. Les fichiers et la configuration (dont la clé de chiffrement)
tar -czf "$DEST/glpi-fichiers-$JOUR.tar.gz" /var/lib/glpi /etc/glpi

# 3. Garder 14 jours de sauvegardes locales
find "$DEST" -name 'glpi-*' -mtime +14 -delete

Ces sauvegardes locales sont ensuite copiées hors du serveur, et une copie hors site, selon la règle 3-2-1 présentée dans le cours Sauvegarde et PRA. Avec Docker, on sauvegarde de la même façon la base (par docker compose exec sur le conteneur de la base) et le volume des données de GLPI.

Une sauvegarde qui n'a jamais été restaurée ne prouve rien. Chaque trimestre, Thomas restaure la sauvegarde de la veille sur une machine de test : il recrée la base, réimporte le fichier, remet en place les dossiers et la clé, puis vérifie qu'il peut se connecter avec un compte de l'annuaire, ouvrir un document joint et retrouver les tickets de la veille. Il note la date, la durée de la restauration et les problèmes rencontrés dans un ticket récurrent (chapitre 9).

bash
# Restauration sur la machine de test
gunzip -c glpi-base-2026-11-01.sql.gz | sudo mariadb glpi
sudo tar -xzf glpi-fichiers-2026-11-01.tar.gz -C /
sudo chown -R www-data:www-data /var/lib/glpi /etc/glpi

Mettre à jour GLPI

GLPI publie régulièrement des versions correctives, souvent pour des failles de sécurité : 11.0.9, 11.0.10 et 12.0.1 étaient des versions de sécurité. Une instance jamais mise à jour est une instance vulnérable. Suis les annonces du projet et applique les versions correctives rapidement.

La procédure pour une installation à la main, celle que Thomas a suivie pour passer de GLPI 11 à GLPI 12 :

  1. Vérifier les prérequis de la nouvelle version : PHP 8.3 et MariaDB 10.11 au minimum pour GLPI 12. Le serveur de Cèdre Habitat était sous Debian 13, donc rien à changer ; sous Debian 12, il aurait d'abord fallu mettre à jour le système.
  2. Vérifier les plugins : chacun doit exister dans une version compatible avec la nouvelle version de GLPI, sinon il sera désactivé.
  3. Sauvegarder la base, les fichiers et la configuration, et noter la version actuelle.
  4. Passer en mode maintenance, pour que personne ne travaille pendant l'opération : sudo -u www-data php bin/console maintenance:enable.
  5. Remplacer le dossier de l'application par celui de la nouvelle archive. Grâce à la séparation des dossiers du chapitre 2, les données et la configuration ne bougent pas ; il faut seulement recréer inc/downstream.php, qui est dans le dossier de l'application.
  6. Mettre à jour la base : sudo -u www-data php bin/console db:update.
  7. Supprimer à nouveau install/install.php, revenu avec la nouvelle archive.
  8. Quitter le mode maintenance (maintenance:disable), puis vérifier : connexion, tickets, inventaire d'un poste, envoi d'un courriel, actions automatiques.
  9. Contrôler les points propres à la version : pour GLPI 12, la visibilité de la base de connaissances (chapitre 12) et la ré-authentification des administrateurs.

Avec Docker, la mise à jour consiste à changer l'étiquette de l'image (glpi/glpi:12.0 au lieu de glpi/glpi:11.0), puis docker compose up -d : le conteneur met la base à jour au démarrage. La sauvegarde préalable reste obligatoire.

Les plugins et le marketplace

Les plugins ajoutent des fonctions à GLPI. Ils s'installent depuis le marketplace intégré (Configuration > Plugins) ou en déposant leur dossier à la main. Quelques plugins courants :

PluginRôle
GLPI InventoryDécouverte et inventaire réseau, déploiement de logiciels, collecte, inventaire VMware (chapitre 4)
Data InjectionImport de fichiers CSV dans les fiches
FieldsChamps supplémentaires sur les objets natifs, comme les tickets
UninstallProcédure de sortie d'un matériel (nettoyage de sa fiche, de ses liens)

Chaque plugin est du code de plus à maintenir et à mettre à jour, et un plugin abandonné peut bloquer une mise à jour de GLPI. Beaucoup de fonctions qui demandaient un plugin sont désormais natives (inventaire, formulaires, actifs personnalisés, webhooks, double authentification) : avant d'installer un plugin, vérifie que la fonction n'existe pas déjà. Depuis GLPI 12, l'accès à la liste des plugins et au marketplace demande une ré-authentification.

Sécuriser l'instance

GLPI contient la liste de tous les postes avec leurs versions de logiciels, les adresses du réseau, les contrats, les tickets (qui mentionnent parfois des mots de passe envoyés par erreur par des utilisateurs) et les comptes de l'annuaire. C'est une cible de choix. Les mesures, de la plus simple à la plus avancée :

DomaineMesures
RéseauGLPI en HTTPS uniquement ; accessible depuis le réseau interne ou par VPN, pas directement depuis Internet ; port 62354 vers les agents ouvert seulement depuis le serveur ; base de données non joignable depuis le réseau
ServeurRacine du site sur public ; dossiers de données hors de l'arborescence web ; système et PHP à jour ; durcissement selon le cours Cybersécurité des infrastructures
ApplicationVersions correctives appliquées vite ; install.php supprimé ; plugins limités et à jour
ComptesComptes par défaut désactivés ; administrateurs nominatifs ; double authentification obligatoire pour les profils d'administration ; profils au moindre privilège (chapitre 3)
SessionsRé-authentification active (ne pas la désactiver par la constante GLPI_DISABLE_REAUTH, que GLPI signale d'ailleurs sur le tableau de bord des administrateurs) ; révocation des sessions en cas de doute
IntégrationsAgents authentifiés ; comptes d'API limités ; webhooks signés par une clé secrète
TracesJournaux conservés et consultés ; sauvegardes hors site

Les journaux

GLPI garde plusieurs traces, complémentaires :

  • l'historique de chaque élément : qui a modifié quoi, quand, avec l'ancienne et la nouvelle valeur ;
  • les journaux de l'application (Administration > Journaux) : connexions, échecs de connexion, actions d'administration, exécution des actions automatiques ;
  • les fichiers de journaux du dossier /var/log/glpi (erreurs PHP, erreurs SQL, journaux des collecteurs et de l'inventaire), consultables depuis GLPI 11 dans une visionneuse intégrée ;
  • les journaux du serveur web.

En cas d'incident (un compte d'administration créé sans raison, des fiches modifiées en masse), c'est en croisant ces sources qu'on reconstitue ce qui s'est passé : le cours Réponse aux incidents explique comment lire et conserver ces traces.

GLPI et le RGPD

GLPI traite des données personnelles : noms, adresses électroniques, téléphones, postes affectés, contenu des tickets, historique des connexions. L'organisation doit donc l'inscrire à son registre des traitements, avec sa finalité (gestion du parc et assistance), les catégories de données, les destinataires et les durées de conservation (cours Droit du numérique et RGPD). Dans GLPI, cela se traduit par :

  • des profils qui limitent l'accès aux données au besoin de chacun ;
  • des durées de conservation réglées dans Configuration > Données et confidentialité (nouveau menu de GLPI 12), qui rassemble les réglages de purge de l'historique et de l'historique des connexions ;
  • la purge automatique des tickets clos au-delà d'une durée décidée par l'organisation, si elle est justifiée ;
  • la désactivation des comptes des personnes parties, puis leur anonymisation ou leur suppression selon la politique de conservation ;
  • l'option d'anonymisation des techniciens dans les tickets vus par les utilisateurs (onglet Assistance de l'entité), quand l'organisation le souhaite.

Superviser GLPI

GLPI est un service comme un autre : s'il tombe, plus personne ne peut ouvrir de ticket. La supervision de Cèdre Habitat surveille la réponse HTTPS de la page de connexion, l'espace disque de la base et des fichiers, la date d'expiration du certificat, et l'état fourni par la commande php bin/console system:status, qui indique notamment l'état de la base et des actions automatiques (dont, depuis GLPI 12, celles en erreur). Le cours Supervision montre comment intégrer ces contrôles dans Zabbix, l'outil du labo SISR (Centreon fait de même) : voir les scénarios web Zabbix.

Exercices

Exercice 1 sur 4 La restauration ratée Réussi À revoir

Après une panne de disque, Thomas restaure la base de GLPI de la veille sur un nouveau serveur. L'interface fonctionne, les tickets sont là, mais plus personne ne peut se connecter avec son compte Active Directory, le collecteur de courriels est en erreur, et les pièces jointes des tickets affichent une erreur. Explique les deux oublis et comment les corriger.

Voir la réponseMasquer la réponse de l'exercice 1
  1. La configuration et sa clé de chiffrement glpicrypt.key n'ont pas été restaurées (ou une nouvelle clé a été générée à la réinstallation). Les mots de passe du compte de lecture de l'annuaire et du collecteur, chiffrés en base avec l'ancienne clé, sont illisibles : l'authentification LDAP et la relève des courriels échouent. Correction : restaurer /etc/glpi depuis la sauvegarde, avec la clé d'origine (ou, à défaut, ressaisir tous les secrets).
  2. Les fichiers de données (/var/lib/glpi/files) n'ont pas été restaurés : la base référence des documents qui n'existent pas sur le nouveau disque. Correction : restaurer l'archive des fichiers et rendre les dossiers à www-data.

Leçon : sauvegarder et restaurer les trois éléments, et tester la restauration complète à intervalles réguliers.

Tu avais trouvé ?

Exercice 2 sur 4 Ordonner une mise à jour Réussi À revoir

Remets dans l'ordre les étapes d'une mise à jour de GLPI 11 vers GLPI 12 sur un serveur installé à la main : (a) db:update ; (b) vérifier la version de PHP ; (c) sauvegarder la base, les fichiers et la configuration ; (d) remplacer le dossier de l'application et recréer inc/downstream.php ; (e) activer le mode maintenance ; (f) supprimer install/install.php ; (g) vérifier la compatibilité des plugins ; (h) désactiver le mode maintenance et tester.

Voir la réponseMasquer la réponse de l'exercice 2

b, g, c, e, d, a, f, h. On vérifie d'abord que la mise à jour est possible (PHP, plugins), on sauvegarde, on isole l'instance (maintenance), on remplace le code, on met la base à jour, on supprime le script d'installation revenu avec l'archive, puis on rouvre et on teste. Les étapes b et g peuvent s'échanger.

Tu avais trouvé ?

Exercice 3 sur 4 Rien ne se passe la nuit Réussi À revoir

Chez un client, les tickets résolus ne se ferment jamais automatiquement, les courriels envoyés au support n'apparaissent comme tickets que pendant la journée, et les alertes de contrats n'arrivent jamais le week-end. Quel est le diagnostic, et comment le corriger ?

Voir la réponseMasquer la réponse de l'exercice 3

Les actions automatiques sont en mode GLPI : elles ne se lancent que lorsque des utilisateurs naviguent dans l'interface, donc jamais la nuit ni le week-end, et de façon irrégulière en journée. Correction : ajouter la ligne de cron (* * * * * /usr/bin/php /var/www/glpi/front/cron.php) à la crontab de l'utilisateur du serveur web, puis passer les actions (closeticket, mailgate, contract, queuednotification…) en mode CLI. On vérifie ensuite que la date de dernière exécution avance chaque minute.

Tu avais trouvé ?

Exercice 4 sur 4 Audit de sécurité d'une instance Réussi À revoir

On te demande d'auditer le GLPI d'une PME en dix points. Propose ta grille de contrôle, avec pour chaque point la vérification concrète.

Voir la réponseMasquer la réponse de l'exercice 4
PointVérification
1. VersionLa version installée est la dernière corrective de sa branche (page « À propos » ou system:status)
2. HTTPSGLPI ne répond qu'en HTTPS, avec un certificat valide ; HTTP redirige
3. ExpositionGLPI n'est pas joignable directement depuis Internet (test depuis l'extérieur)
4. Racine webAucune alerte de sécurité sur la page d'accueil ; racine sur public
5. Script d'installationinstall/install.php absent
6. Comptes par défautglpi, tech, normal, post-only désactivés ou mots de passe changés
7. PrivilègesListe des utilisateurs Super-Admin et Admin : nominatifs, peu nombreux, justifiés
8. Double authentificationObligatoire pour les profils d'administration
9. Agents et APIAuthentification des agents active ; comptes d'API limités ; pas de NO_SSL_CHECK dans le déploiement
10. SauvegardesBase, fichiers et configuration sauvegardés chaque nuit, copie hors site, dernière restauration testée datée de moins de trois mois

Chaque écart devient une recommandation priorisée, et sa correction un ticket.

Tu avais trouvé ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Cas pratique GLPI corrigé et preuves pour l'E5Revoir le sommaire du cours