MySQL के बाइंड-एड्रेस को 0.0.0.0 पर सेट करना कितना बुरा है?


35

मैं एक दूरस्थ सर्वर को एक MySQL उदाहरण का उपयोग करने की अनुमति देने की कोशिश कर रहा हूं जो वर्तमान में एक वेब ऐप के साथ लिनक्स सर्वर साझा करता है। प्रलेखन के अनुसार यह एकमात्र तरीका संभव होगा (जब तक कि मैं सही ढंग से समझ नहीं रहा हूं) यह है कि अगर बाइंड-एड्रेस निर्देश 0.0.0.0 पर सेट किया गया है , जिसके परिणामस्वरूप MySQL किसी भी आईपी से एक्सेस की अनुमति देता है जो एक वैध उपयोगकर्ता का उत्पादन कर सकता है।

तो, दो सवाल:

  1. यह सुरक्षा के लिए कितना हानिकारक होगा?
  2. क्या MySQL के साथ स्थानीय और दूरस्थ बातचीत करने की अनुमति देने के लिए एक बेहतर तरीका है?

जवाबों:


36

मुझे लगता है कि आप बाइंड-एड्रेस सेटिंग को थोड़ा गलत समझ रहे हैं । ये स्थानीय पते हैं जो MySQL कनेक्शन के लिए सुनेंगे। डिफ़ॉल्ट 0.0.0.0 है जो सभी इंटरफेस है। यह सेटिंग प्रतिबंधित नहीं करती है कि कौन सा IP सर्वर तक पहुंच सकता है, जब तक कि आप केवल 127.0.0.1 को स्थानीयहोस्ट के लिए निर्दिष्ट न करें।

यदि आपको विशिष्ट IP पते से कुछ उपयोगकर्ताओं को प्रतिबंधित करने की आवश्यकता है , तो इस तरह से बनाएं / अनुदान उपयोगकर्ता का उपयोग करेंCREATE USER 'bobdole'@'192.168.10.221';


+1 लेकिन सिर्फ एक ध्यान दें कि डिफ़ॉल्ट श्रवण पता MySQL स्थापित होने के आधार पर भिन्न होता है।
जॉन गार्डनियर्स

धन्यवाद डौग, मुझे लगता है कि इस मामले में डिफ़ॉल्ट मेरा स्थानीय होस्ट था, लेकिन यह जानना अच्छा है कि किसी विशेष डेटाबेस के उपयोगकर्ता अभी भी आईपी द्वारा प्रतिबंधित हैं।
जोनाथनटक्स

@jonathanatx MySQL डिफ़ॉल्ट बाइंड-एड्रेस (5.6 और जहाँ तक मुझे पता है) में है 0.0.0.0। हालाँकि, मुझे लगता है कि कई स्‍थानों पर स्‍थानीय रूप से केवल बंधन ही सबसे बेहतर विकल्‍प है। यदि आप किसी को इसके माध्यम से चलना नहीं चाहते हैं तो दरवाजा न खोलें।
एरोब्रॉन

1

ए। यह बुरा है। भले ही आप प्रत्येक डेटाबेस पर आईपी द्वारा उपयोगकर्ता की पहुंच को प्रतिबंधित कर सकते थे, मुझे लगता है कि इसके कनेक्शन सभी स्थानीय स्तर पर सुरक्षित हैं। अपने सर्वर पर मैं MySQL को केवल स्थानीय कनेक्शन स्वीकार करने की अनुमति देता हूं, 127.0.0.1 डिफ़ॉल्ट कॉन्फ़िगरेशन के रूप में है। डेटाबेस को दूरस्थ रूप से एक्सेस करने के लिए, आपको डेटाबेस से कनेक्ट होने से पहले एक ssh सुरंग बनाना होगा और फिर स्थानीय रूप से कनेक्ट करना होगा। यदि आप php के साथ कोडिंग कर रहे हैं तो ऐसा करना बहुत आसान है। यदि आप एक डेस्कटॉप एप्लिकेशन का उपयोग कर रहे हैं तो इसे लिनक्स पर करना आसान है (ssh सुरंग देखें), विंडोज पर मैं आमतौर पर मेरे लिए सुरंग बनाने के लिए पुट्टी जैसे कार्यक्रम का उपयोग करता हूं।


7
यह बहुत पागल है। ऐसा करने का मानक तरीका उपयोगकर्ताओं को बनाना है जो केवल कुछ होस्टनाम या आईपी से एक्सेस किए जा सकते हैं। हर वेब सर्वर को एक डेटाबेस में SSH टनल बनाने के लिए मजबूर करना बहुत अधिक काम है।
TheLQ

3
आपका वेब सर्वर और डेटाबेस सर्वर हमेशा एक ही उपकरण नहीं हैं। इंटरनेट से कनेक्शन न आने दें, निश्चित रूप से .. लेकिन MySQL नेटवर्क एक्सेस के साथ आर्किटेक्ट समाधान के सुरक्षित तरीके हैं।
शेन झुंझलाना

1
एक छोटे सेटअप (एक डीबी, एक www) के लिए आप ssh टनलिंग कर सकते हैं। एक वास्तविक सेटअप के लिए आपके वीपीएन और फायरवॉल आपकी सुरक्षा करेंगे, इसलिए आप रिमोट एक्सेस की अनुमति देने के लिए 0.0.0.0 तक खुलेंगे।
सोनिया हैमिल्टन

2
सभी के लिए यह सोचकर कि SSH सुरंग विचार पागल है, विचार करें कि MySQL ट्रैफ़िक का थोक स्पष्ट है। यदि किसी कारण से आपको एक अविश्वसनीय नेटवर्क (यानी इंटरनेट) से जुड़ना है, तो SSH पर विचार करें या किसी वीपीएन पर करें। अगर आप यह देखना चाहते हैं कि मैं किस बारे में बात कर रहा हूं, तो विंडसरक या कुछ अन्य पैकेट स्निफर को आग लगा दें।
ब्रैड

2
@ ब्रैड MySQL एन्क्रिप्शन का समर्थन करता है इसलिए यह सही नहीं है।
मार्टी मार्कोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.