# Oniux — Aislamiento con Tor usando namespaces de Linux

> oniux aísla una aplicación de Linux en su propio namespace de red y fuerza su tráfico por Tor. Cómo funciona, cómo instalarlo y ejemplos de uso reales.

- Autor: José Manuel García Locubiche
- Publicado: 2025-05-20
- Original: https://jose-m.net/2025/blog/tech/oniux-aislamiento-con-tor-usando-namespaces-de-linux/

---

## ¿Qué es oniux?

[**oniux**](https://blog.torproject.org/introducing-oniux-tor-isolation-using-linux-namespaces/) es una herramienta de línea de comandos **experimental** que aísla cualquier aplicación de Linux en su propio namespace de red, obligando a todo su tráfico a pasar exclusivamente por la **red Tor**. Esto previene fugas accidentales, incluso si una aplicación intenta conectarse fuera del proxy SOCKS.

Está construido sobre [**Arti**](https://tpo.pages.torproject.net/core/doc/rust/arti/index.html), implementación de Tor en Rust, y [**onionmasq**](https://gitlab.torproject.org/tpo/core/onionmasq), herramienta que configura interfaces de red virtuales para enrutar tráfico a través de Tor.

Al usar primitivas de aislamiento del kernel de Linux, lo se... en castellano todo esto suena fatal, oniux es más robusto que soluciones como [**torsocks**](https://gitlab.torproject.org/tpo/core/torsocks).

## ¿Cómo funciona?

1. Crea un proceso hijo con `clone(2)`.
2. Monta su propio `/proc` y configura los mapeos de UID/GID.
3. Genera un archivo temporal `resolv.conf` para resolver DNS vía Tor.
4. Usa [**onionmasq**](https://gitlab.torproject.org/tpo/core/onionmasq) para crear una interfaz TUN `onion0`.
5. El descriptor de la interfaz se pasa al proceso padre por un socket Unix.
6. El proceso hijo elimina sus capacidades y ejecuta la aplicación indicada.

Esto asegura que la aplicación no pueda acceder a interfaces de red del sistema como `eth0`, evitando filtraciones.

## Cómo usar oniux

### Requisitos

Linux ( ... he usado ubuntu 25.04 ) y Toolchain de Rust

### Instalación

```bash
sudo apt install cargo
cargo install --git https://gitlab.torproject.org/tpo/core/oniux
```

![Oniux Install](/img/oniux-install.png)

## Algunos ejemplos prácticos

```bash
# Ver IP pública a través de Tor
oniux curl https://icanhazip.com

# Acceder a un servicio .onion
oniux curl http://ejemplo.onion/

# Aplicación gráfica
oniux hexchat

# Registro detallado
RUST_LOG=debug oniux curl https://icanhazip.com

# Descarga con cabeceras personalizadas
oniux curl -H "User-Agent: Custom-Agent" -L https://ejemplo.com/recurso.zip -o archivo.zip

# Con wget
oniux wget https://ejemplo.com/fichero.iso

# Clonar repositorios de forma anónima
oniux git clone https://github.com/usuario/proyecto.git
```

![Oniux Install](/img/oniux-curl.png)

### Sesión aislada de shell

```bash
# Ejecuta múltiples comandos
oniux bash
wget https://sitiodesconocido.com/script.sh
sha256sum script.sh
less script.sh
exit
```

## Ventajas de enrutar por Tor

- Ocultas tu IP real.
- Evitas vigilancia de ISP, empresas o redes públicas.
- Accedes a servicios .onion inaccesibles por otros medios.
- Eludes restricciones geográficas o censura.

## Estado del proyecto

[**oniux**](https://blog.torproject.org/introducing-oniux-tor-isolation-using-linux-namespaces/) es **experimental** y utiliza componentes nuevos como [**Arti**](https://tpo.pages.torproject.net/core/doc/rust/arti/index.html) y [**onionmasq**](https://gitlab.torproject.org/tpo/core/onionmasq). Aunque funcional, no ha alcanzado la madurez de herramientas como [torsocks](https://gitlab.torproject.org/tpo/core/torsocks).
