نحوه ایمن سازی ونصب phpmyadmin در اوبونتو 18.04
در بسیاری از موارد نیازمند ارتباط با مدیریت پایگاه داده سرور خود هستیم ولی ارتباط با سیستم فقط از طریق Mysql، سرعت و راحتی استفاده از پایگاه داده با مرورگرهای وب را ندارد.
در این مقاله به بررسی نحوه ایمن سازی و نصب PhpMyAdmin خواهیم پرداخت تا بتوانید با امنیت بیشتر پایگاه داده های خود روی ابنتو 18.04 را مدیریت کنید. قبل از هراقدامی نیاز است تا مراحل نصب PhpMyAdmin را انجام دهید که این مراحل شامل مواردی چون داشتن کاربر root ، فایروال پیکربندی شده با ufw و همچنین نصب LAMP بر روی سرور(نحوه نصب LAMP در اوبونتو 18.04 به زبان ساده) میباشد.
نصب phpMyAdmin
برای شروع نیاز است تا PhpMyAdmin را نصب کنیم. ابتدا بسته های نصبی سرور را با کد زیر آپ دیت می کنیم.
[cc lang=”bash” escaped=”true”] sudo apt update [/cc]
سپس با وارد کردن کد زیر PhpMyAdmin و نرم افزار های همراه آن را نصب می کنیم.
[cc lang=”bash” escaped=”true”] sudo apt install phpmyadmin php-mbstring php-gettext [/cc]
برای پیکربندی بهتر، نصب PhpMyAdmin از شما می خواهد که وب سرور خود را انتخاب کنید، در این قسمت Apache2 را انتخاب کنید.
توجه: در هنگامی که پیام ذکر شده برای آنتخاب وب سرور مورد نظر به نمایش در می آید گزینه apsche2 به صورت برجسته می باشد اما انتخاب نشده است. برای انتخاب apache2 کلید space، برای جابه جایی بین گزینه ها کلید tab و برای تایید کلید enter را فشار دهید.
سپس تنها اقدامی که باید انجام دهید فعال کردن افزونه php-mbstring است که در هنگام نصب PhpMyAdmin آن را نیز نصب کردیم.
برای این کار کد زیر را در ترمینال اوبونتو تایپ کنید.
[cc lang=”bash” escaped=”true”] sudo phpenmod mbstring [/cc]
حال Apache را دورباره راه اندازی کنید تا تغییرات اعمال شود.
[cc lang=”bash” escaped=”true”] sudo systemctl restart apache2 [/cc]
اکنون phpMyAdmin نصب و پیکربندی شده است. قبل از انجام هر کاری، اطمینان حاصل کنید که کاربران Musql از امتیازات و دسترسی کافی برای ارتباط با PhpMyAdmin برخوردار باشند.
پیکربندی تأیید اعتبار و امتیازات کاربران
زمانی که phpMyAdmin را بر روی سرور خود نصب کردید، به طور اتوماتیک کاربر پایگاه داده ای به نام phpmyadmin ایجاد میشود که می تواند فرآیندهای اساسی خاصی را برای برنامه انجام دهد اما توجه داشته باشید که به جای اینکه به عنوان این کاربر با گذرواژهای که در حین نصب تنظیم کردهاید وارد شوید، توصیه می شود که به عنوان کاربر root در MySQL یا به عنوان کاربر اختصاصی برای مدیریت پایگاه داده از طریق رابط phpMyAdmin وارد شوید.
پیکربندی رمز ورود برای حساب ریشه MySQL
در سیستم عامل Ubuntuای که Mysql 5.7 یا بالاتر را اجرا می کند، کاربر Root برای تایید اعتبار باید از افزونه auth_socke که به جای رمز عبور تنظیم شده است، استفاده کند. این افزونه، قابلیت بیشتر و امنیت بالاتری دارد اما برای دسترسی کاربر نیازمند یک برنامه خارجی مثل Phpmyadmin است که این امر می تواند کار را پیچیده تر کند. اگر ترجیح می دهید هنگام اتصال به Mysql به عنوان کاربر Root از یک رمز عبور استفاده کنید، باید روش تایید اعتبار خود را از auth_socket به mysql_native_password تغییر دهید.
برای این کار با کد زیر ابتدا وارد Mysql شوید:
[cc lang=”bash” escaped=”true”] sudo mysql [/cc]
سپس با دستور زیر بررسی کنید که تایید اعتبار حساب کاربری Mysql به چه صورت است.
[cc lang=”bash” escaped=”true”] ;SELECT user,authentication_string,plugin,host FROM mysql.user [/cc]
[cc lang=”bash” escaped=”true” line_numbers=”true” class=”ltr]
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 | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+——————+——————————————-+———————–+———–+
4 rows in set (0.00 sec)
[/cc]
در قطعه کد بالا می بینید که کاربر Root از افزونه auth_socket برای اعتبار سنجی استفاده می کند.
برای تغییر این روش و اعتبار سنجی از طریق رمز عبور، قطعه کد زیر را در در ترمینال خود وارد کنید.
توجه: رمز عبور خود را در قسمت مشخص شده بین ‘ ‘ بنویسید.
[cc lang=”bash” escaped=”true”]
;’رمز عبور انتخابی شما’ ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY
[/cc]
سپس با وارد کردن کد زیر به سرور دستور بارگذاری مجدد جدول بالا را دهید تا از انجام تغییرات مطمئن شوید.
[cc lang=”bash” escaped=”true”] ;FLUSH PRIVILEGES[/cc]
روش تایید عبارت هر یک از کاربران خود را دوباره بررسی کنید تا مطمئن شوید که کاربر Root دیگر از افزونه auth_socket برای احراز هویت استفاده نمی کند.
[cc lang=”bash” escaped=”true”] ;SELECT user,authentication_string,plugin,host FROM mysql.user[/cc]
[cc lang=”bash” escaped=”true” line_numbers=”true” class=”ltr]
Output
+——————+——————————————-+———————–+———–+
| user | authentication_string | plugin | host |
+——————+——————————————-+———————–+———–+
| root | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+——————+——————————————-+———————–+———–+
4 rows in set (0.00 sec)
[/cc]
در مثال بالا می توان دید که کاربر Root اکنون با mysql_native_password ( رمز عبور) تایید اعتبار می شود.
اکنون می توانید به عنوان کاربر اصلی با رمز عبوری که برای آن تنظیم کرده اید، وارد phpMyAdmin شوید.
پیکربندی دسترسی رمز ورود برای یک کاربر اختصاصی MySQL
گاهی نیاز است برای مواردی یک کاربر اختصاصی به جز کاربر root داشته باشیم. ابتدا برای این کار با کد زیر وارد Mysql شوید.
[cc lang=”bash” escaped=”true”] sudo mysql[/cc]
توجه: اگر احراز هویت را از طریق رمز عبور (همانگونه که در قسمت قبل توضیح دادیم) انجام دادهاید، نیاز است تا با دستور دیگری وارد Mysql خود شوید. برای اینکار با کد زیر وارد Mysql شوید.
[cc lang=”bash” escaped=”true”] mysql -u root -p[/cc]
در کد زیر نام کربری (summy) و رمز عبور(password) جدید را جایگزاری کنید و کد را در ترمینال وارد کنید.
[cc lang=”bash” escaped=”true”] ;’CREATE USER ‘sammy’@’localhost’ IDENTIFIED BY ‘password[/cc]
سپس به کاربر (summy) جدیدی که ایجاد کردهاید، امتیازات و دسترسیهای لازم را بدهید. به عنوان مثال می توانید امتیازات این کاربر را به تمام جداول پایگاه داده، حذف و اضافه کردن یا ویرایش کاربران را با دستور زیر اعطا کنید.
[cc lang=”bash” escaped=”true”] ;GRANT ALL PRIVILEGES ON *.* TO ‘sammy’@’localhost’ WITH GRANT OPTION[/cc]
سپس با کد زیر از MySQL خارج شوید:
[cc lang=”bash” escaped=”true”] exit[/cc]
اکنون می توانید با مراجعه به آدرس زیر به PhpMyAdmin دسترسی داشته باشید.
[cc lang=”bash” escaped=”true”]http://your_domain_or_IP/phpmyadmin [/cc]
ایمن کردن دسترسی به PhpMyAdmin
به دلیل دردسترس بودن phpMyAdmin، این نرم افزار یک هدف برای هکرها و مهاجمین است. برای جلوگیری از دسترسی غیرمجاز باید مراقبت بیشتری انجام داد و یکی از آسان ترین راهها، قرار دادن یک سپر دفاعی قوی قبل از دسترسی به این نرم افزار است. برای این کار ابتدا باید با ویرایش فایل پیکربندی apache خود استفاده از پرونده htaccess را نادیده بگیرید.
فایل پیوندی را که درلیست تنظیمات apache شما قرار دارد با کد زیر ویرایش کنید:
[cc lang=”bash” escaped=”true”] sudo nano /etc/apache2/conf-available/phpmyadmin.conf[/cc]
دستور AllowOverride All را در قسمت <Directory / usr / share / phpmyadmin> همانند کدهای زیر جای گذاری کنید.
[cc lang=”bash” escaped=”true” line_numbers=”true” class=”ltr]
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
. . .
[/cc]
سپس تغییرات اعمال شده را ویرایش کرده و خارج شوید.
برای اعمال تغییرات انجام شده، apache را با کد زیر ریستارت کنید.
[cc lang=”bash” escaped=”true”] sudo systemctl restart apache2[/cc]
اکنون که استفاده از htaccess را برای PhpMyAdmin فعال کردهاید، باید فایلی را ایجاد کنید تا امنیت را پیاده سازی کند.
برای این کار، فایل مورد نظر باید در لیست برنامههای کاربردی ایجاد شود. با تایپ کردن کد زیر فایل لازم را ایجاد کرده و در ویرایشگر متن با دسترسیهای root، آن را باز کنید.
[cc lang=”bash” escaped=”true”] sudo nano /usr/share/phpmyadmin/.htaccess[/cc]
sudo nano /usr/share/phpmyadmin/.htaccess
سپس اطلاعات زیر را درون این فایل وارد کنید.
[cc lang=”bash” escaped=”true” line_numbers=”true” class=”ltr]
AuthType Basic
AuthName “Restricted Files”
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
[/cc]
تغییرات را ذخیره کرده و خارج شوید.
محلی را که برای فایل رمز عبور خود انتخاب کرده بودید، /etc/phpmyadmin/.htpasswd بود و اکنون می توانید این فایل را ایجاد کرده و آن را به عنوان کاربر اولیه با ابزار htpasswd منتقل کنید.
[cc lang=”bash” escaped=”true”] sudo htpasswd -c /etc/phpmyadmin/.htpasswd username[/cc]
از شما خواسته می شود که یک رمز عبور را برای کاربر مورد نظر انتخاب و تایید کنید. پس از آن، پرونده با رمزی که وارد کرده اید ایجاد میشود.
برای تعریف کاربر جدید باید بدون c- این کار را انجام دهید مانند کد زیر:
[cc lang=”bash” escaped=”true”] sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser[/cc]
هنگامی که به آدرس phpMyAdmin خود می روید از شما خواسته می شود، نام و رمز اضافی دیگری را که اخیراً پیکربندی کرده اید وارد کنید. سپس وارد قسمت مربوط به نام کاربری و رمزعبور مربوط به خود phpmyadmin می شوید.
در این مقاله شما با نحوه ایمن سازی و نصب PhpMyAdmin بر روی سرور ubentu 18.04 آشنا شدید و اکنون میتوانید phpmyadmin را بر روی سرور ununtu 18.04 خود نصب و تنظیم کنید و با استفاده از آن به راحتی پایگاه داده، جداول و اطلاعات سایت خود را مدیریت و ویرایش کنید.