Serveur personnel — Stockage hybride & Cloud privé
Reconversion d'un PC portable en serveur domestique sécurisé, sans aucun port ouvert sur Internet : services auto-hébergés, bastion d'accès web, infrastructure décrite en code, supervision, détection d'intrusions, alerting et sauvegardes chiffrées.
- 0 port ouvert sur Internet
- 12 conteneurs en Docker Compose
- 11 tests de sécurité validés
- Détection sur le trafic Internet réel : le portfolio, seul service public, passe désormais par le reverse proxy, qui récupère la vraie adresse de chaque visiteur (en-tête fourni par Cloudflare). CrowdSec analyse ainsi les vraies tentatives des robots (recherche de fichiers .env, de pages d'administration…) au lieu d'un trafic uniquement interne ; détection validée par un test en rafale.
- Défense en profondeur sur le reverse proxy : avant d'y laisser entrer du trafic public, quatre protections devant le gestionnaire de mots de passe et le bastion : liste d'accès par adresse, en-têtes d'adresse falsifiables ignorés, aucune réponse aux noms inconnus et tunnel limité au seul portfolio. Chaque couche a été testée, puis une attaque de bout en bout depuis Internet.
- Mesurer avant de filtrer : la lecture des journaux a révélé, avant la mise en service, que la traduction d'adresses de Docker aurait rendu la liste d'accès inopérante ; corrigé en plaçant le tunnel sur le réseau du reverse proxy, puis documenté en retour d'expérience dans le Dossier d'Exploitation.
18 octobre 2026
- Détection d'intrusions (CrowdSec) : analyse en continu du journal SSH et des journaux du reverse proxy, dans un conteneur dédié sans aucun port publié. Mode détection seule, voulu : le serveur n'expose rien à Internet, donc rien à bloquer, et les adresses privées (réseau local, Tailscale, Docker) sont ignorées par défaut.
- Alertes vérifiées de bout en bout : notifications Discord testées en deux temps (webhook seul, puis alerte réelle déclenchée par une décision manuelle), car la commande de test intégrée n'envoyait rien de fiable ; lecture des journaux contrôlée avec cscli explain, puis documentée en retour d'expérience dans le Dossier d'Exploitation.
10 octobre 2026
- Bastion d'accès web (Apache Guacamole) : un terminal SSH sur le serveur et le bureau du PC fixe, ouverts depuis un simple navigateur, même sur téléphone. Joignable uniquement par Tailscale, sans aucun port publié, avec double authentification (TOTP) et compte par défaut supprimé.
- Accès cloisonnés (défense en profondeur) : clé SSH dédiée au bastion, acceptée seulement depuis les réseaux Docker du serveur (option from=) ; VNC du PC verrouillé deux fois, par TightVNC et par le pare-feu Windows, sur la seule adresse du serveur, refus vérifié depuis une autre machine. Une règle de pare-feu ouverte à tous par l'installateur a été repérée et désactivée.
- Intégré à l'exploitation : Guacamole 1.6.0 en Docker Compose (interface, moteur guacd, PostgreSQL 16 sur un réseau isolé), version figée, dump cohérent de la base avant chaque sauvegarde chiffrée, sonde Uptime Kuma avec alerte d'expiration du certificat.
- Diagnostic couche par couche : quatre blocages résolus en lisant les journaux des deux côtés (certificat impossible en défi HTTP sans port ouvert, passé en défi DNS ; format de clé SSH ; Windows 11 Famille sans RDP, remplacé par VNC ; authentification VNC), puis documentés en retour d'expérience dans le Dossier d'Exploitation.
9 octobre 2026
- Zéro port ouvert sur Internet : portfolio publié par un tunnel Cloudflare (connexion sortante uniquement), gestionnaire de mots de passe joignable seulement par le VPN Tailscale (certificat Let's Encrypt par défi DNS). Exposition vérifiée en IPv4 et en IPv6.
- Infrastructure décrite en code : 8 conteneurs en Docker Compose, secrets isolés dans des fichiers .env (droits 600), configuration incluse dans la sauvegarde chiffrée, restauration testée.
- SSH durci : authentification par clé Ed25519 uniquement (une clé par appareil, révocable individuellement), connexion root interdite, liste blanche d'utilisateurs et nombre d'essais limité.
- Partage SMB au moindre privilège : comptes dédiés (lecture seule pour consulter, écriture réservée aux transferts), SMB1 désactivé, accès limité au réseau local et à Tailscale, validé par 11 tests de sécurité.
- Audit et remédiation : découverte et fermeture de deux accès non documentés du système — un partage administrateur exposant les données système et le réseau d'accès distant public de l'éditeur — avec des garde-fous contre leur réactivation (service masqué, contrôle automatique par timer systemd et alerte Discord).
- Incident traité de bout en bout : une sauvegarde nocturne manquée (planification effacée au redémarrage) a été diagnostiquée, corrigée par des timers systemd persistants avec rattrapage automatique, puis documentée en retour d'expérience dans le Dossier d'Exploitation.
2 octobre 2026
- Sauvegardes chiffrées et versionnées du gestionnaire de mots de passe (restic) : copie cohérente de la base SQLite, rotation 14 j / 8 sem. / 12 mois et test de restauration validé.
- Détection des sauvegardes manquées ou en échec (moniteur Push Uptime Kuma, principe du « dead man's switch »), avec alerte Discord.
- Mises à jour automatiques et planifiées des conteneurs (Watchtower, fork maintenu) après la sauvegarde nocturne ; versions figées pour les briques critiques (reverse proxy, VPN, supervision).
- Audit de sécurité de l'infrastructure : tests d'exposition depuis l'extérieur (IPv4/IPv6), durcissement de Vaultwarden (administration désactivée, inscriptions et invitations fermées) et filtrage DNS limité au réseau local.
- Sécurisation des comptes d'administration (2FA sur le registrar, le CDN, le VPN et le dépôt de code, verrou de transfert du domaine) et rédaction d'un Dossier d'Exploitation (architecture, procédures, feuille de route).
Socle de l'infrastructure
- Installation et administration système sous ZimaOS (Docker).
- Déploiement d'un Reverse Proxy (Nginx Proxy Manager) pour la gestion du trafic et la génération de certificats SSL/TLS (Let's Encrypt).
- Sécurisation de l'infrastructure (défense en profondeur) : Pare-feu applicatif web (Cloudflare WAF), masquage d'IP et isolation des conteneurs.
- Stockage réparti : SSD interne (système), HDD 1 To externe (données), carte SD (copie nocturne des sauvegardes).
- Accès distant d'administration sécurisé via tunnel VPN (Tailscale).
- Hébergement d'un Portfolio web et déploiement d'un gestionnaire de mots de passe auto-hébergé (Vaultwarden).
- Acquisition du nom de domaine (OVH), gestion de la zone DNS et redirection de ports (NAT/PAT), remplacée en octobre 2026 par un tunnel Cloudflare (zéro port ouvert).
- Déploiement d'Uptime Kuma (SQLite) pour la surveillance des services exposés (sondes HTTP/s) et des expirations de certificats SSL.
- Automatisation de l'alerting via Webhooks (API Discord) pour la détection de chute de service et le monitoring réseau (Ping).
- Surveillance système sous Linux (bash profile) : détection et notification en temps réel des connexions SSH entrantes.
- Rapports d'état automatisés des tâches planifiées (scripts shell et cURL), planification migrée de cron vers des timers systemd en octobre 2026.