آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس برای سرور مجازی
|
۱۹-۲-۱۳۹۵, ۰۴:۴۸ عصر
ارسال: #1
|
|||
|
|||
آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس برای سرور مجازی
آموزش نصب و ایمن سازی phpMyAdmin روی لینوکس برای سرور مجازی
سیستم های مدیریت پایگاه داده رابطه ای مانند MySQL و MariaDB برای بخش قابل توجهی از وب سایت ها و برنامه های کاربردی مورد نیاز است. با این حال، تمام کاربران با مدیریت داده های خود از خط فرمان احساس راحتی نمی کنند. برای حل این مشکل، یک پروژه به نام phpMyAdmin به منظور ارائه یک جایگزین در قالب یک رابط مدیریت مبتنی بر وب ساخته شد. در این مقاله، ما چگونگی نصب و ایمن سازی تنظیمات phpMyAdmin را بر روی دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید. لینوکس CentOS 7 و وب سرور nginx آموزش خواهیم داد. وب سرور nginx دارای عملکرد مناسبی بوده و در مقابل لود و ترافیک سنگین قدرت بیشتری نسبت به سایر وب سرور ها دارد. پیش نیاز دوم نصب LEMP (Linux ، Nginx، MariaDB، و PHP) بر روی لینوکس CentOS 7 می باشد. این پلت فرمی است که ما برای رابط phpMyAdmin از آن استفاده خواهیم کرد (MariaDB نرم افزار مدیریت دیتابیسی است که ما قصد مدیریت آن را داریم ) . اگر LEMP بر روی سرور شما نصب نیست، برای نصب آن مقاله زیر را مطالعه کنید : دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید. مرحله اول – نصب phpMyAdmin با استفاده از پلت فرم LEMP می توانید ، نصب نرم افزار phpMyAdmin را آغاز کنید. متاسفانه، phpMyAdmin به طور پیش فرض در مخزن لینوکس CentOS 7 موجود نیست. برای دریافت پکیج های مورد نیاز ، باید یک مخزن دیگر به سیستم خود اضافه کنید. مخزن EPEL شامل پکیج های بسیاری، از جمله پکیج phpMyAdmin است. دستور زیر را اجرا کنید : cd ~ wget دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید. سپس می توانید پکیجی که به سادگی سیستم شما را برای دسترسی به مخازن EPEL پیکربندی کرده ، نصب کنید . پس از آن، فایل پکیج را حذف کنید، چون دیگر به آن نیازی نخواهید داشت : sudo rpm -ivh epel-release*rm epel-release* مخزن EPEL پیکربندی شده است و می توانید پکیج phpMyAdmin را با استفاده از دستور yum نصب کنید: sudo yum install phpmyadmin نصب و راه اندازی تکمیل خواهد شد. برای پیدا کردن و ارائه خدمات درست وب سرور Nginx ، به فایل های phpMyAdmin فقط باید با استفاده از دستور زیر یک لینک نمادین از فایل های نصبی در سند Nginx موجود در دایرکتوری روت خود ایجاد کنید : sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html برای اطمینان از لود شدن ماژول های PHP نصب شده ، پردازنده PHP خود را با استفاده از دستور زیر ری استارت کنید: sudo systemctl restart php-fpm به منظور دسترسی به رابط کاربری برای ادامه مراحل نصب ، این آدرس را در مرورگر خود تایپ کنید : http://server_domain_or_IP/phpMyAdmin به جای server_domain_or_IP نام دامنه یا IP آدرس سرور خود را قرار دهید . برای ورود به سیستم، از نام کاربری و رمز عبور یک کاربر معتبر MariaDB استفاده کنی. مرحله دوم – ایمن سازی phpMyAdmin phpMyAdmin نصب شده بر روی سرور شما باید در این مرحله به طور کامل قابل استفاده باشد. با این حال، با نصب یک رابط وب، سیستم MySQL خود را رو به سوی جهان خارج قرار داده اید. یکی از دلایل محبوبیت phpMyAdmin در دسترس قرار دادن حجم زیادی از اطلاعات است . چنین سیستم هایی معمولا هدف حمله اتکر ها قرار میگیرند . ما برای کاهش احتمال خطر، ۲ استراتژی ساده اجرا میکنیم . 1- تغییر مکان رابط کاربری از پوشه /phpMyAdmin به محلی دیگر برای مقابله با حملات خودکار brute-force . 2- ایجاد یک صفحه ورودی تائید هویت در سطح وب سرور، قبل از صفحه login یا ورود به phpMyAdmin تغییر مکان دسترسی به برنامه : در مرحله قبل یک لینک نمادین از فایل های نصبی در سند Nginx موجود در دایرکتوری روت ایجاد شد. برای تغییر URL رابط کاربری phpMyAdmin ، به سادگی لینک نمادین را rename کنید. به سند nginx در پوشه روت وارد شوید: cd /usr/share/nginx/html ls -l -rw-r--r-- 1 root root 537 Aug 5 08:15 50x.html -rw-r--r-- 1 root root 612 Aug 5 08:15 index.html lrwxrwxrwx 1 root root 21 Aug 6 17:29 phpMyAdmin -> /usr/share/phpMyAdmin همانطور که می بینید، یک لینک نمادین به نام phpMyAdmin در این شاخه وجود دارد. می توانید نام لینک را به دلخواه تغییر دهید .با این کار این نقطه دسترسی را در مقابل حملات hard-coded پنهان خواهید کرد. نامی انتخاب کنید که هدف مکان را مشخص نکند . در این آموزش نام جدید به /nothingtosee تغییر یافته است . برای انجام این کار، با استفاده از دستور زیر نام لینک را تغییر دهید : sudo mv phpMyAdmin nothingtosee ls -l total 8 -rw-r--r-- 1 root root 537 Aug 5 08:15 50x.html -rw-r--r-- 1 root root 612 Aug 5 08:15 index.html lrwxrwxrwx 1 root root 21 Aug 6 17:29 nothingtosee -> /usr/share/phpMyAdmin حال اگر به مکان قبلی phpMyAdmin خود وارد شوید با ارور ۴۰۴ روبرو خواهید شد. phpMyAdmin در مکان جدید در دسترس خواهد بود : http://server_domain_or_IP/nothingtosee راه اندازی یک ورودی تائید هویت برای وب سرور: ویژگی بعدی ایجاد یک صفحه تائید هویت است که کاربر قبل از وارد شدن به صفحه ورودی phpMyAdmin به آن منتقل میشود. خوشبختانه، اکثر وب سرورها ، از جمله Nginx، این قابلیت را به طور پیش فرض دارند. فقط باید در فایل کانفیگ Nginx تغییرات جزئی ایجاد شود . قبل از این کار، برای ذخیره شناسه های معتبر باید یک فایل password ایجاد کنید .در Nginx پسورد باید با استفاده از تابع crypt() رمزگذاری شود. مجموعه OpenSSL، که باید در حال حاضر بر روی سرور شما نصب شده باشد، این قابلیت را دارا است . برای ایجاد یک پسورد رمزگذاری شده این دستور را تایپ کنید : برای ایجاد یک پسورد، دستور زیر را تایپ کنید: openssl passwd به دلخواه خود پسوردی تعیین کنید . سپس این ابزار نسخه رمزگذاری شده پسورد شما را به صورت چیزی شبیه به متن زیر نشان خواهد داد : O5az.RSPzd.HE این مقدار را کپی کنید و در فایل authentication که باید ایجاد کنید قرار دهید . حال باید یک فایل authentication ایجاد کنید. در این آموزش نام pma_pass برای این فایل انتخاب شده و در دایرکتوری Nginx قرار میگیرد. sudo nano /etc/nginx/pma_pass در این فایل ابتدا باید نام کاربری مورد نظر خود را وارد کرده و به دنبال آن ، بعد از علامت ( : ) پسورد رمزگذاری شده را وارد کنید . برای مثال : demo:O5az.RSPzd.HE سپس ذخیره کرده و از فایل خارج شوید. حال باید در فایل کانفیگ nginx تغییراتی ایجاد کنیم . فایل را با اجرای دستور زیر باز کنید : sudo nano /etc/nginx/conf.d/default.conf در این فایل، باید یک بخش location جدید ایجاد کنید . که مکان جدید رابط کاربری phpMyAdmin در آن مشخص شود . (nothingtosee ) یک بخش در بلوک سرور و خارج از سایر بلوک ها ایجاد کنید . server { . . . location / { try_file $uri $uri/ =404; } location /nothingtosee { } . . . } در این بلوک باید به منظور نمایش دادن پیغام تائید هویت به کاربران یک مقدار برای دستور auth_basic تعریف کنید . نباید به کاربران نشان دهید که از چه چیز محافظت میکنید بنابراین بهتر است به جزئیات اشاره نکنید . برای مثال در این آموزش از ” Admin Login ” استفاده شده است . سپس باید با استفاده از دستور زیر auth_basic_user_file وب سرور را از ایجاد فایل authentication باخبر کنیم . nginx اطلاعات وارد شده توسط کاربران را با مقادیر وارد شده در فایل های مشخص مطابقت خواهد داد . server { . . . location / { try_file $uri $uri/ =404; } location /nothingtosee { auth_basic "Admin Login"; auth_basic_user_file /etc/nginx/pma_pass; } . . . } پس از انجام این تغییرات فایل را ذخیره کرده و خارج شوید. برای پیاده سازی این تغییرات باید وب سرور را ری استارت کنیم . sudo systemctl restart nginx حال اگر آدرس جدید phpMyAdmin را در مرورگر خود وارد کنید (پس از پاک کردن کش و یا استفاده از یک مرورگر دیگر)، نام کاربری و پسوردی که در فایل pma_pass وارد کرده اید از شما خواسته میشود . http://server_domain_or_IP/nothingtosee پس از وارد کردن اطلاعات کاربری فوق ، به صفحه ی login عادی phpMyAdmin وارد می شوید. اکنون می توانید دیتابیس های MySQL خود را از یک رابط وب امن مدیریت کنید. |
|||
|
|
کاربرانِ درحال بازدید از این موضوع: 1 مهمان