Представьте: ваш браузер, мессенджер или любое другое приложение работает через Tor — без лишних настроек. Oniux делает именно это, изолируя трафик на уровне ядра Linux. 🔒🐧 Теперь можно забыть о ручных прокси и VPN-настройках — просто запускаете приложение, и оно автоматически идёт через Tor. Безопасность без головной боли!
Введение
Разработчики, работающие с конфиденциальными приложениями и сервисами, сталкиваются с критически важной задачей — гарантировать, что весь сетевой трафик проходит исключительно через сеть Tor. Одна ошибка в настройках прокси или системный вызов вне SOCKS-обертки — и данные могут оказаться под угрозой.
Сегодня мы представляем Oniux — утилиту командной строки, обеспечивающую изоляцию сетевого трафика через Tor для любых Linux-приложений с использованием пространств имен ядра (namespaces). Построенный на основе Arti и onionmasq, Oniux помещает приложение в собственное сетевое пространство имен, перенаправляя весь трафик через Tor и исключая возможность утечек данных. Если ваша работа, исследования или активизм требуют абсолютной изоляции трафика, Oniux — ваш выбор.
Технические основы: пространства имен в Linux
Пространства имен (namespaces) — это механизм изоляции в ядре Linux, появившийся около 2000 года. Они позволяют безопасно изолировать часть приложения от остальной системы. Пространства имен бывают разных типов: сетевые (network), монтирования (mount), процессов (PID) и другие — каждый изолирует определенные системные ресурсы.
В Linux системные ресурсы по умолчанию доступны глобально для всех приложений. Например, системные часы, список процессов, файловая система или пользователи. Пространства имен «контейнеризируют» часть приложения, что и используется в Docker для обеспечения изоляции.
Как Oniux обеспечивает изоляцию через Tor?
Oniux использует сетевые пространства имен для изоляции трафика приложения. Приложение помещается в пространство имен, где нет доступа к системным сетевым интерфейсам (например, eth0), а вместо этого создается специальный интерфейс onion0. Это позволяет изолировать трафик через Tor на уровне ядра, что значительно надежнее SOCKS-прокси.
Преимущества перед SOCKS:
- Приложение не может «случайно» отправить трафик мимо Tor из-за ошибки разработчика.
- Защита от злонамеренных действий: даже если приложение попытается отправить данные напрямую через системные вызовы, это будет невозможно.
Сравнение Oniux и torsocks
| Критерий | Oniux | Torsocks |
|---|---|---|
| Подход | Изоляция через пространства имен | Перехват libc-функций через preload |
| Кросс-платформенность | Только Linux | Поддержка нескольких ОС |
| Защита от утечек | Полная (уровень ядра) | Только для вызовов через libc |
| Поддержка статических бинарников | Да | Нет |
| Язык реализации | Rust | C |
| Состояние | Экспериментальный | Проверенный (15+ лет) |
Практическое использование Oniux
Установка
Потребуется Linux с установленным инструментарием Rust:
$ cargo install --git https://gitlab.torproject.org/tpo/core/oniux oniux@0.4.0
Примеры
# HTTP-запрос через Tor
$ oniux curl https://icanhazip.com
<IP-адрес выходного узла Tor>
# Поддержка IPv6
$ oniux curl -6 https://ipv6.icanhazip.com
<IPv6-адрес выходного узла Tor>
# Доступ к onion-сервисам
$ oniux curl http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion/index.html
# Изоляция всей оболочки
$ oniux bash
# Графические приложения (например, HexChat)
$ oniux hexchat
Внутренняя реализация
Oniux создает дочерний процесс через clone(2), изолируя его в отдельных пространствах имен (сеть, монтирования, PID, пользователи). Затем:
- Монтируется изолированная копия
/proc. - Настраиваются UID/GID-отображения.
- Создается временный файл с DNS-серверами (bind mount в
/etc/resolv.conf). - Через onionmasq создается TUN-интерфейс
onion0с настройкой IP-адресов. - Дескриптор интерфейса передается родительскому процессу через Unix Domain Socket.
- Дочерний процесс сбрасывает права (capabilities) и исполняет команду пользователя.
Ограничения и статус проекта
Oniux — экспериментальный инструмент, использующий новые компоненты Tor (Arti, onionmasq). В отличие от проверенного временем torsocks, он пока не имеет такой же истории эксплуатации. Однако его архитектура на уровне ядра предлагает принципиально более высокий уровень безопасности.
Проект активно развивается, и ваше тестирование приветствуется!
Благодарности
Разработчики благодарят:
- Создателей
smoltcp(пользовательский IP-стек на Rust). - Сообщество Tor за поддержку инструментов приватности.
Tor Project — некоммерческая организация, развивающая технологии приватности. Поддержать проект можно через официальный сайт.
