PostgreSQL एक प्रसिद्ध रिलेशनल डेटाबेस प्रबंधन प्रणाली है जो डेवलपर्स और उपयोगकर्ताओं के लिए एक सुरक्षित वातावरण समेटे हुए है। लेकिन चूंकि दूरस्थ कार्य हर व्यवसाय के नए सामान्य का एक हिस्सा बना हुआ है, आईटी पेशेवरों को अपने सर्वर की सुरक्षा और पहुंच को प्रबंधित करने के लिए नई चुनौतियों का सामना करना पड़ता है।
PostgreSQL डेटाबेस तक पहुँचने के लिए गढ़ सर्वर का उपयोग करने से सुरक्षा की एक अतिरिक्त परत जुड़ जाती है। लेकिन चूंकि बुर्जियन सर्वरों को फायरवॉल के रूप में कार्य करना चाहिए, इसलिए निजी नेटवर्क एक्सपोजर के स्तर को कम करने के लिए एक सिक्योर शेल (एसएसएच) सुरंग का उपयोग करना आवश्यक है।
कई PostgreSQL डेटाबेस प्रबंधन उपकरण इस कनेक्शन प्रक्रिया को स्वचालित कर सकते हैं, लेकिन शेल के साथ बातचीत करने के लिए SSH सुरंग के मैन्युअल निर्माण की आवश्यकता होती है। प्रक्रिया और सावधानियों को समझने से निश्चित रूप से आपकी कंपनी को सुरक्षित डेटाबेस बनाए रखने में मदद मिल सकती है।
SSH सिक्योर शेल टनल बनाने और उपयोग करने के लाभ
SSH टनलिंग का उपयोग नेटवर्क संचार में तीस से अधिक वर्षों से किया जा रहा है, और यह आज की कंप्यूटिंग आवश्यकताओं के लिए उतना ही प्रासंगिक है।
PostgreSQL सहित सभी प्रकार के सर्वरों पर डेटाबेस एक्सेस को प्रबंधित करने के लिए डेवलपर्स लगातार SSH सिक्योर शेल प्रोटोकॉल की ओर रुख करते हैं। सुरक्षित रिमोट एक्सेस आज महत्वपूर्ण है, खासकर जब 50% कार्यस्थल डिवाइस मोबाइल हैं (मोबाइल डिवाइस साइबर हमले के लिए सबसे कमजोर हैं)। इससे यह और भी महत्वपूर्ण हो जाता है कि संगठन अपने नेटवर्क पर उपकरणों और उपयोगकर्ता की पहुंच को दूरस्थ रूप से प्रबंधित कर सकते हैं।
बड़ी मात्रा में डेटा को संभालने वाली कंपनियों को कर्मचारियों को प्रमुख डेटाबेस तक पहुंच प्रदान करने और डेटाबेस सुरक्षा के लिए एक सक्रिय दृष्टिकोण अपनाने की आवश्यकता होती है। दूरस्थ सर्वर से उपयोगकर्ताओं को सुरक्षित पहुँच प्रदान करने में SSH प्रोटोकॉल का उपयोग करना नंबर एक है। यह स्वचालित कार्यक्रमों को प्रमाणित करना भी आसान बनाता है। इसलिए, व्यवसाय अपने दैनिक कार्यों को अधिक कुशलता से चला सकते हैं।
चूंकि सुरक्षा मानक अंततः मोबाइल उपकरणों और दूरस्थ सर्वरों तक पहुंच रहे हैं, इसलिए हम एन्क्रिप्शन और प्रमाणीकरण प्रोटोकॉल में भी सुधार देखने की उम्मीद कर सकते हैं। लचीलापन और इंटरऑपरेबिलिटी IoT सुरक्षा का भविष्य है। फिर भी, SSH प्रोटोकॉल निकट भविष्य के लिए एक मानक हिस्सा बने रहेंगे।
SSH कैसे काम करता है?
SSH प्रोटोकॉल आपको एक सुरक्षित वातावरण में इंटरनेट पर अपने सर्वर तक पहुंच को दूरस्थ रूप से नियंत्रित करने की अनुमति देता है। न केवल प्रारंभिक कनेक्शन अत्यधिक सुरक्षित है, बल्कि दोनों पक्षों के बीच संपूर्ण संचार सत्र भी है। उपयोगकर्ता किसी खुले SSH सिक्योर शेल टनल या अन्य SSH सिक्योर शेल क्लाइंट का उपयोग करके दूरस्थ सर्वर में लॉग इन कर सकते हैं।
सर्वर एक खुले पोर्ट कनेक्शन की तलाश में है। एक बार यह एक मिल जाने के बाद, सर्वर को कनेक्शन को प्रमाणित करना होगा। यह निर्धारित करता है कि संचार और फ़ाइल स्थानांतरण के लिए एक सुरक्षित वातावरण स्थापित किया गया है या नहीं। यदि कनेक्शन क्लाइंट द्वारा शुरू किया गया है, तो क्लाइंट को अपने क्रेडेंशियल प्रदान करने के अलावा सर्वर को प्रमाणित करना होगा।
जब दोनों पक्षों को प्रमाणित किया जाता है और कनेक्शन स्थापित किया जाता है, तो SSH एन्क्रिप्शन प्रोटोकॉल सर्वर और क्लाइंट के बीच सभी डेटा ट्रांसमिशन की निरंतर गोपनीयता सुनिश्चित करता है।
तीन प्रकार की एन्क्रिप्शन SSH सुरंगें सुरक्षित कनेक्शन के लिए उपयोग की जाती हैं:
- सममित एन्क्रिप्शन
- असममित एन्क्रिप्शन
- हैश.
सममित एन्क्रिप्शन संचार को सुरक्षित रखने के लिए कनेक्शन की अवधि के लिए उपयोग किया जाता है। क्लाइंट और सर्वर दोनों डेटा को एन्क्रिप्ट और डिक्रिप्ट करने के लिए एक ही गुप्त कुंजी साझा करते हैं। यह एल्गोरिथम सुरक्षित है क्योंकि वास्तविक कुंजी का वास्तव में कभी भी आदान-प्रदान नहीं किया जाता है। बल्कि, दोनों पक्ष सार्वजनिक जानकारी साझा करते हैं जिससे वे स्वतंत्र रूप से कुंजी प्राप्त कर सकते हैं।
असममित एन्क्रिप्शन , इसके विपरीत, एक सार्वजनिक और एक निजी कुंजी दोनों की आवश्यकता होती है। इसका उपयोग सर्वर को प्रमाणित करने के लिए टनलिंग प्रक्रिया की शुरुआत में किया जाता है। सर्वर उस डेटा को एन्क्रिप्ट करने के लिए एक सार्वजनिक कुंजी का उपयोग करेगा, और क्लाइंट को इसे एक निजी कुंजी के साथ प्रमाणित करना होगा। चूंकि एक विशेष निजी कुंजी ही एकमात्र ऐसी चीज है जो सार्वजनिक कुंजी के साथ एन्क्रिप्ट किए गए संदेशों को डिक्रिप्ट कर सकती है, इससे कनेक्शन चाहने वाले पक्षों को प्रमाणित करने में मदद मिलती है।
क्रिप्टोग्राफ़िक हैशिंग डेटा के सेट के लिए एक अद्वितीय हस्ताक्षर बनाता है। यह SSH कनेक्शन में मददगार है क्योंकि यह सर्वर को यह जानने की अनुमति देता है कि MAC स्वीकार्य है या नहीं। एक मिलान हैश केवल उसी डेटा के टुकड़े द्वारा बनाया जा सकता है जिसने मूल बनाया है। इस प्रकार, हैशिंग का उपयोग इनपुट की जांच करने के लिए किया जा सकता है ताकि यह सुनिश्चित हो सके कि यह सही है।
एसएसएच प्रमाणीकरण
एन्क्रिप्शन स्थापित करने के बाद, एक प्रमाणीकरण प्रक्रिया होती है। प्रमाणीकरण का सबसे सरल रूप पासवर्ड का उपयोग कर रहा है। हालांकि यह क्लाइंट के लिए एक आसान तरीका है, यह दुर्भावनापूर्ण स्वचालित स्क्रिप्ट के लिए भी बहुत आसान है। यहां तक कि एक एन्क्रिप्टेड पासवर्ड में भी सीमित जटिलता होती है। यह असुरक्षित बनाता है। पासवर्ड का उपयोग करने के बजाय असममित कुंजियों का उपयोग करना एक सामान्य उपाय है।
एक बार सार्वजनिक कुंजी स्थापित हो जाने के बाद, क्लाइंट को सार्वजनिक कुंजी के साथ जाने वाली निजी कुंजी प्रदान करनी होगी। इस संयोजन के बिना, प्रमाणीकरण विफल हो जाता है। यह सुनिश्चित करने में मदद करता है कि एन्क्रिप्टेड डेटा को घुसपैठिए द्वारा डिक्रिप्ट नहीं किया जा सकता है।
सेटअप के दौरान संपूर्ण प्रमाणीकरण प्रक्रिया पर बातचीत की जाती है, और केवल पूरक कुंजी वाले पक्ष ही संवाद कर सकते हैं। यह प्रक्रिया साइन-इन प्रक्रिया को भी त्वरित बनाती है। तो, यह स्वचालित प्रक्रियाओं के लिए इष्टतम है।
निम्नलिखित कारकों के आधार पर प्रमाणीकरण प्रक्रिया अलग-अलग होगी:
- जिस प्रकार का डेटाबेस सुरक्षित किया जा रहा है
- सर्वर का संबंध और स्थान
- सर्वर के भीतर उपयोगकर्ता की अनुमतियां।
SSH प्रोटोकॉल का उपयोग करने के बारे में सबसे अच्छी बात यह है कि पूरी प्रक्रिया एन्क्रिप्टेड और अत्यधिक सुरक्षित है।
SSH टनल सेटअप करें
यदि आप शेल का उपयोग करके डेटाबेस के साथ बातचीत करना चाहते हैं, तो आपको पता होना चाहिए कि SSH सुरंग कैसे बनाई जाती है। एक स्वचालित SSH प्रबंधन एप्लिकेशन का उपयोग करना सुविधाजनक हो सकता है, कई डेटाबेस व्यवस्थापक स्क्रैच से डेटाबेस प्रबंधन टूल सेट करना पसंद करते हैं क्योंकि शेल के साथ इंटरैक्ट करना डिबग, ऑडिट और अधिकतम नियंत्रण रखने का सबसे अच्छा तरीका है।
SSH सुरंग का उपयोग करना डेटा खोने या हैक होने के डर के बिना सत्र खोलने का एक बहुत ही सुरक्षित तरीका है (जब तक आप अपने सत्र बंद करते हैं और अपने सर्वर की निगरानी करते हैं)।
एसएसएच सुरंग बनाने का तरीका यहां दिया गया है:
बैशन सर्वर सत्यापित करें
SSH सिक्योर शेल टनल बनाने के लिए, आपको गढ़ सर्वर के होस्टनाम और PostgreSQL डेटाबेस के साथ-साथ गढ़ सर्वर पर अपना उपयोगकर्ता नाम जानना होगा। कमांड चलाएँ:
$ ssh <username>@<bastion_server>
फिर उपयुक्त विंडो के पॉप अप होने पर अपना पासवर्ड दर्ज करें।
एसएसएच सुरंग खोलें
इस आदेश का उपयोग करके सुरंग खोलें:
$ ssh -L localhost:port_number:<sql_server>:port_number<username>@<bastion_server>
कनेक्शन बनाए रखने के लिए विंडो को खुला छोड़ दें। दो-पोर्ट नंबर क्रमशः आपके कंप्यूटर और रिमोट सर्वर के लिए हैं।
अपना कनेक्शन सत्यापित करें
यह सुनिश्चित करने के लिए कि आपकी सुरंग खुली है और PostgreSQL सर्वर से जुड़ी है, निम्न कमांड का उपयोग करें:
$ psql --port=X --host=localhost -c "SELECT * FROM pg_catalog.pg_tables"
देखें कि क्या टेबल वापस आ गए हैं। यदि वे हैं, तो आपका कनेक्शन सफल और सुरक्षित था।
कुछ वैकल्पिक कदम गढ़ होस्ट से SQL सर्वर तक आपकी पहुंच की दक्षता बढ़ा सकते हैं। हालांकि ध्यान रखें कि हर समय स्वचालित पहुंच एक सुरक्षित रणनीति नहीं है। जब भी आप सत्र को पूरी तरह से निजी रखने के लिए SSH सुरंग खोलना चाहते हैं तो हमेशा लॉग इन करना बुद्धिमानी है।
उपयोगकर्ता प्रोफ़ाइल बनाएं
हर बार पासवर्ड दर्ज करने की आवश्यकता से बचने के लिए, आप गढ़ सर्वर पर एक प्रोफ़ाइल बना सकते हैं। ऐसा करने के लिए, आपको निम्न कमांड का उपयोग करके अपनी SSH कुंजी को सर्वर से जोड़ना होगा:
$ ssh-copy-id <username>@<bastion_server>
फिर, जब भी आप लॉग इन करना चाहते हैं तो आपकी कुंजी का स्वचालित रूप से उपयोग किया जाएगा। हालांकि, इसके सकारात्मक और नकारात्मक दोनों पहलू हैं। यह अधिक सुविधाजनक है, लेकिन आपको मशीन को मैलवेयर या चोरी से बचाने के लिए अन्य सुरक्षा प्रोटोकॉल सुनिश्चित करना चाहिए। यदि कोई अन्य व्यक्ति आपकी मशीन तक पहुंच प्राप्त करता है, तो हो सकता है कि वे आपके सर्वर में स्वचालित रूप से लॉग इन कर सकें क्योंकि आपकी कुंजी सहेज ली गई है।
अपनी SSH कॉन्फ़िग फ़ाइल अपडेट करें
उन सर्वरों के सटीक नाम और पोर्ट नंबर याद रखना परिष्कृत हो सकता है जिनसे आप कनेक्ट करना चाहते हैं। इसलिए यह SSH सिक्योर शेल टनल प्रोटोकॉल का हिस्सा है।
आप होस्टनामों पर नज़र रख रहे हैं और अपने उपयोगकर्ता नाम से स्वयं को प्रमाणित कर रहे हैं। यह एसएसएच कनेक्शन को पहले स्थान पर सुरक्षित बनाने का एक हिस्सा है। लेकिन प्रक्रिया को पूरी तरह से स्वचालित किए बिना पहुंच को तेज और आसान बनाने के लिए अपनी प्रक्रिया को कॉन्फ़िगर करने का एक तरीका है। आप अपनी SSH कॉन्फ़िगरेशन फ़ाइल में एक प्रविष्टि जोड़ सकते हैं:
मेज़बान गढ़-उत्पादन
- होस्टनाम
- उपयोगकर्ता <उपयोगकर्ता नाम>
- लोकलफॉरवर्ड लोकलहोस्ट:port_number
:port_number
फिर, कमांड चलाएँ:
$ ssh bastion-production
अब आप केवल एक चरण में जुड़ सकते हैं।
SSH गोपनीयता युक्तियाँ
डेटाबेस को सुरक्षित रखना अनिवार्य है। डेटा दुनिया में सबसे मूल्यवान मुद्रा है, और रैंसमवेयर और अन्य साइबर अपराध के उदय के साथ, ग्राहक डेटा की सुरक्षा में विफल होना एक अस्वीकार्य चूक है।
पहली जगह में बुर्जियन सर्वर का उपयोग करने का पूरा बिंदु आपके डेटाबेस की सुरक्षा करना है। हालांकि, कुछ गलत कदम आपके सर्वर को किसी के भी आने के लिए खुला छोड़ देंगे।
PostgreSQL सर्वर से कनेक्ट करने के लिए SSH सुरंगों का उपयोग करते समय सुरक्षित रहने के लिए यहां कुछ युक्तियां दी गई हैं:
दूरस्थ कर्मचारियों को उचित रूप से प्रमाणित करें
यदि आपका संगठन दूरस्थ रूप से कनेक्ट करने के लिए SSH का उपयोग करता है, तो सभी को डिजिटल स्वच्छता की मूल बातें पता होनी चाहिए। कुंजी-आधारित प्रमाणीकरण का उपयोग करें जो एक मजबूत पासवर्ड द्वारा सुरक्षित है। प्रत्येक लॉगिन के लिए दो-चरणीय सत्यापन भी शुरू करने के लिए एक अच्छी जगह है, साथ ही यह सुनिश्चित करना कि सार्वजनिक SSH कुंजियाँ प्रामाणिक हैं।
SSH लॉगिन को केवल उन लोगों तक सीमित करें जिन्हें उनकी आवश्यकता है, और ऐसे विशेषाधिकार सेट करें जो उपयोगकर्ताओं के कार्यों को प्रतिबिंबित करें।
पोर्ट अग्रेषण अक्षम करें
केवल आधे डेवलपर ही पोर्ट फ़ॉरवर्डिंग रोकथाम प्रक्रियाओं को लागू करते हैं। पोर्ट अग्रेषण आपको अस्वीकृत उपयोगकर्ताओं और सर्वरों के साथ एन्क्रिप्टेड संचार के लिए खुला छोड़ सकता है। इस प्रकार, हैकर्स सीधे आपके डेटाबेस में प्रवेश कर सकते हैं। अपने सभी कनेक्शनों को बुर्जियन सर्वर के माध्यम से फ़िल्टर करें और कनेक्शन की अनुमति देने से पहले पोर्ट नॉकिंग का उपयोग करने पर विचार करें।
सुनिश्चित करें कि आप नवीनतम सॉफ़्टवेयर चला रहे हैं और आपके SSH कनेक्शन नवीनतम अनुपालन मानकों के अनुरूप हैं।
अक्सर ऑडिट करें
नियमित मैनुअल ऑडिट के अलावा निरंतर निगरानी उपकरण का उपयोग करें। अपने कनेक्शन को केवल उन्हीं तक सीमित करें जो आवश्यक हैं, और अपनी कॉन्फ़िगरेशन सेटिंग्स में किसी भी बदलाव की जांच करना सुनिश्चित करें जो पहले से स्वीकृत नहीं थे।
कौन लॉग इन कर रहा है और वे किस तरह की गतिविधि में लगे हुए हैं, इस पर नज़र रखकर, आप हमले की सतह को सीमित कर सकते हैं और शुरू से ही कमजोरियों को इंगित करना आसान बना सकते हैं।
निष्कर्ष
एन्क्रिप्टेड SSH सुरंगों का उपयोग दूरस्थ सर्वर से PostgreSQL डेटाबेस तक पहुँचने का एक सुरक्षित तरीका है। प्रक्रिया कनेक्टेड सत्रों की अवधि के लिए एन्क्रिप्शन बनाए रखती है। हालांकि स्वचालित SSH प्रोग्राम आवर्ती कार्यों और अन्य प्रशासनिक प्रणाली प्रक्रियाओं के लिए उपयोगी होते हैं, SSH सुरंग को मैन्युअल रूप से खोलना फायदेमंद हो सकता है। उस स्थिति में, आप स्वचालित संस्करण या क्लाइंट का उपयोग करने के बजाय सभी ट्रैफ़िक और संचार को आसानी से पहचान सकते हैं।
यदि आप PostgreSQL या किसी SQL डेटाबेस प्रबंधन प्रणाली का उपयोग करते हैं, तो आपको यह जानना होगा कि SSH टनलिंग का उपयोग कैसे करें। यह सिस्टम प्रक्रियाओं और डेटा स्थानांतरण की निगरानी और प्रबंधन के लिए महत्वपूर्ण हो सकता है।
SSH प्रोटोकॉल अत्यधिक सुरक्षित कनेक्शन बनाते हैं, और अतिरिक्त सावधानियों का पालन करने से आपके सर्वर कनेक्शन की अखंडता को बनाए रखने में मदद मिलेगी।