Guide_installation - FunWarry/Projet-ESEO-css-datacenter GitHub Wiki
- Un ordinateur avec :
- > 4 cœurs
- > 8 Go de RAM
- > 40 Go d'espace libre
- 2 cartes Ethernet
- Une connexion vers le routeur de l'ESEO
- Une connexion vers le switch de votre LAN
Un script dédié permet désormais d’automatiser les étapes suivantes :
- Téléchargement automatique de l'ISO OPNSense
- Création de la VM VirtualBox
- Démarrage initial de la VM
bash scripts/setup_opnsense.sh
Ce script :
-
Télécharge l’ISO depuis https://opnsense.org/downloads
-
Crée une VM FreeBSD 64-bit dans VirtualBox
-
Affecte 2 interfaces réseau (LAN et WAN)
-
Attache le disque dur et l’ISO
-
Lance automatiquement la VM
-
Accède à l’interface web pour importer la configuration
-
Une fois la VM lancée et la configuration importée :
-
Aller dans System > Configuration > Backup / Restore
-
Sélectionner le fichier fourni dans Configuration Opnsense
-
Importer la configuration
-
Redémarrer la machine
⚠️ Certaines configurations spécifiques (interfaces, NAT) doivent encore être ajustées manuellement après import. -
Ce guide décrit les étapes à suivre pour installer et configurer la partie réseau de votre système, en utilisant les scripts de configuration du routeur et du switch, ainsi que le schéma de branchement réseau.
Avant de commencer, assurez-vous d'avoir les éléments suivants :
- Les scripts de configuration du routeur et du switch.
- Le schéma de branchement réseau.
- Les équipements réseau (routeur, switch, câbles Ethernet).
- Un ordinateur avec une interface réseau et un logiciel de terminal (par exemple, PuTTY).
-
Branchement des équipements :
- Suivez le schéma de branchement réseau pour connecter les équipements entre eux à l'aide des câbles Ethernet.
- Assurez-vous que tous les équipements sont correctement alimentés.
-
Configuration du routeur :
- Connectez votre ordinateur au routeur à l'aide d'un câble serial.
- Ouvrez un logiciel de terminal et configurez la connexion avec les paramètres suivants :
- Type de connexion : Série (ou Telnet si le routeur est configuré pour le permettre)
- Débit en bauds : 9600 (ou autre valeur spécifiée par le fabricant)
- Bits de données : 8
- Parité : Aucune
- Bits d'arrêt : 1
- Contrôle de flux : Aucun
- Mettez le routeur sous tension et attendez qu'il démarre.
- Copiez et collez le script de configuration du routeur dans le terminal en plusieurs partie pour éviter les problème, de préférence acl par acl puis le reste (clique droit pour coller sur une console putty).
- Enregistrez la configuration en tapant sur "entrer" pour la commande
copy running-config startup-config
.
-
Configuration du switch :
- Connectez votre ordinateur au switch à l'aide d'un câble serial.
- Ouvrez un logiciel de terminal et configurez la connexion de la même manière que pour le routeur.
- Mettez le switch sous tension et attendez qu'il démarre.
- Copiez et collez le script de configuration du switch dans le terminal (clique droit pour coller sur une console putty).
- Enregistrez la configuration en tapant sur "entrer" pour la commande
copy running-config startup-config
.
-
Vérification de la connectivité :
- Une fois les configurations du routeur et du switch terminées, vérifiez la connectivité entre les différents équipements.
- Utilisez la commande
ping
sur votre ordinateur pour tester la connectivité avec le routeur, le switch et les autres équipements du réseau. - Si la connectivité n'est pas établie, vérifiez les branchements, les configurations et les adresses IP.
Se trouve dans le dossier "scripte réseau" pour le rendu Incrément 1.
Le déploiement des services de l’infrastructure est centralisé via une machine ansibleMaster, située sur le VLAN 60 (DNS). Elle permet de configurer et lancer le déploiement de toutes les VMs nécessaires (DNS, Web, BDD, Supervision, etc.) via un ensemble de playbooks Ansible.
ansibleMaster/
├── ansible/ # Contient les playbooks, rôles et inventaire
├── logs/ # Fichiers de journalisation Ansible
├── scripts/ # Scripts bash complémentaires (menu, setup, etc.)
└── Vagrantfile # Fichier Vagrant pour déployer ansibleMaster
ansible/
├── playbooks/ # Playbooks Ansible pour le déploiement des services
│ ├── Bdd.yml
│ ├── destroy\_all.yml
│ ├── DHCP.yml
│ ├── Dns.yml
│ ├── Relais.yml
│ ├── roles/ # Rôles Ansible pour modulariser les déploiements
│ ├── Sauvegarde.yml
│ ├── send\_packages.yml
│ ├── Squash.yml
│ ├── Supervision.yml
│ └── Web.yml
├── variables/
│ └── inventory.ini # Inventaire des hôtes pour cibler les machines
cd ansibleMaster
vagrant up
vagrant ssh
cd /vagrant/ansible
Tous les playbooks s'exécutent via l’utilisateur ansible, et sont lancés depuis le répertoire ansible.
➤ Exemple : déploiement du serveur DNS
ansible-playbook -i variables/inventory.ini playbooks/Dns.yml
➤ Exemple : envoi des fichiers de configuration
ansible-playbook -i variables/inventory.ini playbooks/send_packages.yml
➤ Exemple : destruction de toutes les VMs/services
ansible-playbook -i variables/inventory.ini playbooks/destroy_all.yml
Un script scripts/deploiement.sh permet de choisir les services à déployer via un menu :
bash scripts/deploiement.sh
Menu proposé :
=== Déploiement ESEO Cloud ===
1. Déployer serveur DNS
2. Déployer cluster Galera + HAProxy
3. Déployer machines Étudiants
4. Déployer serveur Zabbix
5. Déployer infrastructure de sauvegarde
Chaque option exécute un playbook correspondant.
-
Le fichier inventory.ini contient les IPs, noms d’hôtes et groupes utilisés par Ansible.
-
Tous les déploiements sont testés avec l’utilisateur ansible.
-
Assurez-vous que l’utilisateur etudis a les droits nécessaires si vous utilisez une VM alternative.
-
Les logs sont stockés dans logs/ pour consultation en cas d’erreur.
-
Ne jamais modifier directement les fichiers dans roles/send_packages/files/ sans versionner les changements.
-
Toujours tester les modifications dans un environnement local avant de les intégrer à l’environnement de production.
-
Documenter tout ajout de rôle ou playbook dans le wiki Git.
- Lors de l'installation de la vms via l'Ansible master, un fichier de configuration est importé, Pour les dashboard, il faut ensuite importer un fichier spécifique
Une fois l'installation de toute les vms terminée, accédez à l'interface web à l'adresse:
http://192.168.238.3/zabbix
pour l'ip publique donc hors de notre reseau de projet:
http://192.168.4.240:1000/zabbix
Identifiants par défaut:
- Utilisateur: Admin
- Mot de passe: zabbix
- Remplacez 'password' par un mot de passe sécurisé
- Modifiez le mot de passe par défaut après la première connexion
- Vérifiez les logs en cas de problème dans
/var/log/zabbix/
Après connexion :
-
Allez dans Monitoring > Dashboards
-
Vous trouverez plusieurs dashboards préconfigurés :
- Global View : Vue d'ensemble de l'infrastructure
- Sécurité : État des firewalls, IDS, règles réseau
- Réseaux : Surveillance des équipements réseau (trafic, interfaces)
- BDD : Suivi des bases de données (MySQL, PostgreSQL, etc.)
- LB et Web : Charge sur les Load Balancers, disponibilité des sites web
Chaque dashboard offre :
- Une visualisation graphique claire des indicateurs de performance
- Une liste des alertes récentes classées par gravité
Pour explorer les hôtes surveillés :
- Cliquez sur Monitoring > Hosts
- Une liste d’hôtes s’affiche (serveurs, équipements réseau, etc.)
- Cliquez sur un hôte pour accéder aux détails suivants :
- Items : Voir les éléments surveillés (CPU, mémoire, services, etc.)
- Graphs : Visualiser les graphiques de performance
- Problems : Vérifier les alertes et incidents en cours
-
Allez dans Monitoring > Hosts
-
En haut à droite cliquez sur Create host
-
Remplissez les informations suivantes :
-
Host name : Nom de l’hôte (ex.
srv-web-01
) -
Groups : Ajouter à un groupe existant (ex :
Linux servers
) - Interfaces : Saisissez l’IP ou le DNS selon le type d’interface (Agent, SNMP, etc.)
-
Host name : Nom de l’hôte (ex.
-
Lier un Template :
- Allez dans l’onglet Templates
- Cliquez sur Add
- Sélectionnez un template adapté (ex :
Template OS Linux by Zabbix agent
)
-
Cliquez sur Add
L’hôte sera automatiquement surveillé et apparaîtra parmi les hôtes dès que des données seront reçues car implicitement chaque VM dans notre infrastructure à un agent Zabbix d'installé qui va remonter les métriques vers notre serveur Zabbix.
Selon le type d’hôte que vous souhaitez ajouter, la méthode varie :
- Allez dans Configuration > Hosts
- Cliquez sur Create host
- Remplissez :
-
Host name : ex.
srv-database-01
-
Group : ex.
Linux servers
- Interfaces : IP + sélectionnez le type Agent
-
Host name : ex.
- Lier un template :
- Onglet Templates
- Cliquez sur Add
- Choisissez Template OS Linux by Zabbix agent
- Cliquez sur Add
- Allez dans Configuration > Hosts
- Cliquez sur Discovery (ou utilisez une règle de découverte déjà active)
- Sélectionnez un hôte détecté automatiquement
- Cliquez sur Create host ou Convert to host
- Remplissez :
-
Host name : ex.
switch-core
-
Group :
Network devices
- Interface : SNMP, avec IP correcte
-
Host name : ex.
- Lier un template :
- Exemple : Template Net Cisco SNMP (ou un template SNMP générique adapté)
- Cliquez sur Add
Zabbix permet de configurer la découverte réseau depuis le menu Data collection > Discovery. Voici comment créer une règle de découverte adaptée à ton environnement.
- Accéder à la création de la règle
- Aller dans
Data collection > Discovery
- Cliquer sur Create discovery rule
- Remplir les paramètres principaux
Champ | Valeur recommandée |
---|---|
Name | Scan réseau local |
Discovery by |
Zabbix agent ou SNMPv2 agent
|
Server/Proxy | Choisir le serveur Zabbix ou un proxy |
IP range |
192.168.0.1-254 (ou selon ton réseau)
|
Update interval | 1h |
Maximum concurrent checks |
Unlimited (ou personnaliser si besoin)
|
- Ajouter des vérifications
- Dans la section Checks, cliquer sur Add
- Sélectionner un Type :
-
Zabbix agent
pour les serveurs -
SNMP
pour les équipements réseau
-
- Tu peux ajouter plusieurs types si nécessaire
- Définir les critères d’unicité
Ces critères permettent à Zabbix d’éviter les doublons lors de la découverte automatique.
- Coche un ou plusieurs critères :
-
IP address
(recommandé) -
Host name
,DNS name
,Visible name
(optionnel selon ton usage)
-
- Activer la règle
- Vérifie que l’option Enabled est cochée
- Clique sur Add
-
Créer une Action liée à la découverte
-
Aller dans
Configuration > Actions
-
Onglet Discovery actions
-
Cliquer sur Create action
Exemple d'action automatique :
-
Name :
Ajout auto - Serveurs Linux
-
Conditions :
Discovery check = Zabbix agent
IP = 192.168.0.1-254
-
Operations :
-
Add to host group
:Linux servers
-
Link to template
:Template OS Linux by Zabbix agent
-
Add host
: activé
-
Zabbix va désormais :
- Scanner automatiquement la plage IP indiquée toutes les heures
- Identifier les hôtes répondant aux critères
- Créer les hôtes dans Zabbix
- Leur associer un template et un groupe automatiquement
Dans Zabbix 7, les actions liées à des triggers sont configurées séparément depuis l’onglet Alerte > Actions > Trigger actions
.
- Aller dans
Configuration > Hosts
- Sélectionner l’hôte cible (ex.
srv-web-01
) - Onglet
Triggers
→ Create trigger - Renseigner les champs :
-
Name :
CPU > 80% pendant 5 min
-
Severity :
High
-
Expression :
- Cliquer sur Add
- Choisir un item :
system.cpu.util
- Fonction :
last(300)
- Opérateur :
>
- Valeur :
80
- Cliquer sur Insert
- Exemple généré :
{srv-web-01:system.cpu.util.last(300)}>80
-
Name :
- Cliquer sur Add
- Aller dans
Alerte > Actions > Trigger actions
- Cliquer sur Create action
- Renseigner les champs :
-
Name :
Alerte CPU haute
-
Conditions :
Trigger severity = High
Trigger name contains CPU
-
Operations :
-
Default operation :
- Cliquer sur Add step
-
Send message to users :
- Sélectionner un groupe d'utilisateurs (ex. Admins)
- Choisir le moyen de notification (Ms Teams , Telegram, etc.)
-
Default operation :
-
Name :
Semaine | Date | Utilisation estimée | Espace libre | Statut | Actions |
---|---|---|---|---|---|
Actuelle | 11 juin 2025 | 93.89% | 6.11% | 🟠 Attention | Surveillance critique |
Semaine 1 | 18 juin 2025 | 95.74% | 4.26% | 🔴 Critique | Alerte 95% dépassée ! |
Semaine 2 | 25 juin 2025 | 97.59% | 2.41% | 🔴 Critique | Extension URGENTE |
Semaine 3 | 2 juillet 2025 | 99.44% | 0.56% | ⚫ Danger | Action immédiate |
Semaine 4 | 9 juillet 2025 | SATURÉ | 0.00% | ⚫ PANNE | CRITIQUE |
Optimisations Zabbix
Réduire la rétention des trends : 90j → 30j
Réduire la rétention history : 30j → 15j
Désactiver items non critiques temporairement
La solution que je vais mettre en place est d'étendre la partition de l'éspace de disque du serveur zabbix qui est la de 6.4 Go à 100Go
Et de de mettre plus tard un serveur proxy.
- Connectez-vous sur le pc destiné à la supervision.
- Téléchargez https://packages.wazuh.com/4.x/vm/wazuh-4.12.0.ova
- importez la machine dans VirtualBox.
- avant de lancer celle-ci, changez le contrôleur graphique : dans
Configuration -> Affichage -> Controlleur Graphique
sélectionnezVMSVGA
. - Dans l'onglet
Réseau
, si le mode d'accès réseau n'est pasAccès par pont
, sélectionnez-le, le nom doit êtreeno1
pour avoir accès au réseau. - lancez la machine.
- Dès que vous voyez l'écran de login, entrez l'identifiant et mot de passe
- Pour plus de sécurité, entrez la commande
passwd
et entrez un mot de passe sécurisé dont vous vous souviendrez - Entrez la commande
ip a
- Celle-ci affichera une IP sous
eth0
, entrez celle-ci dans un navigateur internet comme ceci :https://<IPDeWazuh>
- Connectez-vous, l'identifiant et mot de passe par défaut sont tous deux
admin
- Un écran d'accueil s'affiche, sur celui-ci se trouve une zone pour ajouter des agents, cliquez dessus,
- Pour pouvoir surveiller les machines et détecter des intrusions et activités suspectes il nous faudra installer des agents qui enverront des rapports à la machine Wazuh, voici les IPs des machines sur lesquelles il faudra se connecter :
Machines | IPs |
---|---|
Firewall | 192.168.239.251 |
Web | 192.168.232.2 |
BDD | 192.168.234.2 |
Sauvegarde | 192.168.236.2 |
Supervision | 192.168.238.2 |
DNS | 192.168.238.11 |
-
Pour installer les agents dans chaque machine :
- dans une fenêtre d'invite de commande, lancez la commande
ssh etudis@<IPMachine>
, cette commande demandera un mot de passe qui est celui de base pour chaque utilisateur "etudis" - Dans la fenêtre endpoints-summary:
- sélectionnez
DEB amd64
- Dans le champ de texte sous
Assign a server address
entrez l'IP du site - Dans
Assign an agent name
entrez le nom de la machine
- sélectionnez
- La page nous donne ensuite une commande à lancer pour installer le client Wazuh, dans l'invite de commande dans laquelle vous vous êtes préalablement connecté en SSH, copiez-collez la commande et lancez-la
- Après que la commande a fini d’exécuter, exécutez celle située en dessous sur la page web pour lancer l'agent
- dans une fenêtre d'invite de commande, lancez la commande
-
Suivez ces instructions sur chaque machine jusqu'à que toutes aient un agent Wazuh actif.
-
Après avoir installé les agents sur chaque machine, la page web de Wazuh doit proposer un diagramme indiquant le status de chaque agent avec une zone nommée
AGENTS SUMMARY
, Avec la VM OPNSense, il devrait y avoir sept agents actifs.
Ce guide décrit la mise en place d’un système de sauvegarde automatisé entre plusieurs clients, une machine de sauvegarde et une machine de contrôle (proxy1
) utilisant Ansible, BorgBackup et des scripts personnalisés. Lors du lancement de l'infrastructure via l'Ansible master, C'est vms sont déployé en même temps que les autres.
Machine | Rôle |
---|---|
proxy1 |
Machine centrale avec dépôt BorgBackup |
sauvegarde |
Machine de contrôle (Ansible + Vagrant) |
clientX |
Machines à sauvegarder |
Sur sauvegarde1
:
cd ~/Bureau/sauvegarde.ansible/
vagrant up
Sur sauvegarde1
, exécuter :
bash scripts/send_keys.sh
Cela :
- génère une clé SSH pour l'utilisateur
vagrant
(si elle n'existe pas), - copie la clé publique vers l’utilisateur
backup
deproxy1
, - prépare la connexion SSH pour permettre les sauvegardes sans mot de passe.
ansible -i inventory.ini all -m ping
Depuis sauvegarde1
:
ansible-playbook -i inventory.ini node.yml
Ce playbook :
-
Lance les VMs avec
vagrant up
. -
Attends la connexion SSH.
-
Appelle :
-
config_proxy.yml
pour la machineproxy1
-
config_sauv.yml
poursauvegarde1
-
agent_zabbix.yml
pour installer les agents surproxy1
etsauvegarde1
-
ansible-playbook -i inventory.ini trigger_backup.yml
Ce playbook :
-
Exécute les scripts de sauvegarde (
backup_files.sh
etbackup_bdd.sh
) sur chaque client. -
Ajoute des tâches cron pour automatiser :
- Sauvegarde de fichiers chaque nuit à 2h.
- Sauvegarde BDD toutes les 6h.
-
Vérifie le contenu du dépôt Borg depuis
proxy1
.
[sauv]
sauvegarde1
[proxy]
proxy1
[clients]
client1
client2
client3
[all:vars]
ansible_user=vagrant
ansible_ssh_private_key_file=/home/vagrant/.ssh/id_rsa
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
hostname,ip,role
client1,192.168.236.*,client
client2,192.168.234.*,client
client3,192.168.232.*,client
- Toutes les machines client sauvegardent leurs fichiers et bases via Borg vers
proxy1
. - L’infrastructure est automatisée, supervisée (Zabbix), et extensible à d’autres sous-réseaux.
- Le contrôle est centralisé sur
sauvegarde1
.