
SSH कनेक्शन डेमॉन Debian/Raspbian/Ubuntu/आदि के लिए
sidedoor एक शेल स्क्रिप्ट डेमॉन के साथ SSH कनेक्शन या टनल बनाए रखता है।
मुख्य उपयोग मामला स्थानीय SSH सर्वर (या किसी अन्य पोर्ट) के लिए एक रिमोट पोर्ट फ़ॉरवर्ड बनाए रखना है। इस प्रकार, स्थानीय डिवाइस तक इनकमिंग कनेक्शन का उपयोग किए बिना पहुँचा जा सकता है जो NAT या फ़ायरवॉल द्वारा अवरुद्ध हो सकते हैं या मोबाइल उपकरणों के साथ अन्यथा अव्यावहारिक हो सकते हैं।
SSH क्लाइंट रिवर्स SSH प्रॉक्सी के माध्यम से डिवाइस से कनेक्ट हो सकते हैं जिसे sidedoor टनल करता है। यह प्रॉक्सी सर्वर अविश्वसनीय हो सकता है और किसी तीसरे पक्ष या क्लाउड सेवा द्वारा चलाया जा सकता है।
sidedoor SSH कीपएलाइव्स को सक्षम करता है और एक्सपोनेंशियल बैकऑफ़ के साथ SSH को पुनः प्रयास करता है। जितनी जल्दी हो सके पुनः कनेक्ट करने के लिए, जब कोई नेटवर्क इंटरफ़ेस ऊपर आता है (या बदलता है), तो यह बैकऑफ़ को रीसेट करता है।
अन्य उपयोग मामले:
क्या आप sidedoor का उपयोग कर रहे हैं? बग रिपोर्ट, सुविधा अनुरोध - कृपया एक इश्यू खोलें! पुल अनुरोधों का स्वागत है।
sidedoor डेबियन और डेबियन-आधारित सिस्टम जैसे रास्पियन, उबंटू और VyOS/EdgeOS के लिए पैकेज किया गया है, लेकिन यह किसी भी POSIX वातावरण में (OpenSSH) SSH क्लाइंट के साथ काम करना चाहिए।
यदि sidedoor आपके वितरण रिपॉजिटरी में है (डेबियन 9+, उबंटू 17.04+), तो बस इसे अपने पैकेज मैनेजर से इंस्टॉल करें।
sudo apt install sidedoor
अन्यथा, आप रिलीज़ पेज से मैन्युअल रूप से debs डाउनलोड कर सकते हैं।
sidedoor उपयोगकर्ता को पूर्ण रूट एक्सेस देने के लिए,
sudo पैकेज इंस्टॉल करें।
रिमोट सर्वर और पोर्ट फ़ॉरवर्ड /etc/default/sidedoor में कॉन्फ़िगर किए गए हैं।
SSH कॉन्फ़िगरेशन फ़ाइलें /etc/sidedoor निर्देशिका में स्थित हैं।
REMOTE_SERVER और OPTIONS को /etc/default/sidedoor में कॉन्फ़िगर करें।
OPTIONS में पास करने के लिए कुछ तर्कों के लिए, ब्लॉग पोस्ट
लोकल और रिमोट पोर्ट फ़ॉरवर्डिंग उदाहरणों के साथ समझाया गया
और ssh मैन पेज देखें।
/etc/sidedoor के अंतर्गत SSH कॉन्फ़िगरेशन फ़ाइलों को संपादित करें।
id_rsa: रिमोट सर्वर तक पहुँचने के लिए SSH निजी कुंजी।
इस कुंजी को बनाने के लिए ssh-keygen का उपयोग कर सकते हैं
(मौजूदा फ़ाइल को अधिलेखित करने के लिए संकेत मिलने पर y दबाएं):
sudo ssh-keygen -t rsa -N '' -f /etc/sidedoor/id_rsa
संबंधित सार्वजनिक कुंजी id_rsa.pub को रिमोट उपयोगकर्ता की ~/.ssh/authorized_keys फ़ाइल में शामिल करने की आवश्यकता होगी।
/etc/ssh/sshd_config को संपादित करके स्थानीय SSH सर्वर को लॉक डाउन करें।
ChallengeResponseAuthentication no और PasswordAuthentication no)।ListenAddress ::1 और ListenAddress 127.0.0.1)।sshd को पुनरारंभ या रीलोड करें, जैसे,
sudo service ssh reload।ssh_client_config_example फ़ाइल को संशोधित करें और इसे क्लाइंट की
~/.ssh/config फ़ाइल में शामिल करें ताकि टनल किए गए SSH सर्वर तक
ssh, scp, rsync, आदि के साथ आसानी से पहुँचा जा सके।sidedoor को न्यूनतम निर्भरता के साथ पोर्ट को टनल करने के लिए एक हल्के समाधान के रूप में डिज़ाइन किया गया है, लेकिन कुछ विकल्प हैं जिनमें अधिक सुविधाएँ हैं।
Tor हिडन सर्विसेज़ के रूप में चलने वाले सर्वरों को गुमनामी प्रदान करता है, लेकिन NAT ट्रैवर्सल भी संभालता है।
लाभ:
नुकसान:
डिवाइस और क्लाइंट दोनों पर, Tor स्थापित करें।
sudo apt install tor
जिस डिवाइस को एक्सपोज़ किया जा रहा है, उस पर पोर्ट 22 पर एक हिडन सर्विस बनाने के लिए /etc/tor/torrc संपादित करें।
HiddenServiceDir /var/lib/tor/sshd/
HiddenServicePort 22 127.0.0.1:22
HiddenServiceAuthorizeClient stealth client
"client" को क्लाइंट नामों की अल्पविराम-पृथक सूची से बदलें ताकि कई प्राधिकरण रहस्य उत्पन्न हो सकें।
फिर Tor को रीलोड करें और प्याज होस्टनाम और प्राधिकरण डेटा प्राप्त करें।
sudo service tor reload
sudo cat /var/lib/tor/sshd/hostname
क्लाइंट पर, hostname फ़ाइल में देखे गए प्याज होस्टनाम और प्राधिकरण डेटा को जोड़ने के लिए /etc/tor/torrc संपादित करें।
HidServAuth <hostname>.onion <secret>
फिर Tor को रीलोड करें और torsocks ssh <hostname>.onion चलाएँ या ~/.ssh/config फ़ाइल में ProxyCommand सेट करें।
ProxyCommand torsocks nc <hostname>.onion 22
autossh, sidedoor की तरह,
ssh प्रारंभ करता है और आवश्यकतानुसार इसे पुनरारंभ करता है।
कुछ अंतरों में शामिल हैं:
sidedoor एक न्यूनतम शेल स्क्रिप्ट डेमॉन है। autossh एक अधिक व्यापक और कॉन्फ़िगरेबल C प्रोग्राम है।
sidedoor SSH कीपएलाइव्स को सक्षम करता है
(ServerAliveInterval और ServerAliveCountMax),
जो OpenSSH के आधुनिक संस्करणों में उपलब्ध हैं।
autossh पोर्ट फ़ॉरवर्ड के एक लूप के माध्यम से डेटा भेजकर ssh की निगरानी करता है (यह सुविधा SSH कीपएलाइव्स से पहले की है),
हालाँकि इसे -M 0 विकल्प से अक्षम किया जा सकता है।
sidedoor स्वचालित रूप से एक सेवा के रूप में चलने के लिए अभिप्रेत है, इसलिए पैकेज में init/systemd स्क्रिप्ट और कॉन्फ़िग फ़ाइलें शामिल हैं। autossh में init/systemd स्क्रिप्ट शामिल नहीं है (Debian bug #698390)।
sidedoor रिमोट कमांड और स्यूडो-टीटीवाई आवंटन को अक्षम करता है। इंटरैक्टिव उपयोग के लिए, SSH कीपएलाइव्स के साथ autossh या Mosh पर विचार करें।
sidedoor हमेशा पुनः प्रयास करता है यदि ssh गैर-शून्य निकास स्थिति के साथ बाहर निकलता है।
autossh पुनः प्रयास नहीं करता है यदि ssh पहले प्रयास में बहुत जल्दी बाहर निकलता है,
जो तब हो सकता है जब नेटवर्क कनेक्टिविटी या DNS रिज़ॉल्यूशन टूटा हुआ हो, विशेष रूप से मोबाइल उपकरणों पर।
sidedoor और autossh दोनों में रीट्राई बैकऑफ़ लॉजिक है।
sidedoor रीट्राई बैकऑफ़ को रीसेट करता है जब कोई नेटवर्क इंटरफ़ेस ऊपर आता है,
ताकि जितनी जल्दी हो सके पुनः कनेक्ट करने का प्रयास किया जा सके, if-up.d स्क्रिप्ट से SIGUSR1 प्राप्त करके।
autossh में नेटवर्क स्थिति हुक नहीं हैं।
कॉपीराइट 2015-2017 दारा अदीब।
यह प्रोग्राम मुफ़्त सॉफ़्टवेयर है: आप इसे GNU जनरल पब्लिक लाइसेंस की शर्तों के तहत पुनर्वितरित और/या संशोधित कर सकते हैं, जैसा कि फ्री सॉफ़्टवेयर फाउंडेशन द्वारा प्रकाशित किया गया है, या तो लाइसेंस का संस्करण 3, या (आपके विकल्प पर) कोई बाद का संस्करण।
यह प्रोग्राम इस उम्मीद में वितरित किया जाता है कि यह उपयोगी होगा, लेकिन बिना किसी वारंटी के; यहां तक कि व्यापारिकता या किसी विशेष उद्देश्य के लिए उपयुक्तता की निहित वारंटी के बिना भी। अधिक जानकारी के लिए GNU जनरल पब्लिक लाइसेंस देखें।
आपको इस प्रोग्राम के साथ GNU जनरल पब्लिक लाइसेंस की एक प्रति प्राप्त हुई होगी। यदि नहीं, तो https://www.gnu.org/licenses/ देखें।
known_hosts: रिमोट सर्वर की SSH होस्ट कुंजी।
वैकल्पिक रूप से, स्थानीय sidedoor उपयोगकर्ता को रिमोट एक्सेस प्रदान करने के लिए SSH सार्वजनिक कुंजी(याँ) को फ़ाइल /etc/sidedoor/authorized_keys में जोड़ें।
/etc/sidedoor/authorized_keys ~sidedoor/.ssh/authorized_keys का एक सिमलिंक है।
sudo पैकेज, यदि स्थापित है, तो इस उपयोगकर्ता को पूर्ण रूट एक्सेस प्रदान करता है।
परिवर्तन लागू करने के लिए sidedoor सेवा को पुनरारंभ करें।
sudo service sidedoor restart