यदि आपने कभी अपने सर्वर के प्रमाणीकरण लॉग को देखा है, तो आप जानते हैं कि इंटरनेट से जुड़ा कोई भी सर्वर हैकर्स के लगातार लॉगिन प्रयासों के घेरे में है।
भले ही आपका सर्वर पूरी तरह से अज्ञात हॉबी सर्वर हो, स्वचालित स्क्रिप्ट इसे ढूंढ़ लेगी और लगातार एसएसएच का उपयोग करने में अपने तरीके से जबरदस्ती करने की कोशिश करेगी। हालांकि जब तक आप जटिल पासवर्ड या अन्य सुरक्षा उपायों का उपयोग कर रहे हैं, तब तक उनके अंदर आने की संभावना नहीं है, फिर भी उनके सफल होने की संभावना हमेशा बनी रहती है।
सौभाग्य से, इन हैकर्स को आपके सर्वर में फंसाने और किसी भी परेशानी का कारण बनने के लिए उन्हें बहुत अधिक विचलित रखने का एक उपयोगी और मजेदार तरीका है।
SSH हनीपोट क्या है?
सीधे शब्दों में कहें तो, एक SSH हनीपोट साइबर अपराधियों को आकर्षित करने के लिए कम लटकने वाले फल की तरह दिखने वाला एक प्रलोभन है और उन्हें इसे लक्षित करने के लिए प्रेरित करता है। लेकिन यह एक वास्तविक लक्ष्य नहीं है, और हैकर को अक्सर इसका एहसास तब तक नहीं होता जब तक बहुत देर हो चुकी होती है।
एक हनीपोट कई रूप ले सकता है और इसके कई अलग-अलग उपयोग हो सकते हैं। कभी-कभी वे एक व्याकुलता से थोड़े ही अधिक होते हैं, लेकिन कभी-कभी वे हमलावर के बारे में जानकारी इकट्ठा करने के लिए उपयोग किए जाते हैं।
कई सरकारी एजेंसियां अपराधियों को पकड़ने के लिए हनीपोट का उपयोग करती हैं, उन्हें हमला करने के लिए फुसलाती हैं, केवल बाद में उन्हें पकड़ने के लिए उन पर खुफिया जानकारी इकट्ठा करने के लिए। लेकिन हनीपोट्स का इस्तेमाल कंपनियों के लिए काम करने वाले सिस्टम एडमिनिस्ट्रेटर या यहां तक कि सिर्फ शौक़ीन लोगों द्वारा भी किया जा सकता है जो मस्ती के लिए लिनक्स सर्वर चलाते हैं।
SSH हनीपोट का उपयोग क्यों करें?
कई कारण हैं कि कोई व्यक्ति अपने सर्वर पर SSH हनीपोट लागू करना चाहता है। कुछ मामलों में, आप इसका उपयोग करना चाह सकते हैं ताकि आप उनसे भविष्य के किसी भी कनेक्शन को ब्लॉक कर सकें। शायद आप उन्हें अपने सिस्टम पर वास्तविक लक्ष्यों से दूर लुभाना चाहते हैं। या यह शैक्षिक उद्देश्यों के लिए हो सकता है:यह जानने में मदद करने के लिए कि हमले कैसे काम करते हैं।
इस गाइड के प्रयोजनों के लिए, हम मुख्य रूप से हनीपोट का उपयोग एक व्याकुलता के रूप में कर रहे हैं। विशेष रूप से, यह हैकर को आपके सर्वर के अधिक संवेदनशील हिस्सों पर हमला करने से विचलित करेगा और साथ ही उन्हें किसी और के सर्वर पर हमला करने के लिए बहुत व्यस्त रखेगा।
और, इस मामले में, कम से कम इस्तेमाल की जाने वाली विधि हंसी या दो के लिए भी अच्छी होगी।
SSH में फंस गया
अनिवार्य रूप से, हम जो करना चाहते हैं वह हैकर को फंसाना है जब वे एसएसएच लॉगिन को बलपूर्वक करने का प्रयास करते हैं। ऐसा करने के कुछ तरीके हैं, लेकिन सबसे आसान में से एक है धीरे-धीरे उन्हें एक बहुत लंबा SSH बैनर भेजना।
इस तरह, हैकर की स्वचालित स्क्रिप्ट एक बैनर के इंतजार में अटक जाएगी। यह दिन या सप्ताह नहीं तो घंटों तक चल सकता है। चूंकि स्क्रिप्ट स्वचालित है, इसलिए हैकर संभवतः इस पर अधिक ध्यान नहीं दे रहा है और यह ध्यान नहीं देगा कि यह तब तक अटका हुआ है जब तक कि बहुत समय बीत चुका है।
इसे कभी-कभी "एसएसएच टारपिट" के रूप में जाना जाता है, क्योंकि हैकर की स्क्रिप्ट इसमें फंस जाती है और अपने आप बाहर नहीं निकल पाती है।
इसके लिए आपको कुछ बुनियादी SSH उपयोगों को जानना होगा। यदि आप सुनिश्चित नहीं हैं कि SSH का उपयोग कैसे करें, तो आरंभ करने के लिए इस मार्गदर्शिका को पढ़ें।
अंतहीन
इसे पूरा करने के लिए हम जिस प्रोग्राम का उपयोग कर रहे हैं उसे अंतहीन कहा जाता है और इसे स्कीटो द्वारा बनाया गया है।
अपने सर्वर में लॉग इन करने के बाद, रिपॉजिटरी को क्लोन करें। (आपके पास git
होना चाहिए इसे स्थापित किया।)
git clone https://github.com/skeeto/endlessh
अब जब आपके सर्वर पर रिपोजिटरी है, तो आपको उस निर्देशिका पर स्विच करना होगा और उसे संकलित करना होगा।
cd endlessh make
प्रोग्राम को संकलित करने का प्रयास करते समय कुछ त्रुटियां आ सकती हैं। इसका सबसे अधिक संभावना है कि आप एक निर्भरता खो रहे हैं जिसे प्रोग्राम को संकलित करने की आवश्यकता है। आपको यह जांचना होगा कि कौन सी निर्भरता गायब है, फिर इसे अपने वितरण के पैकेज प्रबंधक के साथ स्थापित करें।
एक बार जब आपके पास संकलित करने के लिए प्रोग्राम हो, तो आप इसे अपनी बिन निर्देशिका में ले जाना चाहेंगे ताकि यह आपके पथ में हो।
sudo mv endlessh /usr/local/bin
आप यह सुनिश्चित करने के लिए दोबारा जांच करना चाहेंगे कि यह आपके पथ में पाया गया है।
which endless
इसे /usr/local/bin/endlessh
. का प्रिंट आउट लेना चाहिए पथ। अगर ऐसा नहीं है, तो आप यह सुनिश्चित करना चाहेंगे कि इसे सही निर्देशिका में ले जाया गया था।
उसके बाद, प्रोग्राम को सर्विस डेमॉन में बदल दें ताकि वह systemd
. के रूप में कार्य कर सके सेवा।
sudo cp util/endlessh.service /etc/systemd/system/
एक बार जब यह समाप्त हो जाए, तो सेवा को सक्षम करें ताकि यह पृष्ठभूमि में चले।
sudo systemctl enable endlessh
डिफ़ॉल्ट रूप से, अंतहीन केवल 1024 से ऊपर के बंदरगाहों पर काम करेगा, लेकिन हम चाहते हैं कि यह डिफ़ॉल्ट एसएसएच पोर्ट का उपयोग करे ताकि हम हैकर्स को इस पर हमला करने की कोशिश में मूर्ख बना सकें। ऐसा करने के लिए, हमें सेवा फ़ाइल को संपादित करने की आवश्यकता है।
यह उदाहरण कॉन्फ़िगरेशन फ़ाइल को संपादित करने के लिए नैनो का उपयोग करता है, लेकिन बेझिझक अपनी पसंद के टेक्स्ट एडिटर का उपयोग करें।
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
आपको एक कॉन्फ़िगरेशन फ़ाइल बनाने और सेट करने की आवश्यकता होगी ताकि अंतहीन यह जान सके कि उसे किस पोर्ट पर चलना चाहिए। आपको पहले इसके लिए एक नई निर्देशिका बनानी होगी, फिर कॉन्फ़िगरेशन फ़ाइल बनानी होगी।
sudo mkdir -p /etc/endlessh sudo vim /etc/endlessh/config
कॉन्फिग फाइल को इसमें केवल एक लाइन की जरूरत होगी। यह अंतहीन को पोर्ट 22 पर चलने के लिए कहेगा, जो SSH के लिए डिफ़ॉल्ट पोर्ट है। हम ऐसा इसलिए करते हैं ताकि हैकर्स के लिए यह एक अधिक आकर्षक लक्ष्य हो। वे देखेंगे कि डिफ़ॉल्ट SSH पोर्ट खुला है, फिर उसमें सेंध लगाने का प्रयास करें।
अपनी कॉन्फ़िग फ़ाइल में निम्नलिखित दर्ज करें:
Port 22
आपको अंतहीन सेवा शुरू करनी होगी।
sudo systemctl start endlessh
यही सब है इसके लिए! अब आपके पास अपने डिफ़ॉल्ट SSH पोर्ट पर अंतहीन चल रहा होगा और पहले से ही हैकर्स को फंसा रहे हैं।
इसका परीक्षण करना
बस यह सुनिश्चित करने के लिए कि हनीपोट इरादा के अनुसार काम कर रहा है, आइए एक सेकंड के लिए हैकर होने का नाटक करें और अपने सर्वर पर एसएसएच तक पहुंच प्राप्त करने का प्रयास करें।
ssh root@<server-ip-address>
जब तक सब कुछ सही तरीके से सेट किया गया है, आपको यह देखना चाहिए कि ssh
आदेश अटका हुआ है और कुछ नहीं कर रहा है। आइए देखें कि वास्तव में क्या हो रहा है जब आप (या एक वास्तविक हैकर) यह आदेश जारी करते हैं।
वही कमांड दोहराएं लेकिन -vvv
जोड़ें वर्बोज़ विकल्प का उपयोग करने के लिए ध्वज।
ssh -vvv root@<server-ip-address>
अब यह स्पष्ट होना चाहिए कि यह छोटा उपकरण आपको कैसे फंसा रहा है और आपको अपने सर्वर पर एसएसएच तक पहुंचने से रोक रहा है। यह धीरे-धीरे, लाइन दर लाइन, क्लाइंट को एक बहुत बड़ा SSH बैनर भेज रहा है।
और निश्चित रूप से, चूंकि एक हैक ने इसे बॉट के साथ स्वचालित किया है, इसलिए उन्हें यह एहसास नहीं होगा कि यह तब तक हो रहा है जब तक कि आप उनके समय के घंटे नहीं, यदि नहीं, तो बर्बाद कर देते हैं।
अक्सर पूछे जाने वाले प्रश्न
<एच3>1. क्या यह हैकर्स को SSH को एक्सेस करने से रोकेगा?हालांकि यह एक बहुत अच्छा निवारक है, लेकिन हैकर्स को पूरी तरह से रोकने की गारंटी नहीं है। एक चौकस हैकर अंततः नोटिस करेगा कि आपने अपने सर्वर पर एक हनीपोट बनाया है और आपके सर्वर पर एसएसएच तक पहुंचने के लिए विभिन्न बंदरगाहों का प्रयास कर सकता है।
हालांकि, यह हैकर्स को रोकने के लिए पर्याप्त होना चाहिए जो केवल कम लटके फल की तलाश में हैं।
<एच3>2. यदि यह प्रोग्राम डिफ़ॉल्ट पोर्ट पर चल रहा है तो मैं SSH का उपयोग कैसे करूं?आपको उस पोर्ट को बदलना होगा जिस पर SSH चलता है। यह एक अच्छा अभ्यास है, भले ही आपके सर्वर पर हनीपॉट न हो, क्योंकि हैकर्स हमेशा दूसरों के लिए स्कैन करने से पहले डिफ़ॉल्ट पोर्ट का प्रयास करेंगे।
<एच3>3. क्या अन्य विकल्प हैं जिन्हें मैं कॉन्फ़िग फ़ाइल में जोड़ सकता हूँ?हां, कई अन्य सेटिंग्स हैं जिन्हें आप बदल सकते हैं, जिसमें देरी की गति को बदलना भी शामिल है।
आप Github रिपॉजिटरी पर नमूना कॉन्फ़िगरेशन फ़ाइल में विकल्पों की सूची देख सकते हैं।
अंतिम शब्द
अब जब आपने हैकर्स को फंसाने और उनका ध्यान भटकाने के लिए अपने सर्वर पर हनीपोट सेट करना सीख लिया है ताकि वे किसी और चीज पर हमला न कर सकें, तो यह आपके सर्वर पर एसएसएच एक्सेस को सुरक्षित करने का एकमात्र तरीका नहीं है।
अपने सर्वर को और भी सुरक्षित करने में मदद करने के लिए SSH में लॉग इन करने के लिए एन्क्रिप्शन कुंजियों का उपयोग करने का तरीका दिखाते हुए इस लेख को देखें।