آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

سیستم های مدیریت پایگاه داده رابطه ای مانند MySQL و MariaDB برای بخش قابل توجهی از وب سایت ها و برنامه های کاربردی مورد نیاز است. با این حال، تمام کاربران با مدیریت داده های خود از خط فرمان احساس راحتی نمی کنند.

برای حل این مشکل، یک پروژه به نام phpMyAdmin به منظور ارائه یک جایگزین در قالب یک رابط مدیریت مبتنی بر وب ساخته شد. در این مقاله، ما چگونگی نصب و ایمن سازی تنظیمات phpMyAdmin را بر روی سرور لینوکس CentOS 7 و وب سرور nginx آموزش خواهیم داد. وب سرور nginx دارای عملکرد مناسبی بوده و در مقابل لود و ترافیک سنگین قدرت بیشتری نسبت به سایر وب سرور ها دارد.

پیش نیازها

برای اطمینان از داشتن یک پایگاه منسجم و مستحکم برای ساخت این سیستم ، شما باید راهنمای راه اندازی اولیه سرور را برای CentOS 7 اجرا کنید . اینکار شما را به ساخت یک کاربر غیر روت با دسترسی sudo برای انجام دستورات اجرایی سوق خواهد داد.

پیش نیاز دوم نصب LEMP (Linux ، Nginx، MariaDB، و PHP) بر روی لینوکس CentOS 7 می باشد. این پلت فرمی است که ما برای رابط phpMyAdmin از آن استفاده خواهیم کرد (MariaDB نرم افزار مدیریت دیتابیسی است که ما قصد مدیریت آن را داریم ) . اگر LEMP بر روی سرور شما نصب نیست، برای نصب آن مقاله زیر را مطالعه کنید :

https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7

مرحله اول – نصب phpMyAdmin

با استفاده از پلت فرم LEMP می توانید ، نصب نرم افزار phpMyAdmin را آغاز کنید. متاسفانه، phpMyAdmin به طور پیش فرض در مخزن لینوکس CentOS 7 موجود نیست.

برای دریافت پکیج های مورد نیاز ، باید یک مخزن دیگر به سیستم خود اضافه کنید. مخزن EPEL شامل پکیج های بسیاری، از جمله پکیج phpMyAdmin است.

دستور زیر را اجرا کنید :

 

سپس می توانید پکیجی که به سادگی سیستم شما را برای دسترسی به مخازن EPEL پیکربندی کرده ، نصب کنید . پس از آن، فایل پکیج را حذف کنید، چون دیگر به آن نیازی نخواهید داشت :

 

مخزن EPEL پیکربندی شده است و می توانید پکیج phpMyAdmin را با استفاده از دستور yum نصب کنید:

 

نصب و راه اندازی تکمیل خواهد شد. برای پیدا کردن و ارائه خدمات درست وب سرور Nginx ، به فایل های phpMyAdmin فقط باید با استفاده از دستور زیر یک لینک نمادین از فایل های نصبی در سند Nginx موجود در دایرکتوری روت خود ایجاد کنید :

 

برای اطمینان از لود شدن ماژول های PHP نصب شده ، پردازنده PHP خود را با استفاده از دستور زیر ری استارت کنید:

 

به منظور دسترسی به رابط کاربری برای ادامه مراحل نصب ، این آدرس را در مرورگر خود تایپ کنید :

http://server_domain_or_IP/phpMyAdmin

 به جای server_domain_or_IP نام دامنه یا IP آدرس سرور خود را قرار دهید :

آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

برای ورود به سیستم، از نام کاربری و رمز عبور یک کاربر معتبر MariaDB استفاده کنید:

آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

مرحله دوم – ایمن سازی phpMyAdmin

phpMyAdmin نصب شده بر روی سرور شما باید در این مرحله به طور کامل قابل استفاده باشد. با این حال، با نصب یک رابط وب، سیستم MySQL خود را رو به سوی جهان خارج قرار داده اید.

یکی از دلایل محبوبیت phpMyAdmin در دسترس قرار دادن حجم زیادی از اطلاعات است . چنین سیستم هایی معمولا هدف حمله اتکر ها قرار میگیرند .

ما برای کاهش احتمال خطر، ۲ استراتژی ساده اجرا میکنیم .

  1. تغییر مکان رابط کاربری از پوشه /phpMyAdmin به محلی دیگر برای مقابله با حملات خودکار brute-force .
  2. ایجاد یک صفحه ورودی تائید هویت در سطح وب سرور، قبل از صفحه login یا ورود به phpMyAdmin

تغییر مکان دسترسی به برنامه :

در مرحله قبل یک لینک نمادین از فایل های نصبی در سند Nginx موجود در دایرکتوری روت ایجاد شد. برای تغییر URL رابط کاربری phpMyAdmin ، به سادگی لینک نمادین را rename کنید. به  سند nginx در پوشه روت وارد شوید:

 

 

همانطور که می بینید، یک لینک نمادین به نام phpMyAdmin در این شاخه وجود دارد. می توانید نام لینک را به دلخواه تغییر دهید .با این کار این نقطه دسترسی را در مقابل حملات hard-coded پنهان خواهید کرد.

نامی انتخاب کنید که هدف مکان را مشخص نکند . در این آموزش نام جدید به /nothingtosee تغییر یافته است . برای انجام این کار، با استفاده از دستور زیر نام لینک را تغییر دهید :

 

 

حال اگر به مکان قبلی phpMyAdmin  خود وارد شوید با ارور ۴۰۴ روبرو خواهید شد.

http://server_domain_or_IP/phpMyAdmin

آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

phpMyAdmin  در مکان جدید در دسترس خواهد بود :

http://server_domain_or_IP/nothingtosee

آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

راه اندازی یک ورودی تائید هویت برای وب سرور:

ویژگی بعدی ایجاد یک صفحه تائید هویت است که کاربر قبل از وارد شدن به صفحه ورودی phpMyAdmin به آن منتقل میشود.

خوشبختانه، اکثر وب سرورها ، از جمله Nginx، این قابلیت را به طور پیش فرض دارند. فقط باید در فایل کانفیگ Nginx تغییرات جزئی ایجاد شود .

قبل از این کار، برای ذخیره شناسه های معتبر باید یک فایل password ایجاد کنید .در  Nginx پسورد باید با استفاده از تابع crypt() رمزگذاری شود. مجموعه OpenSSL، که باید در حال حاضر بر روی سرور شما نصب شده باشد، این قابلیت را دارا است .

برای ایجاد یک پسورد رمزگذاری شده این دستور را تایپ کنید :

برای ایجاد یک پسورد، دستور زیر را تایپ کنید:

 

به دلخواه خود پسوردی تعیین کنید . سپس این ابزار نسخه رمزگذاری شده پسورد شما را به صورت چیزی شبیه به متن زیر نشان خواهد داد :

 

این مقدار را کپی کنید و در فایل authentication که باید ایجاد کنید قرار دهید .

حال باید یک فایل authentication ایجاد کنید. در این آموزش نام pma_pass برای این فایل انتخاب شده و در دایرکتوری Nginx قرار میگیرد.

 

در این فایل ابتدا باید نام کاربری مورد نظر خود را وارد کرده و به دنبال آن ، بعد از علامت ( : ) پسورد رمزگذاری شده را وارد کنید . برای مثال :

 

سپس ذخیره کرده و از فایل خارج شوید.

حال باید در فایل کانفیگ nginx تغییراتی ایجاد کنیم . فایل را با اجرای دستور زیر باز کنید :

 

در این فایل، باید یک بخش location جدید ایجاد کنید . که مکان جدید رابط کاربری phpMyAdmin در آن مشخص شود .  (nothingtosee )

یک بخش در بلوک سرور و خارج از سایر بلوک ها ایجاد کنید .

 

در این بلوک باید به منظور نمایش دادن پیغام تائید هویت به کاربران یک مقدار برای دستور auth_basic تعریف کنید . نباید به کاربران نشان دهید که از چه چیز محافظت میکنید بنابراین بهتر است به جزئیات اشاره نکنید . برای مثال در این آموزش از ” Admin Login ” استفاده شده است .

سپس باید با استفاده از دستور زیر auth_basic_user_file  وب سرور را از ایجاد فایل authentication باخبر کنیم . nginx اطلاعات وارد شده توسط کاربران را با مقادیر وارد شده در فایل های مشخص مطابقت خواهد داد .

 

پس از انجام این تغییرات فایل را ذخیره کرده و خارج شوید.

برای پیاده سازی این تغییرات باید وب سرور را ری استارت کنیم .

 

حال اگر آدرس جدید phpMyAdmin را در مرورگر خود وارد کنید (پس از پاک کردن کش و یا استفاده از یک مرورگر دیگر)، نام کاربری و پسوردی که در فایل pma_pass وارد کرده اید از شما خواسته میشود .

http://server_domain_or_IP/nothingtosee

آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

پس از وارد کردن اطلاعات کاربری فوق ، به صفحه ی login عادی phpMyAdmin وارد می شوید.

اکنون می توانید دیتابیس های MySQL خود را از یک رابط وب امن مدیریت کنید.

پاسخ به کلیه سوالات شما در زمینه وب هاستینگ و مدیریت سرور در انجمن کامپایلر

One thought on “آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس

  1. رامین

    با سلام خدمت شما
    من تمام مراحل را انجام دادم ولی در نهایت با صفحه سفید برخورد کردم.
    اول اینکه با توجه به مراحل نصب nginx , mysql, PHP در سایت digitalocean من قادر به دیدن صفحه info.php نبودم که با تغییر مقدار پارامتر Listen از /var/run/php-fpm/php-fpm.sock به
    var/run/php5-fpm.sock و همچنین fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; به
    fastcgi_pass unix:/var/run/php5-fpm.sock; مشکل رو حل کردم. تمامی مراحل قبل از ایمن سازی نصب phpMyAdmin را هم انجام دادم ولی موفق به دیدن صفحه مدیریت نشدم. نکته دیگه اینکه برای دید صفحه سفید حتما باید در نوشتن عبارت phpMyAdmin حروف بزرگ و کوچک را رعایت کنم وگرنه خطا Not Found ظاهر میشه.
    *من در لینوکس خیلی تازه کارم
    ممنون میشم راهنمایی بفرمایید.
    با سپاس

    Reply

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *