La checklist de confidentialité pour le self-hosting
Guides · 9 min de lecture
Pourquoi une checklist vaut mieux qu'une configuration ponctuelle
La plupart des échecs de confidentialité en self-hosting ne sont pas spectaculaires. Ce sont de petits écarts cumulatifs : un fichier de journal qui conserve discrètement des adresses IP pendant des mois, un port SSH par défaut resté ouvert parce que le changer semblait inutile, une sauvegarde stockée non chiffrée sur un ordinateur portable, un enregistrement WHOIS qui pointe encore vers un vrai nom. Aucun de ces éléments ne paraît urgent isolément, ce qui explique précisément pourquoi ils survivent.
Une checklist fonctionne parce qu'elle traite la confidentialité comme une propriété continue d'un système, pas une étape de configuration ponctuelle. Les serveurs dérivent. Des paquets s'installent, des ports s'ouvrent pour un test rapide et ne se referment jamais, et un service que vous avez oublié se met à écrire des journaux verbeux. Revisiter la même liste mensuellement, ou après chaque changement, attrape cette dérive avant qu'elle ne devienne une exposition.
- Traiter le durcissement de la confidentialité comme de la maintenance, pas une tâche du jour de lancement
- Revérifier la liste après chaque nouveau service, paquet ou changement de configuration
- Supposer que les valeurs par défaut sont permissives jusqu'à preuve du contraire
Couche un : qui peut remonter jusqu'au compte
Avant même de toucher un terminal, le compte lui-même est souvent le maillon le plus faible. Un VPS sécurisé selon des standards militaires reste traçable si l'inscription a utilisé un vrai e-mail, un relevé de carte, ou un scan de pièce d'identité. Cette couche consiste à rompre le lien entre un moyen de paiement et un serveur avant même que ne commence tout durcissement technique.
Des parcours d'inscription anonymes existent pour cette raison. VPS GOAT, par exemple, émet une simple clé de compte hachée à l'inscription au lieu de collecter un e-mail ou un document d'identité, selon le même schéma que Mullvad utilisé par des fournisseurs VPN axés confidentialité, et règle le paiement uniquement via Paymento en cryptomonnaie, Monero étant recommandé pour sa confidentialité au niveau des transactions, aux côtés de Bitcoin, USDT, Litecoin, Ethereum et Tron. Quel que soit le fournisseur utilisé, posez les mêmes questions : quelles données identifiantes l'inscription collecte-t-elle, que révèle le paiement, et qu'advient-il de ces données si le fournisseur est contraint de les divulguer.
- Utiliser une clé de compte anonyme ou un e-mail pseudonyme, jamais un e-mail personnel lié à votre identité réelle
- Payer avec une cryptomonnaie respectueuse de la confidentialité plutôt qu'une carte liée à votre nom
- Éviter de réutiliser un pseudonyme, une clé PGP, ou une empreinte de clé SSH entre un projet anonyme et un projet personnel
- Vérifier ce que le processus d'inscription du fournisseur enregistre réellement avant de s'inscrire, pas après
Couche deux : comment sécuriser un VPS au niveau du système d'exploitation
Une fois le compte propre, la couche suivante est le système d'exploitation lui-même. Sécuriser un VPS commence par supprimer chaque chemin d'accès dont vous n'avez pas explicitement besoin, puis verrouiller ceux que vous conservez. C'est la partie de la checklist qui détermine le plus directement si un scanner opportuniste peut prendre pied.
SSH est la première cible de presque toute attaque automatisée contre un VPS fraîchement déployé, il mérite donc le plus d'attention. Désactivez entièrement l'authentification par mot de passe et fiez-vous à des paires de clés, idéalement des clés Ed25519 générées localement et jamais téléversées nulle part. Ne déplacez SSH hors du port 22 que comme réducteur mineur de bruit, pas comme un véritable contrôle de sécurité, et associez-le à fail2ban ou un outil similaire pour freiner automatiquement les tentatives de force brute.
- Désactiver la connexion root en SSH et désactiver l'authentification par mot de passe, accès par clé uniquement
- Imposer un pare-feu (ufw, nftables, ou iptables) avec une politique de refus par défaut en entrée et des règles d'autorisation explicites
- Installer fail2ban ou crowdsec pour bloquer automatiquement les tentatives de connexion échouées répétées
- Appliquer les mises à jour de sécurité selon un calendrier ; unattended-upgrades sur Debian et Ubuntu s'en charge automatiquement
- Créer un utilisateur sudo non-root pour l'administration quotidienne et réserver root aux cas exceptionnels
- Désactiver les services inutilisés et fermer tout port non lié à un service que vous exploitez activement
Couche trois : durcir un serveur pour la confidentialité, pas seulement la sécurité
Sécurité et confidentialité se chevauchent mais ne sont pas identiques. Un serveur peut être difficile à pénétrer tout en journalisant en clair l'adresse IP de chaque visiteur pendant un an, ce qui constitue un échec de confidentialité même si ce n'est pas une brèche de sécurité. Durcir un serveur pour la confidentialité signifie minimiser activement ce qu'il enregistre et conserve, en plus de la base de sécurité standard.
Le chiffrement intégral du disque (LUKS sous Linux) protège les données au repos si un disque physique venait à être saisi ou un instantané copié sans autorisation ; les forfaits de VPS GOAT tournent par défaut sur du stockage NVMe chiffré au niveau infrastructure, ce qui couvre la couche matérielle, mais votre propre chiffrement de disque et discipline de journalisation applicative comptent toujours pour ce que vous contrôlez à l'intérieur du système d'exploitation invité. Au-delà du chiffrement, revoyez le comportement de journalisation par défaut de chaque service : serveurs web, serveurs mail, et même l'historique du shell peuvent conserver des adresses IP, horodatages et chaînes de requête bien plus longtemps que nécessaire.
La synchronisation horaire et les choix DNS comptent également. Un serveur avec le mauvais fuseau horaire ou un résolveur DNS qui journalise chaque requête jusqu'à votre infrastructure crée des traces de métadonnées faciles à négliger parce qu'elles sont invisibles dans l'usage quotidien.
- Chiffrer les données au repos avec LUKS ou équivalent en chiffrement intégral du disque, à l'intérieur du système invité
- Tronquer ou désactiver les journaux d'accès verbeux dans nginx, Apache et les serveurs applicatifs quand la rétention n'est pas requise
- Faire tourner et expirer les journaux de façon agressive (logrotate avec courte rétention) plutôt que de les accumuler indéfiniment
- Utiliser un résolveur DNS respectueux de la confidentialité via DNS-over-TLS ou DNS-over-HTTPS plutôt que celui par défaut de votre FAI
- Effacer l'historique du shell des commandes sensibles et désactiver l'historique bash pour les scripts d'automatisation touchant des secrets
- Régler le NTP sur une source de temps neutre plutôt que liée à votre localisation physique
Sauvegardes, instantanés et le piège de la récupération
Les sauvegardes sont l'endroit où le durcissement de la confidentialité se brise le plus souvent discrètement. Un serveur en production parfaitement durci ne sert pas à grand-chose si son instantané nocturne se trouve non chiffré sur un espace de stockage tiers, ou si la fonction d'instantané automatique d'un fournisseur stocke une image disque complète quelque part hors de votre contrôle.
La solution consiste à traiter le chiffrement des sauvegardes avec autant de sérieux que le disque en production. Chiffrez les archives de sauvegarde côté client avant qu'elles ne quittent le serveur, avec un outil comme restic ou borg et une phrase secrète robuste stockée hors ligne, de sorte que même si une destination de sauvegarde est compromise, les données à l'intérieur restent illisibles. Si votre fournisseur propose des instantanés intégrés, comprenez où ils sont stockés et s'ils héritent du même chiffrement que le volume source.
- Chiffrer les sauvegardes côté client avant l'envoi, pas seulement à la destination de stockage
- Tester les restaurations périodiquement ; une sauvegarde jamais testée est un espoir, pas un plan
- Confirmer si les instantanés gérés par le fournisseur sont chiffrés et où ils sont physiquement stockés
- Conserver au moins une copie de sauvegarde en dehors de la juridiction du serveur en production
Fuites au niveau applicatif à vérifier en dernier
Une fois le compte, le système d'exploitation et les sauvegardes couverts, la dernière couche concerne les applications que vous exploitez réellement. C'est là que le durcissement de la confidentialité devient spécifique à chaque application : un serveur de messagerie auto-hébergé, un blog statique, et un service caché Tor ont chacun des surfaces de fuite différentes, mais quelques vérifications s'appliquent presque universellement.
Les métadonnées sont l'oubli le plus courant. Les fichiers téléversés peuvent porter des données EXIF, des champs d'auteur de document, ou des horodatages révélant un fuseau horaire. Les applications web peuvent exposer des en-têtes de serveur, des versions logicielles, ou des pages d'erreur verbeuses qui offrent à un attaquant une feuille de route. Rien de tout cela n'est exotique à corriger, mais chaque élément doit être vérifié explicitement car les valeurs par défaut le cachent rarement pour vous.
- Retirer les données EXIF et métadonnées de tout fichier ou image avant de le publier
- Supprimer les en-têtes de serveur verbeux (Server, X-Powered-By) et désactiver les pages d'erreur détaillées en production
- Revoir tout formulaire de contact ou système de commentaires pour une journalisation d'IP non intentionnelle
- En cas de service caché Tor en parallèle d'un site clearnet, confirmer que les deux ne partagent pas des ressources identifiantes comme les certificats TLS ou des scripts analytiques
| Couche | Ce qu'il faut vérifier | Outil ou paramètre courant |
|---|---|---|
| Compte | Identité à l'inscription, trace de paiement | Clé de compte anonyme, Monero via Paymento |
| Accès | Exposition SSH, risque de force brute | SSH par clé uniquement, fail2ban, pare-feu à refus par défaut |
| Stockage | Données au repos si le disque ou l'instantané est copié | Chiffrement intégral LUKS, NVMe chiffré |
| Journaux | Rétention des IP et horodatages | logrotate à courte rétention, journaux d'accès minimaux |
| Sauvegardes | Exposition si la destination de sauvegarde est compromise | Chiffrement côté client avec restic ou borg |
| Applications | Fuites de métadonnées et d'en-têtes | Suppression EXIF, en-têtes de serveur masqués |
FAQ
Quelle est l'étape la plus importante pour sécuriser un VPS pour la confidentialité ?+
Le chiffrement intégral du disque est-il nécessaire si le fournisseur chiffre déjà le stockage ?+
À quelle fréquence dois-je parcourir une checklist de confidentialité pour le self-hosting ?+
Durcir un serveur pour la confidentialité le ralentit-il ?+
Puis-je suivre cette checklist sur n'importe quel fournisseur VPS, ou seulement un fournisseur axé confidentialité ?+
Prêt à passer offshore ?
Aucun KYC, aucun e-mail — juste une clé anonyme et de la crypto. Déployez en ~55 secondes.
Configurer votre VPS →