نحوه نصب و ایمن سازی phpMyAdmin روی لینوکس

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

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

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

 

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

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

 

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

برای اطمینان از دارا بودن یک پایگاه منسجم و مستحکم برای تهیه این سیستم ، شما می بایست راهنمای راه اندازی اولیه سرور را برای 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 می باشد.

دستور پایین را اجرا نمایید :

cd ~ wget http://download.fedoraproject.org/pub/epel/7/x86_64/epel-release-7-1.noarch.rpm

1

2

cd ~

wget http://download.fedoraproject.org/pub/epel/7/x86_64/epel-release-7-1.noarch.rpm

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

sudo rpm -ivh epel-release*rm epel-release*

1sudo rpm -ivh epel-release*rm epel-release*

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

sudo yum install phpmyadmin

1sudo yum install phpmyadmin

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

sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html

1sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html

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

sudo systemctl restart php-fpm

1sudo systemctl restart php-fpm

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

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 در پوشه روت وارد شوید:

cd /usr/share/nginx/html ls -l

1

2

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

1

2

3

-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

1

2

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

1

2

3

4

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  خود وارد شوید با ارور ۴۰۴ روبرو خواهید شد.

http://server_domain_or_IP/phpMyAdmin

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

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

 

phpMyAdmin  در محل جدید در دسترس خواهد بود :

http://server_domain_or_IP/nothingtosee

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

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

 

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

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

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

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

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

برای تهیه یک پسورد، دستور پایین را تایپ نمایید :

openssl passwd

1openssl passwd

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

O5az.RSPzd.HE

1O5az.RSPzd.HE

این مقدار را رونوشـت نمایید و در فایل authentication که می بایست تهیه نمایید قرار دهید .

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

sudo nano /etc/nginx/pma_pass

1sudo nano /etc/nginx/pma_pass

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

demo:O5az.RSPzd.HE

1demo:O5az.RSPzd.HE

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

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

sudo nano /etc/nginx/conf.d/default.conf

1sudo nano /etc/nginx/conf.d/default.conf

در این فایل، می بایست یک قسمـت location تازه تهیه نمایید . که محل جدید رابط کاربری phpMyAdmin در آن معیـن گـردد .  (nothingtosee )

یک قسمـت در بلوک سرور و بیرون از سایـر بلوک ها تهیه نمایید .

server { . . . location / { try_file $uri $uri/ =404; } location /nothingtosee { } . . . }

1

2

3

4

5

6

7

8

9

10

11

12

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; } . . . }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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

1sudo systemctl restart nginx

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

http://server_domain_or_IP/nothingtosee

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

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

 

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

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

خب دوستان عزیز به پایان مقاله نحوه نصب و ایمن سازی phpMyAdmin روی لینوکس رسیدیم. از توجه و همراهی شما سپاسگزاریم . برای مشاهده اطلاعات بیشتر در مورد سرور اختصاصی کلیک کنید.