Architecture sécurisée
Architecture sécurisée : pourquoi votre serveur est une forteresse
Pas de Docker : des services natifs, sans couche inutile
La plupart des solutions d'auto-hébergement empilent les couches : Ubuntu + Docker + un orchestrateur + un reverse proxy conteneurisé. Chaque couche ajoute de la complexité, de la surface d'attaque et des points de défaillance.
Avec NixOS, Docker est inutile. Chaque application tourne comme un service natif du système, géré directement par systemd. Pas de daemon Docker tournant en root. Pas de container escapes possibles. Pas d'images opaques à maintenir.
Ce que NixOS remplace nativement :
| Besoin | Avec Docker | Avec NixOS |
|---|---|---|
| Isolation des dépendances | Images Docker (couches) | Nix store (hash cryptographique) |
| Isolation des processus | Namespaces Docker | Sandboxing systemd (30+ directives) |
| Reproductibilité | Dockerfile (impératif) | Configuration déclarative (pur) |
| Reverse proxy | Traefik conteneurisé | Caddy natif, intégré au système |
| Orchestration | Docker Compose / Swarm | systemd (dépendances, redémarrage) |
| Mise à jour | Rebuild d'images | nixos-rebuild switch atomique |
| Rollback | Tag d'image (manuel) | Intégré, 1 commande |
Le résultat : moins de couches, moins de surface d'attaque, moins de maintenance. Et des performances brutes supérieures, puisque vos applications accèdent directement au système sans passer par une couche de virtualisation.
Chaque application est isolée dans sa bulle
ProtectSystem=strict rend /usr, /boot et /etc en lecture seule. Chaque service ne peut écrire que dans son propre répertoire de données, explicitement autorisé.NoNewPrivileges, CapabilityBoundingSet="", PrivateDevices, les services ne peuvent pas escalader leurs droits, accéder aux périphériques ni charger de modules kernel.SystemCallFilter limite les appels système autorisés au strict nécessaire. MemoryDenyWriteExecute bloque l'injection de code en mémoire. Chaque service n'a accès qu'à ce dont il a besoin.SocketBindAllow autorise un service à écouter uniquement sur son port attitré. SocketBindDeny=any bloque tout le reste. Impossible d'ouvrir un port non prévu.PrivateTmp, PrivateUsers, ProtectHome, ProtectProc=invisible, chaque service vit dans un monde restreint où il ne voit ni les autres processus, ni les répertoires utilisateurs, ni les fichiers temporaires des autres.Audit Lynis : une sécurité vérifiée, pas supposée
Affirmer qu'un serveur est sécurisé ne suffit pas, il faut le prouver. Votre serveur est audité avec Lynis, l'outil de référence pour l'audit de sécurité Linux. Lynis analyse plus de 300 points de contrôle : configuration SSH, permissions des fichiers, paramètres kernel, politique de mots de passe, pare-feu, et bien plus.
Un profil Lynis personnalisé pour NixOS exclut les faux positifs liés aux spécificités de l'OS (store immuable, gestion des paquets par Nix, nftables au lieu d'iptables) pour ne garder que les alertes pertinentes. Le résultat : un score de sécurité élevé et vérifiable, pas une promesse marketing.
Durcissement à chaque couche
/etc/passwd, /etc/shadow, /etc/sudoers et la configuration réseau. Chaque changement est tracé. La comptabilité des processus enregistre toute exécution sur le système.Comparaison : serveur classique vs. votre serveur NixOS
| Mesure de sécurité | Serveur Ubuntu + Docker | Votre serveur NixOS |
|---|---|---|
| Isolation des apps | Conteneurs Docker (root) | Sandbox systemd (30+ directives) |
| Daemon privilégié | Docker daemon en root | Aucun, services natifs |
| Secrets | Variables d'env en clair | Chiffrés age, déchiffrés en RAM |
| Audit de sécurité | Manuel, ponctuel | Lynis intégré, profil NixOS |
| Kernel hardening | À configurer manuellement | 15 sysctl + 5 modules blacklistés |
| SSH | Port 22, souvent mot de passe | Port custom, clés only, fail2ban |
| Firewall | UFW manuel | Déclaratif, 3 ports ouverts |
| Rollback sécurité | Pas de mécanisme natif | 1 commande, instantané |
| Reproductibilité | Dépend de l'historique bash | Configuration Nix versionnée |
| Surface d'attaque | OS + Docker + orchestrateur | OS seul, services natifs |