====== GLPI: Installation sur Debian 10 ======
===== Installation de GLPI =====
- Installer les paquets nécessaires apt update
apt dist-upgrade
apt-get install apache2 mariadb-server libapache2-mod-php php-mysql php-curl php-intl php-zip php-bz2 \
php-ldap php-gd php-imap php-mbstring php-xml php-xmlrpc php-apcu php-cas
- Sécuriser mariadb mysql_secure_installation
- Télécharger & décompresser le package wget -qO- https://github.com/glpi-project/glpi/releases/download/9.5.3/glpi-9.5.4.tgz | tar xvzf -
- Copier les fichiers téléchargés dans /var/www cp -r glpi /var/www
- Configurer un utilisateur Mysql pour Glpi mysql -u root -pCREATE DATABASE glpi;
CREATE USER glpi@localhost IDENTIFIED BY "**motdepasse**";
GRANT ALL PRIVILEGES ON glpi.* TO glpi@localhost;
flush privileges;
quit
- Changer le propriétaire du dossier chown -R www-data:www-data /var/www/html/glpi/
- Visiter la page de GLPI pour configurer via l'interface Web http://ip/glpi {{:deploiement:glpi:pasted:20191117-142920.png}}
- Configurer un cron pour les tâches crontab -e et coller la ligne suivante * * * * * /usr/bin/php /var/www/glpi/front/cron.php &>/dev/null
- Editer le fichier php.ini dans le répertoire /etc/php/7.3/**cli**nano /etc/php/7.3/cli/php.ini et adapter cette ligne pour y indiquer votre timezone date.timezone = Europe/BrusselsVous pouvez aussi l'adapter pour autoriser l'upload de fichiers volumineuxupload_max_filesize = 500M
post_max_size = 500M
memory_limit = 500M
default_socket_timeout = 6000
- Editer le fichier php.ini dans le répertoire /etc/php/7.3/fpmnano /etc/php/7.3/fpm/php.ini et adapter cette ligne pour y indiquer votre timezone date.timezone = Europe/BrusselsVous pouvez aussi l'adapter pour autoriser l'upload de fichiers volumineuxupload_max_filesize = 500M
post_max_size = 500M
memory_limit = 500M
default_socket_timeout = 6000
===== Installation de FusionInventory =====
- Télécharger le plug-in pour GLPI wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi9.5.0%2B1.0/fusioninventory-9.5.0+1.0.tar.bz2
- Décompresser l'archive tar xvfj fusioninventory-9*
- Copier les fichiers dans le bon répertoire cp -r fusioninventory /var/www/glpi/plugins/
- Changer le propriétaire des fichiers chown -R www-data:www-data /var/www/glpi/
- Dans GLPI, installer puis activer le plugin FusionInventory
===== Intégration au serveur LDAP/Active Directory =====
- Installer les packages nécessaires apt-get install php-ldap ldap-utils
- Copier le certificat du serveur LDAP dans le répertoire /usr/local/share/ca-certificatescp server-ad.crt /usr/local/share/ca-certificates
- Mettre à jour la database des certificats update-ca-certificates
- Vérifiez si vous savez vous connecter sur le serveur LDAP distant#Si je veux vérifier localement un certificat sur base des CA présents dans /etc/ssl/certs
#openssl verify -CApath /etc/ssl/certs sambaCert.pem
openssl s_client -showcerts -connect srv-ad.makeitsimple.lan:636La réponse devrait être : **//Verify return code: 0 (ok)//**
- Editer le fichier ldap.conf nano /etc/ldap/ldap.confIl devrait ressembler à ceciBASE dc=makeitsimple.lan
URI ldaps://srv-ad.makeitsimple.lan
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
# TLS certificates (needed for GnuTLS)
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
- Faire un test de connexion en interrogeant le serveur LDAP ldapsearch -x -d 1 -D 'cn=Administrator,cn=Users,dc=makeitsimple,dc=lan' -W -b'cn=Users,dc=MAKEITSIMPLE,dc=LAN'ouldapsearch -x -d 1 -D 'cn=Administrator,cn=Users,dc=makeitsimple,dc=lan' -W -b'cn=Users,dc=MAKEITSIMPLE,dc=LAN' -H ldaps://srv-ad:636
- Dans GLPI Configuration → Authentification → Annuaire Ldap → Cliquer sur le + {{:deploiement:glpi:pasted:20191111-103506.png}}
- Voici un exemple de configuration, adapter selon les besoins et tester {{:deploiement:glpi:pasted:20191111-103540.png}}
- Importer les users via Administration → Utilisateurs → Liaison annuaire LDAP {{:deploiement:glpi:pasted:20191111-103600.png}}
- Faire une règle cron pour synchroniser régulièrement les utilisateurs: php /var/www/glpi/scripts/ldap_mass_sync.php action=2
- Pour assigner les profils aux groupes de manière automatique lors de l'import, aller dans Administration, règles, affectations automatiques {{:deploiement:glpi:pasted:20220212-174347.png}}
===== Configuration SSL =====
- Activer et ssl & désactiver l'accès par défaut a2dissite 000-default.conf
a2enmod ssl
- Créer les certicats nécessaires
- Editer le fichier /etc/apache2/sites-available/glpi.confnano /etc/apache2/sites-available/glpi.conf Voici à quoi devrait ressembler le fichier #les 4 premières lignes sont des tests pour intercepter tout ce qui n’est pas nommé par DNS
ServerName 10.0.0.214/
DocumentRoot /var/www/glpi
ServerName srv-glpi.makeitsimple.lan/
Redirect / https://srv-glpi.makeitsimple.lan/
ServerName srv-glpi.makeitsimple.lan
DocumentRoot /var/www/glpi
SSLEngine on
SSLCertificateFile /etc/apache2/srv-glpi.crt
SSLCertificateKeyFile /etc/apache2/srv-glpi.key
- Dans les paramètres généraux de GLPI, changer l’url du serveur pour refléter son FQDN. Sinon le déploiement de paquet ne fonctionnera pas. Dans les paramètres Administration → Entités → Root entity → Fusioninventory
===== Single Sign On (SSO) =====
- Installer les paquets kerberos nécessaire apt-get -y install krb5-user libapache2-mod-auth-kerb
- Editer le fichier krb5.conf nano /etc/krb5.conf Coller une configuration +/- similaire[libdefaults]
default_realm = MAKEITSIMPLE.LAN
# The following krb5.conf variables are only for MIT Kerberos.
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
fcc-mit-ticketflags = true
[realms]
MAKEITSIMPLE.LAN = {
kdc = srv-ad.makeitsimple.lan
admin_server = srv-ad.makeitsimple.lan
default_domain = srv-ad.makeitsimple.lan
}
.makeitsimple.lan = MAKEITSIMPLE.LAN
makeitsimple.lan = MAKEITSIMPLE.LAN
- Faire un test de session kinit Administrator
- Se connecter sur le serveur Samba-AD et faire les 3 commandes suivantes en modifiant le nom du serveur samba-tool user create --random-password http-glpi.makeitsimple.lan
samba-tool spn add HTTP/glpi.makeitsimple.lan http-glpi.makeitsimple.lan
samba-tool domain exportkeytab /root/httpd.keytab --principal=HTTP/glpi.makeitsimple.lan@MAKEITSIMPLE.LAN
- Vérifier avec la commande kvno kvno HTTP/glpi.makeitsimple.lan@MAKEITSIMPLE.LAN
- De retour sur le serveur GLPI, déplacer le fichier dans le dossier apache et lui donner les bons droits mv httpd.keytab /etc/apache2/
chown www-data:root /etc/apache2/httpd.keytab
chmod 640 /etc/apache2/httpd.keytab
- Editer le fichier apache nano /etc/apache2/sites-enabled/000-default.conf DocumentRoot /var/www
Servername glpi.makeitsimple.lan
AuthType Kerberos
AuthName "Demande d'identification SSO"
KrbAuthRealms MAKEITSIMPLE.LAN
KrbServiceName HTTP/glpi.makeitsimple.lan
Krb5Keytab /etc/apache2/httpd.keytab
KrbMethodNegotiate On
KrbMethodK5Passwd On
require valid-user
- Activer le module d'authentification a2enmod auth_kerb
- Dans GLPI → Configuration → Authentification → Autre méthode d’authentification
- Champs de stockage de l’identifiant : PHP_AUTH_USER
- Supprimer le domaine des identifiants : NON
- {{:deploiement:glpi:pasted:20210205-201950.png}}
- Le navigateur doit être en mesure d’envoyer les infos Kerberos. Pour IE/edge Chromium, il faut que le site soit reconnu comme Sécurité=intranet et l'intranet renseigné par exemple "*.makeitsimple.lan".
===== Cron ne veut pas fonctionner =====
- Liste numérotéeVérifier que le timezone est bien configuré dans les deux fichiers PHP
- Voir dans Configuration → Action automatique → Tasksheduler si
- Mode éxécution = CLI
- Prochaine exécution n’est pas bloqué {{:deploiement:glpi:pasted:20191111-103708.png}}
===== Sources =====
* https://blog.untoldvoyage.com/2012/10/08/sharepoint-sso-ntlm-from-apache-ubuntu/