اطلاعیه

بستن
No announcement yet.

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

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    آموزش نصب و ایمن سازی 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/communi...ck-on-centos-7

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

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

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

    کد PHP:
    cd ~
    wget http://download.fedoraproject.org/pub/epel/7/x86_64/epel-release-7-1.noarch.rpm 
    سپس می توانید پکیجی که به سادگی سیستم شما را برای دسترسی به مخازن EPEL پیکربندی کرده ، نصب کنید . پس از آن، فایل پکیج را حذف کنید، چون دیگر به آن نیازی نخواهید داشت :

    کد PHP:
    sudo rpm -ivh epel-release*rm epel-release


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

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

    کد PHP:
    sudo ln -/usr/share/phpMyAdmin /usr/share/nginx/html 
    برای اطمینان از لود شدن ماژول های PHP نصب شده ، پردازنده PHP خود را با استفاده از دستور زیر ری استارت کنید :

    کد PHP:
    sudo systemctl restart php-fpm 
    به منظور دسترسی به رابط کاربری برای ادامه مراحل نصب ، این آدرس را در مرورگر خود تایپ کنید :

    کد PHP:
    http://server_domain_or_IP/phpMyAdmin 
    به جای server_domain_or_IP نام دامنه یا IP آدرس سرور خود را قرار دهید :

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	login-285x300.png نمایش ها:	1 اندازه:	14.6 KB شناسه:	18372

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

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	main_page-300x140.png نمایش ها:	1 اندازه:	16.9 KB شناسه:	18373
    نویسنده سپیده محراب
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-12-2020, 12:18 AM.

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

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

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

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

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

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

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

    کد PHP:
    cd /usr/share/nginx/html
    ls 
    -
    کد PHP:
    -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 تغییر یافته است . برای انجام این کار، با استفاده از دستور زیر نام لینک را تغییر دهید :

    کد PHP:
    sudo mv phpMyAdmin nothingtosee
    ls 
    -
    کد PHP:
    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 خود وارد شوید با ارور ۴۰۴ روبرو خواهید شد.

    کد PHP:
    http://server_domain_or_IP/phpMyAdmin 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	404_error-1.png نمایش ها:	1 اندازه:	3.9 KB شناسه:	17061

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

    کد PHP:
    http://server_domain_or_IP/nothingtosee 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	login-1-285x300.png نمایش ها:	1 اندازه:	14.6 KB شناسه:	17062

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

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

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

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

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

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

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

    کد PHP:
    O5az.RSPzd.HE 
    این مقدار را کپی کنید و در فایل authentication که باید ایجاد کنید قرار دهید .

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

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

    کد PHP:
    demo:O5az.RSPzd.HE 
    سپس ذخیره کرده و از فایل خارج شوید.

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

    کد PHP:
    sudo nano /etc/nginx/conf.d/default.conf 
    در این فایل، باید یک بخش location جدید ایجاد کنید . که مکان جدید رابط کاربری phpMyAdmin در آن مشخص شود . (nothingtosee )

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

    کد PHP:
    server {
        . . .

        
    location / {
            
    try_file $uri $uri/ =404;
        }

        
    location /nothingtosee {
        }

        . . .



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

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

    کد PHP:
    server {
        . . .

        
    location / {
            
    try_file $uri $uri/ =404;
        }

        
    location /nothingtosee {
            
    auth_basic "Admin Login";
            
    auth_basic_user_file /etc/nginx/pma_pass;
        }

        . . .


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

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

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

    کد PHP:
    http://server_domain_or_IP/nothingtosee 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	auth_gate-300x235.png نمایش ها:	1 اندازه:	18.9 KB شناسه:	17063

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

    اکنون می توانید دیتابیس های MySQL خود را از یک رابط وب امن مدیریت کنید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-12-2020, 12:18 AM.

    کامنت

    درباره انجمن منطقه لینوکسی ها

    انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

    شبکه های اجتماعی

    ایمیل مدیریت

    Habili@linux-zone.org

    در حال انجام ...
    X