تأمين قواعد البيانات على سيرفر VPS

قاعدة البيانات فيها أهم حاجة عندك: بيانات عملائك وطلباتهم. الشرح ده بيديك ٧ إجراءات تأمين لـ MySQL أو MariaDB على سيرفر VPS، مرتّبين بالأهمية.

أهم إجراء واحد: اتأكد إن قاعدة البيانات مش مفتوحة على الإنترنت. أغلب حوادث تسريب البيانات سببها قاعدة كانت مسموح لها تستقبل اتصالات من أي مكان.

١. اتأكد إنها مقفولة على السيرفر المحلي

sudo ss -tlnp | grep 3306

لو النتيجة بتقول 127.0.0.1:3306 يبقى تمام. ولو بتقول 0.0.0.0:3306 فقاعدتك مفتوحة للعالم كله. اقفلها:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

واتأكد إن السطر ده موجود:

bind-address = 127.0.0.1
sudo systemctl restart mysql
لو محتاج وصول خارجي فعلًا
ما تفتحش المنفذ للكل. افتحه على عنوان محدد بس من جدار الحماية، أو الأفضل استخدم نفق SSH بدل فتح المنفذ أصلًا.

٢. شغّل أداة التأمين الأساسية

sudo mysql_secure_installation

بتمسح المستخدمين المجهولين، وقاعدة الاختبار، وبتمنع دخول root عن بُعد. جاوب Y على كل الأسئلة.

٣. مستخدم منفصل لكل موقع

أكبر غلطة شائعة: استخدام حساب root في ملف إعدادات الموقع. لو الموقع اتخترق، المخترق بياخد كل قواعد البيانات على السيرفر مش قاعدة الموقع بس.

CREATE USER 'site1_user'@'localhost' IDENTIFIED BY 'STRONG_PASSWORD'; GRANT SELECT, INSERT, UPDATE, DELETE ON site1_db.* TO 'site1_user'@'localhost'; FLUSH PRIVILEGES;

لاحظ إننا إدينا الصلاحيات المطلوبة بس — مش ALL PRIVILEGES. الموقع في تشغيله العادي مش محتاج يمسح جداول ولا يعمل مستخدمين.

٤. راجع الصلاحيات الموجودة

SELECT user, host FROM mysql.user;

دوّر على أي مستخدم بـ host قيمته % — دي معناها «من أي مكان» وغالبًا مش مطلوبة. وامسح أي مستخدم مش عارف هو بتاع إيه:

DROP USER 'olduser'@'%';

٥. كلمات مرور قوية ومخزّنة صح

  • كلمة مرور مختلفة لكل مستخدم قاعدة بيانات.
  • ما تحطش كلمة المرور في ملف داخل مجلد الموقع المتاح للويب.
  • اتأكد إن ملف الإعدادات مش مقروء للكل:
    chmod 640 /var/www/example.com/.env chown www-data:www-data /var/www/example.com/.env

٦. فعّل سجل الاستعلامات البطيئة

مش إجراء أمني مباشر، بس بيكشف الاستعلامات الغريبة والهجمات:

slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 2

٧. نسخ احتياطي مشفّر ومختبَر

التأمين من غير نسخة احتياطية ناقص. والنسخة اللي فيها بيانات عملاء لازم تكون مشفّرة لو هتتخزن برّه:

mysqldump -u root -p mysite | gzip | openssl enc -aes-256-cbc -out backup-$(date +%F).sql.gz.enc

حاجات ما تعملهاش

  • ما تركّبش phpMyAdmin على مساره الافتراضي — لو محتاجه، غيّر المسار واقفله بكلمة مرور على مستوى خادم الويب، أو استخدمه عبر نفق SSH بس.
  • ما تسيبش قاعدة بيانات تجريبية على سيرفر إنتاج.
  • ما تستخدمش نفس كلمة المرور لقاعدة البيانات ولوحة التحكم والسيرفر.

لو ظهرت لك مشكلة

  • الموقع وقع بعد تغيير bind-address — لو الموقع على نفس السيرفر المفروض يشتغل عادي. لو على سيرفر تاني، هتحتاج تسمح لعنوانه تحديدًا.
  • Access denied for user — الصلاحيات مش كافية أو الـ host غلط. راجع مخرجات SHOW GRANTS FOR للمستخدم.
  • نسيت كلمة مرور root — تتغيّر بتشغيل MySQL في وضع تخطي الصلاحيات. افتح تذكرة وهنساعدك.

الخطوة الجاية

  • تركيب LEMP على أوبونتو: Nginx و MySQL و PHP.
  • أول إعداد لسيرفر VPS لينكس.
  • نسخة احتياطية و Snapshot لسيرفر VPS.

محتاج مساعدة؟

افتح تذكرة وابعتلنا عنوان السيرفر ونوع قاعدة البيانات، وهنراجع معاك إعدادات الوصول والصلاحيات.

  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

إمتى تحتاج تنقل لسيرفر VPS؟ ٦ علامات

الشرح ده بيديك ٦ علامات واضحة تعرف بيها إن استضافتك المشتركة بقت صغيرة على مشروعك، وإمتى النقل...

الفرق بين VPS المُدار وغير المُدار

الشرح ده بيوضّح الفرق العملي بين السيرفر الافتراضي المُدار وغير المُدار، ومين مسؤول عن إيه بالظبط...

أول إعداد لسيرفر VPS لينكس: تأمين ومستخدم وجدار حماية

أول ساعة بعد استلام سيرفر VPS جديد هي الأهم أمنيًا. السيرفر بيتعرض لمحاولات تخمين كلمات المرور...

تركيب لوحة تحكم على VPS: cPanel و CyberPanel و aaPanel

لوحة التحكم بتخلّيك تدير مواقعك وقواعد البيانات والبريد من واجهة بدل سطر الأوامر. الشرح ده بيقارن...

شرح الاتصال بالسيرفر عن طريق remote desktop

الشرح ده بيوريك إزاي تتصل بسيرفر VPS ويندوز عن طريق سطح المكتب البعيد (Remote Desktop) من...