OnionJuggler

UNIX-जैसे ऑपरेटिंग सिस्टम के लिए फीचर-समृद्ध प्याज सेवा प्रबंधक, POSIX-अनुरूप शेलस्क्रिप्ट में लिखा गया
OnionJuggler न्यूनतम आवश्यकता वाला, पोर्टेबल स्क्रिप्ट और दस्तावेज़ीकरण का संग्रह है जो सेवा संचालक को अपने प्याजों को जगल (प्रबंधित) करने में मदद करता है।
चेतावनी: अभी इस रेपो पर भरोसा न करें, अपनी hs चाबियों को किसी अन्य स्थान पर बैकअप करें। यह परियोजना अभी जारी नहीं हुई है और इसे केवल विकास के लिए माना जाना चाहिए।
इस रिपॉजिटरी का त्वरित लिंक: git.io/onionjuggler
सामग्री तालिका
परिचय
चित्र

इतिहास
यह परियोजना अद्भुत OnionShare CLI python scripts को देखने के बाद शुरू हुई, जो क्षणिक (ephemeral) प्याज सेवाओं को सक्षम बनाती हैं जो कभी डिस्क को स्पर्श नहीं करती और Tails या Whonix पर आसानी से चलाई जा सकती हैं। फिर RaspiBlitz प्याज सेवा bash स्क्रिप्ट को Raspberry Pi के लिए देखने के बाद, इसे किसी भी Debian वितरण पर पोर्ट करने का विचार आया। जैसे-जैसे विचार बढ़ता गया, GNU Bash और Linux का उपयोग एक एकल विफलता बिंदु था 1 2, इसलिए स्क्रिप्ट को POSIX-अनुरूप बनाना ताकि किसी भी Unix-जैसे सिस्टम के साथ संगत हो, एक निश्चित लक्ष्य बन गया।
लक्ष्य
इस परियोजना का लक्ष्य है:
- प्याज सेवा प्रबंधन को सुविधाजनक बनाना, सेवा को सक्रिय करने से लेकर उसमें क्लाइंट प्राधिकरण जोड़ने तक, फ़ाइलों को मैन्युअल रूप से संपादित करने की पूरी क्षमता देना, लेकिन कम टाइपिंग के साथ।
- यह दिखाना कि प्याज सेवा का प्रबंधन केवल अपने पृष्ठों के साथ वेबसर्वर का उपयोग करने से कहीं अधिक है।
- वितरण, स्रोत कोड स्तर (FOSS) से लेकर उस प्रभाव तक जब यह किसी को भी किसी भी ऑपरेटिंग सिस्टम, शेल या सेवा प्रबंधक पर कोड चलाने की अनुमति देता है। एकल विफलता बिंदु से शमन
एकल विफलता बिंदु से शमन:
- कर्नेल प्रमुख
Linux से BSD और किसी भी अन्य Unix-जैसे सिस्टम तक।
- शेल प्रमुख
Bash से किसी भी POSIX शेल जैसे ksh, (y,d)ash और Zsh (sh अनुकरण) तक।
- सेवा प्रबंधक प्रमुख
Systemd से RC, OpenRC, SysVinit, Runit तक।
tor कॉन्फ़िगरेशन फ़ाइल (torrc) को संपादित करना कठिन नहीं है, लेकिन स्वचालन गलत कॉन्फ़िगरेशन की समस्या को हल करता है और निम्नलिखित लाभ देता है:
- एकल-पंक्ति कमांड चलाकर कम समय व्यतीत करना।
- गलत कॉन्फ़िगरेशन को लागू करने से पहले उन्हें अस्वीकार करके कोई डाउनटाइम नहीं।
- पूर्ण एकरूपता।
- नए लोगों की मदद के लिए ग्राफिकल इंटरफ़ेस।
विशेषताएँ
- सेवा सक्षम करें - यदि मौजूद नहीं है तो निर्देशिका बनाएं (HiddenServiceDir), प्याज संस्करण चुनें (HiddenServiceVersion), कस्टम सॉकेट प्रकार unix या tcp, जितने चाहें उतने वर्चुअल पोर्ट, साथ ही लक्ष्य (HiddenServicePort)।
- सेवा अक्षम करें - torrc से सेवा कॉन्फ़िगरेशन हटाएं, सेवा फिर सुलभ नहीं होगी, लेकिन आप इसे किसी भी समय फिर से सक्षम कर सकते हैं। वैकल्पिक रूप से सेवा को शुद्ध करें, इसकी कॉन्फ़िगरेशन और निर्देशिका हटाएं, जो इसकी चाबियों को स्थायी रूप से हटा देगा।
- सेवा पता नवीनीकृत करें - निजी प्याज सेवाओं पर केंद्रित, यदि आप कभी इसका पता लीक करते हैं, तो आप इसका होस्टनाम बदल सकते हैं, सावधान रहें कि आपके सभी अधिकृत क्लाइंट डिस्कनेक्ट हो जाएंगे और सेवा की चाबियां स्थायी रूप से हटा दी जाएंगी।
- क्रेडेंशियल्स - होस्टनाम, क्लाइंट, torrc ब्लॉक, qrencoded होस्टनाम दिखाएं।
- प्याज प्रमाणीकरण - केवल v3 प्याज सेवाओं के लिए। यह क्लाइंट और सर्वर साइड कॉन्फ़िगरेशन पर निर्भर करता है और एक कुंजी जोड़ी के साथ काम करता है, क्लाइंट के पास निजी कुंजी भाग होता है जो या तो उसके द्वारा उत्पन्न किया जाता है (अधिक सुरक्षित) या सेवा संचालक द्वारा दिया जाता है, और प्याज सेवा संचालक के पास सार्वजनिक भाग होता है। यदि कोई भी
- सर्वर - कुंजी जोड़ी उत्पन्न करें या सार्वजनिक भाग जोड़ें, क्लाइंट नाम और उनकी सार्वजनिक कुंजियाँ
<HiddenServiceDir>/authorized_clients/<client>.auth से सूचीबद्ध करें। यदि कोई क्लाइंट कॉन्फ़िगर किया गया है, तो सेवा प्रमाणीकरण के बिना सुलभ नहीं होगी।
- क्लाइंट - कुंजी जोड़ी उत्पन्न करें या सार्वजनिक भाग जोड़ें, अपने
<ClientOnionAuthDir>/<SOME_ONION>.auth_private को सूचीबद्ध करें।
- Onion-Location - सार्वजनिक प्याज सेवाओं के लिए आप अपने सादे-नेट उपयोगकर्ताओं को अपनी प्याज सेवा पर रीडायरेक्ट कर सकते हैं, इस गाइड के साथ nginx, apache2 और html हेडर विशेषताओं के लिए।
- OpSec - संचालन सुरक्षा
- Unix सॉकेट - लोकलहोस्ट बायपास से बचने के लिए यूनिक्स सॉकेट पर प्याज सेवा सक्षम करने का समर्थन।
- वेब सर्वर - Nginx या Apache2 वेब सर्वर का उपयोग करके अपनी छिपी हुई सेवा के साथ फ़ाइलें परोसें।
- उपयोगिता - परियोजना के साथ संगत दो डायलॉग बॉक्स हैं,
dialog और whiptail।
- बल्क - कुछ कमांड को तर्क
@all के साथ बल्क किया जा सकता है ताकि सभी सेवाओं या क्लाइंट को शामिल किया जा सके जो विकल्प --service या --client पर निर्भर करता है, सक्षम तर्क [SERV1,SERV2,...] और [CLIENT1,CLIENT2,...] सूचीबद्ध करें, कमांड वेरिएबल्स पर लूप करेगा और संयोजन लागू करेगा।
- मूर्ख-प्रूफ - स्क्रिप्ट अमान्य कमांड और गलत सिंटैक्स को फ़िल्टर करने की पूरी कोशिश करती है। कमांड कठिन नहीं हैं लेकिन पहली नज़र में आपको डरा सकते हैं। चिंता न करें, यदि यह अमान्य है, तो यह टोर डीमॉन को अमान्य कॉन्फ़िगरेशन के कारण रीलोड करने में विफल होने से बचाने के लिए नहीं चलेगा। यदि कोई अमान्य कमांड चलता है, तो कृपया एक मुद्दा खोलें।
आवश्यकताएँ
-
सामान्य:
- Unix-जैसा सिस्टम।
- कमांड को रूट और tor उपयोगकर्ता के रूप में कॉल करने के लिए सुपरयूज़र विशेषाधिकार।
-
आवश्यक प्रोग्राम:
- sh - कोई भी POSIX शेल:
dash 0.5.4+, bash 2.03+, ksh 88+, mksh R28+, yash 2.29+, busybox ash 1.1.3+, zsh 3.1.9+ (zsh --emulate sh) आदि।
- tor >= 0.3.5.7
- grep >=0.9
- sed
- openssl >= 1.1 (क्लाइंट प्राधिकरण - एल्गोरिदम x25519 की आवश्यकता है, इसलिए यह LibreSSL नहीं हो सकता)
- basez >= 1.6.2 (क्लाइंट प्राधिकरण)
- git (बिल्ड)
- dialog/whiptail (TUI)
- nginx/apache2 (वेब सर्वर)
-
वैकल्पिक प्रोग्राम:
- (lib)qrencode >= 4.1.1 (सूची)
-
विकास प्रोग्राम:
- pandoc (मैनुअल)
- shellcheck (समीक्षा)
अनुकूलता
मुख्य रूप से Debian सिस्टम पर परीक्षण किया गया, जिसमें Whonix भी शामिल है।