مقدمة
على الرغم من أن العديد من المستخدمين يحتاجون إلى نظام إدارة قاعدة بيانات مثل وظيفة MySQL، إلا أنهم قد لا يشعرون بالراحة في التفاعل مع النظام فقط من خلال عميل سطر الأوامر MySQL.
لتمكين تفاعل المستخدم مع MySQL عبر واجهة ويب، تم تطوير PhpMyAdmin. سنراجع تثبيت وتأمين PhpMyAdmin في هذا الدليل، حتى تتمكن من استخدامه لإدارة قواعد بياناتك على نظام CentOS دون مخاطر.
المتطلبات الأساسية
- خادم CentOS مع مستخدم إداري غير جذري مع امتيازات سودو.
- مكدس LAMP مثبت على الخادم الخاص بك. يمكنك اتباع هذا الدليل تثبيت Apache و MySQL و PHP (LAMP)
أخيرًا، أثناء استخدام برامج مثل PhpMyAdmin، هناك مشكلات أمنية أساسية يجب إدراكها لأنها:
- يتواصل مع تثبيت MySQL الخاص بك مباشرة.
- يتعامل مع مصادقة MySQL.
- ينفذ ويعيد نتائج أي استفسار SQL.
لهذه الأسباب، بالإضافة إلى حقيقة أن PhpMyAdmin هو تطبيق PHP منتشر على نطاق واسع ويستهدف بشكل روتيني للهجوم، يجب ألا تنفذه أبدًا على أجهزة الكمبيوتر البعيدة من خلال اتصال HTTP عادي. إذا لم يكن لديك مجال تم إنشاؤه بالفعل بشهادة SSL/TLS، فيمكنك استخدام هذه الطريقة لإنشاء واحد, كيفية تأمين أباتشي Apache باستخدام Let’ s Encrypt.
بمجرد الانتهاء من هذه الخطوات، تكون مستعدًا لبدء هذا الدليل.
الخطوة 1: تثبيت PhpMyAdmin
للبدء، سنقوم بتثبيت PhpMyAdmin من مستودع distro الافتراضي.
$ sudo yum install epel-release
$ sudo yum install phpmyadmin
يضع إجراء التثبيت ملف تكوين phpMyAdmin Apache في /etc/httpd/conf.d/ الدليل، حيث يتم قراءته على الفور.
إعادة تشغيل الأباتشي:
$ sudo systemctl restart httpd.service
مع ذلك، اكتمل تثبيت phpMyAdmin. في متصفح الويب الخاص بك، انتقل إلى اسم نطاق الخادم الخاص بك أو عنوان IP العام متبوعًا بـ phpMyAdmin/:
http://server_IP/phpMyAdmin
قم بتسجيل الدخول إلى الواجهة كجذر أو باستخدام اسم مستخدم وكلمة مرور أخرى.
الخطوة 2: قم بتأمين phpMyAdmin على سبيل المثال
في هذه المرحلة، يجب أن يكون مثبت phpMyAdmin المثبت على الخادم الخاص بنا يعمل بكامل طاقته. ومع ذلك، فقد عرضنا نظام MySQL الخاص بنا للعالم الخارجي عن طريق إضافة واجهة ويب.
تغيير عنوان URL الوصول إلى التطبيق
$ sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
نحو الجزء العلوي من الملف، سترى سطرين يبدوان هكذا:
Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin
هذان الخطان هما الأسماء المستعارة لدينا، مما يعني أنه كلما وصلنا إلى اسم نطاق موقعنا أو عنوان IP، يليه إما phpMyAdmin/ أو phpmyadmin/, سيتم إرسال المحتوى إلى /usr/share/phpMyAdmin.
لتطبيق التعديلات المطلوبة، يجب علينا حذف أو التعليق على الخطوط الحالية والاستعاضة عنها بما يلي:
# Alias /phpMyAdmin /usr/share/phpMyAdmin # Alias /phpmyadmin /usr/share/phpMyAdmin Alias /secretpage /usr/share/phpMyAdmin
لتنفيذ التغييرات، استأنف خدمة الويب:
$ sudo systemctl restart httpd.service
إذا عدت إلى الموقع السابق لتثبيت phpMyAdmin، فستحصل على خطأ 404.
من ناحية أخرى، ستكون واجهة phpMyAdmin الخاصة بك متاحة في الموقع الجديد الذي اخترناه:
http://server_IP/secretpage
إعداد مصادقة على خادم الويب:
الميزة التالية التي نريدها للتثبيت لدينا كانت مطالبة بالمصادقة يتعين على المستخدم تمريرها قبل أن يتمكن من الوصول إلى شاشة تسجيل الدخول phpMyAdmin.
افتح ملفك و أضف AllowOverride All في <Directory /usr/share/phpmyadmin>
Ubuntu : /etc/apache2/conf-available/phpmyadmin.conf
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
AllowOverride All
. . .
وإعادة تشغيل الأباتشي
الآن بعد أن قمت بتمكين استخدام ملفات .htaccess لتطبيقك، ستحتاج إلى وضع واحدة لإنشاء قواعد أمان في مكانها.
قم بإنشاء الملف في مجلد PhpMyAdmin:
$ sudo nano /usr/share/phpmyadmin/.htaccess
تضاف السطور التالية:
AuthType Basic AuthName "Restricted Files" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user
احفظ الملف وأغلقه عندما تنتهي.
تختار /etc/phpmyadmin/.htpasswd كموقع لملف كلمة السر الخاصة بك. يمكنك الآن استخدام برنامج htpasswd لإنشاء هذا الملف وتعيين مستخدم أولي له:
$ sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
ثم أدخل وتأكد من كلمة مرور للمستخدم الذي تقوم بإنشائه.
إذا كنت ترغب في إضافة مستخدم آخر، فاستخدم الجملة التالية بدون العلم -c:
$ sudo htpasswd /etc/phpmyadmin/.htpasswd newuser
ثم أعد تشغيل Apache لتمكين .htaccess المصادقة.
عند إدخال phpMyAdmin الخاص بك، سيتم طلب اسم الحساب وكلمة المرور المنشأة حديثًا:
http://server_IP/secretpage
خاتمة
يجب الآن تثبيت PhpMyAdmin وجاهز للاستخدام على الخادم الخاص بك. يمكنك استخدام هذه الواجهة لإنشاء قواعد بيانات ومستخدمين وجداول، بالإضافة إلى تنفيذ عمليات قياسية مثل حذف وتغيير الهياكل والبيانات.