- كيفية تمكين الوصول عن بعد إلى MySQL/MariaDB بشكل آمن؟
- الخطوات العامة ومبادئ الأمن
- لماذا لا ينبغي عرض MySQL مباشرة على الإنترنت؟
- خطوة بخطوة: تهيئة MySQL للوصول عن بُعد (تعليمات عملية)
- مزيد من الحماية - حلول متقدمة وموصى بها (2025)
- نصائح عملية لاختيار موقع مركز البيانات وتكوينه بناءً على التطبيق
- أمثلة مقترحة لتكوين ملف my.cnf لاستخدامات متنوعة
- قائمة التحقق الأمني النهائية قبل تفعيل الوصول عن بُعد
- الخلاصة والتوصية النهائية
- الأسئلة الشائعة
كيفية تمكين الوصول عن بعد إلى MySQL/MariaDB بشكل آمن؟
في هذا الدليل المُحدَّث (2025)، نستعرض طرقًا عملية وآمنة لتمكين الوصول عن بُعد إلى خوادم MySQL وMariaDB. الهدف هو توفير قائمة مرجعية عملية لمسؤولي المواقع، وفرق DevOps، وفرق قواعد البيانات، والمطورين، لضمان السماح بالوصول فقط للمستخدمين والتطبيقات المُصرَّح لها، دون المساس بالأمان.
الخطوات العامة ومبادئ الأمن
ملخص الخطوات:
- التصميم المعماري: أبداً لا تضع قاعدة البيانات مباشرة على الإنترنت العام إلا عند الضرورة.
- استخدم شبكة خاصة (VPC/VLAN) أو VPN أو نفق SSH.
- تقييد الوصول بناءً على عناوين IP وإنشاء مستخدمين باستخدام الحد الأدنى للدرجة.
- تشفير TLS/SSL لحركة مرور قاعدة البيانات واستخدام المصادقة القوية (*caching_sha2_password* / *X.509*).
- قم بتمكين التسجيل وحدود المعدل، واستخدم جدران الحماية وأنظمة كشف التسلل (IDS/IPS).
- قم بمراجعة الأداء وزمن الاستجابة، واختر موقع مركز البيانات المناسب بناءً على التطبيق.
لماذا لا ينبغي عرض MySQL مباشرة على الإنترنت؟
تُعدّ قواعد البيانات هدفًا جذابًا للمخترقين، لاحتوائها على بيانات حساسة ومعلومات اعتماد. إنّ فتح المنفذ 3306 للإنترنت دون قيود أو تشفير يزيد من مخاطر تسريب البيانات، وهجمات القوة الغاشمة، وهجمات الحرمان من الخدمة الموزعة (DDoS).
خطوة بخطوة: تهيئة MySQL للوصول عن بُعد (تعليمات عملية)
1) قم بتحرير ملف التكوين
ملفات التكوين الشائعة:
- MySQL (Debian/Ubuntu):
/etc/mysql/mysql.conf.d/mysqld.cnf - MariaDB:
/etc/mysql/mariadb.conf.d/50-server.cnf
بشكل افتراضي، قد يكون السطر عنوان الربط ل 127.0.0.1 تم ضبط الإعدادات. لقبول الاتصالات من عنوان IP محدد أو من جميع العناوين:
مُستَحسَن: السماح بعناوين IP محددة:
bind-address = 192.0.2.10لا يُنصح به إلا على شبكة خاصة:
bind-address = 0.0.0.0بعد التغيير:
systemctl restart mysql
2) إنشاء مستخدم آمن مع قيود
ليس من المستخدم أبدًا جذر لا تستخدم هذه الطريقة للاتصالات عن بُعد. أمثلة على الأوامر:
mysql -u root -p
CREATE USER 'appuser'@'203.0.113.45' IDENTIFIED WITH caching_sha2_password BY 'StrongP@ssw0rd!';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'appuser'@'203.0.113.45';
FLUSH PRIVILEGES;نقاط مهمة:
- من الآمن استخدام عنوان IP محدد ('203.0.113.45') بدلاً من '%'.
- عزيمة الحد الأدنى من الصلاحيات (أقل الامتيازات).
- استخدم عناوين خاصة للاتصالات من داخل الشبكة الخاصة (على سبيل المثال 10.xxx).
3) تفعيل بروتوكول SSL/TLS لـ MySQL
مثال سريع لإنشاء شهادات CA باستخدام OpenSSL:
openssl genrsa 4096 -out ca-key.pem
openssl req -new -x509 -nodes -days 3650 -key ca-key.pem -out ca.pem -subj "/CN=MyDB-CA"
openssl genrsa 4096 -out server-key.pem
openssl req -new -key server-key.pem -out server-req.csr -subj "/CN=db.example.com"
openssl x509 -req -in server-req.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -days 3650
openssl genrsa 4096 -out client-key.pem
openssl req -new -key client-key.pem -out client-req.csr -subj "/CN=dbclient"
openssl x509 -req -in client-req.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -days 3650وضع الشهادات في my.cnf:
[mysqld]
ssl-ca=/etc/mysql/ssl/ca.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pemبعد إعادة التشغيل، ستكون هناك إمكانية لإلزام المستخدمين باستخدام الشهادات:
ALTER USER 'appuser'@'203.0.113.45' REQUIRE X509;
-- یا فقط TLS بدون client cert:
ALTER USER 'appuser'@'203.0.113.45' REQUIRE SSL;اتصال آمن من جانب العميل:
mysql -u appuser -p -h db.example.com --ssl-mode=REQUIRED --ssl-ca=ca.pem
4) استخدام نفق SSH
مناسب للمسؤولين وللوصول المحدود عند عدم توفر بروتوكول TLS. على جهاز العميل:
ssh -fN -L 3306:127.0.0.1:3306 [email protected]تتيح لك هذه الطريقة الاتصال بالمنفذ المحلي 3306، والذي يتم توجيهه عبر نفق إلى الخادم البعيد.
5) إعدادات جدار الحماية
مثال باستخدام جدار الحماية ufw (السماح فقط لعناوين IP المحددة):
ufw allow from 203.0.113.45 to any port 3306 proto tcpمع جدار الحماية:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.45" port protocol="tcp" port="3306" accept'
firewall-cmd --reloadفحص الميناء:
ss -tlnp | grep 3306
telnet db.example.com 3306
مزيد من الحماية - حلول متقدمة وموصى بها (2025)
باستخدام شبكة خاصة، وشبكة افتراضية خاصة (VPC)، وشبكة افتراضية خاصة (VPN).
بدلاً من فتح منفذ قاعدة البيانات للإنترنت، استخدم شبكة خاصة بين التطبيق وقاعدة البيانات. إذا كنت تستخدم خدمتنا، يمكنك استخدام شبكة خاصة وبروتوكول BGP/VRF لتأمين الاتصال.
بالنسبة للمستخدمين الموزعين، يوصى باستخدام VPN أو IPsec بحيث تنتقل حركة مرور قاعدة البيانات فقط عبر قنوات مشفرة.
مضيف الحصن وانعدام الثقة
يُعدّ نشر خادم وسيط مزود بمصادقة ثنائية (MFA) وتسجيل كامل للجلسات نهجًا أكثر أمانًا من فتح المنافذ مباشرةً. ويعني نموذج "انعدام الثقة" ضرورة مصادقة كل اتصال، والسماح فقط بموارد محددة.
المصادقة والخوارزميات
- MySQL 8: استخدام
كلمة مرور التخزين المؤقت SHA2بدلاً منكلمة مرور mysql الأصليةإنه أكثر أماناً. - في الحالات الحساسة، استخدم شهادات عميل X.509 مُستَحسَن.
- تُعد إدارة كلمات المرور باستخدام مدير الأسرار أو الخزنة (مثل HashiCorp Vault أو AWS Secrets Manager) أفضل من وضع كلمات المرور في الملفات أو التعليمات البرمجية.
الحماية من الهجمات والقيود
- حافظ على انخفاض قيمة max_connect_errors و
تخطي حل الاسمقم بتمكين هذا الخيار لتجنب التأخيرات المستندة إلى نظام أسماء النطاقات (DNS). - استخدام fail2ban مع فلتر mysql-auth خاص لحظر عناوين IP الضارة.
- الحد الأقصى لمعدل الاتصالات وإعداد مهلة الاتصال المناسبة.
المراقبة والتسجيل
يُعد تمكين سجلات التدقيق والسجلات العامة وسجلات الاستعلام البطيء واستخدام أدوات مثل Prometheus + Grafana أو Percona Monitoring أمرًا ضروريًا لتحديد الأنماط الضارة ومشكلات الأداء.
نصائح عملية لاختيار موقع مركز البيانات وتكوينه بناءً على التطبيق
إرشادات بناءً على نوع الطلب:
- التداول (الفوركس/العملات الرقمية): يُعدّ تقليل زمن الاستجابة (RTT) إلى خادم البورصة/المتداول أمرًا بالغ الأهمية؛ لذا يُنصح باختيار موقع قريب من البورصة. توفر خدمتنا هذه الميزة من خلال أكثر من 85 موقعًا.
- الألعاب: تتطلب قواعد بيانات الألعاب زمن استجابة منخفضًا؛ لذا يُعدّ تحسين توجيه بروتوكول BGP وشبكة ذات زمن استجابة منخفض أمرًا بالغ الأهمية. كما تُعدّ خوادم VPS للألعاب وخوادم الحماية من هجمات DDoS مفيدة.
- الذكاء الاصطناعي/الرسم: بالنسبة لأحمال الإدخال/الإخراج والحوسبة العالية، فإن دمج خوادم وحدة معالجة الرسومات وخوادم قواعد البيانات في نفس منطقة الشبكة الخاصة يقلل من زمن الوصول.
- المواقع الإلكترونية والتطبيقات: إن استخدام شبكة توصيل المحتوى (CDN) وذاكرة التخزين المؤقت لطبقة التطبيق (Redis/Memcached) جنبًا إلى جنب مع قاعدة بيانات في شبكة خاصة يوفر أفضل توازن بين السرعة والتكلفة.
أمثلة مقترحة لتكوين ملف my.cnf لاستخدامات متنوعة
إعدادات خادم متوسط الحمل (ويب/تطبيق):
[mysqld]
bind-address = 10.0.1.5
max_connections = 200
innodb_buffer_pool_size = 2G
skip-name-resolve = 1
ssl-ca=/etc/mysql/ssl/ca.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pemللخوادم المخصصة للذكاء الاصطناعي/العرض ذات الأحمال العالية:
innodb_buffer_pool_size = 16G
innodb_flush_method = O_DIRECT
innodb_io_capacity = 2000اضبط الإعدادات دائمًا بناءً على ذاكرة الوصول العشوائي (RAM) ووحدات الإدخال/الإخراج واحتياجات التطبيق.
قائمة التحقق الأمني النهائية قبل تفعيل الوصول عن بُعد
- استخدام شبكة خاصة أو شبكة افتراضية خاصة (VPN) لحركة مرور قاعدة البيانات
- تقييد عناوين IP المسموح بها في جدار الحماية
- أنشئ مستخدمين بصلاحيات محدودة واستخدم خوارزميات تجزئة آمنة
- قم بتمكين بروتوكول TLS/SSL، وإذا لزم الأمر، شهادات العميل.
- عدم استخدام الجذر للاتصالات عن بعد
- تفعيل التسجيل؛ إرسال السجلات إلى نظام خارجي
- تحديد حدود الاتصال واستخدام fail2ban
- المراقبة والتنبيه في حالة حدوث زيادات غير معتادة في حركة المرور أو أخطاء
- النسخ الاحتياطية المنتظمة واختبارات الاستعادة
الخلاصة والتوصية النهائية
يجب أن يكون تمكين الوصول عن بُعد إلى MySQL في عام 2025 سريعًا وآمنًا في آنٍ واحد. أفضل طريقة: البدء بشبكة خاصة أو VPN، ثم إضافة بروتوكول TLS وتقييد عناوين IP، والحد من الوصول إلى الحد الأدنى.
باستخدام Bastion Host، ستعزز المصادقة متعددة العوامل (MFA) والتسجيل المتقدم مستوى أمانك. إذا كنت بحاجة إلى خادم عالي الاستقرار، وشبكة ذات زمن استجابة منخفض، وميزات أمان متقدمة، فإن خدماتنا تشمل أكثر من 85 موقعًا عالميًا، وخوادم مزودة بوحدات معالجة رسومية (GPU)، وخوادم حوسبة، وخوادم مضادة لهجمات DDoS، وخوادم افتراضية خاصة (VPS) للتداول والألعاب، وشبكة توصيل محتوى (CDN)، وشبكة BGP، مما يوفر خيارات جاهزة وقابلة للتخصيص.









