Hardened Universal Linux Invisibility and Onion System
Hulios is an eBPF-powered, transparent Tor VPN gateway for Linux. It secures outbound network traffic by redirecting TCP sockets and DNS queries through an embedded Arti (Tor client) instance and a localized Hickory-based DNS resolver. By operating at the kernel socket level via cgroup hooks and policy routing, Hulios implements robust leak-resistant boundaries without modifying runtime resolv.conf configurations or relying on external firewall daemons.
Hulios implements a strict privilege-separated runtime model:
nobody and is isolated using a restrictive seccomp system call filter.table 100) and default blackholes. In the event of a daemon crash or forced shutdown (SIGKILL), the blackholes remain active, blocking outgoing traffic to prevent IP leaks until a manual recovery is initiated.AF_PACKET socket creation globally to prevent applications from bypassing standard IP routing rules.CONFIG_BPF_SYSCALL, CONFIG_BPF_LSM, and CONFIG_CGROUPS_V2 must be enabled.clang and libelf (required for compile-time eBPF compilation).Tested and verified on Arch Linux and Debian 13 (Bookworm).
Hulios is available on the Arch User Repository as hulios-git:
# Using paru
paru -S hulios-git
# Using yay
yay -S hulios-git
sudo pacman -S clang libelf zlib sqlite
sudo apt install -y clang libelf-dev zlib1g-dev libsqlite3-dev
Ensure you have the Rust compiler installed (toolchain selection and target requirements are automatically managed by rust-toolchain.toml):
git clone https://github.com/ghaziwali/Hulios.git
cd Hulios
cargo build --release
The compiled binary will be located at target/release/hulios.
All commands that interact with kernel interfaces or policy routing require elevated privileges:
# View global help and available commands
./target/release/hulios --help
# View help for a specific command (e.g. start)
./target/release/hulios start --help
# Start Hulios in foreground TUI mode
sudo ./target/release/hulios start
# Check current running state and Tor bootstrap progress
./target/release/hulios status
# Verify network namespace integrity and check for leaks
sudo ./target/release/hulios diagnose
# Revert system network settings and recover from unclean shutdowns
sudo ./target/release/hulios recover
# Stop Hulios and restore standard internet routing
sudo ./target/release/hulios stop
Hulios automatically generates a default, self-documenting template file at /etc/hulios/config.toml on its first run if one is not already present. Open the generated file to customize variables (such as preferred Tor exit nodes, DNS redirects, custom SOCKS ports, or strict lockdown mode).
If you find Hulios useful and would like to support its ongoing security development and research, donations are greatly appreciated:
bc1q0gllvd7fe2y48emjd4shf42ul3cl4pgda5zpqzTQWUmTATa8sDntobTNGkLmbgmHVS9iWCRx0x16aFd1De7889071194A026D79393eb3CE659181eHulios securing the network transport layer (Layer 3) does not guarantee total anonymity.