VPS sans logs : configurer un serveur VPN qui ne retient rien

Difficulté: Intermédiaire 8 min de lecture Mis à jour: 18.07.2026 9
VPS sans logs : configurer un serveur VPN qui ne retient rien
Quand vous faites tourner votre propre VPN, le gain de confidentialite est qu'aucune entreprise n'enregistre votre trafic. Mais un serveur Linux par defaut conserve tout de meme ses propres traces - logs systeme, historique des connexions SSH, historique du shell. Ce guide reduit un VPS a une configuration reellement sans logs, etape par etape, et reste honnete sur les limites.

Ce qui est réellement enregistré sur un serveur

L'attrait de gérer son propre VPN est simple : aucune entreprise ne se trouve entre vous et internet pour noter ce que vous faites. Mais un serveur Linux standard conserve tout de même ses propres traces, et si vous voulez une configuration réellement sans logs, vous devez savoir lesquelles :

  • WireGuard lui-même ne conserve aucun journal de trafic. Par défaut, il n'écrit rien sur le disque à propos de vos connexions. Il garde seulement en mémoire l'heure du dernier handshake et votre endpoint actuel, que vous voyez avec wg show - et cela est effacé au redémarrage. La couche VPN est donc déjà propre.
  • Le système d'exploitation est la partie bruyante. Le journal de systemd (journald) enregistre les événements des services. Si rsyslog est installé, il écrit aussi des fichiers en texte clair comme /var/log/syslog et /var/log/auth.log - et auth.log enregistre chaque connexion SSH. Des fichiers séparés (wtmp, btmp, lastlog) suivent qui s'est connecté et quand, et votre shell conserve un ~/.bash_history.
  • Et quelques chemins plus discrets vers le disque. Si le serveur a le swap activé, le noyau peut déverser des pages de RAM - clés comprises - sur le disque. Un programme qui plante peut laisser un core dump de sa mémoire. Et le gestionnaire de paquets écrit des journaux de mise à jour sous /var/log/apt. Une configuration rigoureuse ferme ces chemins aussi.
Ce guide suppose un serveur Ubuntu 22.04 ou 24.04 fraîchement installé, et que vous avez déjà configuré WireGuard (voir notre guide Comment installer votre propre VPN WireGuard sur un VPS). Exécutez tout ce qui suit en tant que root.

La limite honnête : ce que le sans-logs peut et ne peut pas faire

Avant de toucher à quoi que ce soit, soyez clair sur ce que vous obtenez réellement. Désactiver les logs empêche votre propre serveur de conserver des traces - donc si le disque est un jour saisi, copié, ou lu par quelqu'un qui parvient à entrer, il y a bien moins à trouver. C'est un gain réel et appréciable.

Ce que cela ne fait pas, c'est vous cacher de l'entreprise qui vous loue le serveur. Votre fournisseur VPS sait toujours qu'une machine existe à cette IP, peut voir combien de bande passante elle consomme, et pourrait en principe observer le trafic au niveau du réseau ou de l'hyperviseur - aucun réglage à l'intérieur de votre serveur n'y change rien. Le sans-logs consiste à minimiser votre propre empreinte, pas à devenir invisible pour l'hébergeur. Choisissez un fournisseur avec lequel vous êtes à l'aise, et considérez les étapes ci-dessous comme une réduction du risque, pas comme son effacement.

Le sans-logs n'est pas une garantie d'anonymat. Deux limites qu'aucun réglage serveur ne peut changer :

  • Votre fournisseur voit les IP qui se connectent. Le contenu est chiffré, mais il peut voir que votre IP domestique a atteint le port WireGuard, et à quel moment.
  • Votre fournisseur peut faire un instantané de la RAM. Un VPS est une machine virtuelle ; l'hôte contrôle l'hyperviseur et peut capturer la mémoire vive (les clés WireGuard actives et les pairs connectés) et peut être contraint de la remettre à la police sur demande légale valide.

En résumé : vous possédez le logiciel, pas la machine. Le sans-logs abaisse votre risque, il ne l'efface pas.

Qu'en est-il d'un serveur dédié (bare-metal) ? Il supprime l'hyperviseur, donc il n'y a pas de dump mémoire silencieux en une commande - une véritable amélioration. Mais ce n'est toujours pas une garantie : le fournisseur possède la machine physique et le réseau. Il voit toujours les IP qui se connectent, et parce qu'il dispose d'un accès physique plus une gestion hors bande (IPMI / BMC, un contrôleur séparé avec sa propre liaison réseau), la RAM en cours d'exécution peut encore être atteinte - par exemple via une attaque cold-boot ou DMA. Un serveur dédié augmente l'effort nécessaire, il ne supprime pas le besoin de faire confiance à votre hôte.

Étape 1 : Déplacer le journal systemd en RAM

D'abord, dites à journald de garder son journal uniquement en mémoire, afin qu'il n'atterrisse jamais sur le disque et disparaisse à chaque redémarrage. Ouvrez sa configuration :

nano /etc/systemd/journald.conf

Sous la section [Journal], définissez ces deux lignes (retirez le # en tête s'il est présent) :

[Journal]
Storage=volatile
RuntimeMaxUse=16M

Appliquez-le et le journal réside maintenant dans /run (RAM), plafonné à 16 Mo et effacé au redémarrage :

systemctl restart systemd-journald

Étape 2 : Placer tout /var/log en RAM

Le journal est maintenant en mémoire, mais plusieurs outils déposent encore des fichiers en texte clair dans /var/log - rsyslog, le auth.log qui enregistre les connexions SSH, les journaux de mise à jour apt, et les enregistrements de connexion wtmp/btmp/lastlog (qui sont réécrits à chaque connexion, donc les supprimer simplement ne sert à rien). La solution propre et globale est de monter tout le répertoire /var/log comme un tmpfs - un système de fichiers en RAM qui est effacé à chaque redémarrage. Ajoutez une ligne à /etc/fstab :

echo "tmpfs /var/log tmpfs defaults,noatime,nosuid,nodev,mode=0755,size=50M 0 0" >> /etc/fstab

Maintenant tout ce qui se trouve sous /var/log réside en mémoire et se vide à chaque redémarrage. Redémarrez une fois pour que les services en cours rouvrent leurs fichiers de log dans le nouveau disque RAM :

reboot
Une réserve : parce que /var/log est effacé au redémarrage, tout logiciel que vous ajoutez plus tard qui attend son propre sous-dossier de log (un serveur web, par exemple) peut avoir besoin que ce dossier soit recréé. Pour une machine qui ne fait tourner que votre VPN, ce n'est pas un problème.

Étape 3 : Désactiver le swap

Si le serveur a le swap activé, le noyau peut pousser des pages de RAM - incluant possiblement des clés actives - sur le disque quand la mémoire vient à manquer. Sur une machine sans logs, vous voulez que la mémoire reste en mémoire. Désactivez le swap maintenant et gardez-le désactivé au fil des redémarrages :

swapoff -a
sed -i.bak '/\sswap\s/s/^/#/' /etc/fstab

Beaucoup de petits VPS sont livrés sans aucun swap - dans ce cas swapoff -a ne fait tout simplement rien, ce qui est très bien.

Étape 4 : Désactiver les core dumps

Si un programme plante, systemd-coredump peut écrire un core dump - un instantané de la mémoire de ce programme - sur le disque sous /var/lib/systemd/coredump/. Désactivez-le :

mkdir -p /etc/systemd/coredump.conf.d
printf '[Coredump]Storage=none' > /etc/systemd/coredump.conf.d/99-nolog.conf
systemctl daemon-reload

Étape 5 : Désactiver l'historique du shell et de l'éditeur

Votre shell enregistre chaque commande dans ~/.bash_history, et les éditeurs laissent leurs propres traces (~/.viminfo, ~/.lesshst). Pointez-les tous vers /dev/null pour que rien ne soit jamais écrit. Pour l'utilisateur actuel :

ln -sf /dev/null ~/.bash_history
ln -sf /dev/null ~/.viminfo
ln -sf /dev/null ~/.lesshst

Ensuite, empêchez bash de conserver un fichier d'historique pour chaque shell de connexion sur le système, afin que les autres comptes soient couverts eux aussi :

printf 'unset HISTFILEexport HISTSIZE=0' > /etc/profile.d/00-nohistory.sh

Si vous avez d'autres comptes utilisateur, répétez les trois lignes ln -sf pour chacun de leurs répertoires personnels également.

Étape 6 : Gardez la protection contre les intrusions active - vous n'êtes pas aveugle

Un mythe répandu veut que désactiver les logs vous laisse sans défense. Ce n'est pas forcément le cas. fail2ban - l'outil qui bannit une IP après des connexions échouées répétées - peut lire directement depuis le journal systemd, qui réside désormais en RAM. Vous conservez donc une protection automatique contre la force brute tout en n'écrivant rien sur le disque. Installez-le :

apt install fail2ban -y

Pointez-le vers le journal en créant /etc/fail2ban/jail.local avec :

[DEFAULT]
backend = systemd

Puis redémarrez-le et, par-dessus, fermez les portes évidentes :

systemctl restart fail2ban
  • Clés SSH uniquement. Désactivez la connexion par mot de passe dans /etc/ssh/sshd_config (PasswordAuthentication no) et redémarrez ssh. Une clé ne peut pas être devinée comme un mot de passe.
  • Pare-feu fermé par défaut. Gardez ufw n'autorisant que SSH et votre port WireGuard (51820/udp), tout le reste étant refusé.
  • Mises à jour de sécurité automatiques. Installez unattended-upgrades ; ses journaux résident maintenant dans le /var/log en RAM, donc ils disparaissent aussi au redémarrage.
L'ordre compte : faites fonctionner et testez le SSH par clé dans un second terminal avant de resserrer quoi que ce soit. Si vous vous verrouillez dehors, vous avez maintenant très peu de logs pour déboguer.

Étape 7 : Vérifier que rien ne persiste

Redémarrez une dernière fois, reconnectez-vous, et vérifiez les quatre choses que vous avez changées :

mount | grep /var/log
swapon --show
journalctl --no-pager | wc -l
ls -lh /var/log

Vous devriez voir /var/log monté comme tmpfs, aucun swap actif, un journal presque vide, et un /var/log neuf et quasi vide. À partir de là, le serveur ne conserve pratiquement rien sur le disque à propos de ce qui transite par lui.

Quand vous pourriez vouloir conserver quelques logs

Le sans-logs n'est pas automatiquement le bon choix pour tout le monde. Si le serveur fait plus que faire tourner votre VPN personnel - héberge un site, gère le trafic d'autres personnes - vous pourriez vouloir un peu d'historique pour repérer les problèmes. Bonne nouvelle : la configuration ci-dessus conserve déjà des logs à court terme en RAM (dans le journal et le tmpfs /var/log), donc vous avez une visibilité sur la session en cours tout en n'écrivant rien de permanent sur le disque. Si vous avez besoin de plus, augmentez RuntimeMaxUse à l'étape 1 ou la size du tmpfs à l'étape 2. Ajustez l'agressivité à la manière dont vous utilisez réellement la machine.

Étiquettes: vps no logs privacy hardening self-hosted wireguard linux anonymity