إذا كنت تعمل مع قاعدة بيانات MySQL ، فأنت على دراية بالفعل بالتحديات التي تواجهها في الحفاظ على أمان قاعدة البيانات. من محاولات اختراق قاعدة البيانات باستخدام حقن SQL إلى هجمات القوة الغاشمة ، من الصعب الحفاظ على أمان بياناتك ، خاصة إذا كنت تعمل مع قاعدة بيانات عن بُعد.
هناك طرق لتهيئة خادم SQL للسماح بالاتصالات عن بُعد ، ولكن عليك أن تكون حذرًا ، لأن السماح بالاتصالات عن بُعد على خادم MySQL يمكن أن يجعل قاعدة بياناتك هدفًا سهلاً للمتسللين. إذا كنت تريد السماح باتصالات آمنة عن بُعد بقاعدة بيانات MySQL ، فإليك ما تحتاج إلى معرفته.
قبل ابدأ
قبل إجراء أي تغييرات على قاعدة بيانات MySQL ، من المهم أن تقوم بنسخ قاعدة البيانات احتياطيًا، خاصةً إذا كنت تعمل على خادم إنتاج (خادم في الاستخدام النشط). قد تؤدي أي تغييرات تجريها على قاعدة البيانات الخاصة بك ، أو الخادم الذي يستضيفها ، إلى فقد البيانات بشكل خطير إذا حدث خطأ ما.
قد تجد أيضًا أن التغييرات التي تطرأ على اتصالات الخادم قد تمنعك من الوصول إليها بعد ذلك. إذا حدث هذا ، فقد تحتاج إلى استشارة مسؤول الخادم للحصول على مزيد من الدعم. فكرة جيدة هي تجربة أي تغييرات على خادم MySQL يتم تشغيله محليًا للتحقق مما إذا كانت تغييراتك تعمل قبل تجربتها عن بُعد.
من المحتمل أيضًا أنك إذا أجريت تغييرات على خادم بعيد ، سنحتاج إلى طريقة آمنة للاتصال وإجراء التغييرات. غالبًا ما يكون SSH (Secure Shell)هو أفضل طريقة للقيام بذلك ، حيث يتيح لك الاتصال بخادمك البعيد. يمكنك أيضًا استخدام SSH للاتصال بالخوادم الموجودة على شبكتك المحلية ، مثل تلك الخوادم مستضاف على Raspberry Pi.
سيرشدك هذا الدليل خلال الخطوات إلى تكوين MySQL للسماح بالاتصالات عن بُعد ، ولكن عليك التأكد من أن لديك وصولاً مباشرًا أو بعيدًا إلى الخادم الذي يستضيف خادم MySQL أولاً.
لنفترض أنه ليس لديك وصول عن بعد إلى الخادم الخاص بك عبر SSH (على سبيل المثال). في هذه الحالة ، لن تكون قادرًا على تكوين قاعدة بيانات MySQL للسماح بالاتصالات عن بُعد مباشرة إلا إذا كان حساب mySQL الجذر الخاص بك يسمح بالفعل بالاتصالات عن بُعد. لذلك ، سوف تحتاج إلى إنشاء هذا الاتصال أولاً قبل أن تتمكن من المتابعة.
تحرير ملف تكوين MySQL
الخطوة الأولى في تكوين MySQL للسماح لـ remote هو تحرير ملف تكوين MySQL الخاص بك. بحلول هذه المرحلة ، سيفترض هذا الدليل أنك قمت بالفعل بالاتصال بالخادم أو الكمبيوتر الشخصي أو جهاز Mac الذي يستضيف قاعدة بيانات mySQL عن بُعد ولديك إمكانية الوصول إلى وحدة التحكم.
بدلاً من ذلك ، يمكنك تكوين خادم MySQL محلي باستخدام محطة طرفية مفتوحة على نظام التشغيل Mac أو Linux أو محرر نصوص على Windows.
المواقع المشار إليها أعلاه هي المواقع الافتراضية لملفات تكوين MySQL. إذا لم تنجح هذه الأوامر ، فستحتاج إلى البحث عن الملفات ذات الصلة (my.cnfأو mysqld.cnfأو my.ini) يدويًا لتحديد موقع مسار الملف ذي الصلة.
تعيين نطاق IP لعنوان الربط الآمن
- بعد ذلك ، يمكن لمستخدمي Linux و Mac إعادة تشغيل MySQL بكتابة mysql.server stop && mysql.server startأو إعادة تشغيل mysql.server. قد تحتاج إلى رفع الأمر باستخدام sudo (على سبيل المثال إعادة تشغيل sudo mysql.server) واستخدام المسار المناسب لملف mysql.server (على سبيل المثال ، / usr /local/bin/mysql.server).
إذا لم تكن متأكدًا من اسم الخدمة الصحيح على Windows ، فاكتب net startللعثور عليه. إذا لم تتمكن من إعادة تحميل التكوين الخاص بك ، فأعد تشغيل الخادم وأعد تحميل MySQL يدويًا (إذا لزم الأمر) بدلاً من ذلك.
تكوين جدران الحماية الخاصة بك
في هذه المرحلة ، يجب أن تسمح قاعدة بيانات MySQL بالاتصالات عن بُعد من الأجهزة باستخدام عنوان IP الذي عينته كقيمة عنوان الربطفي ملف تكوين MySQL (أو من جميع الأجهزة إذا قمت بتعيين هذه القيمة على 0.0.0.0بدلاً من ذلك). ومع ذلك ، ستظل الاتصالات محظورة بواسطة جدار حماية الجهاز أو الشبكة.
تستخدم معظم الخوادم وأجهزة الكمبيوتر جدارًا ناريًا لحظر الاتصالات ما لم يتم منح الوصول إلى منفذ معين. ستختلف خطوات تكوين هذا ، اعتمادًا على ما إذا كنت تقوم بتشغيل MySQL على نظام التشغيل Windows أو Linux. يتم تعطيل الجدران النارية لنظام التشغيل Mac افتراضيًا ، لذا لن تحتاج إلى إكمال أي خطوات إضافية هنا.
تكوين جدران حماية Linux
تستخدم العديد من خوادم Linux iptablesكأداة جدار الحماية الافتراضية. يمكنك تكوينه باتباع الخطوات أدناه.
إذا لم تكن iptables هي أداة جدار الحماية الافتراضية لتوزيع Linux لديك ، فستحتاج إلى الرجوع إلى دليل المستخدم الخاص بالتوزيع للحصول على مزيد من المعلومات. إذا كانت بعض الحزم (مثل netfilter-persistent) غير متوفرة ، فاستخدم أداة مستودع برامج التوزيع لتثبيتها (على سبيل المثال ، sudo apt install netfilter-persistent).
تكوين جدران حماية Windows
إذا كنت تستخدم جهاز كمبيوتر شخصيًا يعمل بنظام Windows أو خادمًا لاستضافة قاعدة البيانات الخاصة بك ، فيمكنك تكوين جدار الحماية الخاص بك باستخدام الخطوات التالية:
إذا كنت تواجه مشكلة في الاتصال ، كرر هذه الخطوات أعلاه ، مع التأكد من إنشاء قاعدة صادرةجديدة في إعدادات الجدار الناري باستخدام نفس التفاصيل (المنفذ 3306 ، إلخ). قد تحتاج أيضًا إلى تكوين موجه الشبكة المحلي لديك إلى افتح المنافذ المسدودة الضرورية للسماح بالاتصالات الواردة والصادرة بقاعدة البيانات الخاصة بك.
الاتصال بخادم بعيد باستخدام MySQL
بعد تكوين قاعدة بيانات MySQL للسماح بالاتصالات عن بُعد ، ستحتاج فعليًا إلى إنشاء اتصال بها. يمكنك القيام بذلك باستخدام الأمر mysql(mysql.exeعلى Windows) من محطة طرفية أو نافذة PowerShell.
إذا كنت تقوم بتشغيل Windows ، سوف تحتاج إلى التأكد من ذلك تم تثبيت MySQL محليًا قبل أن تبدأ. يمكن لمستخدمي Mac تثبيت MySQL باستخدام البيرة من المحطة (brew install mysql) ، بينما يمكن لمستخدمي Linux استخدام مستودع التطبيقات المحلي (مثل sudo apt install mysql) لتثبيت الحزم الضرورية.
الاتصال بـ MySQL على Linux أو Mac
الاتصال بـ MySQL على Windows
إذا لم يفلح ذلك ، فاتصل بالخادم أو الكمبيوتر الذي يستضيف خادم MySQL باستخدام SSH (أو ادخل إليه مباشرةً) باستخدام هذه الخطوات وباستخدام الوسيطة -h localhost. يمكنك بعد ذلك إنشاء حساب مستخدم مناسب باتباع الخطوات التالية.
السماح للمستخدم البعيد بالوصول إلى قاعدة بيانات MySQL
عند هذه النقطة ، يجب أن تكون قادر على الاتصال بخادم MySQL الخاص بك عن بعد باستخدام حساب المستخدم الجذر لخادمك أو حساب مستخدم آخر بامتيازات مرتفعة. نظرًا لأن هذا المستوى من الوصول غير آمن ، فقد تفضل إنشاء حساب أكثر تقييدًا للوصول إلى قاعدة بيانات MySQL.
سيكون لهذا الحساب وصول محدود إلى خادم MySQL ، مما يسمح له بالتفاعل مع قواعد البيانات المحددة فقط. لن يكون قادرًا على إجراء تغييرات أكثر جدية ، مثل الوصول إلى بيانات قاعدة البيانات الأخرى ، وإنشاء حسابات مستخدمين جديدة ، وما إلى ذلك.
ستحتاج إلى امتلاك القدرة على تسجيل الدخول إلى خادم MySQL عن بُعد. إذا لم تتمكن من استخدام حساب الجذر الخاص بك عن بُعد ، فستحتاج إلى الوصول إلى shell الخاص بالخادم باستخدام الأمر mysqlعبر اتصال SSH عن بُعد أو عن طريق الوصول مباشرةً إلى جهاز الكمبيوتر أو الخادم الذي يستضيف الخادم.
مع منح الوصول ، استخدم الخطوات الواردة في القسم أعلاه للاتصال بخادمك عن بُعد باستخدام حسابك الجديد (على سبيل المثال ، mysql -u username -h XXXX: XXXX -p).
تأمين بيانات قاعدة البيانات
سواء كنت تعمل مع MySQL أو أي نوع آخر من SQL قاعدة البيانات ، من المهم الحفاظ على اتصالاتك آمنة للحفاظ على أمان بياناتك. وأفضل طريقة للقيام بذلك هي إرسال توليد مفاتيح SSH للوصول عن بعد إلى خادمك ، بدلاً من الاعتماد على كلمات مرور قديمة (ويسهل تخمينها).
إذا كنت قلقًا بشأن فقدان البيانات ، فيمكنك بسهولة قم بعمل نسخة احتياطية من قاعدة البيانات الخاصة بك عبر الإنترنت. يتم تشغيل معظم قواعد البيانات باستخدام خوادم Linux — يمكنك أتمتة النسخ الاحتياطي لملفات Linux بسهولة. إذا كنت تقوم بتشغيل MySQL على Windows ، فيمكنك إعداد نظام النسخ الاحتياطي التلقائي لنظام التشغيل Windows مشابه ، مما يسمح لك باستعادة بياناتك في حالة الطوارئ.