मैं दूरस्थ रूप से MySQL से कैसे जुड़ सकता हूं और फिर भी इसे सुरक्षित रख सकता हूं?


5

जैसा कि आप जानते हैं, MySQL पोर्ट 3306 को खुला रखना असुरक्षित है। हालाँकि, मैं phpMyAdmin के बजाय एक अच्छे MySQL प्रशासन कार्यक्रम का उपयोग करना चाहूंगा, जिसे खोलने के लिए 3306 पोर्ट की आवश्यकता होती है।

निश्चित रूप से मैं केवल अपने आईपी पते को आईपीएफडब्ल्यू का उपयोग करके 3306 पोर्ट से कनेक्ट करने की अनुमति दे सकता हूं। समस्या यह है कि मेरा आईपी पता हर 24 घंटे में बदलता है, इसलिए मुझे हर आईपी पते के लिए एक नया नियम जोड़ना होगा।

क्या MySQL को सुरक्षित रखने और अभी भी रिमोट कनेक्शन का उपयोग करने का कोई बेहतर तरीका नहीं है?

जवाबों:


9

हाँ, SSH पोर्ट अग्रेषण के साथ।

अपने स्थानीय मशीन पर, कमांड जारी करें

ssh -L 3306:127.0.0.1:3306 username@mysqlhost.com

और फिर आप अपने स्थानीय मशीन पर 3306 पोर्ट करने के लिए अपने स्थानीय MySQL एडमिन टूल को कनेक्ट कर सकते हैं। हालांकि आपको यह विचार करना होगा कि MySQL के लिए कनेक्शन के 127.0.0.1रूप में अच्छी तरह से आ रहा है , इसलिए आपके MySQL उपयोगकर्ता के लिए एक्सेस अधिकार इसके अनुसार सेट किए गए हैं।

यदि आप स्थानीय मशीन पर MySQL सर्वर का उपयोग करने के लिए होते हैं, तो पोर्ट 3306 पहले से ही ले लिया जाएगा, लेकिन आप बस अग्रेषण ( 13306:127.0.0.1:3306) के लिए एक अलग पोर्ट का उपयोग कर सकते हैं और फिर अपने व्यवस्थापक टूल को उस भिन्न पोर्ट पर इंगित कर सकते हैं।

(अधिक जानकारी के साथ man ssh)


अपनी टिप्पणियों के उत्तर के रूप में कुछ और स्पष्टीकरण संपादित करें :

  1. आप इस आदेश का उपयोग अपनी स्थानीय मशीन पर करेंगे, जहां आप आमतौर पर काम करते हैं, बस इससे पहले कि आप अपने डेटाबेस पर कुछ प्रशासनिक कार्य करना चाहते हैं। एसएसएच के माध्यम से एक सुरंग बनाने के लिए क्या करना है जो कि आपके स्थानीय मशीन पर एक पोर्ट पर जाने वाले सभी ट्रैफ़िक को दूसरी मशीन पर दूसरे पोर्ट पर ले जाए।
  2. इस मामले में, सुरंग MySQL सर्वर पर समाप्त होती है, जिसे आप सीधे SSH के माध्यम से संपर्क करते हैं। भाग username@mysqlhost.comसिर्फ एक प्लेसहोल्डर है, इसे अपने शेल खाते के उपयोगकर्ता नाम और आईपी एड्रेस या मैसिक सर्वर के होस्ट नाम से बदलें। अपने स्थानीय मशीन से, localhostहालांकि यह निश्चित रूप से नहीं होगा । यह हिस्सा आपके MySQL उपयोगकर्ता नाम के बारे में बिल्कुल नहीं है, क्योंकि SSH MySQL के बारे में नहीं जानता है।
  3. यदि आप अपने डेटाबेस पर रूट के रूप में काम करते हैं, तो आप होस्ट पर 3306 पोर्ट करने के लिए अपने MySQL एडमिन टूल को कनेक्ट करेंगे 127.0.0.1और यूज़रनेम का उपयोग करेंगे root। यद्यपि आप एक दूरस्थ होस्ट से काम करते हैं, मैसिक सर्वर के लिए कनेक्शन से आ रहा है localhost, इसलिए पहुँच अनुमतियाँ तदनुसार निर्धारित की जानी चाहिए।
  4. SSH पोर्ट फ़ॉरवर्डिंग / टनलिंग एक अत्यंत शक्तिशाली उपकरण है। आपको इसके बारे में और अधिक निश्चित रूप से पढ़ना चाहिए।

इसलिए, जब मैं आपके द्वारा दी गई कमांड का उपयोग करूंगा, तो मैं अपने mysql सर्वर से दूरस्थ रूप से कनेक्ट करने में सक्षम हो जाऊंगा, लेकिन फिर, वेबसाइट और अन्य सेवाओं जैसे स्थानीय कनेक्शन तब तक उपलब्ध नहीं होंगे जब तक मैं पोर्ट को आगे नहीं बढ़ाऊंगा? मेरे लिए एक सुरंग की तरह लगता है।
चक्रवात

और वास्तव में इसका क्या मतलब है: username@mysqlhost.comयह root@localhostएक mysql rootउपयोगकर्ता के लिए होना चाहिए ?
चक्रवात

@ चक्रवात: मेरा संपादन देखें।
स्वेन

देखो कि मैंने क्या जोड़ा है: pastebin.com/VHkyhTir और मैं अभी भी दूरस्थ रूप से कनेक्ट नहीं कर सकता।
चक्रवात

यह दुर्भाग्य से काम नहीं ...
चक्रवात
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.