Service caché TOR et LXC

Mise en place d'un service caché TOR dans un conteneur Linux

L'accès à un service classique en passant par TOR oblige à utiliser des relais de sortie, machine publiques, donc connues. Ces machines sont les points les plus fragiles du système.

Dans le contexte d'un fournisseur de service (site web, messagerie,…), pour des raisons de performance et de sécurité, il est conseillé d'utiliser plutôt des services cachés, c'est-à-dire des services directement accessibles depuis l'intérieur du réseau TOR sans avoir besoin d'en sortir et éviter ainsi toute tentative de seurveillance, de collecte de données personnelles, etc.

Dans le cas où le service TOR tourne sur un conteneur Linux, il y a quelques particularités qui rendent la mise en place un peu différente.

TOR

Installation

Pour installer TOR, rien de plus simple :

apt install tor

Cette installation ne prendra que quelques secondes.

Configuration

Ouvrir le fichier de configuration TOR /etc/tor/torrc et décommenter les lignes suivantes :

RunAsDaemon 1

qui permet de le lancer en daemon, et aussi :

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80

Permet ici, par exemple, de rediriger le service tournant en local (127.0.0.1) sur le port 80, vers TOR, sur le port 80.

Bien entendu, cette définition pourrait être un (ou plusieurs) autre(s) service (SMTP, FTP, etc.), depuis une autre machine, (chacun) redirigé vers un port spécifique du service TOR.

LXC

Par défaut, TOR n'est pas autorisé à s'exécuter nativement dans un conteneur Linux.

Pour corriger le problème, il suffit de modifier la configuration de la façon suivante :

  1. Créer un répertoire TOR pour systemd.

    mkdir /etc/systemd/system/tor@default.service.d/
  2. Créer un fichier de configuration pour surcharger la configuration par défaut.

    (echo "[Service]"; echo "AppArmorProfile=") > /etc/systemd/system/tor@default.service.d/override.conf
  3. Rafraîchir la configuration.

    systemctl daemon-reload
  4. Redémarrer le service.

    service tor restart

Une fois TOR relancé, le répertoire /var/lib/tor/hidden_service/ est créé et deux fichiers apparaissent à l'intérieur :

  • private_key : fichier contenant la clef privée pour le chiffrement de la communication TOR.

  • hostname : fichier qui contient l'adresse TOR à laquelle vous pourrez joindre vos services cachés. Ce fichier est intéressant car il contient l'adresse à communiquer aux utilisateurs.