سرور مجازی آراز سرور مجازی آراز
آموزش سرور و هاستآموزش شبکه و امنیت

افزایش امنیت MySQL با 11 روش کاربردی و اصولی

افزایش امنیت MySQL چگونه انجام می‌شود؟ اصلا MySQL چیست؟ در مجموعه منابع متن باز تقریبا هیچ فناوری به اندازه MySQL RDBMS از محبوبیت برخوردار نیست. در همین راستا هکرها نیز از راه‌های متنوعی استفاده می‌کنند تا بتوانند به اطلاعات شما در MySQL دست یابند. در این مقاله به منظور افزایش امنیت داده‌ها و اطلاعات شما و جلوگیری از سواستفاده کاربران غیر مجاز، می‌خواهیم شما را با بهترین روش‌های افزایش امنیت MySQL آشنا کنیم؛ با ما همراه باشید.

به دنبال میزبان و سروری هستید که بتواند به بهترین شکل از امنیت داده‌ها و اطلاعات شما محافظت کند؟ ابرآراز بهترین انتخاب شماست. سرویئ‌های ابری آراز با پشتیبانی 24 ساعته و رایگان توسط متخصصین دواپس و فنی می‌تواند به شما تضمین دهد که اطلاعات شما در دسترس افراد دیگر قرار نمی‌گیرد. اگر قصد خرید سرور مجازی ارزان و پرسرعت دارید، می‌توانید وارد سایت ابرآراز شده و یا با شماره 86084594-021 تماس بگیرید.

MySQL چیست؟

پیش از اینکه به سراغ موضوع اصلی مقاله برویم و به این سوال پاسخ دهیم که بهترین راه‌های افزایش امنیت MySQL چیستند، باید بدانیم که اصلا MySQL چه معنا و مفهومی دارد.

سرور مجازی آراز سرور مجازی آراز

به طور کلی، mysql یکی از محبوب‌ترین و پر استفاده‌ترین سیستم‌های مدیریت دیتابیس است که به صورت ترکیبی با زبان PHP نیز مورد استفاده قرار می‌گیرد. MySQL یک سیستم مدیریت پایگاه داده است که به صورت منبع باز و با مدل کلاینت – سرور خدمات ارائه می‌دهد. یکی از مهم‌ترین نکات در مورد MySQL این است که قابلیت اجرایی در تمامی سیستم عامل‌ها مانند لینوکس، یونیکس و ویندوز را دارد.

دیتابیس چیست؟

در قسمت‌های قبلی از دیتابیس نام بردیم؛ می‌دانید این عبارت چه معنایی دارد؟ به طور کلی، به مجموعه ای از اطلاعات که دارای ساختار منظمی باشند، بانک اطلاعاتی، پایگاه داده یا دیتابیس گفته می‌شود. پایگاه داده یا دیتابیس‌ها در یک قالب قابل خواندن و دسترسی برای رایانه‌ها و دستگاه‌ها ذخیره می‌شوند. کاربرد دیتابیس‌ها گسترده و عمومی است. این عبارت در لغت به معنای پایگاه داده و در تعریف اصلی به مجموعه سازمان یافته‌ای از اطلاعات گفته می‌شود.

پیشنهاد مطالعه: از آنجایی که صحبت بیشتر در مورد دیتابیس در این مقاله نمی‌گنجد، پیشنهاد می‌کنیم با مراجعه به وبلاگ ابرآراز و مطالعه مقاله دیتابیس چیست اطلاعات مفید و کاربردی در مورد اینکه این عبارت چه معنا و مفهومی دارد، کسب کنید.

استفاده از Secure MySQL Installer

بسته mysql-server با ابزار از پیش پیکربندی شده‌ای به نام mysql_secure_installation به شما امکان می‌دهد تا سرور MySQL خود را از یک نقطه شروع امن راه‌اندازی کنید. این کار با حذف کاربران ناشناس و قبول امکان تعیین خط مشی قدرت رمز عبور انجام می‌شود. ابزار mysql_secure_installation که از آن نام بردیم، یک پوسته اسکریپت موجود در سیستم‌های یونیکس است که به شما امکان می‌دهد تا نصب MySQL را با استفاده از روش‌های زیر به ایمن‌ترین شکل ممکن انجام دهید؛

  • تنظیم یک رمز عبور ایمن برای حساب‌های ریشه
  • حذف اکانت‌های روت قابل دسترسی در خارج از میزبان محلی
  • حذف حساب کاربران ناشناس
  • حذف دیتابیس و پایگاه داده تست

فرآیند امنیتی را با اجرای این ابزار بلافاصله پس از نصب mysql-server شروع کنید.

  • برای فراخوانی ابزار می‌توانید از دستور زیر استفاده کنید:
$ sudo mysql_secure_installation
  • پس از اینکه راه‌اندازی MySQL آغاز شد، ابزار از شما می‌پرسد که آیا تمایل دارید که افزونه اعتبارسنجی رمز عبور را که برای آزمایش رمزهای عبور و بهبود امنیت استفاده می‌شود، فعال کنید یا خیر. پیشنهاد می‌کنیم که حتما از این قابلیت استفاده کنید.
  • پس از فعال کردن افزونه رمز عبور، خط مشی اعتبارسنجی رمز عبور خود را بر اساس میزان قدرت رمزهای عبور مورد نظر مشخص کنید.
  • در مرحله بعدی باید کاربران ناشناس را به طور کامل حذف کنید. این مورد از اهمیت بالایی برخوردار است زیرا مهاجمان عموما از کاربران ناشناس برای دسترسی به سرور پایگاه داده استفاده کنند.
  • غیرفعال‌سازی ورود به سیستم ریشه را از راه دور
  • حذف پایگاه داده آزمایشی ایجاد شده در مراحل نصب سرور mysql؛ این دیتابیس برای اهداف آزمایشی ساخته شده و اهمیت چندانی ندارد.
  • دانلود مجدد  جداول امتیازات؛ این کار برای اطمینان از اعمال شدن تمامی تغییرات انجام می‌شود.

تغییر کاربر root برای افزایش امنیت MySQL

به صورت پیش فرض، سرور MySQL با یک حساب کاربری superuser/admin از پیش تعریف شده ارائه می‌شود که می‌تواند به تمامی امتیازان و عملکردهای دیتابیس و کاربران آن دسترسی داشته باشد. به همین دلیل، قفل کردن و ایمن کردن حساب ریشه از اهمیت بسیار بالایی برخوردار است. دلیل این اهمیت چیست؟ در اکثریت موارد، هکرها حساب ریشه را به دلیل دسترسی کاملی که به دیتابیس دارد، در سرور MySQL، هدف قرار می‌دهند.

زیرا مهاجمان معمولاً حساب ریشه را در سرور MySQL هدف قرار می‌دهند، زیرا این پتانسیل را دارد که دسترسی کامل به پایگاه‌های داده و کاربران پایگاه داده را فراهم کند. برای ایمن سازی کاربر root، اولین گام این است که نام کاربری را از root به نامی غیرقابل پیش‌بینی تغییر دهید. همچنین پیشنهاد می‌کنیم که رمز عبور حساب root خود را به شکل مرتب تغییر دهید.

ورود به سرور MySQL

برای دستیابی به مورد گفته شده باید وارد سرور MySQL  شوید؛ برای این کار می‌توانید از دستور زیر استفاده کنید:

sudo mysql -u root

تغییر نام کاربری حساب “root”

با اجرای دستور زیر می‌توانید نام کاربری حساب “root” خود را تغییر دهید:

rename user ‘root’@’localhost' to ‘<new-username’@’localhost’;

تغییر رمز عبور حساب ریشه برای افزایش امنیت MySQL

در این مرحله از کار باید رمز عبور حساب ریشه خود را ایمن کنید. اگر افزونه تأیید رمز عبور را در طول فرآیند نصب ایمن فعال کرده‌اید، باید رمز عبوری انتخاب کنید که از نظر قدرت، مطابق با الزامات خط‌مشی باشد. برای این کار از این خط استفاده کنید:

ALTER USER ‘example_username’@’localhost’ IDENTIFIED BY ‘<new-password>’;

در مرحله بعدی پیشنهاد مي‌کنیم تا جدول امتیازات را مجددا بارگذاری کنید تا مطمئن شوید که تمامی دستورات ذخیره شده و با دستور زیر فعال می‌شوند.

flush privileges;

برای اینکه اطمینان حاصل کنید که آیا نام کاربری و رمز عبور root تغییر کرده است یا خیر، باید کوئری زیر را اجرا کنید:

use mysql;
select user,host,authentication_string from mysql.user;

بخش زیر، کاربر ذخیره شده در دیتابیس mysql را نمایش می‌دهد؛ در نتیجه باید تغییرات ایجاد شده را منعکس کند.

+------------------+-----------+-------------------------------------------+
| user | host | authentication_string |
+------------------+-----------+-------------------------------------------+
| example_user | localhost | *A2550B00C6DF81DACE33551E8293462F6CAE33DA |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| debian-sys-maint | localhost | *241DC5A20F017D55EE82E46E7996784ED4A5CD8A |
+------------------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)

بهترین راه‌ها برای افزایش امنیت MySQL

حال در ادامه 11 مورد از بهترین روش‌های افزایش امنیت MySQL را با هم بررسی می‌کنیم؛ با ما همراه باشید.

1. drop کردن پایگاه داده تست

در ابتدای کار، دیتابیس آزمایشی نصب شده توسط بسته MySQL Server به عنوان یک بخش اصلی فرآیند mysql_install_db برای تمامی کاربران می‌تواند در دسترس قرار بگیرد. در نتیجه بهترین راه برای دسترسی هکرهاست. پیشنهاد می‌کنیم در همان مراحل ابتدایی بلافاصله پس از نصب، آن را حذف کنید.

2. حذف کردن تمامی حساب‌های ناشناس

به یاد داشته باشید که MySQL به طور پیش فرض، چندین کاربر ناشناس ایجاد می‌کند که اصولا هیچ کدام از آن‌ها هیچ کاربردی ندارند. بنابراین، بهترین کار این است که در اولین قدم، این حساب‌ها را حذف کنید تا امکان دسترسی کاربران غیر مجاز را به صفر برسانید.

3. اهمیت تغییر نگاشت پیش فرض پورت در افزایش امنیت MySQL

نکته‌ای که نیاز است به خاطر داشته باشید این است که مای اس کیو ال به صورت پیش فرض بر روی پورت 3306 اجرا می‌شود. شما به عنوان یک مدیر اجرایی باید تمامی این پورت‌ها را تغییر دهید تا تعیین شود سرویس‌های حیاتی در کدام پورت‌ها اجرا می‌شوند.

4. اصلاح دسترسی هاست‌ها

اگر زیرساخت شما به عنوان یک سرور مستقل تنظیم شده باشد، MySQL باید به گونه‌ای تنظیم شود که دسترسی به آن تنها از طریق میزبان‌های مجاز امکان پذیر باشد. این کار را می‌توان با ایجاد تغییرات مناسب در فایل‌های hosts.deny و hosts.allow به راحتی انجام داد.

5. عدم اجرای MySQL با امتیازات سطح ریشه

به یاد داشته باشید که اجرا کردن MySQL باید با یک حساب کاربری خاص و تازه، همراه با مجوزهای لازم انجام شود؛ نه مستقیما توسط کاربر اصلی. این موضوع می‌تواند مزایای مهمی مانند موارد زیر را در پی داشته باشد:

  • امکان دریافت حسابرسی
  • امکان دریافت گزارش
  • مانع از دسترسی مهاجمان با ربودن حساب کاربری root

6.  حذف و غیرفعال سازی فایل MySQL History

در دیتابیس مای اسکیو ال فایلی وجود دارد با عنوان تاریخچه MySQL یا MySQL history که در قسمت mysql_history./~ قرار گرفته و در زمان نصب اجرا می‌شود. به یاد داشته باشید که حذف کامل این فایل از اهمیت بالایی برخوردار است. مهمترین دلیل این اتفاق، وجود اطلاعات مختلف مراحل نصب و راه‌اندازی است که در صورت در دسترس دیگران قرار گرفتن مي‌تواند مشکلات امنیتی متعددی را به وجود آورد.

7. افزایش امنیت MySQL با غیرفعال سازی ورود از راه دور

به یاد داشته باشید که اگر از دیتابیس MySQL تنها برای برنامه‌های محلی استفاده می‌کنید، باید امکان دسترسی به سرور را از راه دور غیرفعال کنید. برای اینکار می‌توانید به راحتی و با باز کردن فایل /etc/my.cnf و افزودن یک ورودی شکه پرش در قسمت [mysqld] انجام دهید.

8. غیرفعال سازی SHOW Databases

این بخش نیز به منظور از بین رفتن دسترسی کاربران غیر، صورت می‌گیرد. در این قسمت، باید با استفاده از دستوری که در ادامه عنوان می‌کنیم، skip-show-database را به بخش [mysqld] اضافه کنید تا در نهایت فایل پیکربندی MySQL در etc/my.cnf، محدود یا حذف شود.

SHOW DATABASES

9. غیرفعال سازی دستور Use of LOAD DATA LOCAL INFILE

شما با اجرای دستور LOAD DATA LOCAL INFILE به کاربران امکان می‌دهید که فایل‌های محلی شما را خوانده، به دیگر فایل‌های روی سیستم دسترسی داشته باشند. در نتیجه این اتفاق هکرها می‌توانند به راحتی با روش‌های مختلفی مانند تزریق SQL به این اتفاقات دسترسی داشته باشند. بنابراین پیشنهاد می‌کنیم دستور فوق را به شکل زیر در بخش [mysqld] my.cnf غیرفعال کنید:

set-variable=local-infile=0

10. افزایش امنیت MySQL با انتخاب حساب کاربری ریشه مهم

بسیار قابل اهمیت است که حساب کاربری ریشه mysql را به نامی تغییر دهید که حدس زدن آن دشوار است. این موضوع به شکل قابل توجهی امنیت داده‌های شما را افزایش می‌دهد؛ زیرا هکرها باید مدت زمان طولانی تلاش کنند تا در نهایت بتوانند نام کاربری شما را حدس بزنند.

11. تنظیم مجوزهای فایل

در این مرحله باید اطمینان حاصل کنید که my.cnf فقط روت قابل نوشتن باشد. همچنین باید مکان پیش فرض داده‌ها در /usr/local/mysql/data با مجوزهای مناسب ایمن سازی شده باشد.

سخن پایانی

امیدواریم که در این مقاله به درستی با راه‌های افزایش امنیت MySQL آشنا شده باشید که در نهایت بتوانید از امنیت داده‌ها و اطلاعاتتان محافظت کنید. اگر در مورد هر یک از مطالب گفته شده با سوالی مواجه شدید و یا موضوعی وجود داشت که تمایل داشتید در مورد آن بیشتر بدانید، با ما در قسمت کامنت به اشتراک بگذارید تا در سریع‌ترین زمان ممکن پاسخگوی شما باشیم.

همچنین ما در اینستاگرام ابرآراز در مورد موضوعات جدید و جذاب دنیای تکنولوژی به زبانی ساده و شفاف صحت می‌کنیم. پیشنهاد می‌کنیم ما را در پیج اینستاگرام ابرآراز دنبال کنید.

سرور مجازی آراز سرور مجازی آراز

ادمین

نویسنده ابرآراز متخصص فناوری اطلاعات و علاقه‌مند به رایانش ابری است که تلاش می‌کند با ارائه مقالات آموزشی و کاربردی، مفاهیم پیچیده فناوری را به زبانی ساده و قابل فهم برای همه کاربران ارائه دهد.

نوشته های مشابه

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا