Par principe de sécurité (OSINT), cette page ne publie aucune adresse IP, nom de domaine, port, version logicielle précise ni horaire de sauvegarde.
Fermer
Projet Personnel

Homelab : mon laboratoire IT & Data

Un serveur Linux que je conçois, sécurise et exploite seul, avec de vrais utilisateurs. Objectif : comprendre « sous le capot » ce que la DSI et les prestataires mettent en place, pour mieux piloter les projets logistiques qui en dépendent (WMS, ERP, IoT, IA).

60+conteneurs en production
25+services auto-hébergés
48recommandations d'audit traitées
≈ 15 minrestauration complète testée
Partie 1

Ma philosophie : pourquoi un logisticien construit un serveur

Lors des grands déploiements (WMS, ERP, traceurs IoT), j'ai constaté que les retards viennent rarement de la logistique elle-même : ils naissent du fossé entre le terrain et l'IT. Les opérationnels demandent des flux sans voir les contraintes techniques ; l'IT impose des règles de sécurité que le terrain ne comprend pas.

Mon but n'est pas de devenir administrateur système, mais de parler les deux langues : anticiper les verrous d'infrastructure, challenger un prestataire sur des bases concrètes et écrire des cahiers des charges réalistes.

Comprendre avant de décider

Un audit en lecture seule précède toute modification : on mesure l'existant, on distingue le constaté du supposé.

Sécurité par défaut

Tout est fermé sauf ce qui est justifié. L'administration ne passe jamais par Internet, seulement par un VPN.

Une sauvegarde non testée n'existe pas

Le plan de reprise est chronométré sur un clone isolé, pas seulement documenté.

Un changement à la fois

Sauvegarde avant, vérification après, retour arrière écrit, journal des changements. Comme une migration WMS.

Le même raisonnement qu'en Supply Chain

Concept ITÉquivalent logistique
Sauvegarde 3-2-1 (3 copies, 2 supports, 1 hors site)Stock de sécurité réparti sur plusieurs sites
Supervision et alertesTour de contrôle transport
Reverse proxy (point d'entrée unique)Quai de réception unique avec contrôle à l'entrée
Authentification unique + 2FABadge d'accès par zone d'entrepôt
Test de restaurationExercice du plan de continuité d'activité
Fenêtre de maintenanceArrêt de ligne planifié
Partie 2

Mes réalisations : problème, action, résultat

Audit complet & plan de remédiation

Problème
Un serveur construit au fil de l'eau : services oubliés, sauvegardes incomplètes, aucune vue d'ensemble.
Action
Audit en lecture seule, cartographie documentée, 48 recommandations priorisées puis appliquées une à une (sauvegarde, vérification, retour arrière écrit).
Résultat
5 services inutiles retirés (moins de surface d'attaque), bases orphelines supprimées, journal de changements complet.
Gestion du changementDocumentationPriorisation

Plan de reprise testé en conditions réelles

Problème
Des sauvegardes existaient, mais personne ne savait si elles permettaient vraiment de repartir.
Action
Sauvegardes chiffrées et dédupliquées, dumps de bases cohérents, copie hors site avec instantanés ; restauration d'une plateforme complète sur un clone isolé, à partir des seules sauvegardes.
Résultat
Remise en service en ≈ 15 min, base identique à la production (491 tables), 100 % des fichiers contrôlés intègres. Procédure écrite et rejouable.
BorgBackupRègle 3-2-1PRA / PCA

Plateforme e-learning + plugin maison

Problème
Des supports de formation diffusés à des apprenants pouvaient être recopiés sans traçabilité.
Action
Développement d'un plugin Moodle : filigrane nominatif discret sur les pages et tatouage automatique des PDF chaque nuit, avec options dans les paramètres.
Résultat
Chaque document porte l'empreinte de son destinataire, sans gêner la lecture ni charger le serveur (traitement hors des heures d'usage).
PHPPythonDockerTraçabilité

Tour de contrôle : supervision & alertes

Problème
Des pannes découvertes par les utilisateurs, et des alertes si nombreuses qu'on finit par les ignorer.
Action
Tableaux de bord de métriques, sondes de disponibilité, rapport quotidien des sauvegardes, alertes poussées vers la messagerie d'équipe, fenêtres de maintenance contre les faux positifs.
Résultat
Moins d'alertes, mais toutes utiles. Stockage des métriques recalibré : 25 Go → 3,4 Go (−86 %) en gardant 31 jours d'historique.
GrafanaVictoriaMetricsUptime Kumantfy

Sécurité « Zero Trust » pragmatique

Problème
Un serveur exposé sur Internet reçoit des tentatives d'intrusion en continu.
Action
Pare-feu fermé par défaut, administration réservée au VPN, authentification unique avec 2FA devant les outils sensibles, prévention d'intrusion collaborative, suivi des mises à jour.
Résultat
Aucune interface d'administration visible depuis Internet ; messagerie conforme aux standards anti-usurpation (SPF, DKIM, DMARC).
Authelia (SSO/2FA)WireGuardCrowdSecUFW

Suite collaborative souveraine

Problème
Dépendre des grands clouds pour ses fichiers, sa messagerie et ses mots de passe.
Action
Fichiers, visio et bureautique en ligne (Nextcloud) sur stockage objet S3 avec miroir local ; messagerie complète ; coffre-fort de mots de passe.
Résultat
Des services utilisés au quotidien, avec des données qui restent sous contrôle et une copie hors du fournisseur cloud.
NextcloudS3MailcowVaultwarden

Data, automatisation & SIEM

Problème
Dans un SI logistique, les applications doivent échanger des données sans accès direct aux bases, et les menaces doivent être détectées tôt.
Action
Déploiement et exploitation de Directus (bases SQL exposées en API REST/GraphQL avec jetons), de n8n (workflows reliant API et alertes) et de Wazuh (SIEM : intégrité des fichiers, détection d'anomalies système).
Résultat
Simulation concrète de flux ERP/WMS « headless » par API, et une vision proche d'un SOC sur la sécurité du serveur.
DirectusAPI REST / GraphQLn8nWazuh
Partie 3

Architecture & outils

Vue simplifiée et volontairement générique : tout passe par un point d'entrée unique et contrôlé, l'administration est isolée derrière le VPN, et les données partent chaque jour vers un site distinct.

Cliquez pour zoomer
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#f8fafc', 'edgeLabelBackground':'#ffffff', 'tertiaryColor': '#fff'}}}%%
graph LR
classDef pub fill:#e0f2fe,stroke:#0369a1,stroke-width:2px;
classDef sec fill:#fee2e2,stroke:#b91c1c,stroke-width:2px;
classDef app fill:#f3e8ff,stroke:#6d28d9,stroke-width:2px;
classDef adm fill:#dcfce7,stroke:#15803d,stroke-width:2px,stroke-dasharray: 5 5;
classDef bak fill:#fef3c7,stroke:#b45309,stroke-width:2px;
U((Utilisateurs)):::pub --> FW[Pare-feu + IPS]:::sec --> RP[Reverse proxy
TLS automatique]:::sec --> SSO[SSO + 2FA]:::sec SSO --> A1[Collaboration
fichiers, visio]:::app SSO --> A2[E-learning]:::app RP --> A3[Messagerie]:::app RP --> A4[Sites web]:::app ADM((Admin)):::adm -.-> VPN[VPN WireGuard]:::adm -.-> OUT[Supervision · coffre-fort · DNS]:::adm A1 & A2 & A3 --> BK[Sauvegarde chiffrée
quotidienne]:::bak --> OFF[(Site distant
+ instantanés)]:::bak S3[(Stockage objet S3)]:::bak --> OFF
Socle

Debian 12 · Docker Compose · Traefik · Let's Encrypt

Sécurité

UFW · CrowdSec · Wazuh · Authelia · WireGuard (Tailscale) · auditd

Données & sauvegarde

MariaDB · PostgreSQL · Directus (API) · BorgBackup · rclone · S3

Observabilité

Grafana · VictoriaMetrics · Prometheus · Uptime Kuma · ntfy

Applications

Nextcloud · Moodle · Mailcow · Vaultwarden · FreshRSS

Développement

PHP (plugin Moodle) · Python · JavaScript · Bash · n8n

Pour aller plus loin