Un proxy mal configuré, une application un peu trop autonome, et le trafic censé passer par Tor peut très vite s’échapper sans prévenir. Pour celles et ceux qui ne veulent rien laisser au hasard, Oniux propose une méthode plus directe : isoler chaque programme dans un environnement réseau fermé, contrôlé directement par le noyau Linux.

Jusqu’ici, la solution la plus courante pour forcer une application à utiliser Tor reposait sur torsocks. Utile dans bien des cas, mais pas parfait non plus puisqu'il suffit d’une mauvaise configuration, d’une bibliothèque statique ou d’un appel système mal intercepté pour que certaines données contournent le proxy. C’est donc précisément pour répondre à ces situations qu’Oniux a été conçu. Ce petit utilitaire en ligne de commande s’appuie sur les namespaces Linux pour créer un vrai cloisonnement réseau, dans lequel chaque application est contrainte de passer par Tor, sans possibilité de sortie ailleurs.
Un cloisonnement total pour les applis, grâce aux namespaces
Concrètement, Oniux fait en sorte qu’une application ne puisse utiliser que le réseau Tor. Pour y parvenir, il l’exécute dans un environnement réseau entièrement isolé. Une fois lancée, l’application perd tout accès aux interfaces classiques, comme eth0
, et ne voit plus qu’une seule issue, onion0
, une interface virtuelle déjà connectée à Tor.
Ce type d’isolation s’appuie sur une fonctionnalité bien connue du noyau Linux, les namespaces. C’est ce mécanisme qui permet à des outils comme Docker de faire tourner des conteneurs, chacun dans un espace cloisonné, avec sa propre vision du système. Oniux s’appuie précisément sur cette capacité pour créer à la volée un namespace réseau temporaire autour de chaque application.
À l’intérieur, le programme fonctionne dans un environnement réduit à l’essentiel, avec sa propre pile réseau, ses processus dédiés et un accès limité aux ressources système. Et puisqu’il n’existe aucune autre interface réseau disponible, même une application compilée statiquement n’a aucun moyen de sortir de ce cadre. L’objectif est donc d’apporter une réponse structurelle aux fuites non maîtrisées de trafic en dehors du réseau Tor.
Pour que tout fonctionne, le projet repose sur Arti, la nouvelle implémentation de Tor en Rust, et onionmasq, composant développé par l’équipe Tor, chargé de créer l’interface onion0
et d’assurer la redirection du trafic.
11 février 2025 à 07h30
Comment utiliser Oniux pour forcer le passage par Tor
Pour fonctionner, Oniux nécessite un système Linux avec Rust installé, ainsi que Cargo, son gestionnaire de paquets. L’outil ne se télécharge pas sous forme de binaire classique, il s’installe directement depuis les sources.
La commande suivante permet d’installer Oniux depuis le dépôt officiel :
cargo install --git https://gitlab.torproject.org/tpo/core/oniux [email protected]
Vous pouvez ensuite utiliser Oniux comme simple préfixe devant une commande. Par exemple, pour vérifier que le trafic passe bien par Tor, vous pouvez saisir :
oniux curl https://icanhazip.com
Si tout est correctement configuré, vous verrez une adresse IP correspondant à un nœud de sortie Tor, différente de votre IP habituelle.
Il est également possible de tester le fonctionnement avec IPv6 :
oniux curl -6 https://ipv6.icanhazip.com
Autre méthode de vérification, un peu plus parlante : afficher la page d’information de Tor dans le terminal avec wget :
oniux wget -qO - https://check.torproject.org
Si la configuration est correcte, vous verrez s’afficher un message de confirmation : "Congratulations. This browser is configured to use Tor."
Oniux permet également d’accéder aux services en .onion. Pour cela, il suffit de remplacer l’URL par celle du site souhaité :
oniux curl http://exampleonionaddress1234567890abcdef.onion
(Remplacez l’adresse par celle du service .onion que vous souhaitez atteindre.)
Enfin, si le cœur vous en dit, vous pouvez également "torifier" l'intégralité du shell, en isolant tous les processus liés :
oniux bash
Toutes les commandes lancées depuis ce shell passeront automatiquement par le réseau Tor.
En pratique, Oniux prépare un environnement cloisonné, configure un système de résolution DNS indépendant, installe l’interface virtuelle onion0
, puis lance l’application dans ce cadre isolé. Une fois la mise en place terminée, il abandonne les droits utilisés pour la configuration, afin d’éviter tout risque d’abus ou de sortie non prévue. À l’usage, le fonctionnement est déjà fluide, bien que le projet soit encore expérimental, et s’avère prometteur pour celles et ceux qui cherchent un moyen fiable de canaliser le trafic réseau de leurs applications.
Source : Tor Project