सुरक्षा इन दिनों हर क्षेत्र में मुख्य चिंता है। डेटाबेस सुरक्षा भी किसी भी ग्राहक के लिए एक बड़ी चिंता है। SQL सर्वर डेटाबेस में संग्रहीत आपके सभी डेटा को सुरक्षित करने के लिए डिज़ाइन किया गया है लेकिन कभी-कभी हम कॉन्फ़िगरेशन के सही सेट को लागू करने में विफल होते हैं और हमारे सिस्टम में एक छेद छोड़ देते हैं। हैकर्स और अनधिकृत एलियंस इन खामियों का इस्तेमाल आपके सिस्टम में घुसने के लिए कर सकते हैं। आपके डेटा से छेड़छाड़ की जा सकती है या खराब किया जा सकता है, आपकी व्यावसायिक गतिविधियों को रोकने के लिए रुकावट पैदा करने के लिए आपके सिस्टम संसाधनों को हटाया जा सकता है, आपके ग्राहकों का डेटा प्रतिस्पर्धियों के सामने आ सकता है, आदि।
SQL सर्वर लॉकडाउन या हार्डनिंग
आपके डेटाबेस वातावरण को सुरक्षित करने की पूरी प्रक्रिया को डेटाबेस \ SQL सर्वर लॉकडाउन के रूप में जाना जाता है। मैं विभिन्न मापदंडों और कॉन्फ़िगरेशन विवरणों का वर्णन करूंगा जिन्हें आप अपने डेटाबेस वातावरण को सुरक्षित करने के लिए लागू कर सकते हैं।
केवल आवश्यक घटक स्थापित करें
आइए SQL सर्वर इंस्टॉलेशन के साथ लॉकडाउन अभ्यास शुरू करें। SQL सर्वर विभिन्न घटक और सुविधाएँ प्रदान करता है जो DBA विभिन्न आवश्यकताओं के लिए चुनते हैं। इनमें से कुछ घटक और विशेषताएं नीचे दी गई हैं:
- डेटाबेस इंजन
- रिपोर्टिंग सेवाएं
- एकीकरण सेवाएं
- विश्लेषण सेवा इंजन
- अधिसूचना सेवाएं
- दस्तावेज़ीकरण और नमूने (नमूना डेटाबेस और कोड)
- पूर्ण-पाठ खोज
- अन्य सुविधाएं जैसे प्रतिकृति, मशीन सीखने की सेवाएं, डेटा गुणवत्ता सेवाएं इत्यादि।
केवल आवश्यक सुविधाओं को स्थापित करना एक अच्छा अभ्यास है क्योंकि ऐसा करने से आप सतही हमले की संभावनाओं को कम या सीमित कर रहे हैं। इसके अतिरिक्त, आपके पास कम सिस्टम संसाधन उपयोग होगा।
नवीनतम अपडेट इंस्टॉल करें
अपने सिस्टम को समय पर अपडेट करना सुनिश्चित करें। यदि कोई नई भेद्यता पाई जाती है, तो उसे आपके उत्पाद विक्रेताओं द्वारा सुरक्षा बुलेटिन में पोस्ट किया जाता है।
मैं केवल SQL सर्वर पैच को अपडेट करने के बारे में बात नहीं कर रहा हूं, लेकिन आपके सिस्टम पर ऑपरेटिंग सिस्टम से शुरू होकर आपके मशीन पर इंस्टॉल किए गए किसी भी अन्य एप्लिकेशन तक जो कुछ भी चल रहा है। किसी बाहरी खतरे या हमले को रोकने के लिए अपने सॉफ़्टवेयर को अद्यतित रखने के लिए हमेशा पैच लागू करें।
Windows प्रमाणीकरण मोड का उपयोग करें
यदि आपके पास SQL सर्वर प्रमाणीकरण मोड का उपयोग करने के लिए कोई निर्भरता नहीं है, तो उपयोगकर्ता कनेक्शन के लिए हमेशा Windows प्रमाणीकरण मोड चुनें। यह अधिक सुरक्षित है और प्रत्येक लॉगिन प्रयास के दौरान विंडोज सक्रिय निर्देशिका के साथ विंडोज लॉगिन को प्रमाणित करता है। SQL सर्वर में दो प्रकार के प्रमाणीकरण मोड होते हैं।
- विंडोज प्रमाणीकरण
- मिश्रित मोड (विंडोज़ + एसक्यूएल सर्वर)
Windows प्रमाणीकरण मोड: यह SQL सर्वर के लिए एक डिफ़ॉल्ट प्रमाणीकरण मोड है। Windows प्रमाणीकरण मोड SQL सर्वर तक पहुँच प्रदान करते समय स्थानीय खातों, सक्रिय निर्देशिका उपयोगकर्ता खातों और समूहों का लाभ उठाता है। इस मोड में, आप, एक डेटाबेस व्यवस्थापक के रूप में, डोमेन या स्थानीय सर्वर उपयोगकर्ताओं को एक अलग SQL सर्वर खाता बनाए और प्रबंधित किए बिना डेटाबेस सर्वर तक पहुँच प्रदान कर सकते हैं।
मिश्रित मोड: मिश्रित प्रमाणीकरण मोड में दोनों विकल्प हैं। आप Windows-आधारित प्रमाणीकरण के साथ-साथ SQL सर्वर लॉगिन-आधारित प्रमाणीकरण का उपयोग कर सकते हैं। SQL सर्वर प्रमाणीकरण तंत्र उन खातों पर आधारित है जो पासवर्ड नीति सहित SQL सर्वर के अंदर प्रबंधित होते हैं। यदि आपके पास लीगेसी अनुप्रयोगों का समर्थन करने के लिए कुछ निर्भरताएं हैं, तो मिश्रित प्रमाणीकरण की आवश्यकता हो सकती है।
सर्वर प्रमाणीकरण मोड को चुनने या बदलने के लिए आप नीचे दिए गए चरणों का पालन कर सकते हैं:
- SQL सर्वर प्रबंधन स्टूडियो लॉन्च करें और अपने लक्ष्य SQL सर्वर इंस्टेंस से कनेक्ट करें।
- SQL सर्वर प्रबंधन स्टूडियो में, SQL सर्वर आवृत्ति पर राइट-क्लिक करें और फिर गुण क्लिक करें ।
- सुरक्षाक्लिक करें बाईं ओर के फलक में पृष्ठ, आप सर्वर प्रमाणीकरण के अंतर्गत दाईं ओर के फलक में दोनों प्रमाणीकरण विकल्प देख सकते हैं खंड। यदि आप अपना इंस्टेंस सुरक्षित करना चाहते हैं, तो सुनिश्चित करें कि आप Windows प्रमाणीकरण मोड में स्विच करें। आपको बस विंडोज प्रमाणीकरण मोड के रेडियो बटन पर क्लिक करना होगा और फिर ठीक . पर क्लिक करना होगा परिवर्तन लागू करने के लिए।
- SQL सर्वर प्रबंधन स्टूडियो संवाद बॉक्स में, ठीक click क्लिक करें SQL सर्वर को पुनरारंभ करने की आवश्यकता को स्वीकार करने के लिए।
विंडोज प्रमाणीकरण मोड एक अधिक सुरक्षित विकल्प है। हालाँकि, यदि मिश्रित-मोड प्रमाणीकरण की आवश्यकता है, तो आपको SQL सर्वर लॉगिन के लिए जटिल पासवर्ड प्रदान करना चाहिए और बेहतर सुरक्षा के लिए सुरक्षा लॉकआउट नीतियां लागू करनी चाहिए। यदि आप मिश्रित प्रमाणीकरण मोड का उपयोग कर रहे हैं तो SQL सर्वर sa खाते को अक्षम करने की भी अनुशंसा की जाती है। मैं इस पर अगले भाग में चर्चा करूंगा।
सा खाते का नाम बदलें/अक्षम करें
लॉग इन sa SQL सर्वर को स्थापित करते समय डिफ़ॉल्ट रूप से बनाया जाता है, इसलिए यह हमलावरों द्वारा इस खाते को हैक करने या नियंत्रण करने के संभावित कारणों में से एक हो सकता है। याद रखें कि इस लॉगिन में सिस्टम प्रशासन विशेषाधिकार हैं, इसलिए इस खाते तक पहुंच रखने वाला कोई भी व्यक्ति आपके डेटाबेस और SQL सर्वर इंस्टेंस को प्रबंधित कर सकता है।
sa खाते को निष्क्रिय करने के लिए आपको नीचे दी गई कमांड चलानी चाहिए।
--Disable sa login
USE MASTER
GO
ALTER LOGIN sa DISABLE;
GO
आप इसका निष्पादन नीचे दिए गए चित्र में देख सकते हैं।
sa खाते का नाम बदलने या अक्षम करने से पहले, सत्यापित करें कि व्यवस्थापकीय विशेषाधिकार वाला कोई अन्य खाता SQL सर्वर आवृत्ति पर मौजूद है।
डिफ़ॉल्ट SQL सर्वर पोर्ट बदलें
हम सभी जानते हैं कि SQL सर्वर किसी भी क्लाइंट अनुरोध और संचार के लिए पोर्ट 1433 का उपयोग करता है। चूंकि यह कॉन्फ़िगरेशन सार्वजनिक डोमेन में है, इसलिए हैकर्स इस कॉन्फ़िगरेशन को आपके SQL सर्वर इंस्टेंस से कनेक्ट करने के लिए लक्षित कर सकते हैं।
आप निम्न चरणों का पालन करके SQL सर्वर पोर्ट को बदल सकते हैं।
- अपनी लक्षित मशीन में लॉगिन करें जहां SQL सर्वर स्थापित है।
- सर्वर कॉन्फ़िगरेशन प्रबंधक लॉन्च करें उपकरण।
- SQL सर्वर नेटवर्क कॉन्फ़िगरेशन का विस्तार करें बाईं ओर के फलक से नोड और प्रोटोकॉल . चुनें SQL सर्वर इंस्टेंस को कॉन्फ़िगर करने के लिए।
- दाएं फलक में, प्रोटोकॉल नाम पर राइट-क्लिक करें TCP/IP और चुनें गुण ।
- टीसीपी/आईपी गुण . में संवाद बॉक्स में, आईपी पते का चयन करें टैब। सर्वर को सौंपे गए प्रत्येक आईपी पते के लिए एक संबंधित प्रविष्टि है।
- दोनों के लिए मान साफ़ करें टीसीपी डायनेमिक पोर्ट और टीसीपी पोर्ट IPAll . के अंतर्गत IP पतों को छोड़कर प्रत्येक IP पते के लिए ।
- आईपीऑल . में प्रत्येक उदाहरण के लिए अनुभाग में, एक नया पोर्ट दर्ज करें जिस पर आप SQL सर्वर को सुनना चाहते हैं।
- लागू करें पर क्लिक करें और SQL सर्वर सेवाओं को पुनरारंभ करें।
SQL ब्राउज़र सेवा अक्षम करें
SQL सर्वर ब्राउज़र सेवाएँ SQL सर्वर आवृत्ति स्थापना के साथ स्थापित हैं। यह सेवा आपके कनेक्शन को उस पोर्ट पर पुनर्निर्देशित करती है जिस पर SQL सर्वर चल रहा है। यदि यह सेवा चल रही है, तो हमलावरों के लिए यह एक कदम आसान हो जाएगा क्योंकि यह उन्हें बिना पोर्ट नंबर पास किए SQL सर्वर से कनेक्ट करने की अनुमति देता है। इसलिए, पोर्ट बदलने के बाद इस सेवा को अक्षम करना बेहतर है।
xp_cmdshell विकल्प अक्षम करें
SQL सर्वर SQL सर्वर से ऑपरेटिंग सिस्टम कमांड को चलाने और निष्पादित करने के लिए एक विस्तारित संग्रहीत कार्यविधि xp_cmdshell प्रदान करता है। किसी भी सुरक्षा जोखिम को रोकने के लिए इसे अक्षम किया जाना चाहिए। आप इस विस्तारित संग्रहीत कार्यविधि को सर्वर स्तर कॉन्फ़िगरेशन में या sp_configure T-SQL संग्रहीत कार्यविधि चलाकर पा सकते हैं। इस कॉन्फ़िगरेशन को अक्षम करने के लिए आप नीचे दिए गए T-SQL कथन चला सकते हैं।
-- Enable advanced options to display configure xp_cmdshell
sp_configure 'show advanced options', '1'
RECONFIGURE
-- Disable xp_cmdshell
sp_configure 'xp_cmdshell', '0'
RECONFIGURE
GO
डेटा एन्क्रिप्शन या मास्किंग का उपयोग करें
SQL सर्वर आपके डेटा की सुरक्षा के लिए विभिन्न एन्क्रिप्शन तरीके प्रदान करता है। यदि आपके उपयोगकर्ता सार्वजनिक नेटवर्क पर डेटा एक्सेस करते हैं तो एन्क्रिप्शन की अनुशंसा की जाती है। SQL सर्वर के पास आपकी व्यावसायिक आवश्यकता को ध्यान में रखते हुए एन्क्रिप्शन के सही सेट को लागू करने के लिए कई विकल्प हैं। यह एन्क्रिप्शन या डेटा मास्किंग विकल्पों की सूची है जिनका उपयोग हम अपने डेटा को सुरक्षित करने के लिए कर सकते हैं:
- TDE (पारदर्शी डेटा एन्क्रिप्शन)
- एन्क्रिप्शन कुंजियों का उपयोग करके डेटा सुरक्षित करें
- हमेशा एन्क्रिप्ट करें
- डायनामिक डेटा मास्किंग
SQL सर्वर से BUILTIN\व्यवस्थापकों को निकालें
डेटाबेस इंस्टेंस तक अवांछित पहुंच को प्रतिबंधित करने के लिए हमें हमेशा SQL सर्वर इंस्टेंस से BUILTIN\Administrators खाते को हटा देना चाहिए। उपयोगकर्ताओं को व्यक्तिगत रूप से SQL सर्वर तक पहुंच प्रदान करने का सबसे अच्छा तरीका है। आप Windows समूह में लोगों का एक समूह भी जोड़ सकते हैं और उन्हें SQL सर्वर तक पहुँच प्रदान कर सकते हैं। आप इस लॉगिन को SQL सर्वर इंस्टेंस से ड्रॉप करने के लिए नीचे दिए गए T-SQL स्टेटमेंट का उपयोग कर सकते हैं।
आप SQL सर्वर प्रबंधन स्टूडियो के माध्यम से GUI का उपयोग करके इस लॉगिन को छोड़ भी सकते हैं। आपको बस अपने SQL सर्वर इंस्टेंस से कनेक्ट करने की आवश्यकता है, फिर इंस्टेंस स्तर सुरक्षा फ़ोल्डर का विस्तार करें। यहां आप इस लॉगिन को SQL सर्वर इंस्टेंस से हटाने के लिए राइट-क्लिक कर सकते हैं।
--DROP Login
DROP LOGIN [BUILTIN\Administrators]
मजबूत पासवर्ड और पर्याप्त उपयोगकर्ता विशेषाधिकार
प्रत्येक उपयोगकर्ता को हमेशा पर्याप्त अधिकार प्रदान करें, डेटाबेस तक पहुँचने में उनकी भूमिका को ध्यान में रखते हुए, उन्हें न्यूनतम होना चाहिए। साथ ही हमें किसी भी लॉगिन या समान लॉगिन और पासवर्ड के लिए कभी भी कमजोर पासवर्ड का उपयोग नहीं करना चाहिए। किसी भी SQL लॉगिन के लिए हमेशा पासवर्ड नीति का उपयोग करें।
SQL सर्वर लॉगिन ऑडिटिंग कॉन्फ़िगर करें
SQL सर्वर ने सभी विफल और सफल लॉगिन के बारे में विवरण प्राप्त करने के लिए एक ऑडिटिंग सुविधा प्रदान की है। यह एक बहुत ही उपयोगी कॉन्फ़िगरेशन है यदि आप ऑडिट करना चाहते हैं कि कौन कनेक्ट कर रहा है या आपके डेटाबेस से कनेक्ट करने का प्रयास कर रहा है। हम SQL सर्वर अलर्ट को कॉन्फ़िगर कर सकते हैं जो SQL सर्वर में प्रत्येक विफल और सफल लॉगिन पर मेल सूचना भेजेगा। लॉगिन ऑडिटिंग सक्षम करने के लिए आप नीचे दिए गए चरणों का पालन कर सकते हैं।
- SQL सर्वर प्रबंधन स्टूडियो में अपने लक्ष्य SQL सर्वर आवृत्ति से कनेक्ट करें
- SQL सर्वर इंस्टेंस नाम पर राइट-क्लिक करें और फिर गुण . क्लिक करें ।
- सुरक्षाक्लिक करें बाईं ओर के फलक में टैब। आपको लॉगिन ऑडिटिंग . मिलेगी दाईं ओर के फलक में जैसा कि इस लेख के पहले स्क्रीनशॉट में दिखाया गया था
- इच्छित विकल्प चुनें और सर्वर गुण . को बंद करें पेज
- इस परिवर्तन को लागू करने के लिए SQL सर्वर सेवा को पुनरारंभ करें
अप्रयुक्त SQL सर्वर लॉगिन निकालें
हमेशा अपने SQL सर्वर लॉगिन पर नज़र रखें। आपको उन सभी लॉगिन खातों को हटाने में चौकस रहना चाहिए जो अब उपयोग में नहीं हैं। मुझे पता है कि इसे मैन्युअल रूप से प्रबंधित करना मुश्किल है, लेकिन आप सभी SQL सर्वर लॉगिन और उनके विशेषाधिकारों के बारे में मेल भेजने के लिए एक मेल अलर्ट कॉन्फ़िगर कर सकते हैं।
निष्कर्ष
मैंने कुछ संभावित कॉन्फ़िगरेशन के बारे में बताया है जिन्हें हम बाहरी खतरों से अपने डेटाबेस को सुरक्षित करने के लिए लागू कर सकते हैं। पर्यावरण के लिए डेटाबेस सख्त नीतियों को तैनात करते समय उपरोक्त सभी बिंदुओं पर विचार करें।
कृपया इस लेख को साझा करें और टिप्पणी अनुभाग में अपनी प्रतिक्रिया दें ताकि हम सुधार कर सकें।