Intégration de Tor dans RouterOS : Mise en œuvre d’un Proxy SOCKS Isolé via Containers

1. Contexte et objectif architectural
Avec l’introduction du support des containers Docker dans RouterOS v7, MikroTik a changé de catégorie : le routeur n’est plus seulement un équipement de transit, il devient une plateforme d’exécution réseau sécurisée.
L’objectif ici est de :
Déployer un client Tor dans un container isolé
Exposer un proxy SOCKS v5
Garantir une séparation stricte des plans de trafic
Offrir un point de sortie anonymisé pour des applications ou navigateurs spécifiques
Le tout sans polluer le plan de gestion du routeur et en respectant les bonnes pratiques L2/L3 et firewall.
2. Pré-requis techniques
Avant de continuer, le routeur doit répondre à ces critères :
RouterOS v7.x (support containers)
Stockage persistant disponible (
disk1)Accès Internet fonctionnel côté WAN
Accès physique au routeur (obligatoire pour activer le mode container)
Étape 1 : Initialisation du mode Container (Device Mode)
RouterOS protège volontairement certaines fonctionnalités sensibles. Le moteur container fait partie des fonctions verrouillées par défaut.
/system/device-mode/update container=yes
Ce qu’il se passe réellement
Le routeur bascule en mode étendu
Un reboot est exigé
Une confirmation physique via le bouton Reset est requise
Ce mécanisme empêche toute activation distante malveillante. Une fois le routeur redémarré, le runtime container est disponible.
Étape 2 : Création d’une infrastructure réseau isolée
Tor ne doit jamais partager le même segment que l’administration du routeur.
On met donc en place une zone réseau dédiée, avec son propre plan d’adressage.
2.1 Création du bridge Tor
/interface bridge add name=bridge-tor comment="Tor Container Bridge"
Ce bridge agit comme un switch virtuel interne entre RouterOS et le container.
2.2 Création de l’interface VETH
/interface veth add \
name=veth-tor-client \
address=172.17.0.2/24 \
gateway=172.17.0.1
L’interface VETH est l’équivalent d’une carte réseau virtuelle Docker, mais gérée nativement par RouterOS.
2.3 Rattachement au bridge
/interface bridge port add bridge=bridge-tor interface=veth-tor-client
2.4 Configuration de la passerelle côté RouterOS
/ip address add \
address=172.17.0.1/24 \
interface=bridge-tor \
comment="Gateway for Tor Container"
Résultat :
RouterOS = passerelle
Container Tor = client isolé
Aucun lien direct avec le LAN ou le plan de management
Étape 3 : Pare-feu et NAT (sortie vers Internet)
Sans NAT, Tor ne pourra jamais atteindre les Entry Nodes du réseau Onion.
3.1 NAT sortant
/ip firewall nat add \
chain=srcnat \
src-address=172.17.0.0/24 \
action=masquerade \
comment="NAT for Tor Container"
Ici, le container sort sur Internet comme n’importe quel hôte interne, mais sans exposition directe.
3.2 Filtrage optionnel : accès SOCKS depuis le LAN
/ip firewall filter add \
chain=forward \
src-address=192.168.88.0/24 \
dst-address=172.17.0.2 \
dst-port=9050 \
protocol=tcp \
action=accept \
comment="Allow LAN to Tor SOCKS"
Bonne pratique :
Limiter les sources
Ne jamais exposer le port SOCKS sur le WAN
SOCKS ≠ service public
Étape 4 : Déploiement du container Tor
4.1 Configuration du registre Docker
/container config set \
registry-url=https://registry-1.docker.io \
tmpdir=disk1/pull
RouterOS agit ici comme un client Docker minimaliste.
4.2 Variables d’environnement
/container envs add \
name=tor_env \
key=TORSOCK_ALLOW_INBOUND \
value=1
Cette variable permet au service Tor d’écouter sur toutes les interfaces du container, condition indispensable pour exposer le SOCKS.
4.3 Création du container
/container add \
remote-image=goldy/tor-client \
interface=veth-tor-client \
root-dir=disk1/tor-root \
envlist=tor_env \
logging=yes
Points importants :
root-dirassure la persistancelogging=yesfacilite le debug TorLe container est directement attaché au VETH
Étape 5 : Lancement et monitoring
5.1 Démarrage
/container start [find where remote-image~"tor"]
5.2 Vérification de l’état
/container print
L’état attendu est running.
5.3 Analyse des logs Tor
/log print where topics~"container"
Indicateurs clés :
Connexion aux directory servers
Bootstrapping à 100 %
Circuits établis
Quand Tor parle beaucoup dans les logs, c’est généralement bon signe.
Résumé technique – Proxy SOCKS Tor
IP du proxy :
172.17.0.2Port :
9050Type : SOCKS v5
Usage : navigateur, outil de pentest, client API, application spécifique
Configuration côté client :
SOCKS5 → 172.17.0.2:9050
Conclusion opérationnelle
Cette architecture transforme un routeur MikroTik en point d’anonymisation réseau contrôlé, sans VM, sans serveur dédié, et avec une isolation propre.
Ce n’est pas un gadget.
C’est un pattern d’architecture réutilisable : Tor aujourd’hui, IDS, honeypot ou agent IA demain. Le routeur devient un nœud intelligent du réseau.
Le futur des équipements réseau ne sera pas passif.
Il sera containerisé, cloisonné, et programmable.
Commentaires
Enregistrer un commentaire