
एक Linux CLI उपयोगिता जो nftables का उपयोग करके सभी सिस्टम ट्रैफ़िक को पारदर्शी रूप से Tor नेटवर्क के माध्यम से रूट करती है। यह गोपनीयता कार्यों के लिए तीव्र IP रोटेशन और वैश्विक प्रॉक्सी सेटिंग्स को आसानी से टॉगल करने में सक्षम बनाती है।
विशेषताएँ • आवश्यकताएँ • इंस्टॉलेशन • उपयोग • यह कैसे काम करता है • सत्यापन • योगदान करें
प्रति-एप्लिकेशन सेटअप की आवश्यकता नहीं - बस sudo ttp start और हर कनेक्शन Tor से होकर जाता है।
[!CAUTION] TTP एक ऐसा टूल है जिसे ट्रैफ़िक को Tor के माध्यम से रूट करके गोपनीयता में सहायता के लिए डिज़ाइन किया गया है। हालाँकि, कोई भी टूल 100% गुमनामी की गारंटी नहीं दे सकता। आपकी सुरक्षा आपके व्यवहार पर भी निर्भर करती है (जैसे, सामान्य ब्राउज़र बनाम Tor Browser का उपयोग, खातों में साइन इन करना, आदि)। TTP को हमेशा बहु-स्तरीय सुरक्षा रणनीति के हिस्से के रूप में उपयोग करें।
[!WARNING] यदि आप एक व्हिसलब्लोअर हैं या उच्च-जोखिम वाली गतिविधियों में संलग्न हैं, तो TTP का उपयोग न करें। इसके बजाय, आधिकारिक रूप से ऑडिट किए गए और विश्वसनीय टूल जैसे TailsOS या सीधे Tor Browser का उपयोग करें। TTP के लेखक और योगदानकर्ता आपकी सुरक्षा या इस सॉफ़्टवेयर का उपयोग करने के परिणामों की कोई ज़िम्मेदारी नहीं लेते हैं।
पुरानी पारदर्शी प्रॉक्सी स्क्रिप्ट्स (TorGhost, Anonsurf) कॉन्फ़िगरेशन फ़ाइलों को अधिलेखित कर देती हैं और ऐसे iptables रूलसेट बनाती हैं जो खुली विफल होती हैं: जब वे टूटती हैं, तो ट्रैफ़िक स्पष्ट रूप में बाहर चला जाता है। TTP दूसरी तरह से बनाया गया है - यह बंद होकर विफल होता है, और डिस्क पर कुछ भी नहीं रखता।
transitions) द्वारा नियंत्रित एक वॉचडॉग, जो एक डबल inotify वॉच के माध्यम से Tor, nftables चेन और DNS ओवरले की निगरानी करता है और सिमलिंक-टार्गेट स्वैपिंग को पकड़ता है। यह एक बार मरम्मत करता है, फिर एक आपातकालीन किलस्विच लागू करता है।--bypass-user, --bypass-group), या cgroups v2 स्लाइस के माध्यम से ttp bypass <cmd> के साथ Tor के बाहर एक एकल कमांड चलाएँ।torrc में ज़हरीले किए गए।ttp-tor.service चलाता है, जिससे मौजूदा Tor इंस्टेंस अछूता रहता है।वह विधि चुनें जो आपकी आवश्यकताओं के लिए सबसे उपयुक्त हो। सिस्टम स्थिरता, सुरक्षा और स्वच्छ अनइंस्टॉलेशन के लिए नेटिव पैकेज दृढ़ता से अनुशंसित हैं।
नेटिव पैकेज के माध्यम से इंस्टॉल करना सुनिश्चित करता है कि सभी सिस्टम निर्भरताएँ (tor, nftables) और कर्नेल-स्तरीय अनुकूलन (SELinux) आपके OS पैकेज मैनेजर द्वारा प्रबंधित हों।
आप जो संस्करण चाहते हैं उसके लिए नवीनतम रिलीज़ से .deb या .rpm डाउनलोड करें - पैकेज रिलीज़ एसेट हैं और रिपॉज़िटरी में चेक-इन नहीं हैं - फिर इसे इंस्टॉल करें:
sudo apt install ./transparent-tor-proxy_0.4.9_all.debsudo dnf install ./transparent-tor-proxy-0.4.9-1.noarch.rpmcd packaging && makepkg -si के साथ बिल्ड करेंरिलीज़ एसेट की अखंडता और प्रामाणिकता को सत्यापित करने के तरीके के निर्देशों के लिए, रिलीज़ सत्यापन गाइड देखें।
यदि आप एक डेवलपर हैं या रिपॉज़िटरी से इंस्टॉल करना चाहते हैं:
git clone https://github.com/onyks-os/TransparentTorProxy.git
cd TransparentTorProxy
sudo ./scripts/install.sh
[!TIP]
./install.shका उपयोग क्यों करें?
मानक Python इंस्टॉलर के विपरीत, यह स्क्रिप्ट "बुद्धिमान" है। Red Hat-आधारित सिस्टम पर, यह पता लगाती है कि SELinux Enforcing मोड में है या नहीं और गतिशील रूप से एक कस्टम पॉलिसी मॉड्यूल (ttp_tor_policy.teसे) संकलित करती है ताकि Tor को TTP द्वारा आवश्यक गैर-मानक पोर्ट (9041, 9054) पर बाइंड करने की अनुमति मिल सके। यह कर्नेल-स्तरीय अनुकूलनpipद्वारा नहीं किया जा सकता।
Python-विशिष्ट पैकेज मैनेजर (pipx या वर्चुअल एनवायरनमेंट के साथ pip) के माध्यम से TTP इंस्टॉल करने के लिए, वैकल्पिक इंस्टॉलेशन विधियाँ संदर्भ देखें।
TTP को सरल और हल्का बनाया गया है। CLI कमांड, विकल्प, एग्ज़िट कोड और तकनीकी विशिष्टताओं की पूरी सूची के लिए, बाहरी इंटरफ़ेस संदर्भ देखें।
अधिकांश नेटवर्क-संशोधक कमांड के लिए रूट विशेषाधिकार (sudo) आवश्यक हैं:
प्रॉक्सी शुरू करें:
sudo ttp start
प्रॉक्सी बंद करें:
sudo ttp stop
वर्तमान सत्र स्थिति जाँचें:
ttp status
Tor रूटिंग और विलंबता सत्यापित करें:
ttp check
नया एग्ज़िट IP अनुरोध करें (सर्किट रोटेट करें):
sudo ttp refresh
अधिक उन्नत सेटअप और सर्कुमवेंशन प्रोफ़ाइल के लिए, उन्नत सुरक्षा और उपयोग प्रोफ़ाइल संदर्भ देखें या बाहरी इंटरफ़ेस संदर्भ देखें।
यह पुष्टि करने के लिए कि टनल सही ढंग से काम कर रही है और कोई लीक मौजूद नहीं है:
Tor एग्ज़िट IP सत्यापित करें:
curl -s https://check.torproject.org/api/ip
DNS रूटिंग सत्यापित करें:
# Should return a valid IP via Tor's DNSPort
dig +short A check.torproject.org
DNS लीक टेस्ट (टर्मिनल):
# This TXT query SHOULD return an EMPTY output
dig +short TXT whoami.ipv4.akahelp.net
नोट: Tor के अंतर्गत खाली आउटपुट अपेक्षित व्यवहार है। Tor का पारदर्शी रिज़ॉल्वर TXT रिकॉर्ड का समर्थन नहीं करता; यदि यह कमांड आपके वास्तविक ISP का IP लौटाता है, तो आपके पास DNS लीक है।
वेब-आधारित सत्यापन: हमेशा dnsleaktest.com और ipleak.net पर अतिरिक्त परीक्षण करें।
सिस्टम से TTP को पूरी तरह हटाने के लिए:
sudo ./scripts/uninstall.sh
TTP मानक Linux कर्नेल सबसिस्टम, सिस्टम यूटिलिटीज़ और Tor के कंट्रोल इंटरफ़ेस को ऑर्केस्ट्रेट करके सभी नेटवर्क ट्रैफ़िक को पारदर्शी रूप से रूट करता है:
flowchart LR
App["Application"] --> Local["Local Network"]
Local --> DNS["systemd-resolved (Intercepted)"]
DNS --> NFT["nftables (inet ttp table)"]
NFT --> Tor["Tor Daemon"]
Tor --> Internet["Internet"]inet ttp nftables रूलसेट को परमाणु रूप से जनरेट और लोड करता है, उन्हें Tor पर रीडायरेक्ट करता है जबकि IPv6 और DoT/DoH लीक को रोकता है।/etc/resolv.conf को एक अस्थिर RAM-समर्थित कॉन्फ़िगरेशन के साथ ओवरले करता है।निष्पादन प्रवाह, सिस्टम हुक, सुरक्षा सीमाओं और मॉड्यूलर घटकों के विस्तृत विवरण के लिए, कृपया देखें:
तकनीकी आर्किटेक्चर और डिज़ाइन गाइड
TTP को हमेशा आपका नेटवर्क बहाल करने के लिए डिज़ाइन किया गया है, यहाँ तक कि एज केस में भी:
[!WARNING]
- Tor Browser: स्पष्ट SOCKS5 प्रॉक्सी का उपयोग करने वाले एप्लिकेशन एक डबल Tor हॉप बनाएँगे। TTP सक्रिय होने के दौरान इसके बजाय एक सामान्य ब्राउज़र का उपयोग करें।
- DNS-over-HTTPS (DoH): सामान्य ब्राउज़र (Firefox, Chrome, Brave, Edge) DoH का उपयोग कर सकते हैं, सिस्टम DNS को बायपास करते हुए। TTP 3-परत रक्षा के माध्यम से DoH को कम करता है: (1) सभी आउटबाउंड TCP ट्रैफ़िक (DoH सहित) Tor TransPort पर रीडायरेक्ट किया जाता है; (2) सामान्य DoH कैनरी डोमेन
torrcमें0.0.0.0पर मैप किए जाते हैं; (3) सार्वजनिक DoH IP रिज़ॉल्वर TCP/UDP पोर्ट 443 पर अवरुद्ध हैं (HTTP/3 QUIC DoH को अवरुद्ध करते हुए)। अधिकतम सुरक्षा के लिए, अपनी ब्राउज़र सेटिंग्स में DoH / "Secure DNS" अक्षम करें।- IPv6: उपलब्ध होने पर पूरी तरह समर्थित। TTP गतिशील रूप से IPv6 लूपबैक का पता लगाता है और IPv6 ट्रैफ़िक को Tor के माध्यम से रूट करता है। यदि होस्ट में IPv6 लूपबैक समर्थन नहीं है या यदि
--no-ipv6विकल्प पास किया गया है, तो TTP लीक को रोकने के लिए सभी आउटगोइंग IPv6 ट्रैफ़िक को ड्रॉप करता है।- एग्ज़िट IP भिन्नता: Tor स्ट्रीम आइसोलेशन के कारण विभिन्न कनेक्शन विभिन्न एग्ज़िट IP दिखा सकते हैं।
अवशिष्ट जोखिमों, आर्किटेक्चरल ट्रस्ट बाउंड्रीज़ और STRIDE थ्रेट मॉडल के पूर्ण विवरण के लिए, देखें:
TTP परीक्षण पाइपलाइन को स्वचालित और मानकीकृत करने के लिए एक Makefile का उपयोग करता है। यह सुनिश्चित करता है कि कमिट करने से पहले प्रत्येक परिवर्तन को यूनिट और इंटीग्रेशन परीक्षणों के विरुद्ध सत्यापित किया जाए।
[!IMPORTANT] कोड पुश करने से पहले हमेशा
make verifyचलाएँ। यदि यह कमांड विफल होती है, तो कोड प्रोडक्शन के लिए तैयार नहीं है।
TTP का ज़ीरो-लीक दावा मापा जाता है, दावा नहीं किया जाता। नेटवर्क सैंडबॉक्स इंजन एक पृथक नेटवर्क नेमस्पेस बनाता है, उसमें TTP का वास्तविक जनरेट किया गया रूलसेट लोड करता है, वह ट्रैफ़िक जनरेट करता है जिसमें एक लीक शामिल होगा, और Scapy स्निफ़र के साथ सीमा veth इंटरफ़ेस को देखता है।
प्रत्येक कंटेनमेंट टेस्ट दो बार चलता है। assert no leaks तब भी सत्य होता है जब स्निफ़र कभी शुरू नहीं हुआ, जब इंटरफ़ेस का नाम गलत है, या जब ट्रैफ़िक कभी प्रोसेस से बाहर नहीं गया, इसलिए प्रत्येक टेस्ट पहले रूलसेट फ्लश के साथ वही उत्तेजना चलाता है और पैकेट को देखे जाने की आवश्यकता होती है। केवल तभी यह दावा करता है कि TTP का रूलसेट इसे रोकता है। एक हार्नेस जो लीक का निरीक्षण नहीं कर सकता, वह टेस्ट पास करने के बजाय विफल हो जाता है।
कवर किया गया: सादा DNS (UDP और TCP), सामान्य TCP, 853 पर DoT, UDP/443 पर QUIC DoH, ICMP, मनमाना UDP, IPv6 — साथ ही दूसरी दिशा, कि एक बायपास किया गया UID अभी भी LAN तक पहुँच सकता है। एक फ़ायरवॉल जो सब कुछ अवरुद्ध करता है, पहले सात पास करेगा और आठवें में विफल होगा।
# libpcap is required: the sniffer compiles a BPF filter, and Scapy dlopen()s
# the unversioned libpcap.so that only the -devel/-dev package ships.
sudo apt install nftables iproute2 conntrack libpcap0.8 libpcap-dev # Debian/Ubuntu
sudo dnf install nftables iproute2 conntrack libpcap libpcap-devel # Fedora/RHEL
pip install -e ".[nse]"
make test-nse # runs as root; TTP_REQUIRE_NSE=1 so it cannot skip itself
यह प्रत्येक पुश पर CI में चलता है (ज़ीरो-लीक रूलसेट सत्यापन जॉब) और रिलीज़ से पहले scripts/verify.sh में एक चरण के रूप में।
जबकि Docker इंटीग्रेशन टेस्ट तेज़ और परमाणु हैं, वे कर्नेल/systemd की 100% बारीकियों को कैप्चर नहीं करते। महत्वपूर्ण परिवर्तनों के लिए, एक वास्तविक QEMU VM में परीक्षण करना अत्यधिक अनुशंसित है:
# Start a specific VM (e.g., arch)
./scripts/vm/start.sh arch
# Sync current code to the VM
./scripts/vm/send.sh
# Snapshot management for easy rollbacks
./scripts/vm/snapshot.sh arch save before-risky-test
यदि कुछ गलत हो जाता है, तो डायग्नोस्टिक कमांड चलाएँ:
sudo ttp diagnose
├── pyproject.toml # Package metadata and dependencies
├── README.md
├── CONTRIBUTING.md # Contribution guidelines
├── SECURITY.md # Security policy
├── scripts/ # Installation, verification, and VM management scripts
├── assets/ # Branding and demo assets
├── packaging/ # Packaging configurations (.deb, .rpm, Arch PKGBUILD)
├── ttp/ # Main Python source package
│ └── resources/ # Internal package resources (SELinux policies, etc.)
├── tests/ # Unit, integration, and leak testing suites
└── docs/ # Technical documentation, threat models, and ADRs
| निर्माण से ही बंद-विफल | एक पृथक inet ttp nftables टेबल जिसमें कैच-ऑल reject और फ़ॉरवर्डिंग पर policy drop है। क्रैश, वॉचडॉग ट्रिगर या अस्वच्छ निकास पर, ट्रैफ़िक या तो Tor के माध्यम से रूट होता है या अवरुद्ध होता है - कभी जारी नहीं किया जाता। |
| कुछ भी बना नहीं रहता | सत्र स्थिति, torrc, लॉक फ़ाइल और लॉग केवल tmpfs (/run/ttp/, /run/tor/ttp/) में रहते हैं। रीबूट से कोई अवशेष और कोई पुराना लॉक नहीं बचता। |
| प्रति-एप्लिकेशन सेटअप नहीं | TCP और DNS को नेटवर्क परत पर इंटरसेप्ट किया जाता है। कोई SOCKS5 सेटिंग्स नहीं, कोई प्रॉक्सी एनवायरनमेंट वेरिएबल नहीं, कोई एप्लिकेशन समर्थन आवश्यक नहीं। |
| आपके सिस्टम को फिर से लिखे बिना DNS | संपादन के बजाय /etc/resolv.conf पर एक mount --bind ओवरले, साथ ही एक अस्थिर drop-in जो systemd-resolved को निष्क्रिय करता है, और किसी भी नॉन-लूपबैक रिज़ॉल्वर ट्रैफ़िक पर कर्नेल-स्तरीय ड्रॉप द्वारा समर्थित। |
| लीक का दावा मापा जाता है | प्रत्येक कंटेनमेंट नियम को एक पृथक नेटवर्क नेमस्पेस में वास्तविक जनरेट किए गए रूलसेट के विरुद्ध परीक्षण किया जाता है, और प्रत्येक परीक्षण पहले यह साबित करता है कि यह एक लीक को देख सकता है, इससे पहले कि यह दावा करे कि कोई नहीं है। सत्यापन देखें। |
| परिदृश्य | क्या होता है |
|---|
ttp stop | ज़ीरो-लीक क्लीनअप: टियरडाउन लॉकडाउन लागू करता है, Tor को सुचारू रूप से बंद करता है, सक्रिय सॉकेट स्लॉटर निष्पादित करता है, 1.5s प्रतीक्षा करता है, कनेक्शन ट्रैकिंग फ्लश करता है, फ़ायरवॉल और DNS बहाल करता है (टेबल फ्लश और डिलीट के माध्यम से), और लॉक फ़ाइल हटाता है |
Ctrl+C / kill | सिग्नल हैंडलर SIGINT/SIGTERM को पकड़ता है और निकास से पहले सामान्य क्लीनअप चलाता है |
kill -9 / पावर आउटेज | अगला ttp start अनाथ लॉक फ़ाइल का पता लगाता है, किसी भी पुराने माउंट स्टैक को साफ़ करता है, और स्वतः बहाल करता है |
| मैनुअल आपातकाल | सभी nftables नियमों को फ्लश करने, DNS रीसेट करने और लॉक फ़ाइल हटाने के लिए sudo ./scripts/restore-network.sh चलाएँ |
| कमांड | लक्ष्य |
|---|
make test | स्थानीय रूप से तेज़ यूनिट टेस्ट चलाता है (रूट की आवश्यकता नहीं, पूरी तरह मॉक किया गया)। |
make integration-debian | एक विशेषाधिकार प्राप्त Docker कंटेनर (Debian) के अंदर पूर्ण सिस्टम टेस्ट चलाता है। |
make integration-all | सभी समर्थित डिस्ट्रोज़ (Debian, Fedora, Arch) के लिए इंटीग्रेशन टेस्ट चलाता है। |
make verify | यूनिट टेस्ट + सभी इंटीग्रेशन टेस्ट चलाता है। |
make build | नेटिव .deb और .rpm पैकेज जनरेट करता है। |
make clean | सभी बिल्ड आर्टिफ़ैक्ट, कैश और अस्थायी फ़ाइलें हटाता है। |