हड़ताली बंदरगाह (अंग्रेजी में बंदरगाह की दस्तक) यह निस्संदेह एक अभ्यास है कि हम सभी जो सर्वर का प्रबंधन करते हैं, उन्हें अच्छी तरह से पता होना चाहिए, यहां मैं विस्तार से बताता हूं कि यह क्या है और इसे कैसे लागू करें और कॉन्फ़िगर करें and
अभी हम में से जो एक सर्वर का प्रबंधन करते हैं, उस सर्वर तक SSH की पहुंच होती है, कुछ हम SSH के डिफ़ॉल्ट पोर्ट को बदलते हैं और यह अब पोर्ट 22 का उपयोग नहीं करता है और अन्य बस इसे ऐसे ही छोड़ देते हैं (कुछ अनुशंसित नहीं), हालांकि सर्वर ने कुछ पोर्ट के माध्यम से एसएसएच एक्सेस को सक्षम किया है और यह पहले से ही एक 'भेद्यता' है।
साथ पोर्ट नॉकिंग हम निम्नलिखित प्राप्त कर सकते हैं:
1. SSH पहुंच किसी भी पोर्ट द्वारा सक्षम नहीं है। अगर हमारे पास पोर्ट 9191 (उदाहरण के लिए) के लिए SSH कॉन्फ़िगर है, तो वह पोर्ट (9191) सभी के लिए बंद हो जाएगा।
2. यदि कोई SSH द्वारा सर्वर तक पहुंच प्राप्त करना चाहता है, तो जाहिर है, वे नहीं कर पाएंगे, क्योंकि पोर्ट 9191 बंद है ... लेकिन, अगर हम 'मैजिक' या गुप्त संयोजन का उपयोग करते हैं, तो उदाहरण के लिए, पोर्ट को खोला जाएगा:
1. मैं सर्वर के 7000 पोर्ट को टेलनेट करता हूं
2. मैं सर्वर के 8000 को पोर्ट करने के लिए एक और टेलनेट करता हूं
3. मैं सर्वर के 9000 पोर्ट करने के लिए एक और टेलनेट करता हूं
4. सर्वर यह पता लगाता है कि किसी ने गुप्त संयोजन बनाया है (उस क्रम में पोर्ट्स 7000, 8000 और 9000 को टच करें) और SSH द्वारा लॉगिन का अनुरोध करने के लिए पोर्ट 9191 खोल देगा (यह केवल उस आईपी के लिए ही खुलेगा जहां से संयोजन संतोषजनक बना था) ।
5. अब SSH को बंद करने के लिए मैं सिर्फ टेलनेट को 3500 पोर्ट कर सकता हूं
6. मैं 4500 पोर्ट करने के लिए एक और टेलनेट करूंगा
7. और अंत में 5500 पोर्ट करने के लिए एक और टेलनेट
8. सर्वर का पता लगाता है कि इस अन्य गुप्त संयोजन का प्रदर्शन पोर्ट 9191 को फिर से बंद कर देगा।
दूसरे शब्दों में, इसे और भी सरल रूप से समझाते हुए ...
साथ पोर्ट नॉकिंग हमारे सर्वर में कुछ पोर्ट बंद हो सकते हैं, लेकिन जब सर्वर से पता चलता है कि X IP सही पोर्ट संयोजन बनाया गया था (कॉन्फ़िगरेशन पहले एक कॉन्फ़िगरेशन फ़ाइल में परिभाषित किया गया है) स्पष्ट रूप से अपने आप पर कुछ आदेश निष्पादित करेगा (आदेश config फाइल में भी परिभाषित है).
क्या यह समझ में नहीं आ रहा है? 🙂
अनुक्रमणिका
पोर्ट नॉकिंग के लिए डेमॉन कैसे स्थापित करें?
मैं इसे पैकेज के साथ करता हूं ठट्ठा करना, जो हमें लागू करने और कॉन्फ़िगर करने के लिए एक बहुत ही सरल और तेज़ तरीके से अनुमति देगा पोर्ट नॉकिंग।
पैकेज स्थापित करें: knockd
पोर्ट नॉकिंग को नॉक से कैसे कॉन्फ़िगर करें?
एक बार स्थापित होने के बाद हम इसे कॉन्फ़िगर करने के लिए जाते हैं, इसके लिए हम फ़ाइल को संपादित करते हैं (रूट के रूप में) /etc/knockd.conf:
nano /etc/knockd.conf
जैसा कि आप उस फ़ाइल में देख सकते हैं कि पहले से ही एक डिफ़ॉल्ट कॉन्फ़िगरेशन है:
डिफ़ॉल्ट सेटिंग्स की व्याख्या करना वास्तव में सरल है।
- प्रथम, UseSyslog इसका मतलब है कि गतिविधि (लॉग) रिकॉर्ड करने के लिए हम उपयोग करेंगे / Var / log / syslog.
- दूसरा, सेक्शन में [OpenSSH] यह वह जगह है जहां स्पष्ट रूप से एसएसएच खोलने के निर्देश जाएंगे, पहले हमारे पास पोर्ट (गुप्त संयोजन) का अनुक्रम है जो डिफ़ॉल्ट रूप से कॉन्फ़िगर किया गया है (पोर्ट 7000, पोर्ट 8000 और अंत में पोर्ट 9000)। स्पष्ट रूप से बंदरगाहों को बदला जा सकता है (वास्तव में मैं इसकी सलाह देता हूं) साथ ही साथ उन्हें 3 नहीं होना चाहिए, वे अधिक या कम हो सकते हैं, यह आप पर निर्भर करता है।
- तीसरा, seq_timeout = 5 गुप्त पोर्ट संयोजन के लिए प्रतीक्षा करने का समय होता है। डिफ़ॉल्ट रूप से इसे 5 सेकंड सेट किया जाता है, इसका मतलब है कि एक बार जब हम पोर्ट नॉकिंग करना शुरू कर देते हैं (अर्थात, जब हम पोर्ट को 7000 तक टेलनेट करते हैं) हमारे पास सही अनुक्रम को पूरा करने के लिए अधिकतम 5 सेकंड हैं, यदि 5 सेकंड पास होते हैं और हम बंदरगाह खटखटाना समाप्त नहीं किया है तो यह बस के रूप में अगर अनुक्रम अमान्य था होगा।
- चौथा, आदेश इसे बहुत स्पष्टीकरण की आवश्यकता नहीं है। यह केवल कमांड होगा जिसे सर्वर तब निष्पादित करेगा जब वह पहले से परिभाषित संयोजन का पता लगाएगा। कमांड जो डिफ़ॉल्ट रूप से सेट होता है, वह ओपन पोर्ट 22 है (इस पोर्ट को अपने एसएसएच पोर्ट के लिए बदलें) केवल उस आईपी पर जिसने पोर्ट का सही संयोजन किया है।
- पांचवां, tcpflags = syn इस पंक्ति के साथ हम उन पैकेटों के प्रकार को निर्दिष्ट करते हैं जिन्हें सर्वर खटखटाने वाले पोर्ट के लिए मान्य होगा।
फिर एसएसएच को बंद करने के लिए अनुभाग है, कि डिफ़ॉल्ट कॉन्फ़िगरेशन ऊपर के बंदरगाहों के समान अनुक्रम से अधिक नहीं है, लेकिन विपरीत क्रम में है।
यहाँ कुछ संशोधनों के साथ एक विन्यास है:
खटखटाया डेमॉन कैसे शुरू करें?
इसे शुरू करने के लिए हमें पहले फ़ाइल (रूट के रूप में) को संशोधित करना होगा / etc / डिफ़ॉल्ट / नॉक:
nano /etc/default/knockd
वहाँ हम लाइन नंबर 12 कहते हैं कि: «START_KNOCKD = 0»और 0 से 1 को बदलें, हमारे पास होगा:«START_KNOCKD = 1«
एक बार जब यह हो जाता है तो हम इसे शुरू करते हैं:
service knockd start
और वोइला, यह कॉन्फ़िगर और काम कर रहा है।
पोर्ट नॉकिंग के साथ दस्तक और चल रहा है!
जैसा कि आप पिछले कॉन्फ़िगरेशन में देख सकते हैं, यदि एक पोर्ट नॉक 1000, फिर 2000 और अंत में 3000 पोर्ट पोर्ट 2222 (मेरा SSH) के लिए किया जाता है, तो अच्छी तरह से यहां एक और कंप्यूटर पोर्ट पोर्ट को निष्पादित करेगा:
एक बार जब मैं नॉक नंबर 1 पर, No.2 पर [Enter] दबाऊं और आखिर में No.3 पर पोर्ट खुल जाएगा, तो यहां लॉग है:
जैसा कि आप देख सकते हैं, जब पोर्ट 1000 दस्तक दे रहा था, स्टेज 1 पंजीकृत किया गया था, तब 2000 चरण 2 और अंत में 3 3000 के साथ होगा, जब यह आदेश जो मैंने .conf में घोषित किया है, निष्पादित किया जाता है और यह है।
फिर बंदरगाह को बंद करने के लिए केवल 9000, 8000 और अंत में 7000 खटखटाना होगा, यहाँ लॉग है:
और अच्छी तरह से यहाँ उपयोग की व्याख्या of समाप्त होती है
जैसा कि आप देख सकते हैं, पोर्ट नॉकिंग वास्तव में दिलचस्प और उपयोगी है, क्योंकि हम बंदरगाहों के एक निश्चित संयोजन के बाद बस एक पोर्ट नहीं खोलना चाहते हैं, कमांड या ऑर्डर जो सर्वर निष्पादित करेगा वह भिन्न हो सकता है, अर्थात ... इसके बजाय एक बंदरगाह खोलना हम एक प्रक्रिया को मारने की घोषणा कर सकते हैं, अपाचे या mysql जैसी सेवा बंद कर सकते हैं, आदि ... सीमा आपकी कल्पना है।
खैर और अब तक का लेख ... मैं इस मामले में अब तक विशेषज्ञ नहीं हूं, लेकिन मैं इस दिलचस्प प्रक्रिया को आपके साथ साझा करना चाहता हूं।
अभिवादन 😀
27 टिप्पणियाँ, तुम्हारा छोड़ दो
उत्कृष्ट लेख, यह काफी दिलचस्प है और मुझे नहीं पता था कि यह अस्तित्व में है ... यह बहुत अच्छा होगा यदि आप नौसिखिया sysadmin और सामान के लिए लेख डालते रहें interesting
नमस्कार और धन्यवाद ^ _ ^
टिप्पणी के लिए धन्यवाद।
हाँ ... यह है कि FICO के DNS पर लेखों के साथ, मैं LOL को पीछे नहीं छोड़ना चाहता हूँ !!!
कुछ भी गंभीरता से नहीं। कई महीने पहले मैंने पोर्ट नॉकिंग के बारे में कुछ सुना और इसने तुरंत मेरा ध्यान खींचा, लेकिन जब से मैंने सोचा कि यह उस समय बहुत जटिल होने वाला था जब मैंने अंदर जाने का फैसला नहीं किया, कल ही मैंने रेपो से कुछ पैकेजों की समीक्षा की, जिसमें मैंने दस्तक दी। यह एक कोशिश देने का फैसला किया, और यहाँ ट्यूटोरियल है।
मुझे हमेशा तकनीकी लेख लगाना पसंद है, कुछ काफी दिलचस्प नहीं हो सकते हैं लेकिन मुझे उम्मीद है कि अन्य लोग technical होंगे
सादर
नमस्कार, मुझे पता है कि यह लेख कुछ समय के लिए आसपास रहा है, लेकिन मैं यह देखने के लिए अपनी क्वेरी लॉन्च कर रहा हूं कि क्या कोई मेरे लिए इसे हल कर सकता है।
तथ्य यह है कि मैंने स्थानीय नेटवर्क के बाहर से कनेक्ट होने पर सुरक्षा में सुधार करने की कोशिश करने के लिए अपने रास्पबेरी पर पोर्ट दस्तक को लागू किया है। इस काम के लिए मुझे मशीन को 7000-9990 राउटर निर्देशन पर बंदरगाहों की सीमा खोलनी होगी। क्या राउटर पर उन बंदरगाहों को खोलना सुरक्षित है या इसके विपरीत, जब अधिक सुरक्षा की कोशिश कर रहा है, तो क्या मैं विपरीत कर रहा हूं?
एक ग्रीटिंग और धन्यवाद.
महान, मैं वर्षों से एक sysadmin रहा हूं और उसे नहीं जानता था।
एक सवाल ... आप "दस्तक" कैसे करते हैं?
क्या आप उन बंदरगाहों के खिलाफ टेलनेट करते हैं? टेलनेट आपको क्या जवाब देता है? या वहाँ कुछ "दस्तक" लहर कमान है?
बहुत अच्छा लेख है। बहुत शानदार। बहुत बहुत धन्यवाद
मैंने टेलनेट के साथ परीक्षण किया और सब कुछ अद्भुत काम किया ... लेकिन, उत्सुकता से एक 'दस्तक' आदेश है, एक आदमी खटखटाता है तो आप 😉 देख सकते हैं
टेलनेट वास्तव में मुझे बिल्कुल भी जवाब नहीं देता है, DROP नीति के साथ iptables बनाता है यह बिल्कुल भी प्रतिक्रिया नहीं देता है और टेलनेट एक प्रतिक्रिया (जो कभी नहीं आएगी) के इंतजार में रहता है, लेकिन नॉकडॉन डेम नॉक को पहचान लेगा, भले ही वह न हो एक ने जवाब दिया 😀
आपकी टिप्पणी के लिए बहुत-बहुत धन्यवाद, यह जानकर खुशी हुई कि मेरे लेख अभी भी ^ _ ^ पसंद हैं
पसंदीदा में जोड़ा गया! : डी!
ग्रेसियस!
धन्यवाद 😀
आह सुरक्षा, उस सुखद अनुभूति की जब हम पीसी को गिराने के लिए सुरक्षित करते हैं, और फिर दिन / सप्ताह बाद किसी दूरस्थ स्थान से जुड़ने की कोशिश करते हैं, तो हम पहुंच नहीं सकते क्योंकि फ़ायरवॉल "किसी के लिए भी नहीं" मोड में है, इसे बाहर रहना कहा जाता है। sysadmins के संदर्भ में महल। 😉
यही कारण है कि यह पोस्ट इतनी उपयोगी है, नॉक के साथ आप कहीं से भी एक्सेस कर सकते हैं जो आपके स्थानीय नेटवर्क पर एक पैकेट भेज सकता है, और हमलावर ब्याज खो देते हैं जब वे देखते हैं कि ssh पोर्ट बंद हो गया है, मुझे नहीं लगता कि वे क्रूर बल दस्तक देंगे बंदरगाह खोलने के लिए।
अरे, लेख बहुत अच्छा है।
एक बात: क्या यह स्थानीय नेटवर्क के बाहर से जुड़ने का काम करता है?
मैं ऐसा इसलिए कहता हूं क्योंकि मेरे पास राउटर है जिसमें पोर्ट्स माइनस क्लोज्ड हैं जो सर्वर पर रीडायरेक्ट किए गए ssh से मेल खाते हैं।
मुझे लगता है कि इसके लिए स्थानीय नेटवर्क के बाहर से काम करने के लिए, पोर्ट नॉकिंग के अनुरूप राउटर के बंदरगाहों को खोलना होगा और इन्हें सर्वर पर रीडायरेक्ट भी करना होगा।
Mmm ...
मुझे नहीं पता कि ऐसा करना कितना सुरक्षित है।
आपको क्या लगता है?
मुझे वास्तव में यकीन नहीं है, मैंने परीक्षण नहीं किया है, लेकिन मुझे लगता है कि हां, आपको राउटर पर पोर्ट खोलना चाहिए, अन्यथा आप सर्वर को दस्तक नहीं दे पाएंगे।
राउटर पर पोर्ट खोलने के बिना परीक्षण करें, अगर यह आपके लिए काम नहीं करता है तो यह शर्म की बात है, क्योंकि मैं आपसे सहमत हूं, राउटर पर इन पोर्ट को खोलना उचित नहीं है।
दरअसल, हमें पोर्ट्स को खोलना चाहिए और उन्हें उस कंप्यूटर पर पुनर्निर्देशित करना चाहिए जिसे हम कॉल कर रहे हैं।
दया आती है।
अापका बहुत - बहुत धन्यवाद! मैं नेटवर्किंग का अध्ययन करना शुरू कर रहा हूं और ये ट्यूटोरियल मेरे लिए बहुत अच्छे हैं! ज्ञान साझा करने के लिए समय निकालने के लिए धन्यवाद
मैंने वैश्विक लिनक्स समुदाय के साथ वर्षों में बहुत कुछ सीखा है ... कुछ वर्षों से मैं भी योगदान करना चाहता हूं, यही कारण है कि मैं over लिखता हूं
बहुत-बहुत धन्यवाद, आप नहीं जानते कि यह कैसे मेरी मदद करता है, मैं एक सर्वर स्थापित करने वाला हूं और यह मेरे लिए बहुत अच्छा है।
सादर
यही तो हम हैं,, की मदद करने के लिए
बहुत बढ़िया लेख! मुझे इसका कोई ज्ञान नहीं था और यह मुझे बहुत मदद करता है (मैं केवीएम का उपयोग करने वाले रैकस्पेस का उपयोग कर रहा हूं, इसलिए यह मुझे एक दस्ताने के अनुरूप है!)। पसंदीदा में जोड़ा गया।
टिप्पणी करने के लिए धन्यवाद 🙂
हमेशा की तरह, लिनक्स हमारे लिए ट्यूटोरियल के साथ उत्कृष्ट पोस्ट लाता है जो वास्तव में कार्रवाई में उपयोगी होते हैं, साझा करने के लिए धन्यवाद! 🙂
आपकी टिप्पणी के लिए धन्यवाद 🙂
हां, हम हमेशा उस ज्ञान की प्यास को संतुष्ट करने की कोशिश करते हैं जो हमारे पाठकों के पास है
दिलचस्प है, मुझे विकल्प नहीं पता था।
सीधे मेरी चॉप लाइब्रेरी को फतह करने जाओ।
ग्रेसियस!
मेरे लिए एक खुशी 😀
सादर
अभिवादन KZKG ^ गारा !!! आपने निचोड़ लिया। सर्वर को सुरक्षित करने के लिए जबरदस्त लेख। कोई @% * & ^ विचार नहीं है कि ऐसी चीज मौजूद है। मैं इसे आजमाऊंगा। धन्यवाद
यह महान है…। ^ - ^
हैलो, क्या आप समझा सकते हैं कि इसे सेंटोस 5.x में कैसे स्थापित किया जाए?
मैंने आरपीएम डाउनलोड किया है:
http://pkgs.repoforge.org/knock/knock-0.5-3.el5.rf.x86_64.rpm
स्थापित:
rpm -i knock-0.5-3.el5.rf.x86_64.rpm
कॉन्फ़िगरेशन फ़ाइल को 15 सेकंड के समय और उस पोर्ट से कॉन्फ़िगर करें जिसका उपयोग मैं अपने vps में ssh द्वारा कनेक्ट करने के लिए करता हूं
दानव शुरू होता है:
/ usr / sbin / knd और
मैं टेलनेट करता हूं और कुछ भी बंदरगाह बंद नहीं होता है, डिफ़ॉल्ट रूप से बंदरगाह खुला है, लेकिन यह बंद नहीं होता है।
क्या मुझसे कुछ गलत हो रही है?
Mmmm, उन पोर्ट के लिए टेलनेट अनुरोधों को हमारे स्थानीय नेटवर्क के व्यवस्थापक या हमारे सेवा प्रदाता द्वारा सीखा जा सकता है, नहीं? यह बाहरी लोगों को ब्लॉक करेगा, लेकिन उन्हें नहीं, इसलिए यदि वे हमारे पोर्ट को सक्रिय करना चाहते हैं तो वे ऐसा कर सकते हैं क्योंकि वे देखते हैं हम जो अनुरोध करते हैं, mmm कहते हैं कि यह सुरक्षा करता है लेकिन 100% नहीं
यह हो सकता है, लेकिन मुझे नहीं लगता कि वे कल्पना करने जा रहे हैं कि कुछ टेलनेट एक्स एक्शन को अंजाम देता है। जब तक वे नहीं देखते कि समान टेलनेट पैटर्न का पालन किया जाता है।
दिलचस्प लेख, मेरा एक सवाल है। मुझे लगता है कि कॉन्फ़िगरेशन फ़ाइल छवि में कोई त्रुटि है, क्योंकि यदि आप अच्छी तरह से विश्लेषण करते हैं, तो कमांड की दोनों पंक्तियों में आप Iptables में ACCEPT का उपयोग कर रहे हैं। मुझे लगता है कि एक को ACCEPT होना चाहिए और दूसरे को REJECT होना चाहिए।
अन्यथा, उत्कृष्ट पहल। अपना ज्ञान दूसरों को समझाने के लिए समय निकालने के लिए बहुत-बहुत धन्यवाद।
सादर