4 पॉइंट द्वारा GN⁺ 2025-06-02 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • Oniux एक kernel-स्तरीय isolation टूल है जो Linux ऐप्स के सभी ट्रैफिक को Tor नेटवर्क के जरिए मजबूरन रूट करता है, ताकि data leak के जोखिम को न्यूनतम किया जा सके
  • यह Linux namespaces का उपयोग करके हर ऐप को स्वतंत्र नेटवर्क वातावरण में isolate करता है और Tor के जरिए सुरक्षित संचार लागू करता है
  • मौजूदा torsocks से अलग, यह libc का उपयोग न करने वाले या static binaries पर भी काम करता है, जिससे malicious ऐप्स के सीधे data exfiltration paths बंद हो जाते हैं
  • Oniux नया Arti, onionmasq आधारित टूल है, जिसे Rust में लिखा गया है, इसलिए security और scalability दोनों मजबूत होते हैं
  • फिलहाल Oniux एक experimental tool है; stability के मामले में यह लंबे समय से परखे गए torsocks से अलग है, लेकिन अगली पीढ़ी के Tor traffic isolation समाधान के रूप में इस पर ध्यान दिया जा रहा है

Oniux का परिचय

Oniux Linux पर Tor नेटवर्क isolation के जरिए privacy security का स्तर काफी बढ़ाने वाला एक command-line utility है। इसे इस तरह डिज़ाइन किया गया है कि developers, activists और researchers गलत proxy settings या थोड़ी-सी लापरवाही से होने वाली data leak की संभावना को पूरी तरह रोक सकें। Oniux Arti और onionmasq के ऊपर काम करता है और किसी भी Linux ऐप को अलग network namespace में isolate करके उसका ट्रैफिक केवल Tor नेटवर्क से ही गुजरने के लिए मजबूर करता है।

Linux namespaces क्या हैं

  • Namespaces Linux kernel की प्रमुख isolation सुविधाओं में से एक हैं
  • ये application के कुछ resources को पूरे सिस्टम से तार्किक रूप से अलग कर देते हैं
  • नेटवर्क, mount, process जैसे कई प्रकार के resources को इस तकनीक से isolate किया जा सकता है
  • हर namespace operating system resources को अलग करता है, इसलिए इसका उपयोग container environments या security उद्देश्यों के लिए होता है
  • Docker जैसी प्रमुख container solutions namespaces को अपने मूल सिद्धांत के रूप में इस्तेमाल करती हैं

Tor और namespaces के संयोजन का महत्व

  • Namespaces किसी भी application की Tor नेटवर्क तक पहुंच को पूरी तरह isolated तरीके से सुरक्षित बनाते हैं
  • हर ऐप को अलग network namespace में रखा जाता है और केवल onion0 नाम का custom interface ही उपलब्ध कराया जाता है
  • ऐप पूरे OS के network interfaces (जैसे eth0) तक पहुंच नहीं बना पाता, जिससे सुरक्षा अधिकतम की जा सकती है
  • SOCKS-आधारित proxy तरीके के विपरीत, किसी गलती या खामी की वजह से सीधा traffic leak होने का जोखिम नहीं रहता

Oniux और torsocks की तुलना

  • Torsocks, libc की network functions को LD_PRELOAD तकनीक से hook करके ट्रैफिक को Tor के SOCKS proxy से गुजारता है
  • Oniux namespace isolation के जरिए काम करता है, इसलिए static binaries या Zig जैसे वातावरण में भी traffic leak को 100% रोक सकता है
  • मुख्य तुलना
    • Oniux: अलग Tor daemon की जरूरत नहीं, namespaces का उपयोग, सभी ऐप्स का समर्थन, malicious ऐप्स के raw syscalls भी block, केवल Linux, नया/experimental, Arti आधारित, Rust में लिखा गया
    • Torsocks: Tor daemon जरूरी, ld.so hack, केवल libc-linked ऐप्स का समर्थन, raw syscalls से leak संभव, cross-platform, 15+ वर्षों से परखा हुआ, CTor engine, C भाषा में लिखा गया

Oniux का उपयोग कैसे करें

  • Linux सिस्टम पर Rust development environment तैयार होना चाहिए
  • Command line से आसानी से oniux को install और run किया जा सकता है

मुख्य उपयोग उदाहरण:

  • $ oniux curl https://icanhazip.com # Tor के जरिए मिला IP देखें
  • $ oniux bash # पूरे shell को Tor isolation में चलाएं
  • $ oniux hexchat # GUI ऐप को भी Tor के जरिए मजबूरन रूट किया जा सकता है
  • $ RUST_LOG=debug oniux curl ... # debugging logging समर्थित है

अंदरूनी कार्यप्रणाली

  • Oniux clone(2) syscall से अलग network, mount, PID और user namespaces में child process बनाता है
  • Child process /proc को अलग से mount करता है और UID/GID mapping के जरिए permissions समायोजित करता है
  • Nameserver जानकारी वाली temporary file को /etc/resolv.conf पर bind mount करके Tor-आधारित name resolver का अनिवार्य उपयोग कराया जाता है
  • onionmasq के जरिए TUN interface (onion0) बनाया जाता है और उसे IP assign व configure किया जाता है
  • Child process interface fd को Unix domain socket के जरिए parent process को भेजता है और privileges को न्यूनतम रखता है
  • अंत में Rust की सुविधाओं का उपयोग करके user द्वारा दिया गया command चलाया जाता है

Oniux की experimental प्रकृति

  • Oniux Arti, onionmasq जैसी नई तकनीकों पर आधारित शुरुआती संस्करण है
  • इस समय यह ठीक से काम करता है, लेकिन torsocks जैसी लंबे समय की परिपक्वता और उपयोग अनुभव अभी इसमें नहीं है
  • stability और performance सुधारने के लिए विविध वास्तविक उपयोग फीडबैक की जरूरत है

क्रेडिट और समर्थन

  • Rust-आधारित IP stack smoltcp और user namespaces के उपयोग पर सलाह देने वाले 7ppKb5bW जैसे developers को धन्यवाद दिया गया है
  • The Tor Project और community के समर्थन से oniux project चल रहा है, और privacy व open source software के विकास के लिए सहयोग की सिफारिश की गई है

2 टिप्पणियां

 
ndrgrd 2025-06-03

Tor प्राइवेसी के लिए तो ठीक-ठाक लगता है, लेकिन यह anonymity के लिए सच में उपयुक्त टूल है या नहीं, इस पर मुझे पूरा भरोसा नहीं है। ऐसी बातें भी सुनने में आती हैं कि exit nodes पर पहले से ही सरकारी एजेंसियों का कब्ज़ा है।

 
GN⁺ 2025-06-02
Hacker News राय
  • करीब 10 साल पहले जब network namespaces एक चर्चित विषय बन रहे थे, तब इस विषय पर Tor डेवलपर्स से बात करने का अनुभव था। उस समय जो फीडबैक मिला, वह यह था कि namespace के ज़रिए isolation लोगों को सुरक्षा को लेकर आश्वस्त तो कर देता है, लेकिन फिर भी बहुत-सी पहचान योग्य जानकारी लीक हो सकती है, इसलिए आगे इसे नहीं बढ़ाया गया था
    • मेरा मानना है कि Tor टीम का उस हिस्से पर ज़ोर देना रणनीतिक गलती थी। गंभीर ख़तरों का सामना कर रहे लोगों के लिए Tor Browser इस्तेमाल करना और अन्य information leak paths पर भी ध्यान देना सही है, लेकिन अगर Tor सबके लिए डिफ़ॉल्ट बन गया होता, तो बड़े पैमाने की निगरानी अपने आप में कहीं ज़्यादा कठिन हो जाती। अभी तो कौन Tor इस्तेमाल करता है, यही निगरानी का विषय है, लेकिन अगर सब इस्तेमाल करें तो यह जानकारी अर्थहीन हो जाएगी
    • torsock और torify भी मूल रूप से वही काम करते हैं, लेकिन मजबूती के मामले में वे कम सुदृढ़ लगते हैं
  • installation guide में दिए गए कमांड के अनुसार करने पर यह काम नहीं करता। version number को 0.4.0 से 0.5.0 करना होगा
    cargo install --git https://gitlab.torproject.org/tpo/core/oniux oniux@0.5.0
  • मैं पहले सोचता था कि torsocks की तरह ट्रैफ़िक लोकल में चल रहे tor daemon के ज़रिए बाहर जाता है। लेकिन लोकल tor daemon बंद कर देने पर भी oniux ठीक से काम करता है, जबकि torify और torsocks नहीं करते। दस्तावेज़ देखने पर पता चला कि वास्तव में ऐसा ही है। काफ़ी दिलचस्प बात है। Docker में भी यह ठीक चलता है, लेकिन --privileged विकल्प देना पड़ा, और सिर्फ़ binary को debian:12 container में कॉपी करने पर भी यह सही काम करता मिला
    docker run -it --rm --privileged -v "$PWD/oniux:/usr/bin/oniux" debian:12
    • लगता है कि यह पुराने C daemon की बजाय Rust में नई बनी library इस्तेमाल कर रहा होगा
      https://tpo.pages.torproject.net/core/arti/
  • जिज्ञासा है कि क्या यह सब केवल TCP पर लागू होता है। यानी क्या non-TCP traffic भी सुरक्षित होता है
    • पूरी जानकारी नहीं है, लेकिन https://gitlab.torproject.org/tpo/core/onionmasq को देखें तो लगता है कि TCP के अलावा UDP को भी सपोर्ट करने वाला user-space network stack बनाकर उसे Tor network की ओर forward करने की कोशिश है
    • सोच रहा हूँ कि Tor Browser इस्तेमाल करने वाले लोग YouTube, DNS और HTTP/3 को कैसे संभालते हैं
    • non-TCP traffic route नहीं होता और बस transmission fail हो जाता है
  • Oniux एक आधिकारिक रूप से समर्थित टूल लगता है। यह orjail जैसा है, लेकिन orjail में 4 साल से कोई commit नहीं है, फिर भी वह iptables/iproute tools के साथ shell script के रूप में ठीक काम करता है
    orjail में firejail के ज़रिए अतिरिक्त isolation देने का विकल्प भी है, लेकिन Oniux में अभी वह सुविधा नहीं है
    https://github.com/orjail/orjail/blob/master/usr/sbin/orjail
  • अब जिज्ञासा है कि क्या chrome से tor वेबसाइटों तक पहुँचना संभव है
    • किया तो जा सकता है, लेकिन ऐसा न करने की सलाह दूँगा। chrome में Tor Browser जैसी विभिन्न anti-fingerprinting strategies नहीं हैं। सामान्य browser इस्तेमाल करने पर आप और भी ज़्यादा अलग नज़र आने वाले user बन जाते हैं
    • दरअसल पहले से ही proxy environment variable (या settings) सही सेट कर दिए जाएँ तो chrome जैसे browser से भी पहुँचा जा सकता है। tor daemon का standard port 9050 है। सीधे socks proxy लिखकर traffic route करना भी काफ़ी आसान है। उदाहरण के लिए socks5 proxy का उपयोग करके syncthing जैसी जगहों पर traffic भेजा जा सकता है
      https://github.com/acheong08/syndicate
  • उदाहरण में hexchat दिया गया है, लेकिन अगर user की profile settings जस की तस रहें तो क्या IRC username लीक नहीं होगा?
    browser चलाने पर cookies वगैरह भी लीक हो सकती हैं
    • भूमिका-विभाजन महत्वपूर्ण है। Tor fingerprinting रोकने के लिए बहुत प्रयास करता है, लेकिन मूल रूप से Tor और Oniux का उद्देश्य source IP को trace न किया जा सके, यह है। अगर आप Tor के साथ Gmail में login करते हैं, तो वही समस्या रहती है (जब तक HTTPS लागू न हो)
    • यह जानना चाहूँगा कि username लीक होने से आपका मतलब क्या है। व्यवहार में वह username सिर्फ़ यह बताएगा कि वह Tor इस्तेमाल कर रहा है। अगर वही username लगातार उसी IRC host पर connect होता रहे, तो इतना ज़रूर पता चल सकता है कि वे सब एक ही व्यक्ति हैं। अगर लक्ष्य anonymity है, तो IRC काफ़ी जोखिम भरा माध्यम है। बहुत से लोग network disconnect events वगैरह को जोड़कर logs रखते हैं, इसलिए correlation का खुलासा हो सकता है
  • DevEx (developer experience) वाला हिस्सा बहुत अच्छा बना है, इतना कि लगभग fool-proof लगे। डेवलपमेंट टीम के लिए तालियाँ बनती हैं
    • सच कहूँ तो मुझे नहीं लगता कि यह पूरी तरह वैसा है। मूर्ख लोग हमेशा रचनात्मक होते हैं, और anonymity सुनिश्चित करने के लिए बहुत सावधानी से संचालन करना पड़ता है; वह स्तर ज़्यादातर users से अपेक्षित करना मुश्किल है
  • अगर कोई इसका code फिर से C में लिख दे तो मैं खुशी-खुशी इस्तेमाल करूँगा
    • यह पहले से ही Rust में लिखा गया है। ख़ास तौर पर C version क्यों चाहिए, यह जानने की जिज्ञासा है