========================================================================
TUXPROXY :: Linux Process Isolation & Network Namespace Gateway
NetNS-Gateway Architecture | Tor Supervisor | nftables Packet Filter
========================================================================
TuxProxy — системный комплекс на языке Go для Linux, предназначенный для полной изоляции трафика прикладных программ и терминальных сессий в выделенном сетевом пространстве имен (netns-gateway) с транзакционной фильтрацией nftables, Unix ControlSocket управлением Tor и гарантированной защитой от утечек трафика (fail-closed).
+--------------------------------------------------------------------------------------------------+
| TUXPROXY АРХИТЕКТУРА (GO) |
+----------------------------------+----------------------------------+----------------------------+
| |
v v
+------------------------------------+ +------------------------------------------------------+
| GUI SETTINGS STUDIO (127.0.0.1) | | СУПЕРВИЗОР СЕТЕВОГО КОНТУРА TOR |
+------------------------------------+ +------------------------------------------------------+
| * Маршрутизация & Геолокация | | * Изолированный супервизор tor (Daemon / On-demand) |
| * Обход цензуры (Snowflake/obfs4) | | * Unix ControlSocket (0700 dir, 0600 cookie auth) |
| * Управление Shell Hook & PS1 | | * SOCKS5h шлюз с удалённым DNS (127.0.0.1:9050) |
| * Генератор безопасных команд CLI | | * HTTP CONNECT Tunnel шлюз (127.0.0.1:9080) |
| * Анти-0.0.0.0 аудит слушателей | | * Локальный DNS-резолвер DNSPort (127.0.0.1:9053) |
| * Fail-Closed аварийный watchdog | | * Защита: ClientUseIPv6 0, SafeLogging 1 |
+------------------------------------+ +--------------------------+---------------------------+
|
+-----------------------------------------------------+-----------------------------------+
| | |
v v v
+----------------------------------+ +----------------------------------+ +----------------------------------+
| NETNS-GATEWAY (ХАРДВАРНЫЙ) | | ПЕСОЧНИЦА CHROMIUM/ELECTRON | | ПЕРЕХВАТЧИК СОКЕТОВ LIBC |
+----------------------------------+ +----------------------------------+ +----------------------------------+
| * Ядерный сетевой namespace | | * Antigravity IDE, VS Code | | * proxychains4 (LD_PRELOAD) |
| * Изолированная пара veth | | * Chrome, Brave, Discord, Slack | | * Telegram Desktop, C/C++ бинар- |
| * Zero-Forwarding & Zero-NAT | | * --host-resolver-rules (Блок) | ники, игры, сокетные утилиты |
| * nftables: принудительный DNAT | | * --webrtc-ip-handling-policy | | * Перехват connect / getaddrinfo |
| порта 53 на Tor DNS | | * Отключение телеметрии браузера | | * Строгая цепочка strict_chain |
| * Сброс прав в $SUDO_USER | | * Переменные окружения POSIX | | * Подсеть remote_dns_subnet 224 |
+----------------------------------+ +----------------------------------+ +----------------------------------+
| | |
+-----------------------------------------------------+-----------------------------------+
|
v (Многослойное Onion-шифрование)
[ Мост: Snowflake / obfs4 ] ---> [ Промежуточный релей ] ---> [ Выходной узел ({us}) ] ---> Интернет
Наиболее надежный профиль изоляции (tuxproxy open --netns <app>):
- Выделенный Network Namespace: создается изолированный сетевой стек ядра Linux (
tuxproxy-<id>) с поднятымlo. - Виртуальная пара veth: интерфейсы
veth-tux<id>(хост,10.200.<id>.1/24) иvpeer-tux<id>(namespace,10.200.<id>.2/24). - Zero-Forwarding & Zero-NAT:
- Форвардинг пакетов строго отключен на уровне интерфейса:
sysctl net.ipv4.conf.veth-tux*.forwarding=0. - Глобальный хостовый
ip_forwardне затрагивается, предотвращая сбои Docker, KVM и VPN. - Прямой NAT/MASQUERADE отсутствует — прямой выход в публичную сеть физически невозможен.
- Форвардинг пакетов строго отключен на уровне интерфейса:
- Пакетный фильтр
nftables:- Атомарная загрузка правил через транзакционный
nft -f -. - DNAT входящих DNS-запросов: UDP/TCP порт 53 перенаправляется на
10.200.<id>.1:9053(Tor DNSPort). - Разрешены только локальные соединения к шлюзу (SOCKS 9050, DNS 9053). Любой прямой трафик в WAN отбрасывается ядром (
drop).
- Атомарная загрузка правил через транзакционный
- DNS в пространстве имен: автоматический монтаж изолированного
/etc/netns/<id>/resolv.confсnameserver 10.200.<id>.1. - Сброс привилегий: запуск целевого процесса через
runuser -u $SUDO_USER --исключает запуск пользовательского ПО с правами root. - Безопасный сборщик мусора (GC): при старте сканируются осиротевшие namespaces; парсинг
/proc/<pid>/statиспользует границу последней закрывающей скобкиLastIndex(")")и валидациюstarttime(поле 22), предотвращая сбои из-за переиспользования PID.
- Запуск локального контура Tor с изолированным рантайм-каталогом
0700($XDG_RUNTIME_DIR/tuxproxy/session-<id>). - Управление через Unix Domain Socket с обязательной cookie-аутентификацией (
0600). - Автоматическая проверка слушающих сокетов: обнаружение привязки на
0.0.0.0немедленно прерывает выполнение. - Фоновый watchdog с событийным контролем состояния (0 мс задержки на закрытие сокета).
- Межпроцессная блокировка:
syscall.Flockна~/.tuxproxy.lockгарантирует отсутствие гонок при одновременном открытии вкладок терминала. - Атомарная запись с двойным fsync:
- Запись во временный файл в том же каталоге (
~/.bashrc.tmp.<rand>). tmpFile.Sync()для сброса буферов на диск.- Сохранение исходных прав доступа (
os.Chmod). - Атомарная замена через
os.Rename(). dir.Sync()родительского каталога для надежной фиксации dentry в файловой системе.
- Запись во временный файл в том же каталоге (
- Изоляция маркеров: модифицируется исключительно блок между
# >>> TuxProxy Shell Integration >>>и# <<< TuxProxy Shell Integration <<<. Пользовательские алиасы и скрипты остаются нетронутыми. - Retention Policy для бэкапов: автоматическое создание резервных копий
~/.bashrc.tuxproxy.bak.<timestamp>со строгим сохранением последних 3 копий. - Неинтерактивный гард:
Исключает поломку
case "$-" in *i*) ;; *) return 0 2>/dev/null || exit 0 ;; esac [ -z "$PS1" ] && return 0 2>/dev/null
scp,rsync,sftp,git-over-sshи фоновых скриптов автоматизации.
Подробное описание модели угроз и границ применимости приведено в SECURITY.md.
| Профиль | Вызов CLI | Привилегии | Классы приложений | Надежность изоляции |
|---|---|---|---|---|
netns-gateway |
tuxproxy open -n <app> |
sudo / CAP_NET_ADMIN |
Любые приложения, Go, Rust, raw сокеты | Максимальная (Ядро / nftables) |
proxychains |
tuxproxy open -p <app> |
Обычный пользователь | Динамические ELF (Telegram, C/C++) | Средняя (libc LD_PRELOAD) |
electron |
tuxproxy open <app> |
Обычный пользователь | Electron / Chromium (Antigravity, Chrome) | Средняя (Флаги песочницы) |
env |
eval "$(tuxproxy env)" |
Обычный пользователь | POSIX CLI (curl, git, python, cargo) |
Базовая (Переменные окружения) |
ИСПОЛЬЗОВАНИЕ:
tuxproxy [команда] [опции]
КОМАНДЫ:
open <приложение> [опции] Запуск приложения в защищенном контуре
hook <enable|disable|status> Управление автопроксированием терминалов (~/.bashrc, ~/.zshrc)
env [--off] Вывод команд экспорта/сброса переменных окружения
shell Запуск изолированной интерактивной подоболочки
daemon Запуск фонового шлюза Tor
test Синтетический аудит утечек трафика (Direct TCP, DNS, IPv6)
newnym Ротация onion-контура (смена выходного IP)
status Проверка состояния шлюза и сетевых интерфейсов
gui Открыть графический веб-интерфейс настроек (127.0.0.1:9099)
settings Интерактивное TUI-меню настроек
ФЛАГИ КОМАНДЫ OPEN:
-n, --netns Запуск в аппаратном ядерном пространстве имен (netns-gateway)
-p, --proxychains Принудительный перехват сокетов через proxychains4
-c, --country <ISO> Код страны выхода (us, de, nl, ch, se, sg и др.)
-b, --bridge <тип> Транспорт обхода блокировок: snowflake, obfs4, webtunnel, none
-e, --ephemeral Бесследный режим работы в RAM (tmpfs)
# 1. Запуск браузера или IDE в аппаратном NetNS-шлюзе (наивысший уровень защиты)
sudo tuxproxy open --netns google-chrome-stable
sudo tuxproxy open -n antigravity-ide
# 2. Запуск приложения с перехватом сокетов через proxychains
tuxproxy open --proxychains telegram-desktop
# 3. Запуск среды разработки IntelliJ IDEA с выбором выходной ноды Швейцарии
tuxproxy open idea --country ch
# 4. Активация хука для всех новых сессий bash/zsh
tuxproxy hook enable
# 5. Проверка текущего статуса хука
tuxproxy hook status
# 6. Удаление хука из конфигурационных файлов
tuxproxy hook disable
# 7. Запуск синтетического аудита на отсутствие прямых утечек
tuxproxy test- ОС: Linux (ядро 5.10+)
- Утилиты:
iproute2,nftables(для режима--netns),tor,proxychains-ng(опционально)
# Arch Linux / CachyOS / Manjaro
sudo pacman -S tor proxychains-ng iproute2 nftables
# Debian / Ubuntu / Mint
sudo apt update && sudo apt install -y tor proxychains4 iproute2 nftablesgit clone https://github.com/kondrakov408-sys/TuxProxy.git
cd TuxProxy
# Сборка бинарника
make
# Установка в ~/.local/bin/tuxproxy
make install
# Запуск тестов
make testВ репозиторий включен пакет провокационных синтетических тестов test/synthetic/, имитирующий агрессивные попытки обхода контура:
leaker-direct-tcp: прямая попытка подключения к контрольному сокету хоста мимо прокси (должна падать поENETUNREACH/ timeout).leaker-dns: попытка отправки сырого UDP-пакета на порт 53 публичного DNS (перехватывается и заворачивается в Tor DNSPort).leaker-ipv6: попытка установки соединения по IPv6 при отключенном стеке.
Запуск тестов:
# Непривилегированные тесты
go test -v -race ./...
# Привилегированные тесты ядерной изоляции NetNS (требуется sudo)
sudo go test -v -race -run TestPrivilegedNetNSLeakProof ./test/synthetic/...Проект распространяется под лицензией MIT. TuxProxy не содержит телеметрии, скрытых сетевых вызовов и сторонних аналитических модулей.