در حالي كه بسياري از كاربران به عملكرد سيستم مديريت ديتابيس مانند MySQL احتياج دارند ، ممكن است از تعامل با سيستم فقط از طريق MySQL احساس راحتي نداشته باشند.
phpMyAdmin به گونه اي ايجاد شده است كه كاربران بتوانند از طريق يك رابط وب با MySQL در تعامل باشند. در اين راهنما ، ما در مورد نحوه نصب و ايمن سازي phpMyAdmin بحث خواهيم كرد تا بتوانيد با اطمينان از آن استفاده كنيد تا پايگاه هاي داده خود را بر روي سيستم Ubuntu 18.04 مديريت كنيد.
پيش نيازها
قبل از شروع كار با اين راهنما ، بايد مراحل پايه اي را انجام دهيد.
ابتدا فرض خواهيم كرد كه سرور مجازي شما داراي كاربر غير ريشه اي با امتيازات sudo و همچنين فايروال پيكربندي شده با ufw است ، همانطور كه در راهنماي اوليه تنظيم سرور مجازي براي اوبونتو 18.04 شرح داده شده است.
همچنين فرض خواهيم كرد كه نصب LAMP (Linux ، Apache ، MySQL و PHP) را روي سرور مجازي Ubuntu 18.04 خود انجام داده ايد. اگر اين كار هنوز كامل نشده است ، مي توانيد در مورد نصب پشته LAMP در اوبونتو 18.04 اين راهنما را دنبال كنيد.
سرانجام ، هنگام استفاده از نرم افزارهايي مانند phpMyAdmin ملاحظات امنيتي مهمي وجود دارد ، زيرا:
⦁ به طور مستقيم با نصب MySQL شما ارتباط برقرار ميكند
⦁ احراز هويت را با استفاده از اعتبار MySQL انجام مي دهد
⦁ نتايج را براي جستارهاي SQL دلخواه اجرا مي كند و برميگرداند
به همين دلايل ، و از آنجا كه يك برنامه PHP با استقرار گسترده است كه غالباً مورد حمله قرار مي گيرد ، هرگز نبايد phpMyAdmin را روي سيستم هاي از راه دور از طريق اتصال HTTP ساده اجرا كنيد. اگر دامنه موجود را با گواهي SSL / TLS پيكربندي نكرده ايد ، مي توانيد اين راهنما را در زمينه ايمن سازي Apache با Let’s encrypt در Ubuntu 18.04 دنبال كنيد. با اين كار شما نياز به ثبت نام دامنه ، ايجاد ركوردهاي DNS براي سرور مجازي خود و تنظيم يك ميزبان مجازي Apache داريد.
پس از اتمام اين مراحل ، براي ادامه كار با اين راهنما آماده هستيد.
مرحله 1 – نصب phpMyAdmin
براي شروع ، phpMyAdmin را از مخازن پيش فرض اوبونتو نصب خواهيم كرد.
اين كار با به روز كردن فهرست بسته سرور مجازي شما و سپس با استفاده از سيستم بسته بندي apt براي دريافت پرونده ها و نصب آنها روي سيستم شما انجام مي شود:
⦁ $ sudo apt update
⦁
⦁ $ sudo apt install phpmyadmin php-mbstring php-gettext
به منظور پيكربندي صحيح نصب ، سؤالاتي از شما پرسيده ميشود.
هشدار: هنگامي كه اعلان ظاهر مي شود ، “apache2” هايلايت مي شود ، اما انتخاب نشده است. اگر براي انتخاب Apache ، SPACE نزنيد ، نصب كننده هنگام نصب ، فايلهاي لازم را منتقل نمي كند. براي انتخاب Apache ، كليد SPACE ، TAB و سپس ENTER را بزنيد.
• براي انتخاب سرور مجازي ، apache2 را انتخاب كنيد
• وقتي از شما سؤال شد كه آيا از dbconfig-Common براي راهاندازي پايگاه داده استفاده كنيد ، yes را انتخاب كنيد
• سپس از شما خواسته مي شود رمزعبور برنامه MySQL را براي phpMyAdmin انتخاب و تأييد كنيد
فرآيند نصب فايل پيكربندي phpMyAdmin Apache را به ديركتوري / etc / apache2 / conf-enabled / اضافه مي كند ، جايي كه به طور خودكار خوانده مي شود. تنها كاري كه شما بايد انجام دهيد فعال كردن صريح پسوند mbstring PHP است كه مي توانيد با تايپ كردن اين دستور آن را انجام دهيد:
⦁ $ sudo phpenmod mbstring
⦁
پس از آن ، Apache را مجدداً راه اندازي كنيد تا تغييرات شما به رسميت شناخته شود:
⦁ $ sudo systemctl restart apache2
⦁
اكنون phpMyAdmin نصب و پيكربندي شده است. با اين حال ، قبل از ورود به سيستم و شروع به تعامل با بانكهاي اطلاعاتي MySQL ، بايد اطمينان حاصل كنيد كه كاربران MySQL از امتيازات لازم براي تعامل با برنامه برخوردار هستند.
مرحله 2 – تنظيم تأييد اعتبار و امتيازات كاربر
وقتي phpMyAdmin را بر روي سرور مجازي خود نصب كرديد ، به طور خودكار كاربر پايگاه داده اي به نام phpmyadmin ايجاد كرد كه فرآيندهاي پايه خاصي را براي اين برنامه انجام مي دهد. به جاي اينكه به عنوان اين كاربر با گذرواژه اداري كه در حين نصب تنظيم كرده ايد وارد شويد ، توصيه مي شود كه به عنوان كاربر ريشه MySQL يا به عنوان كاربر اختصاصي براي مديريت پايگاه داده از طريق رابط phpMyAdmin وارد شويد.
پيكربندي دسترسي رمز ورود براي حساب ريشه MySQL
در سيستم هاي اوبونتو كه MySQL 5.7 را اجرا مي كند (و نسخه هاي بعدي) ، تأييد اعتبار كاربر ريشه MySQL با استفاده از افزونه auth_socket بصورت پيش فرض و نه با گذرواژه تنظيم شده است. اين امر امكان امنيت و قابليت استفاده بيشتر را در بسياري از موارد فراهم مي كند ، اما همچنين مي تواند مواردي را پيچيده تر كند كه شما نياز به دسترسي به يك برنامه خارجي – مانند phpMyAdmin – براي دسترسي به كاربر داريد.
براي ورود به سايت phpMyAdmin به عنوان كاربر ريشه MySQL ، اگر قبلاً اين كار را نكرده ايد ، بايد روش تأييد اعتبار آن را از auth_socket به mysql_native_password تغيير دهيد. براي اين كار ، اعلان MySQL را از پايانه خود باز كنيد:
⦁ $ sudo mysql
⦁
سپس ، بررسي كنيد كه كدام روش تأييد اعتبار هر يك از حسابهاي كاربري MySQL خود را با دستور زير استفاده كنيد:
⦁ Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
⦁
Output
+——————+——————————————-+———————–+———–+
| user | authentication_string | plugin | host |
+——————+——————————————-+———————–+———–+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | mysql_native_password | localhost |
| phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | mysql_native_password | localhost |
+——————+——————————————-+———————–+———–+
5 rows in set (0.00 sec)
در اين مثال ، مي بينيد كه كاربر اصلي با استفاده از افزونه auth_socket ، در واقع تأييد اعتبار مي كند. براي پيكربندي حساب اصلي براي تأييد اعتبار با يك رمز عبور ، دستور ALTER USER زير را اجرا كنيد. حتما گذرواژه را به رمز عبور قوي تغيير دهيد:
⦁ Mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
⦁
سپس ، FLUSH PRIVILEGES را اجرا كنيد كه به سرور مجازي مي گويد جداول امتيازدهي را دوباره لود كند و تغييرات جديد خود را به مرحله اجرا برساند:
⦁ Mysql> FLUSH PRIVILEGES;
⦁
روش هاي تأييد اعتبار استفاده شده توسط هر يك از كاربران خود را دوباره بررسي كنيد تا تأييد كنيد كه root ديگر با استفاده از افزونه auth_socket احراز هويت نمي كند:
⦁ Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
⦁
Output
+——————+——————————————-+———————–+———–+
| user | authentication_string | plugin | host |
+——————+——————————————-+———————–+———–+
| root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | mysql_native_password | localhost |
| phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | mysql_native_password | localhost |
+——————+——————————————-+———————–+———–+
5 rows in set (0.00 sec)
مي توانيد از اين خروجي مشاهده كنيد كه كاربر اصلي با استفاده از يك رمز عبور تأييد اعتبار مي كند. اكنون مي توانيد
به عنوان كاربر اصلي خود با گذرواژه اي كه در اينجا براي آن تنظيم كرده ايد وارد رابط phpMyAdmin شويد.
پيكربندي دسترسي رمز ورود براي يك كاربر اختصاصي MySQL
از طرف ديگر ، برخي ممكن است عقيده داشته باشند كه اتصال به phpMyAdmin با يك كاربر اختصاصي ، بيشتر با گردش كار آن ها تناسب دارد. براي انجام اين كار ، يكبار ديگر پوسته MySQL را باز كنيد:
⦁ $ sudo mysql
⦁
توجه: اگر تأييد اعتبار را فعال كرده ايد ، همانطور كه در قسمت قبل توضيح داده شد ، براي دسترسي به پوسته MySQL بايد از دستور ديگري استفاده كنيد. دستور زير كلاينت MySQL شما را با حق امتياز منظم كاربر اجرا مي كند و شما فقط با تأييد اعتبار ، امتيازات ادمين را در بانك اطلاعات دريافت خواهيد كرد:
⦁ $ mysql -u root -p
⦁ •
از آنجا ، يك كاربر جديد ايجاد كرده و يك رمزعبور قوي به آن بدهيد:
⦁ Mysql> CREATE USER ‘sammy’@’localhost’ IDENTIFIED BY ‘password’;
⦁
سپس به كاربر جديد خود امتيازات مناسب اعطا كنيد. به عنوان مثال ، شما مي توانيد امتيازات كاربر را به تمام جداول موجود در ديتابيس و همچنين توانايي اضافه كردن ، تغيير و حذف امتيازهاي كاربر را با اين دستور اعطا كنيد:
⦁ Mysql> GRANT ALL PRIVILEGES ON *.* TO ‘sammy’@’localhost’ WITH GRANT OPTION;
⦁
پس از آن ، از پوسته MySQL خارج شويد:
⦁ Mysql> exit
⦁
اكنون مي توانيد با مراجعه به نام دامنه سرور مجازي يا آدرس IP عمومي و به دنبال آن / phpmyadmin به رابط وب دسترسي پيدا كنيد:
http://your_domain_or_IP/phpmyadmin
به عنوان روت يا با نام كاربري و رمزعبور جديدي كه پيكربندي كرده ايد ، وارد رابط شويد.
وقتي وارد سيستم مي شويد ، رابط كاربري را مشاهده خواهيد كرد كه چيزي شبيه به اين خواهد بود:
اكنون كه مي توانيد با phpMyAdmin ارتباط برقرار كرده و با آنها تعامل داشته باشيد ، تمام كار باقي مانده اين است كه امنيت سيستم هاي خود را براي محافظت از آن در مقابل مهاجمان بالا ببريد.
مرحله 3 – ايمن سازي نمونه phpMyAdmin
phpMyAdmin به دليل فراگير بودن آن ، يك هدف محبوب براي مهاجمين است و براي جلوگيري از دسترسي غيرمجاز بايد مراقبت بيشتري كنيد. يكي از ساده ترين راه هاي انجام اين كار ، قرار دادن يك دروازه در جلوي كل برنامه با استفاده از ويژگي هاي تأييد اعتبار داخلي .htaccessو توابع اختياراتي است.
براي اين كار ابتدا با ويرايش پرونده پيكربندي apache، استفاده از فايل.htaccess را فعال كنيد.
پرونده لينك شده را كه در ديركتوري تنظيمات Apache شما قرار دارد ويرايش كنيد:
⦁ $ sudo nano /etc/apache2/conf-available/phpmyadmin.conf
⦁
يك دستورالعمل AllowOverride All را در بخش
/etc/apache2/conf-available/phpmyadmin.conf
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
. . .
وقتي اين خط را اضافه كرديد ، پرونده را ذخيره كنيد و ببنديد.
براي اجراي تغييراتي كه ايجاد كرده ايد ، Apache را مجدداً راه اندازي كنيد:
⦁ $ sudo systemctl restart apache2
⦁
اكنون كه استفاده از .htaccess را براي برنامه خود فعال كرده ايد ، بايد يك مورد از آن را ايجاد كنيد تا در واقع برخي از اقدامات امنيتي را پياده سازي كنيد. براي موفقيت در اين امر ، پرونده بايد در ديركتوري برنامه كاربردي ايجاد شود. با تايپ كردن اين دستور مي توانيد فايل لازم را ايجاد كرده و در ويرايشگر متن خود با امتيازات اصلي باز كنيد:
⦁ $ sudo nano /usr/share/phpmyadmin/.htaccess
⦁
در اين پرونده اطلاعات زير را وارد كنيد:
/usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName “Restricted Files”
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
در اينجا منظور از هريك از اين خطوط آورده شده است:
⦁ AuthType Basic: در اين خط نوع تأييد هويت مورد استفاده شما مشخص مي شود. اين نوع، تأييد اعتبار رمز عبور را با استفاده از يك فايل رمز عبور پياده سازي مي كند.
⦁ AuthName: پيام را براي كادر گفتگوي تأييد اعتبار تنظيم مي كند. شما بايد آن سري نگه داريد تا كاربران غيرمجاز هيچ اطلاعاتي درباره آنچه محافظت مي شود كسب نكنند.
⦁ AuthUserFile: مكان فايل رمز عبور را كه براي تأييد اعتبار استفاده مي شود ، تعيين مي كند. بايد خارج از دايركتوري هايي باشد كه ارائه مي شوند. به زودي اين پرونده را ايجاد خواهيم كرد.
⦁ Require valid-user : مشخص مي كند كه فقط كاربران معتبر بايد به اين منبع دسترسي داشته باشند. همان چيزي است كه در واقع ورود كاربران غيرمجاز را متوقف مي كند.
پس از اتمام ، پرونده را ذخيره كنيد و ببنديد.
محلي كه براي پرونده رمز عبور خود انتخاب كرديد /etc/phpmyadmin/.htpasswd بود. اكنون مي توانيد اين پرونده را ايجاد كرده و آن را به عنوان كاربر اوليه با ابزار htpasswd وارد كنيد:
⦁ $ sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
⦁
از شما خواسته مي شود يك رمز عبور براي كاربر مورد نظر خود انتخاب و تأييد كنيد. پس از آن ، پرونده با رمز عبور hashed كه وارد كرده ايد ايجاد مي شود.
اگر مي خواهيد يك كاربر اضافي وارد كنيد ، بايد بدون پرچم -c اين كار را انجام دهيد ، مانند اين:
⦁ $ sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser
⦁
اكنون ، هنگامي كه به زيرشاخه phpMyAdmin خود دسترسي پيدا مي كنيد ، از شما خواسته مي شود نام و رمز اكانت ديگري را كه اخيراً پيكربندي كرده ايد وارد كنيد:
https://domain_name_or_IP/phpmyadmin
پس از وارد كردن شناسه Apache ، براي وارد كردن اعتبار MySQL به صفحه تأييد صحت phpMyAdmin منتقل مي شويد. اين تنظيم، لايه امنيتي بيشتري را اضافه مي كند ، كه از آنجايي كه phpMyAdmin در گذشته از آسيب پذيري رنج مي برد ، مطلوب خواهد بود.
نتيجه
اكنون بايد phpMyAdmin را در سرور مجازي Ubuntu 18.04 خود تنظيم و آماده استفاده كرده باشيد. با استفاده از اين رابط ، مي توانيد به راحتي پايگاه داده ، كاربران ، جداول و غيره ايجاد كرده و عمليات معمول مانند حذف و اصلاح ساختارها و داده ها را انجام دهيد.
- شنبه ۳۰ فروردین ۹۹ ۱۲:۱۰ ۶۲ بازديد
- ۰ نظر