Guide d’installation d’iTop Community Edition – Multi-distribution

Ce guide complet détaille l’installation d’iTop Community Edition sur différentes distributions Linux et Windows, avec les commandes spécifiques à chaque système et les bonnes pratiques de sécurité.

Table des matières

  1. Prérequis matériels
  2. Prérequis logiciels
  3. Téléchargement d’iTop
  4. Installation des prérequis par distribution
  5. Configuration de la base de données
  6. Installation d’iTop
  7. Configuration SELinux
  8. Finalisation de l’installation
  9. Références utiles

1. Prérequis matériels

Système Ressource Minimum Recommandé
Linux Disque 5 GB 20 GB
RAM 1 GB 2 GB
Processeur 1 GHz (simple Pentium) 2 GHz+ (dual-core)
Windows Disque 5 GB 20 GB
RAM 1 GB 2 GB
Processeur 1 GHz (simple Pentium) 2 GHz+ (dual-core)

1.1 Configurations avancées (pour grands déploiements)

Tickets/mois Utilisateurs CIs dans CMDB Serveurs CPU Mémoire Espace disque MySQL
< 200 < 20 < 50k Tout-en-un 2vCPU 4GB 10GB
< 5000 < 50 < 200k Deux: Web + MySQL 4vCPU 8GB 20GB
> 5000 > 50 > 200k Deux: Web + MySQL 8vCPU 16GB 50GB

Résolution d’écran minimale: 1024×768 pixels (résolution plus élevée recommandée)

2. Prérequis logiciels

  • PHP version 5.3.6 ou plus récente (version 5.6+ recommandée pour iTop 2.5+)
  • MySQL version 5.0 ou plus récente (ou MariaDB 5.3+)
  • Serveur web: Apache, IIS ou tout serveur web supportant PHP
  • Graphviz (nécessaire pour afficher les graphes d’analyse d’impact)

2.1 Modules PHP requis

  • mysql/mysqli
  • ldap (pour l’authentification LDAP/AD)
  • mcrypt (pour le chiffrement renforcé des mots de passe)
  • cli
  • soap
  • json
  • xml
  • gd
  • zip

2. Téléchargement d'iTop

Téléchargez iTop depuis SourceForge: https://sourceforge.net/projects/itop/files/itop

3. Installation des prérequis par distribution

3.1 Debian ou Ubuntu (avant 16.04)

Installation en tant que root (bash)

apt-get update
apt-get install apache2
apt-get install mysql-server
apt-get install php5 php5-mysql php5-ldap php5-mcrypt php5-cli php5-soap php5-json graphviz

3.2 Ubuntu 16.04 et versions ultérieures

Installation en tant que root (bash)

apt-get update
apt-get install apache2
apt-get install mysql-server
apt-get install php php-mysql php-ldap php-mcrypt php-cli php-soap php-json graphviz
apt-get install php-xml php-gd php-zip libapache2-mod-php

Activation du module rewrite

a2enmod rewrite
systemctl restart apache2

3.3 Ubuntu 24.04 LTS / Debian 12

Mise à jour des paquets

apt update && apt upgrade -y

Installation du serveur web et PHP (mcrypt n’est plus disponible nativement)

apt install -y apache2 php php-mysql php-ldap php-cli php-soap php-json php-gd php-zip php-mbstring php-xml php-opcache libapache2-mod-php

Installation de MariaDB (recommandé pour iTop 3.x)

apt install -y mariadb-server

Installation de Graphviz

apt install -y graphviz

Activation des modules Apache nécessaires

a2enmod rewrite
a2enmod headers # Important pour les directives de sécurité
systemctl restart apache2

3.4 Redhat, CentOS ou Fedora

Installation en tant que root

yum install httpd
yum install mysql mysql-server
yum install php php-mysql php-mcrypt php-xml php-cli php-soap php-ldap graphviz

Pour les versions récentes (CentOS 8/RHEL 8/Rocky Linux 8+):

Mise à jour des paquets

dnf update -y

Installation du serveur web et PHP

dnf install -y httpd php php-mysqlnd php-ldap php-cli php-soap php-json php-gd php-zip php-mbstring php-xml php-opcache

Installation de MariaDB (recommandé pour iTop 3.x)

dnf install -y mariadb-server

Activation et démarrage des services

systemctl enable –now httpd mariadb
systemctl start httpd mariadb

Configuration du pare-feu

firewall-cmd –permanent –add-service=http
firewall-cmd –permanent –add-service=https
firewall-cmd –reload

SELinux configuration (si activé)

setsebool -P httpd_can_network_connect_db 1
setsebool -P httpd_can_network_connect 1

3.5 Mageia

Installation des prérequis

urpmi mariadb
urpmi php php-mysql php-mcrypt php-xml php-cli php-soap php-iconv php-mysqli php-ldap
urpmi graphviz

Activation des services

systemctl enable httpd
systemctl enable mysqld.service

Modification des paramètres PHP par défaut

perl -pi -e ‘s/post_max_size = 8M/post_max_size = 32M/’ /etc/php.ini
perl -pi -e ‘s/;suhosin.get.max_value_length.*/suhosin.get.max_value_length = 2048/’ /etc/php.d/Z98_suhosin.ini

Démarrage des services

systemctl start httpd
systemctl start mysqld.service

4. Installation sur Windows avec IIS

4.1 Installation des prérequis

4.1.1 Installer Fast-CGI pour IIS

  • Téléchargez l’installateur Fast-CGI depuis: http://www.iis.net/download/FastCGI
  • Choisissez la version adaptée à votre système (32 ou 64 bits)
  • Choisissez la version adaptée à votre système (32 ou 64 bits)

4.1.2 Installer Fast-CGI pour IIS

  • Téléchargez PHP depuis http://windows.php.net/download/
  • Sélectionnez la version « Non Thread Safe » adaptée à votre système
  • Assurez-vous de sélectionner l’extension « SOAP » et « PEAR Install » dans les options
  • Enregistrez l’extension FastCGI pour tout le site web:
cd %windir%\system32\inetsrv
cscript fcgiconfig.js -add -section:\ »PHP\ » -extension:php -path:\ »C:\Program Files\PHP\php-cgi.exe\ »

4.1.3 Configurer IIS

  • Ouvrez le Gestionnaire des services Internet (IIS)
  • Configurez le mappage d’application pour les fichiers .php
  • Assurez-vous que « index.php » est présent dans la liste des documents par défaut

4.1.4 Installer MySQL

  • Téléchargez l’installateur MySQL depuis http://www.mysql.com/downloads/mysql/
  • Choisissez le package « MSI Installer » adapté à votre système
  • Suivez les instructions de l’assistant d’installation

4.1.5 Installer Graphviz

  • Téléchargez et installez Graphviz depuis son site officiel
  • Notez le chemin complet vers l’exécutable dot.exe (exemple: `C:\Program files (x86)\

5. Configuration de la base de données

Procédure identique pour toutes les distributions :

Sécurisation initiale de MySQL/MariaDB

mysql_secure_installation

Création de la base de données et de l’utilisateur

mysql -u root -p

Dans la console MySQL:

CREATE DATABASE itop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER ‘itop’@’localhost’ IDENTIFIED BY ‘votre_mot_de_passe’;
GRANT ALL PRIVILEGES ON itop.* TO ‘itop’@’localhost’;
FLUSH PRIVILEGES;
EXIT;

6. Installation d'iTop

6.1 Sous Linux

Téléchargement et extraction

cd /tmp
wget https://sourceforge.net/projects/itop/files/latest/download -O itop.zip
unzip itop.zip
mv /tmp/web /var/www/html/itop

Configuration des permissions

Pour Debian/Ubuntu

chown -R www-data:www-data /var/www/html/itop

Pour RHEL/CentOS

chown -R apache:apache /var/www/html/itop

6.2 Configuration Apache

6.2.1 Debian/Ubuntu

cat > /etc/apache2/sites-available/itop.conf << 'EOF'
ServerName itop.example.com
DocumentRoot /var/www/html/itop


Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted

ErrorLog ${APACHE_LOG_DIR}/itop-error.log
CustomLog ${APACHE_LOG_DIR}/itop-access.log combined

EOF

a2ensite itop.conf
systemctl reload apache2

6.2.1 RHEL/CentOS/Fedora

cat > /etc/httpd/conf.d/itop.conf << 'EOF'
ServerName itop.example.com
DocumentRoot /var/www/html/itop


Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted

ErrorLog /var/log/httpd/itop-error.log
CustomLog /var/log/httpd/itop-access.log combined

EOF

systemctl restart httpd

7. Configuration SELinux

SELinux est activé par défaut sur certaines distributions Linux comme Fedora, RedHat et CentOS. Cette section détaille la configuration nécessaire pour permettre à iTop de fonctionner correctement avec SELinux activé.

7.1 Configuration de base SELinux pour iTop

Permettre la lecture/écriture sur le répertoire iTop et ses sous-dossiers

semanage fcontext -a -t httpd_sys_rw_content_t « /var/www/html/itop(/.*)? »

Appliquer la politique

restorecon -Rv /var/www/html/itop/

Vérifier les contextes appliqués

ls -lZ /var/www/html/itop/

Cette configuration de base fonctionne avec iTop. Une connaissance avancée de SELinux est nécessaire pour appliquer des droits plus restrictifs.

7.2 Problèmes d'écriture de fichiers

Si l’installation indique que le dossier `conf` existe mais ne peut pas être écrit, et si les droits d’accès sur le répertoire semblent corrects, essayez de désactiver temporairement le contexte SELinux :

Désactiver temporairement SELinux (pour diagnostic uniquement)

setenforce 0

Cette commande désactive complètement la vérification du contexte de sécurité. Ce n’est absolument pas approprié pour un système en production, mais peut être utile pour isoler la source du problème.

N’oubliez pas de réactiver SELinux après avoir identifié le problème:

setenforce 1

7.3 Connexion à un serveur MySQL distant

Si vous rencontrez des difficultés pour connecter iTop à un serveur MySQL distant, vérifiez les paramètres SELinux avec la commande suivante :
getsebool -a | grep ‘httpd’

Si vous voyez `httpd_can_network_connect_db –> off`, cela signifie que le serveur web est empêché de se connecter au serveur MySQL via le réseau.

Pour modifier ce paramètre de sécurité, exécutez:

setsebool -P httpd_can_network_connect_db on

7.4 Connexion à iTop depuis un système distant

Si vous ne pouvez vous connecter au serveur web que depuis la machine elle-même, mais pas depuis un système distant, vérifiez la configuration du pare-feu (iptables) :
firewall-cmd –list-services

La sortie de la commande devrait ressembler à :
dhcp-v6-client http mdns ssh

Si `http` ne figure pas dans la liste, l’accès au serveur web sera bloqué. Pour le débloquer, exécutez :

Ajouter temporairement le service HTTP

firewall-cmd –add-service=http

Pour rendre la modification permanente

firewall-cmd –permanent –add-service=http
firewall-cmd –reload

8. Bonnes pratiques de sécurité

8.1 Connexion à iTop depuis un système distant

Le serveur web doit avoir les droits d’écriture sur les répertoires suivants, sous la racine d’iTop :

  • conf
  • data
  • Répertoire racine (pour le connecteur iTop Hub)
  • log

Les droits d’écriture sur le dossier `conf` sont uniquement nécessaires pendant la configuration initiale et pour l’édition interactive du fichier de configuration dans l’application.

8.2 Sécurisation des répertoires critiques

Les répertoires suivants doivent être interdits aux utilisateurs web :

  • conf : répertoire et tout son contenu
  • data : répertoire et tout son contenu
  • datamodels : autoriser uniquement les fichiers ayant l’une des extensions: css|scss|js|map|png|bmp|gif|jpe?g|svg|tiff|woff2?|ttf|eot|html
  • extensions : autoriser uniquement les fichiers ayant l’une des extensions: css|scss|js|map|png|bmp|gif|jpe?g|svg|tiff|woff2?|ttf|eot|html
  • lib : répertoire et tout son contenu
  • log : répertoire et tout son contenu
  • setup/permissions-test-folder/permissions-test-subfolder/`: uniquement requis si votre serveur web n’utilise pas .htaccess ou web.config

Vous devriez également empêcher le listage des répertoires.

8.3 Utilisation de HTTPS

Il est fortement recommandé de servir vos pages uniquement via le protocole HTTPS pour sécuriser les communications entre le client et le serveur.

8.3.1 Configuration des en-têtes HTTP de sécurité

Pour Apache, ajoutez les configurations suivantes:

Ajouter à votre configuration Apache (httpd.conf ou virtual host)

Force HTTPS

Header always set Strict-Transport-Security « max-age=63072000; includeSubdomains; » env=HTTPS

Sécurisation des cookies de session PHP

php_flag session.cookie_httponly on
php_flag session.cookie_secure on
php_value session.cookie_samesite « Lax »
php_value zend.exception_ignore_args 1

Protection contre le clickjacking

Header always set X-Frame-Options « sameorigin »

Empêcher le MIME sniffing

Header always set X-Content-Type-Options « nosniff »

Politique de référencement

Header always set Referrer-Policy « strict-origin-when-cross-origin »

Content Security Policy (exemple basique)

Header set Content-Security-Policy « default-src ‘self’; frame-src ‘self’ www.itophub.io;

8.4 Configuration exemple Apache complète pour la sécurité

Sécurisation des cookies de session

php_flag session.cookie_httponly on

Uniquement pour HTTPS

Header always set Strict-Transport-Security « max-age=63072000; includeSubdomains; » env=HTTPS
php_flag session.cookie_secure on

Empêcher le MIME sniffing

Header always set X-Content-Type-Options « nosniff »

Protection contre le clickjacking

Header always set X-Frame-Options « sameorigin »

Header always set Referrer-Policy « strict-origin-when-cross-origin »

Content Security Policy

Header set Content-Security-Policy « default-src ‘self’; frame-src ‘self’ www.itophub.io;

9. Finalisation de l'installation

1. Accédez à http://votre_serveur/itop depuis votre navigateur
2. Suivez l’assistant d’installation web :

  • Vérification des prérequis
  • Configuration de la base de données
  • Configuration de l’administrateur
  • Configuration initiale de l’application

Lors de l’installation via l’assistant web, vous devrez indiquer le chemin complet vers l’exécutable Graphviz :

  • Linux: /usr/bin/dot
  • Windows: C:\Program files (x86)\Graphviz 2.68\bin\dot.exe (ajustez selon votre installation)

10. Besoin d'assistance supplémentaire?

Ce guide vous a fourni les bases nécessaires pour déployer iTop Community Edition sur différentes distributions. Cependant, dans un contexte d’entreprise, vous pourriez avoir besoin de:

  • Optimiser votre instance iTop pour de meilleures performances
  • Intégrer iTop avec d’autres systèmes de votre SI
  • Personnaliser l’application pour des besoins métiers spécifiques
  • Former vos équipes à l’utilisation optimale de l’outil
  • Sécuriser davantage votre environnement

Chez ITSM-Factory, nous sommes spécialisés dans l’implémentation et l’optimisation de solutions ITSM basées sur iTop. Notre équipe d’experts peut vous accompagner au-delà de ce guide d’installation pour tirer le meilleur parti de votre investissement.

N’hésitez pas à nous contacter pour discuter de vos projets ITSM et découvrir comment nous pouvons vous aider à atteindre vos objectifs.