インフラ・DevOps
Hulios: Linux向けeBPF搭載の透過型Torゲートウェイ
Hulios: An eBPF-powered, transparent Tor gateway for Linux (github.com)
要約
HuliosはLinux向けのeBPFを活用した透過型Tor VPNゲートウェイです。カーネルソケットレベルで動作し、eBPFプログラムとポリシールーティングを用いてTCPソケットとDNSクエリを組み込みのArti(Torクライアント)インスタンスとローカライズされたDNSリゾルバにリダイレクトすることで、アウトバウンドネットワークトラフィックを保護します。特権分離、サンドボックス分離、フェイルセキュアなキルスイッチなどの厳格なセキュリティアーキテクチャを備えています。
全文翻訳
Hulios Hardened Universal Linux Invisibility and Onion System
Huliosは、Linux向けのeBPF搭載、透過型Tor VPNゲートウェイです。組み込みのArti(Torクライアント)インスタンスとローカライズされたHickoryベースのDNSリゾルバにTCPソケットとDNSクエリをリダイレクトすることで、アウトバウンドネットワークトラフィックを保護します。cgroupフックとポリシールーティングを介してカーネルソケットレベルで動作することにより、Huliosはランタイムのresolv.conf設定を変更したり、外部ファイアウォールデーモンに依存したりすることなく、堅牢な漏洩防止境界を実装します。
🔒 セキュリティアーキテクチャ
Huliosは厳格な特権分離ランタイムモデルを実装しています。
特権分離: エントリポイントのスーパーバイザーは、eBPFプログラムをフックし、ポリシールーティングテーブルを構築するためにホストのroot権限で実行され、その後すぐに特権のないワーカー子プロセスを生成します。
サンドボックス分離: ワーカープロセスは権限をnobodyに降格し、制限的なseccompシステムコールフィルターを使用して分離されます。
フェイルセキュアキルスイッチ: 出力トラフィックルーティングは、カーネルポリシーテーブル(テーブル100)とデフォルトのブラックホールを使用してロックされます。デーモンクラッシュまたは強制シャットダウン(SIGKILL)の場合、ブラックホールはアクティブなままで、手動での復旧が開始されるまでIP漏洩を防ぐために送信トラフィックをブロックします。
Raw Socket Blocker: LSM eBPFフックは、アプリケーションが標準IPルーティングルールをバイパスするのを防ぐために、グローバルにraw AF_PACKETソケットの作成をブロックします。
📋 要件
Linuxカーネル: バージョン5.10以降。
カーネル設定: CONFIG_BPF_SYSCALL、CONFIG_BPF_LSM、およびCONFIG_CGROUPS_V2が有効になっている必要があります。
ビルド依存関係: clangおよびlibelf(コンパイル時のeBPFコンパイルに必要)。
検証済みプラットフォーム: Arch LinuxおよびDebian 13(Bookworm)でテストおよび検証済み。
⚙️ ビルドとインストール
📦 Arch Linux (AUR)
HuliosはArch User Repositoryでhulios-gitとして利用可能です:
# paruを使用
paru -S hulios-git
# yayを使用
yay -S hulios-git
🛠️ ソースからのビルド
1. ビルド依存関係のインストール
Arch Linux:
sudo pacman -S clang libelf zlib sqlite
Debian/Ubuntu:
sudo apt install -y clang libelf-dev zlib1g-dev libsqlite3-dev
2. ソースからのコンパイル
Rustコンパイラがインストールされていることを確認してください(ツールチェーンの選択とターゲット要件はrust-toolchain.tomlによって自動的に管理されます):
git clone https://github.com/ghaziwali/Hulios.git
cd Hulios
cargo build --release
コンパイルされたバイナリはtarget/release/huliosにあります。
🚀 使用ガイド
カーネルインターフェースまたはポリシールーティングと対話するすべてのコマンドには、昇格された権限が必要です:
# グローバルヘルプと利用可能なコマンドを表示
./target/release/hulios --help
# 特定のコマンド(例: start)のヘルプを表示
./target/release/hulios start --help
# フォアグラウンドTUIモードでHuliosを開始
sudo ./target/release/hulios start
# 現在の実行状態とTorブートストラップの進行状況を確認
./target/release/hulios status
# ネットワーク名前空間の整合性を検証し、漏洩がないか確認
./target/release/hulios diagnose
# システムネットワーク設定を元に戻し、クリーンでないシャットダウンから復旧
./target/release/hulios recover
# Huliosを停止し、標準のインターネットルーティングを復元
./target/release/hulios stop
⚙️ 設定
Huliosは、初回実行時に設定ファイル(config.toml)が存在しない場合、/etc/hulios/config.tomlにデフォルトの自己文書化テンプレートファイルを自動的に生成します。生成されたファイルを開いて、変数(優先するTor出口ノード、DNSリダイレクト、カスタムSOCKSポート、または厳格なロックダウンモードなど)をカスタマイズしてください。
💖 寄付
Huliosが役立つと感じ、継続的なセキュリティ開発と研究をサポートしたい場合は、寄付をいただけると大変助かります:
Bitcoin (BTC): bc1q0gllvd7fe2y48emjd4shf42ul3cl4pgda5zpqz
USDT (TRON / TRC20): TQWUmTATa8sDntobTNGkLmbgmHVS9iWCRx
USDC (Ethereum / ERC20): 0x16aFd1De7889071194A026D79393eb3CE659181e
⚠️ 免責事項
Huliosがネットワークトランスポートレイヤー(レイヤー3)を保護しても、完全な匿名性が保証されるわけではありません。
無責任/誤用: 本ソフトウェアは「現状有姿」で提供され、いかなる保証も明示的または黙示的に行いません。開発者は、Huliosの使用、誤用、または違法な適用から生じるデータ漏洩、プライバシー侵害、法的結果、システム不安定性、または損害に対して、いかなる責任も負いません。
アプリケーションフィンガープリンティング: Huliosは、アプリケーションレベルのトラッカー、Cookie、またはブラウザフィンガープリンティング設定を削除しません。Webブラウジングには、Hulios SOCKSインターフェースを介してルーティングするように設定された公式のTorブラウザを使用することを強くお勧めします。
ホスト侵害: 敵対者がrootアクセスを取得した場合、eBPFプログラムをアンロードしてルーティングテーブルを変更できるため、Huliosはシステムを保護できません。
Torネットワークの制限: あなたのトラフィックは、Torネットワークのセキュリティ、およびエントリーノードとエグジットノードの両方を制御するエンティティによる相関攻撃の可能性の影響を受けます。