Hidden Service Tor

Bon, on ne va pas plus présenter Tor…

Savez-vous qu’il est possible d’héberger des services uniquement accessibles depuis ce réseau ? Ces services cachés, appelés « Hidden Services » ou services onion, offrent une couche d’anonymat supplémentaire tant pour l’hébergeur que pour les visiteurs.

Configuration d’un Hidden Service

Oui, il faut configurer Tor avec les bons paramètres – voici un exemple pour un serveur web :

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

Le paramètre HiddenServiceDir spécifie le répertoire où Tor stockera les clés et l’adresse .onion de votre service. Le paramètre HiddenServicePort définit le port externe (80 dans cet exemple) et redirige le trafic vers votre service local (ici 127.0.0.1:80).

Puis configurer notre service Apache ou Nginx pour qu’il écoute sur localhost, redémarrer le service Tor et hop, on a un site web uniquement accessible depuis le réseau Tor. L’adresse .onion générée se trouve dans le fichier hostname du répertoire défini par HiddenServiceDir.

Pas trop dur… On peut aussi faire de même pour d’autres services (IRC, XMPP, serveur de fichiers…). Il suffit d’adapter le port et l’adresse locale du service concerné.

Sécuriser son serveur

Et oui, grâce à Tor, il est possible de sécuriser son serveur. Je m’explique :

Imaginons que nous administrons à distance (via SSH) un serveur. D’ordinaire, on est obligé d’ouvrir le port 22 depuis tout Internet, ce qui expose notre serveur aux tentatives de connexion malveillantes, aux scans de ports et aux attaques automatisées. Ici, on va créer un service caché SSH, on pourra ainsi éviter les robots brute-force et autres scripts. Pour se connecter à notre serveur, il faudra être connecté au réseau Tor (il faut déjà le savoir), connaître l’adresse onion du serveur (vas-y pour le brute-force – une adresse en 56 caractères aléatoires pour les services v3) et bien entendu les autres mécanismes de sécurité liés au service SSH (PAM, clé RSA,…).

Configuration pour un Hidden Service SSH :

HiddenServiceDir /var/lib/tor/hidden_service/ssh
HiddenServicePort 22 127.0.0.1:22

Donc pas de DDNS ni de configuration firewall de dingue (juste le deny). Votre serveur devient pratiquement invisible depuis Internet classique, tout en restant accessible pour vous via Tor.

Pour vous connecter ensuite, il suffit d’utiliser SSH via Tor avec la commande suivante :

ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:9050 %h %p" user@votre-adresse.onion

Ou de configurer torify :

torify ssh user@votre-adresse.onion

Plus d’infos

Firewall

Il n’y a pas de configuration spéciale du firewall à faire. C’est le service Tor qui contacte (output) le réseau. On peut ainsi rejeter toutes les connexions inconnues entrantes (input).

Exemple de règles iptables minimalistes :

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Voilà, vous disposez d’un serveur sécurisé dont l’adresse IP réelle reste cachée, protégé des scans et attaques automatisées. Les services ne sont accessibles que via le réseau Tor, offrant une couche de sécurité par l’obscurité (en complément des autres mesures, pas en remplacement).

Avantages des Hidden Services

Les avantages sont multiples : anonymat de l’hébergeur, protection contre les attaques DDoS ciblées sur l’IP, contournement de la censure, et simplicité de mise en place. Pas besoin d’adresse IP fixe, pas de nom de domaine à acheter, pas de certificat SSL à configurer (le chiffrement est assuré par Tor).

Évidemment, cette approche a aussi ses limites : dépendance au réseau Tor, latence plus élevée, et nécessité pour les utilisateurs d’utiliser le navigateur Tor ou de configurer leur client.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *