Files
SDIS29/README.md
2025-10-15 08:40:14 +02:00

6.8 KiB
Raw Permalink Blame History

Projet AP3 2026 - SDIS29

Partie Systèmes et Réseaux


Contexte du Projet

Le projet SDIS29 vise à moderniser le système dinformation du Service Départemental dIncendie et de Secours du Finistère afin doptimiser la gestion des alertes et la mobilisation des pompiers volontaires pour réduire les temps dintervention.

La partie systèmes et réseaux consiste à déployer une infrastructure virtualisée sur les serveurs Proxmox VE 9, hébergeant les services nécessaires au développement, test, et supervision de lapplication.


Mission I1 — Mise en œuvre des serveurs ap31-prod et ap31-test

Objectifs

  • Déployer deux serveurs virtuels sur le serveur Proxmox pxlab1 :

    • ap31-prod pour la production
    • ap31-test pour les tests
  • Sur chaque serveur, installer et faire fonctionner via Docker :

    • Serveur dapplication Payara (version 6.2025.9, JDK 17)
    • Gestionnaire de base de données MariaDB
  • Sur ap31-test, installer loutil PhpMyAdmin via Docker.


Étapes réalisées

1. Création des Templates Debian 12

  • Utilisation du script mktmpl situé dans /root/tools/ sur les serveurs pxlab1, pxlab2 et pxlab3.
  • Création des templates numérotés 2601, 2602, 2603 pour standardiser les VM Debian 12.

2. Déploiement des VM

  • Clonage des templates Debian 12 pour créer les machines virtuelles ap31-prod et ap31-test.
  • Paramétrage cloud init des VMs avec leur adresse IP et le masque de sous réseau (172.16.0.10x/24), gateway
  • Ajout du QEMU agent sur les machines permettant la communication entre la machine virtuelle et le serveur de virtualisation Proxmox.
  • Mise en place daccès SSH par clé publique depuis au moins deux postes de travail.
  • Configuration initiale :
    • Proxy configuré dans /etc/apt/apt.conf via wget depl/sio/api/apt.conf.
    • Fuseau horaire correctement paramétré.

3. Installation de Docker

  • Installation de Docker sur les VM ap31-prod et ap31-test.

4. Déploiement des services Docker

  • Création et utilisation de fichiers docker-compose.yml pour déployer :
    • Payara avec JDK 17
    • MariaDB
  • Sur ap31-test : déploiement de PhpMyAdmin.

5. Tests

  • Utilisation de Goss pour vérifier le bon fonctionnement des services et des machines

Mission I2 - Supervision des serveurs ap31-prod et ap31-test

Objectifs de la mission

  • Superviser les serveurs ap31-prod et ap31-test avec Zabbix installé sur ap31-mon.
  • Vérifier la connectivité (ping), accès SSH, et service web pour ap31-test.
  • Utiliser les agents zabbix_agent2 et associer les templates linux-server.
  • Envoyer des notifications en cas dincident (non réalisé via Zabbix mais avec Uptime Kuma).

Installation et configuration

  • Installation via apt des paquets Zabbix serveur, frontend, agent2, et MariaDB.
  • Création dune base MariaDB dédiée à Zabbix avec utilisateur spécifique et import du schéma initial.
  • Configuration de linterface web Zabbix avec connexion à la base MariaDB locale.
  • Activation automatique et vérification des services Zabbix.

Déploiement et supervision

  • Utilisation du wizard agent avec clés PSK pour déployer les agents sur ap31-prod et ap31-test.
  • Association des templates linux-server aux agents.
  • Difficultés rencontrées avec les templates ICMP (ping) et Apache2 web, non fonctionnels.
  • Les templates SSH nont pas été utilisés faute daccès SSH disponible.
  • La gestion des alertes na pas été réalisée via Zabbix mais déléguée à Uptime Kuma.

Mission I3 - Mise en place d'une infrastructure de gestion centralisée des logs

Objectifs de la mission

  • Centraliser les logs de plusieurs serveurs (ap31-prod, ap31-test, gwsiox) sur une machine dédiée (ap31-mon) via systemd-journal-remote.
  • Mettre en place une politique de rotation et de rétention des logs syslog, avec une rotation hebdomadaire sur 4 semaines.
  • Garantir la cohérence temporelle entre toutes les machines impliquées grâce à une synchronisation horaire fiable.

Mise en œuvre

Sur la machine centrale (réceptrice ap31-mon)

  • Activation et configuration du service systemd-journal-remote pour recevoir les logs via HTTP.
  • Création et gestion du répertoire /var/log/journal/remote avec les permissions appropriées.
  • Rechargement des services systemd et vérification de lécoute sur le port dédié.

Sur les serveurs sources (ap31-prod et ap31-test)

  • Installation du paquet systemd-journal-remote pour permettre lenvoi des logs.
  • Configuration dynamique de ladresse du serveur de réception dans /etc/systemd/journal-upload.conf via un script bash.
  • Activation et démarrage du service systemd-journal-upload pour transmettre les journaux système vers ap31-mon.

Gestion des logs et synchronisation

  • Mise en place dune rotation des logs syslog, configurée pour une périodicité hebdomadaire avec une conservation de 4 semaines.
  • Utilisation de timedatectl pour définir le fuseau horaire et garantir la synchronisation temporelle sur toutes les machines.

Mission I4 Sécurisation et sauvegarde de la base de données

Objectifs de la mission

  • Sécuriser l'accès SSH aux machines via authentification par clé publique uniquement.
  • Mettre en place une sauvegarde automatique, compressée et quotidienne de la base MariaDB sur ap31-test.
  • Conserver un historique de 7 jours de ces sauvegardes.
  • Fournir un script permettant de restaurer la dernière sauvegarde sur ap31-prod.

Sécurisation de l'accès SSH

  • Utilisation exclusive de lauthentification par clé publique :
    • Ajout des clés des administrateurs dans le fichier ~/.ssh/authorized_keys.
    • Désactivation de lauthentification par mot de passe dans /etc/ssh/sshd_config (PasswordAuthentication no).
  • Configuration du fichier ~/.ssh/config pour permettre la connexion via nom de domaine personnalisé, avec des alias pour simplifier l'accès aux serveurs (ex. : ssh ap31-prod).
  • Redémarrage du service SSH pour prise en compte des modifications.

Sauvegarde automatisée de MariaDB sur ap31-test

  • Mise en place dun script bash exécuté quotidiennement (via cron) pour :
    • Effectuer un dump de la base sdis29 avec lutilisateur adminBDsdis.
    • Compresser la sauvegarde (gzip).
    • La stocker dans /var/backups/mariadb avec un nom de fichier horodaté.
    • Supprimer les sauvegardes plus anciennes que 7 jours.

Restauration de la dernière sauvegarde sur ap31-prod

  • Un script permet de :
    • Décompresser la dernière sauvegarde disponible.
    • Restaurer automatiquement le fichier SQL dans la base sdis29 sur ap31-prod à laide des identifiants fournis.