कुछ Linux वितरणों पर, MySQL स्थापित करने के बाद पोर्ट 3306 खुला रहता है। यह आलेख एक अप्रबंधित सर्वर पर पोर्ट 3306 तक पहुंच को प्रतिबंधित या अवरुद्ध करने के लिए दो विधियों का वर्णन करता है।
इस लेख की जानकारी केवल अप्रबंधित उत्पादों पर लागू होती है। नीचे वर्णित प्रक्रियाओं का पालन करने के लिए आपके पास सर्वर तक रूट पहुंच होनी चाहिए।विधि #1:MySQL नेटवर्किंग अक्षम करें
यदि आपको किसी बाहरी कंप्यूटर से MySQL को एक्सेस करने की आवश्यकता नहीं है, तो आप MySQL नेटवर्किंग को अक्षम कर सकते हैं।
अपने Linux वितरण के लिए नीचे दी गई उपयुक्त प्रक्रिया का पालन करें।
यहां तक कि MySQL नेटवर्किंग अक्षम होने के बावजूद, यदि आपको आवश्यकता हो तो आप अभी भी दूरस्थ कंप्यूटर से MySQL तक सुरक्षित रूप से पहुंच सकते हैं। ऐसा करने के लिए, आप एक SSH सुरंग को कॉन्फ़िगर कर सकते हैं। यह कैसे करें के बारे में जानकारी के लिए, कृपया इस लेख को देखें।CentOS और Fedora
CentOS और Fedora पर MySQL नेटवर्किंग को अक्षम करने के लिए, इन चरणों का पालन करें:
- SSH का उपयोग करके अपने सर्वर में लॉग इन करें।
- कमांड प्रॉम्प्ट पर, /etc/my.cnf खोलने के लिए अपने पसंदीदा टेक्स्ट एडिटर का उपयोग करें फ़ाइल।
- निम्न पंक्ति को my.cnf . में खोजें फ़ाइल:
#skip-networking
अगर यह लाइन my.cnf . में नहीं है फ़ाइल, इसे जोड़ें। -
# . हटाएं लाइन की शुरुआत में साइन इन करें ताकि लाइन निम्न की तरह दिखे:
skip-networking
- अपने परिवर्तनों को /etc/my.cnf में सहेजें फ़ाइल, और फिर टेक्स्ट एडिटर से बाहर निकलें।
-
MySQL सेवा को पुनरारंभ करने के लिए निम्न आदेश टाइप करें:
service mysqld restart
पोर्ट 3306 अब सर्वर पर बंद है।
डेबियन और उबंटू
डिफ़ॉल्ट रूप से, डेबियन और उबंटू पर MySQL को केवल लोकलहोस्ट . का उपयोग करने के लिए कॉन्फ़िगर किया गया है नेटवर्किंग के लिए इंटरफेस (आईपी एड्रेस 127.0.0.1)। इसका मतलब है कि पोर्ट 3306 बाहरी कनेक्शन के लिए बंद है। यह पुष्टि करने के लिए कि यह आपके सर्वर पर कॉन्फ़िगरेशन है, इन चरणों का पालन करें:
- SSH का उपयोग करके अपने सर्वर में लॉग इन करें।
- कमांड प्रॉम्प्ट पर, /etc/mysql/my.cnf खोलने के लिए अपने पसंदीदा टेक्स्ट एडिटर का उपयोग करें फ़ाइल।
- MySQL का पता लगाएं बाइंड-एड्रेस my.cnf . में लाइन फ़ाइल। यह निम्न जैसा दिखना चाहिए:
bind-address = 127.0.0.1
अगर MySQL बाइंड-एड्रेस लाइन 0.0.0.0 . पर सेट है (या बिल्कुल भी पता नहीं), तो सभी इंटरफेस पर कनेक्शन खुले हैं। - यदि आपने /etc/my.cnf . में कोई परिवर्तन किया है फ़ाइल, उन्हें सहेजें और फिर टेक्स्ट एडिटर से बाहर निकलें।
-
MySQL सेवा को पुनरारंभ करने के लिए, निम्न आदेश टाइप करें:
service mysql restart
पोर्ट 3306 अब सर्वर पर बंद है।
विधि #2:फ़ायरवॉल नियम कॉन्फ़िगर करें
आप फ़ायरवॉल नियम बनाने के लिए iptables का उपयोग कर सकते हैं जो पोर्ट 3306 तक पहुंच को प्रतिबंधित करते हैं। इस पद्धति का लाभ यह है कि आप आईपी पते या अन्य मानदंडों के आधार पर पोर्ट 3306 तक पहुंच को चुनिंदा रूप से प्रदान या अस्वीकार कर सकते हैं।
उदाहरण के लिए, पोर्ट 3306 पर बाहरी एक्सेस को पूरी तरह से ब्लॉक करने के लिए, निम्न कमांड टाइप करें:
iptables -A INPUT -p tcp --dport 3306 -j DROP
इसी तरह, एक विशिष्ट आईपी पते तक पहुंच प्रदान करने और अन्य सभी को ब्लॉक करने के लिए, निम्न आदेश टाइप करें। xxx.xxx.xxx.xxx को बदलें उस आईपी पते के साथ जिसके लिए आप पहुंच प्रदान करना चाहते हैं:
iptables -A INPUT -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT iptables -A INPUT -p tcp --dport 3306 -j DROP
आप INPUT . में नियम डालकर MySQL को अतिरिक्त IP पतों तक पहुंच प्रदान कर सकते हैं DROP . से पहले श्रृंखला नियम। उदाहरण के लिए:
iptables -I INPUT 1 -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT