यदि आपने कभी अपने सर्वर के ऑथेंटिकेशन लॉग को देखा है, तो आप जानते हैं कि इंटरनेट से जुड़ा कोई भी सर्वर हैकर्स के लॉगिन प्रयासों की निरंतर बौछार के अधीन है।
यहां तक कि अगर आपका सर्वर पूरी तरह से अज्ञात हॉबी सर्वर है, तो स्वचालित स्क्रिप्ट इसे ढूंढ लेंगी और SSH का उपयोग करके ब्रूट फोर्स के माध्यम से इसमें घुसने का लगातार प्रयास करेंगी। हालांकि, जब तक आप जटिल पासवर्ड या अन्य सुरक्षा उपायों का उपयोग कर रहे हैं, तब तक उनके अंदर घुसने की संभावना नहीं है, फिर भी हमेशा एक मौका रहता है कि वे सफल हो सकते हैं।
सौभाग्य से, इन हैकर्स को अपने सर्वर में फंसाने और उन्हें इतना विचलित रखने का एक उपयोगी और मजेदार तरीका है कि वे कोई परेशानी न खड़ी कर सकें।
SSH हनीपॉट क्या है?
सीधे शब्दों में कहें, तो एक SSH हनीपॉट एक चारा है जिसे साइबर अपराधियों को आकर्षित करने और उन्हें इसे लक्षित करने के लिए प्रलोभन देने के लिए लो-हैंगिंग फ्रूट की तरह दिखने के लिए बनाया गया है। लेकिन यह एक वास्तविक लक्ष्य नहीं है, और हैकर को अक्सर बहुत देर तक इसका एहसास नहीं होता।
एक हनीपॉट कई रूप ले सकता है और इसके कई अलग-अलग उपयोग हो सकते हैं। कभी-कभी वे थोड़े से विकर्षण से थोड़े अधिक होते हैं, लेकिन अन्य समय में उनका उपयोग हमलावर के बारे में जानकारी इकट्ठा करने के लिए किया जाता है।
कई सरकारी एजेंसियां अपराधियों को पकड़ने के लिए हनीपॉट का उपयोग करती हैं, उन्हें हमला करने के लिए आकर्षित करती हैं, केवल बाद में उन्हें पकड़ने के लिए उन पर खुफिया जानकारी इकट्ठा करने के लिए। लेकिन हनीपॉट का उपयोग कंपनियों के लिए काम करने वाले सिस्टम एडमिनिस्ट्रेटर या यहां तक कि सिर्फ शौकीनों द्वारा भी किया जा सकता है जो मज़े के लिए लिनक्स सर्वर चलाते हैं।
SSH हनीपॉट क्यों उपयोग करें?
कोई अपने सर्वर पर SSH हनीपॉट लागू करना चाह सकता है इसके कई कारण हैं। कुछ मामलों में, आप भविष्य में उनसे किसी भी कनेक्शन को ब्लॉक करने के लिए इसका उपयोग करना चाह सकते हैं। शायद आप बस उन्हें अपने सिस्टम पर वास्तविक लक्ष्यों से दूर आकर्षित करना चाहते हैं। या यह शैक्षिक उद्देश्यों के लिए हो सकता है: यह जानने में मदद करने के लिए कि हमले कैसे काम करते हैं।
इस गाइड के उद्देश्यों के लिए, हम मुख्य रूप से विकर्षण के रूप में हनीपॉट का उपयोग कर रहे हैं। विशेष रूप से, यह हैकर को आपके सर्वर के अधिक कमजोर हिस्सों पर हमला करने से विचलित करेगा साथ ही उन्हें किसी और के सर्वर पर हमला करने में बहुत व्यस्त रखेगा।
और, कम से कम इस मामले में, इस्तेमाल की गई विधि एक या दो हंसी के लिए भी अच्छी होगी।
SSH में फंसाया गया
अनिवार्य रूप से, हम जो करना चाहते हैं वह हैकर को फंसाना जब वे SSH लॉगिन को ब्रूट फोर्स करने का प्रयास करते हैं। ऐसा करने के कुछ तरीके हैं, लेकिन सबसे सरल में से एक है उन्हें बहुत लंबा SSH बैनर धीरे-धीरे भेजना।
इस तरह, हैकर की स्वचालित स्क्रिप्ट बैनर की प्रतीक्षा में फंस जाएगी। यह घंटों, यदि दिन या सप्ताह नहीं तो, चल सकता है। चूंकि स्क्रिप्ट स्वचालित है, हैकर शायद इस पर ज्यादा ध्यान नहीं दे रहा है और बहुत समय बीत जाने तक यह नोटिस नहीं करेगा कि यह फंस गया है।
इसे कभी-कभी चंचलता से "SSH टारपिट" कहा जाता है, क्योंकि हैकर की स्क्रिप्ट इसमें फंस जाती है और अपने दम पर बाहर निकलने में सक्षम नहीं होती है।
इसके लिए आपको कुछ बुनियादी SSH उपयोग जानने की आवश्यकता है। यदि आप निश्चित नहीं हैं कि SSH का उपयोग कैसे करें, तो आरंभ करने के लिए इस गाइड को पढ़ें।
endlessh
हम इसे पूरा करने के लिए जिस प्रोग्राम का उपयोग कर रहे हैं उसे endlessh कहा जाता है और इसे skeeto द्वारा बनाया गया है।
एक बार जब आप अपने सर्वर में लॉग इन कर लेते हैं, तो रिपॉजिटरी को क्लोन करें। (आपको git इंस्टॉल होना चाहिए।)
git clone https://github.com/skeeto/endlessh
अब जब आपके सर्वर पर रिपॉजिटरी है, तो आपको उस डायरेक्टरी पर स्विच करना होगा और इसे कंपाइल करना होगा।
cd endlessh make
प्रोग्राम को कंपाइल करने का प्रयास करते समय कुछ एरर आ सकती हैं। इसका सबसे अधिक संभावना है कि आप एक डिपेंडेंसी मिस कर रहे हैं जिसे प्रोग्राम को कंपाइल करने की आवश्यकता है। आपको यह जांचना होगा कि यह कौन सी डिपेंडेंसी कहता है कि गायब है, फिर इसे अपने डिस्ट्रीब्यूशन के पैकेज मैनेजर के साथ इंस्टॉल करें।
एक बार जब आपके पास प्रोग्राम कंपाइल हो जाता है, तो आप इसे अपने bin डायरेक्टरी में ले जाना चाहेंगे ताकि यह आपके पाथ में हो।
sudo mv endlessh /usr/local/bin
आप यह डबल-चेक करना चाहेंगे कि यह आपके पाथ में डिटेक्ट हो गया है।
which endlessh
इसे /usr/local/bin/endlessh पाथ प्रिंट करना चाहिए। यदि ऐसा नहीं है, तो आप यह सुनिश्चित करना चाहेंगे कि इसे सही डायरेक्टरी में ले जाया गया है।
उसके बाद, प्रोग्राम को एक सर्विस डेमॉन में बदल दें ताकि यह systemd सर्विस के रूप में कार्य कर सके।
sudo cp util/endlessh.service /etc/systemd/system/
एक बार यह समाप्त हो जाने पर, सर्विस को सक्षम करें ताकि यह बैकग्राउंड में चले।
sudo systemctl enable endlessh
डिफ़ॉल्ट रूप से, endlessh केवल 1024 से ऊपर के पोर्ट पर काम करेगा, लेकिन हम चाहते हैं कि यह डिफ़ॉल्ट SSH पोर्ट का उपयोग करे ताकि हम हैकर्स को इसे हमला करने का प्रयास करने के लिए बेवकूफ बना सकें। ऐसा करने के लिए, हमें सर्विस फाइल को एडिट करने की आवश्यकता है।
यह उदाहरण कॉन्फिगरेशन फाइल को एडिट करने के लिए nano का उपयोग करता है, लेकिन अपने पसंद के टेक्स्ट एडिटर का उपयोग करने के लिए स्वतंत्र महसूस करें।
sudo nano /etc/systemd/system/endlessh.service
एक बार फाइल खुल जाने पर, # कैरेक्टर को हटाकर निम्न लाइन को अनकमेंट करें:
#AmbientCapabilities=CAP_NET_BIND_SERVICE
फिर इस लाइन की शुरुआत में एक # जोड़ें:
PrivateUsers=true
फाइल सेव करें और यह कमांड चलाएं:
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
आपको एक कॉन्फिगरेशन फाइल बनाने और सेट अप करने की आवश्यकता होगी ताकि endlessh को पता चले कि इसे किस पोर्ट पर चलना चाहिए। आपको पहले इसके लिए एक नई डायरेक्टरी बनानी होगी, फिर कॉन्फिगरेशन फाइल बनानी होगी।
sudo mkdir -p /etc/endlessh sudo vim /etc/endlessh/config
कॉन्फिग फाइल में केवल एक लाइन की आवश्यकता होगी। यह endlessh को पोर्ट 22 पर चलने के लिए कहेगा, जो SSH के लिए डिफ़ॉल्ट पोर्ट है। हम ऐसा इसलिए करते हैं ताकि यह हैकर्स के लिए एक अधिक आकर्षक लक्ष्य हो। वे देखेंगे कि डिफ़ॉल्ट SSH पोर्ट खुला है, फिर इसमें घुसने का प्रयास करेंगे।
अपने कॉन्फिग फाइल में निम्न दर्ज करें:
Port 22
आपको endlessh सर्विस शुरू करने की आवश्यकता होगी।
sudo systemctl start endlessh
बस इतना ही! अब आपके डिफ़ॉल्ट SSH पोर्ट पर endlessh चल रहा है और पहले से ही हैकर्स को फंसा रहा है।
इसे टेस्ट करना
यह सुनिश्चित करने के लिए कि हनीपॉट इरादे के अनुसार काम कर रहा है, आइए एक पल के लिए हैकर होने का दिखावा करें और अपने सर्वर पर SSH एक्सेस प्राप्त करने का प्रयास करें।
ssh root@
जब तक सब कुछ सही ढंग से सेट अप किया गया है, आपको यह देखना चाहिए कि ssh कमांड अटकी हुई है और कुछ नहीं कर रही है। आइए देखें कि वास्तव में क्या हो रहा है जब आप (या एक वास्तविक हैकर) यह कमांड जारी करते हैं।
वही कमांड दोहराएं लेकिन वर्बोज़ विकल्प का उपयोग करने के लिए -vvv फ्लैग जोड़ें।
ssh -vvv root@
अब यह स्पष्ट होना चाहिए कि यह छोटा टूल आपको कैसे फंसा रहा है और आपको अपने सर्वर पर SSH एक्सेस करने से रोक रहा है। यह धीरे-धीरे, लाइन दर लाइन, क्लाइंट को एक बहुत बड़ा SSH बैनर भेज रहा है।
और निश्चित रूप से, चूंकि एक हैकर के पास यह एक बॉट के साथ स्वचालित है, उन्हें यह एहसास नहीं होगा कि यह तब तक हो रहा है जब तक आपने उनके घंटों, यदि दिन नहीं तो, समय बर्बाद नहीं कर दिया।
अक्सर पूछे जाने वाले प्रश्न
1. क्या यह हैकर्स को SSH एक्सेस करने से रोकेगा?
हालांकि यह एक बहुत अच्छा निवारक है, यह हैकर्स को पूरी तरह से रोकने की गारंटी नहीं देता है। एक चौकस हैकर अंततः नोटिस करेगा कि आपने अपने सर्वर पर एक हनीपॉट बनाया है और आपके सर्वर पर SSH एक्सेस करने के लिए अलग-अलग पोर्ट आज़मा सकते हैं।
हालांकि, यह उन हैकर्स को रोकने के लिए पर्याप्त होना चाहिए जो केवल लो-हैंगिंग फ्रूट की तलाश में हैं।
2. अगर यह प्रोग्राम डिफ़ॉल्ट पोर्ट पर चल रहा है तो मैं SSH का उपयोग कैसे करूं?
आपको SSH के चलने वाले पोर्ट को बदलना होगा। यह अच्छी प्रथा है भले ही आपके सर्वर पर हनीपॉट न हो, क्योंकि हैकर्स हमेशा अन्य पोर्ट्स को स्कैन करने से पहले डिफ़ॉल्ट पोर्ट्स को पहले आज़माएंगे।
3. क्या कॉन्फिग फाइल में जोड़ने के लिए अन्य विकल्प हैं?
हां, कई अन्य सेटिंग्स हैं जिन्हें आप बदल सकते हैं, जिसमें देरी की गति बदलना शामिल है।
आप Github रिपॉजिटरी पर सैंपल कॉन्फिगरेशन फाइल में विकल्पों की सूची देख सकते हैं।
अंतिम शब्द
अब जब आपने अपने सर्वर पर हैकर्स को फंसाने और उन्हें विचलित रखने के लिए हनीपॉट सेट अप करना सीख लिया है ताकि वे किसी और चीज पर हमला न कर सकें, तो यह आपके सर्वर पर SSH एक्सेस को सुरक्षित करने का एकमात्र तरीका नहीं है।
SSH में लॉग इन करने के लिए एन्क्रिप्शन कुंजियों का उपयोग करके अपने सर्वर को और भी सुरक्षित करने का तरीका दिखाने वाले इस लेख को देखें।