L'objectif de ce TP est de :
Les règles du pare-feu devront :
Installer Apache, MariaDB et PHP :
sudo apt update
sudo apt install apache2 mariadb-server php php-mysql libapache2-mod-php
Sécuriser MariaDB :
sudo mysql_secure_installation
Créer la base de données WordPress :
sudo mysql -u root -p
CREATE DATABASE wordpress_db;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'votre_mot_de_passe';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Installer WordPress :
Configurer Apache pour pointer vers wordpress comme VirtualHost si nécessaire.
Vérifier l'accessibilité de WordPress via l'URL (http://10.10.20.2/wordpress par exemple).
Préparer le serveur :
sudo apt update
sudo apt install wget curl -y
Télécharger le package Nagios XI 2024 depuis le site officiel ou via un script fourni par Nagios (les étapes exactes peuvent varier selon la version).
Décompresser et exécuter le script d'installation :
tar xzf nagiosxi-2024*.tar.gz
cd nagiosxi-2024/
sudo ./fullinstall
Sur Debian, rsyslog est souvent déjà installé. Sinon :
sudo apt update
sudo apt install rsyslog
Vérifier que le service est actif :
systemctl status rsyslog
Configurer éventuellement la réception de logs distants (optionnel selon vos besoins).
Nous allons déployer les sondes suivantes sur NAGIOS. Chaque hôte (PF, RSYSLOG, SRV-WEB, PC-CLIENT, NAGIOS lui-même) doit être monitoré selon les sondes listées.
Vous trouverez ci-dessous la liste détaillée de toutes les sondes à configurer, classées par équipement. Chaque sonde est documentée avec les informations suivantes :
| N° | Nom de la sonde | Objectif | Seuils W/C | Action en cas d'anomalie |
|---|---|---|---|---|
| 1 | CPU 1min | Vérifier la charge CPU moyenne sur 1 min | WARNING : 70% / CRITICAL : 90% | Vérifier les processus gourmands. Fermer l'application incriminée. |
| 2 | DISK (C:\) | Vérifier l'espace disponible sur C:\ | WARNING : 70% / CRITICAL : 80% | Libérer de l'espace, archiver/supprimer des fichiers inutiles. |
| 3 | RAM 1min | Vérifier l'utilisation de la RAM sur 1 min | WARNING : 70% / CRITICAL : 85% | Vérifier les processus, augmenter la RAM si nécessaire. |
| N° | Nom de la sonde | Objectif | Seuils W/C | Action en cas d'anomalie |
|---|---|---|---|---|
| 1 | CPU 15min | Surveiller la charge CPU moyenne sur 15 min | WARNING : 50% / CRITICAL : 70% | Analyser les processus, vérifier la charge sur la durée. |
| 2 | CPU 5min | Surveiller la charge CPU moyenne sur 5 min | WARNING : 60% / CRITICAL : 80% | Idem ci-dessus, examiner la montée en charge plus courte. |
| 3 | CPU 1min | Surveiller la charge CPU moyenne sur 1 min | WARNING : 70% / CRITICAL : 90% | Intervention plus rapide : stopper un service incriminé si besoin. |
| 4 | DISK / | Vérifier l'espace disque racine (/) | WARNING : 70% / CRITICAL : 85% | Archiver/supprimer des logs ou fichiers inutiles, augmenter la partition. |
| 5 | USERS (root) | Vérifier qu'il n'y a pas plus d'une session root simultanée | > 1 connexion root | Vérifier si un autre administrateur n'est pas connecté ou s'il y a un souci sécurité. |
| N° | Nom de la sonde | Objectif | Seuils W/C | Action en cas d'anomalie |
|---|---|---|---|---|
| 1 | CPU 15min | Charge CPU moyenne sur 15 min | WARNING : 50% / CRITICAL : 70% | Vérifier si un grand nombre de requêtes web sur la durée. |
| 2 | CPU 5min | Charge CPU moyenne sur 5 min | WARNING : 60% / CRITICAL : 80% | Idem, contrôle sur une période plus courte. |
| 3 | CPU 1min | Charge CPU moyenne sur 1 min | WARNING : 70% / CRITICAL : 90% | Intervention d'urgence si la charge dépasse 90%. |
| 4 | DISK / | Espace disponible sur la racine (/) | WARNING : 70% / CRITICAL : 90% | Vérifier logs Apache, logs applicatifs, base de données. |
| 5 | HTTPD 1min | Vérifier si Apache tourne (service httpd ou apache2) | Service up/down | Redémarrer le service si down, analyser les logs d'erreur. |
| 6 | INDEX 1min | Vérifier l'accessibilité de la page index.php (WordPress) | HTTP 200 (ou code 2xx) attendu | Vérifier la config Apache, le VHost, le code WordPress s'il y a un souci. |
| 7 | MARIADB 1min | Vérifier si MariaDB tourne | Service up/down | Redémarrer le service si down, vérifier logs MySQL. |
| 8 | RAM 1min | Vérifier l'utilisation de la RAM | WARNING : 70% / CRITICAL : 85% | Optimiser les services, augmenter la RAM ou vérifier la conf MySQL/Apache. |
| 9 | USERS (root) | Vérifier le nombre de sessions root | > 1 connexion root | Vérifier qu'il n'y a pas d'accès non autorisé. |
Note : Nagios se surveille lui-même.
| N° | Nom de la sonde | Objectif | Seuils W/C | Action en cas d'anomalie |
|---|---|---|---|---|
| 1 | CPU 15min | Charge CPU moyenne sur 15 min | WARNING : 50% / CRITICAL : 70% | Vérifier la charge, trop de checks simultanés ? |
| 2 | CPU 5min | Charge CPU moyenne sur 5 min | WARNING : 60% / CRITICAL : 80% | Réduire la fréquence de checks si surcharge. |
| 3 | CPU 1min | Charge CPU moyenne sur 1 min | WARNING : 70% / CRITICAL : 90% | Vérifier si un pic anormal, stopper les checks non critiques. |
Les sondes CPU et DISK sur un pare-feu peuvent varier selon qu'il s'agisse d'un OS dédié (pfsense, ipfire) ou d'un Linux. Adaptez selon votre pare-feu. Ici, on considère un firewall Linux.
| N° | Nom de la sonde | Objectif | Seuils W/C | Action en cas d'anomalie |
|---|---|---|---|---|
| 1 | CPU 15min | Surveiller la charge CPU moyenne sur 15 min | WARNING : 50% / CRITICAL : 70% | Vérifier règles iptables, logs, etc. |
| 2 | CPU 5min | Surveiller la charge CPU moyenne sur 5 min | WARNING : 60% / CRITICAL : 80% | Vérifier les services, potentiels scans, tentatives d'intrusion. |
| 3 | CPU 1min | Surveiller la charge CPU moyenne sur 1 min | WARNING : 70% / CRITICAL : 90% | Action rapide : bloquer des IP malveillantes si besoin. |
| 4 | DISK / | Vérifier la partition racine du pare-feu (/) | WARNING : 70% / CRITICAL : 85% | Archiver logs, déplacer ou supprimer des fichiers temporaires. |
| 5 | USERS (root) | Vérifier qu'il n'y a pas plus d'une session root simultanée | > 1 connexion root | Vérifier une intrusion possible, couper immédiatement la session suspecte. |
Afin d'avoir une vision globale, voici un tableau listant chaque équipement, la sonde et le paramètre technique à surveiller (seuils, intervalle, etc.).
| Serveur/PC | Sonde | Paramètre |
|---|---|---|
| PC-CLIENT | CPU (1min) | WARNING : 70%, CRITICAL : 90% |
| DISK C:\ | WARNING : 70%, CRITICAL : 80% | |
| RAM (1min) | WARNING : 70%, CRITICAL : 85% | |
| RSYSLOG | CPU (15min, 5min, 1min) | 15min : W=50%/C=70% ; 5min : W=60%/C=80% ; 1min : W=70%/C=90% |
| DISK / | WARNING : 70%, CRITICAL : 85% | |
| USERS (root) | > 1 connexion root | |
| SRV-WEB | CPU (15min, 5min, 1min) | 15min : W=50%/C=70% ; 5min : W=60%/C=80% ; 1min : W=70%/C=90% |
| DISK / | WARNING : 70%, CRITICAL : 90% | |
| HTTPD (1min) | Service up/down | |
| INDEX (1min) | Vérifier http:///wordpress/index.php - code 200 | |
| MARIADB (1min) | Service up/down | |
| RAM (1min) | WARNING : 70%, CRITICAL : 85% | |
| USERS (root) | > 1 connexion root | |
| NAGIOS | CPU (15min, 5min, 1min) | 15min : W=50%/C=70% ; 5min : W=60%/C=80% ; 1min : W=70%/C=90% |
| PF | CPU (15min, 5min, 1min) | 15min : W=50%/C=70% ; 5min : W=60%/C=80% ; 1min : W=70%/C=90% |
| DISK / | WARNING : 70%, CRITICAL : 85% | |
| USERS (root) | > 1 connexion root |
À la fin de ce TP, vos stagiaires auront :
Cela leur donnera un aperçu très complet de la mise en œuvre d'une infrastructure professionnelle supervisée.