نصب phpMyAdmin در CentOS 7 و ایمن سازی آن
phpMyAdmin چیست؟
phpMyAdmin یک ابزار متن باز، مبتنی بر PHP برای مدیریت سرورهای MySQL و MariaDB بر روی یک رابط مبتنی بر وب است. بوسیلهی آن میتوانید انواع اعمال را روی پایگاه دادههای سایت خود، مدیریت سرورها، مدیریت کاربران و… انجام دهید.
در این آموزش، نحوهی نصب phpMyAdmin ، ایمن سازی و پیکربندی آن به همراه Apache در سرور سیستم عامل CentOS 7 را خواهید آموخت. ما این مجموعه را روی وب سرور Apache ، محبوب ترین وب سرور جهان، نصب خواهیم کرد.
phpMyAdmin به شما امکان می دهد تا با بانکهای اطلاعاتی MySQL تعامل داشته باشید، حسابهای کاربری و دسترسیهای خود را مدیریت کنید، دستورات SQL را اجرا کنید، انواع مختلف دادهها را وارد و خارج کنید و کارهای بیشتر دیگری انجام دهید.
سیستمهای مدیریت پایگاه داده مانند MYSQL و MariaDB پیش نیاز بخش قابل توجهی از وب سایتها و برنامههای کاربردی هستند. با این حال، برای همهی کاربران راحت نیست که دادههای خود را از مسیر دستورات اجرا کنند.
برای حل این مشکل، پروژهای به نام phpMyAdmin در قالب یک رابط مدیریت مبتنی بر وب، به عنوان جایگزین ارائه شد.
قبل از شروع، چند پیش نیاز را باید تدارک ببینیم.
پیش نیاز اول: برای اطمینان از داشتن زمینهی قوی، جهت راه اندازی این سیستم، باید تنظیمات اولیهی سرور را برای CentOS 7 درست کنید. قدم دیگر اینکه، نیاز دسترسی به سیستم عامل، با کاربر root یا غیر root با استفاده از دستورات sudo
را تامین کنید.
پیش نیاز دوم شما نصب بستهی LAMP (linux, Apache, MYSQL, php) روی Centos 7 سرورتان است. این بسته زمینهی ارائهی رابط phpMyAdmin است. همچنین ما از نرمافزار مدیریت پایگاه دادهی MariaDB استفاده خواهیم کرد. اگر هنوز بسته ی LAMP را روی سرور خود ندارید؛ آموزش ما در مورد نصب LAMP روی CentOS 7 را دنبال کنید.
هنگامی که سرور شما پیش نیازهای بالا را داشته باشد؛ شما می توانید قدمهای بعدی آموزش ما را بردارید.
مرحلهی اول: phpMyAdmin را نصب کنید.
با استفاده از مجموعه نرمافزاری LAMP که در اختیار داریم میتوانیم نصب phpMyAdmin را آغاز کنیم. اما متاسفانه phpMyAdmin در مخزن پیش فرض سیستم عامل CentOS 7 وجود ندارد.
به همین جهت برای به دست آوردن بستههای مورد نیاز، باید یک مخزن افزونه را به سیستم خود اضافه کنیم. مخزن (EPEL (Extra Packages for Enterprise Linux شامل بسیاری از افزونهها از جمله phpMyAdmin است.
مخزن EPEL را میتوانید با نصب بستهی ویژهی EPEL-release در اختیار سرورتان قرار دهید. این کار لیست مخزن شما را مجددا تنظیم میکند. سپس به شما امکان دسترسی به بستههای داخل EPEL را میدهد.
برای نصب این بسته، دستور زیر را تایپ کنید:
sudo yum install epel-release -y
اکنون که تنظیم مجدد EPEL انجام شد؛ میتوانید بستهی phphmyadmin را با استفاده از مدیریت بستههای yum نصب کنید:
sudo yum install phpmyadmin -y
تنظیمات پیکربندی Apache
اکنون نصب phpMyAdmin انجام میشود. پروندهی پیکربندی Apache، برای phpMyAdmin به طور خودکار، در حین نصب ایجاد میشود. طبق تنظیمات پیش فرض، تمام اتصالات به جز ارتباطات localhost رد میشوند. از آنجا که ما به صورت ریموت به phpMyAdmin دسترسی خواهیم داشت، باید فایل پیکربندی را تغییر داده و آدرسهای IP مجاز را تعیین کنیم. آنگاه مرحلهی نصب ما به درستی کامل خواهد شد.
اکنون، فایل را توسط ویرایشگر متن nano خود باز کنید. باید با وارد شدن به پروندهی پیکربندی phpMyAdmin Apache ، تغییرات لازم را اعمال کنیم:
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
داخل این فایل ما برخی از بلوکهای دایرکتوری را با قوانین و شروطی میبینیم که شرایط دسترسی ما برای دایرکتوری را توضیح میدهند. دو دایرکتوری مجزای تعریف شده وجود دارند و هرکدام پیکربندی هایی دارند. این دایرکتوریها هم برای Apache 2.2 ، هم برای Apache 2.4 که در حال اجرای آن هستیم؛ معتبر هستند.
در حال حاضر، این تتظیمات به نحوی پیکربندی شده اند که دسترسی به هر ارتباطی که از طرف خود سرور ایجاد نشده است را مانع میشوند. از آنجایی که اکنون ما به صورت ریموت روی سرور خود کار میکنیم؛ نیاز داریم بعضی خطوط تنظیمات را برای مشخص کردن ip خودمان تغییر دهیم. اگر آدرس IP کامپیوترتان را پیدا نمیکنید؛ نگران نباشید؛ همینجا به شما خواهیم آموخت.
آدرس ip خود را پیدا کنید!
برای تکمیل مراحل گذشته، باید ip رایانهای که از آن استفاده میکنید را بدانید. این یک نیاز امنیتی است؛ تا افراد غیرمجاز نتوانند به سرور شما متصل شوند.
توجه کنید که این آدرس ip VPS شما نیست؛ بلکه آدرس IP کامپیوتر شماست.
شما میتوانید به راحتی فقط با تایپ کردن عبارت “ip” در جستجوگر گوکل ادرس ip خودتان را مشاهده کنید.فقط توجه کنید که برای جلوگیری از نتیجهی اشتباه، به هیچ vpn یا برنامهای که ip شما را تغییر میدهد, متصل نباشید.
خب! اکنون که ip خود را میدانید؛ به سراغ ادامهی تنظیمات پیکربندی phpMyAdmin Apache میرویم:
آدرس ip هر خطی که Require ip 127.0.0.1
یا Allow from 127.0.0.1
دارد را به آدرس ip شخصیتان تغییر دهید. با کمک کلیدهای Ctrl + W میتوانید متن بالا را در صفحه جستجو کنید. چهار قسمت در پرونده مییابید که باید تغییر کنند:
Require ip your_workstation_IP_address
Allow from your_workstation_IP_address
Require ip your_workstation_IP_address
Allow from your_workstation_IP_address
توجه: اگر میخواهید از ip ها یا مکانهای مختلف به phpMyAdmin خود دسترسی پیدا کنید؛ یا اگر کاربر سرورهای داینامیک هستید؛ خطوط دارای Allow و Deny را پاک کنید.
پس از اعمال تغییرات با کلیدهای Cntl + y + Enter پرونده را ذخیره کنید و خارج شوید.
پس از اتمام تغییرات، وب سرور Apache را با دستور زیر مجددا راه اندازی کنید تا تغییرات شما اعمال شوند:
sudo systemctl restart httpd.service
به phpMyAdmin خوش آمدید.
اکنون نصب phpMyAdmin ما ممکن شده است. برای دسترسی به رابط خود، در مرورگر وبتان به نام دامنهی سرورتان(DNS) و یا ip خودتان مراجعه کنید و به دنبال آن phpMyAdmin را تایپ کنید:
http://server_domain_or_IP/phpMyAdmin
برای ورود به سیستم، از نام کاربری و رمز عبور معتبر MariaDB خود استفاده کنید. کاربر root و رمز عبور MariaDB انتخاب خوبی برای شروع است؛ زیرا شما به راحتی میتوانید به رابط administrative دسترسی داشته باشید.
نکته: اگر نام کاربری و رمز عبور را قبلا تنظیم نکرده اید؛ به مرحلهی پنجم مقالهی آموزش نصب LAMP روی CentOS 7 مراجعه نمایید.
پس از ورود به سیستم، داشبورد phpMyAdmin را مشاهده خواهید کرد، که چیزی شبیه به این خواهد بود:
مرحلهی دوم: phpMyAdmin خود را ایمن کنید.
phpMyAdmin نصب شده روی سرور ما، اکنون باید کاملا قابل استفاده باشد. با این حال با نصب یک رابط وب، سیستم MYSQL خود را بیرون از دنیای شخصی اش قرار داده ایم.
حتی با وجود ظاهر شدن صفحهی تائید اعتبار، این محیط، امن نیست. به دلیل محبوبیت phpMyAdmin و حجم زیاد دادههایی که به آنها دسترسی پیدا میکنید؛ نصب این برنامهها شما را در معرض حملهی مهاجمان قرار میدهد.
اما دو استراتژی اصلی مد نظر داریم که برای کاهش احتمال در معرض خطر قرار گرفتن اتخاذ میکنیم. ما مکان رابط را از /phpmyadmin
به جای دیگری تغییر میدهیم. همچنین یک صفحه احراز هویت(authentication) ابتدای همهی مراحل، حتی قبل از ورود به سیستم phpmyadmin، در وب سرور خود ایجاد خواهیم کرد.
تغییر موقعیت دسترسی برنامه:
به منظور اینکه سرور وب Apache با phpMyAdmin کار کند، فایل پیکربندی phpMyAdmin Apache ما از یک نام مستعار برای اشاره به محل دایرکتوری فایلها استفاده میکند.
برای تغییر URL جایی که میتوان به رابط phpMyAdmin دسترسی داشت، ما فقط باید نام مستعار را تغییر دهیم. اکنون پرونده پیکربندی phpMyAdmin Apache را با دستور زیر باز کنید:
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
در بالای پرونده، دو خط مشاهده میکنید:
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
این دو خط، نامهای مستعار ما هستند، به این معنی که اگر به نام دامنه سایت یا آدرس IP خود مراجعه کنیم و به دنبال آن / phpMyAdmin
را وارد کنیم؛ به محتوای داخل usr / share / phpMyAdmin
دسترسی خواهیم داشت.
ما میخواهیم این نامهای مستعار را تغییر دهیم. زیرا آنها به شدت توسط ربات ها و کاربران مخرب هدف تهاجم قرار میگیرند. در عوض، ما باید نام مستعار شخصی خودمان را انتخاب کنیم. نامی که به راحتی به خاطر سپرده شود، اما حدس زدن آن آسان نباشد. این نام نباید برگرفته از نشانی اینترنتی URL شما باشد. ترجیح ما گزینههای کاملا بی ربط و دور از ذهن است.
برای اعمال تغییرات در نظر گرفته شده، باید خطوط موجود را حذف کنیم یا تغییر دهیم و اطلاعات خودمان را اضافه کنیم:
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
Alias /nothingtosee /usr/share/phpMyAdmin
پس از اتمام تغییرات، فایل را با Ctrl + y + Enter ذخیره کنید و ببندید.
برای اجرای تغییرات، سرویس وب خود را با دستور زیر مجدد راه اندازی کنید:
sudo systemctl restart httpd.service
حالا اگر به مکان قبلی نصب phpMyAdmin خود بروید، خطای ۴۰۴ را دریافت خواهید کرد:
http://server_domain_or_IP/phpMyAdmin
اما، رابط phpMyAdmin شما در مکان جدیدی که انتخاب کردیم در دسترس خواهد بود:
http://server_domain_or_IP/nothingtosee
نصب یک دروازهی تائید هویت در وب سرور
ویژگی بعدی که ما برای امنیت نصب phpMyAdmin خود میخواستیم، اعلان تأیید اعتبار کاربر است؛ که قبل از دیدن صفحه ورود به phpMyAdmin ، لازم است از کاربر درخواست تائید هویت کند.
دو روش برای این امر وجود دارد.
روش اول:
خوشبختانه اکثر سرورهای وب از جمله Apache، این قابلیت را به صورت پیش فرض ارائه میدهند. برای استفاده از یک فایل اجازهی ورود، فقط نیاز به تغییرفایل پیکربندی Apache داریم.
فایل پیکربندی phpMyAdmin Apache را دوباره در ویرایشگر متن خود باز کنید:
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
داخل هر بلوک فهرست دایرکتوری، بیرون خط دستور بلوک یعنی: / usr / share / phpMyAdmin
، باید دستورالعمل نادیده گرفتن محدودیتها یا همان AllowOverride All
را اضافه کنیم. شبیه زیر خواهد شد:
<Directory>
/usr/share/phpMyAdmin/>
AllowOverride All
<IfModule mod_authz_core.c>
</Directory>
با این کار، به خودمان دسترسی میدهیم؛ جزئیات پیکربندی جدید را در پروندهای به نام .htaccess
که در فهرست خود phpMyAdmin قرار دارد مشخص کنیم. ما از این پرونده برای تنظیم نحوه ی تائید هویت خود استفاده خواهیم کرد.
پس از اتمام تنظیمات، پرونده را ذخیره کنید و ببندید.
برای اعمال این تغییرات، سرویس وب را با استفاده از دستور زیر، مجددا راه اندازی کنید:
sudo systemctl restart httpd.service
یک پرونده .htaccess ایجاد کنید.
اکنون Apache به دنبال پروندهای به نام .htaccess
در فهرست / usr / share / phpMyAdmin
است. اگر یک پرونده با این نام پیدا کند، از دستورالعملهای موجود در آن برای تکمیل اطلاعات پیکربندی قبلی خود استفاده میکند.
قدم بعدی ما ایجاد پرونده .htaccess
در آن مسیر است. برای انجام این کار از ویرایشگر متن nano استفاده کنید:
sudo nano /usr/share/phpMyAdmin/.htaccess
در این پرونده باید اطلاعات زیر را عینا وارد کنید:
AuthType Basic
AuthName "Admin Login"
AuthUserFile /etc/httpd/pma_pass
Require valid-user
بیایید با هم مفهوم هریک از این خطوط را بشکافیم:
AuthType Basic: در این خط، نوع تائید هویت مورد نظر ما مشخص میشود. این قسمت تائید اعتبار رمز عبور را با استفاده از یک فایل رمز عبور پیاده سازی میکند.
AuthNam:: این قسمت یک پیام برای کادر گفتگو قرار میدهد. شما باید پیام این قسمت را عمومی بگذارید تا کاربران غیرمجاز از ایکه چه اطلاعاتی را محافظت میکنید مطلع نشوند.
AuthUserFile: این قسمت مکان رمزعبوری که برای احراز هویت استفاده میکنید را تعیین میکند. این موقعیت مکانی باید خارج از دایرکتوریهایی که ارائه شده است مشخص شود. این پرونده را در ادامه خیلی سریع ایجاد خواهیم کرد.
Require valid-user: این قسمت مشخص میکند که فقط کاربران معتبر میتوانند به این منبع دسترسی داشته باشند. در واقع این قسمت، ورود کاربران غیر مجاز را متوقف میکند.
پس از پایان وارد کردن اطلاعات، فایل را ذخیره کرده و ببندید.
پرونده رمزعبور را برای تائید هویت ایجاد کنید.
اکنون که ما از طریق استفاده از دستورالعمل AuthUserFile در پرونده .htaccess
، موقعیت مکانی برای فایل رمز عبور خود را مشخص کردیم، باید فایل رمز عبور را ایجاد و معرفی کنیم.
این امر میتواند با استفاده از یکی از ابزارهای Apache به نام htpasswd انجام شود. با استفاده از دستور زیر فایل رمزعبور خود را منتقل میکنیم به مکانی که میخواهیم آن فایل و نام کاربری ای که جزئیات تائید اعتبار را در بر میگیرند؛ به آنجا منتقل شوند:
sudo htpasswd -c /etc/httpd/pma_pass username
فلگ -c
نشان میدهد که این دستور پرونده اولیه را ایجاد میکند. محل دایرکتوری مسیر و نام پروندهای است که برای خود پرونده استفاده میشود. نام کاربری، اولین شخصی است که میخواهیم اضافه کنیم. در اینجا ما در حال افزودن یک کاربر به نام abbas هستیم. از شما خواسته میشود رمزعبوری را برای کاربر تعیین کرده و تأیید کنید.
اگر میخواهید کاربران دیگر را برای تأیید اعتبار هویت اضافه کنید، میتوانید دوباره با همان دستور، بدون فلگ -c
و با یک نام کاربری جدید اقدام کنید:
sudo htpasswd /etc/httpd/pma_pass seconduser
با ایجاد فایل رمز عبور، یک دروازه تأیید هویت اجرا شده است و باید دفعهی دیگر که از سایت خود بازدید میکنیم، گزینهی درخواست رمزعبور را ببینیم:
http: // server_domain_or_IP / somethingtosee
هنگامی که هویت معتبر خود را وارد کنید، به صفحه عادی ورود به سیستم phpMyAdmin منتقل میشوید. این لایهی محافظت که اکنون اضافه کردیم؛ علاوه بر منافع امنیتی دیگر، به محافظت از پروندههای MySQL در مقابل اقدامات احراز هویت خطرناک جعلی کمک میکند.
روش دوم:
برای ایجاد یک لایهی امنیتی اضافی، با تنظیم یک سیستم تشخیص هویت اساسی، از فهرست phpMyAdmin خود محافظت میکنیم.
مرحلهی اول: با ایجاد یک فایل احراز هویت جدید با استفاده از ابزار .htpasswd
شروع میکنیم. ما پرونده .htpasswd
را در فهرست / etc / phpMyAdmin
با استفاده از دستورات زیر ذخیره خواهیم کرد:
sudo htpasswd -c /etc/phpMyAdmin/.htpasswd abbas
در این مثال، ما در حال ایجاد یک کاربر به نام abbas هستیم. شما میتوانید نام کاربری مورد نظر خود را انتخاب کنید.
دستور فوق و در ادامه، تکمیل موارد زیر باعث میشود رمز عبور کاربر را وارد و تأیید کنید.
New password:
Re-type new password:
Adding password for user admin
در آینده، اگر نیاز داشتید کاربران دیگری اضافه کنید، از همان دستور بدون فلگ -c
استفاده کنید. برای مثال:
sudo htpasswd /etc/phpMyAdmin/.htpasswd admin2
مرحلهی بعدی: پیکربندی Apache برای محافظت از پسورد در فهرست phpMyAdmin و استفاده از پروندهی .htpasswd
است. برای این کار پروندهی phpMyAdmin.conf
را که به طور خودکار در حین نصب phpMyAdmin ایجاد شده است با استفاده از دستور زیر باز کنید:
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
و سپس خطوط زیر را در آنجا وارد کنید:
/etc/httpd/conf.d/phpMyAdmin.conf
AddDefaultCharset UTF-8
Options +FollowSymLinks +Multiviews +Indexes
AllowOverride None
AuthType basic
AuthName "Authentication Required"
AuthUserFile /etc/phpMyAdmin/.htpasswd
Require valid-user
فایل را ذخیره کنید و سرویس Apache را با دستور زیر مجدداً راه اندازی کنید تا تغییرات اعمال شوند:
sudo systemctl restart httpd
هنگام دسترسی به phpMyAdmin ، بعد از زدن دستور زیر از شما خواسته میشود تا مشخصات معتبر ورود به شناسهی کاربری را که قبلاً خودتان ایجاد کرده اید وارد کنید:
https://your_domain_or_ip_address/phpmyadmin
پایان نصب و ایمن سازی
تبریک میگوییم، شما phpMyAdmin را با موفقیت روی سیستم عامل CentOS 7 خود نصب کردید. اکنون می توانید پایگاه داده MySQL خود را از یک رابط وب منطقی و ایمن مدیریت کنید. این رابط کاربری، بیشتر عملکردهایی که از طریق دستورهای MySQL در دسترس هستند را در اختیار ما قرار میدهد. شما میتوانید پایگاه دادهها و اسکیما را مشاهده کنید، درخواستها را اجرا کنید و دادهها و ساختارهای جدیدی ایجاد کنید.
روی کمک ما حساب کنید!
در هر مرحله از نصب phpMyAdmin با هر مشکلی برخورد کردید، هر تلاش ناموفقی داشتید، هر سوالی داشتید و هرجا نیاز به کمک داشتید؛ آنلاین سرور پشتیبان شماست و میتوانید از ایــنـجـا کمک بگیرید.
ارسال نظر