خانه سیستم عامل آموزش کانفیگ امنیتی پایگاه داده MySQL یا MariaDB در سیستم عامل لینوکس

آموزش کانفیگ امنیتی پایگاه داده MySQL یا MariaDB در سیستم عامل لینوکس

2 دقیقه خوانده شده
۰
0
1,258
کانفیگ امنیتی پایگاه داده MySQL و MariaDB

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

کانفیگ امنیتی پایگاه داده MySQL و MariaDB

کانفیگ امنیتی پایگاه داده MySQL میتواند منجر به افزایش امنیت کلی لینوکس نیز شود . زمانی که هکرها به بررسی راه های نفوذ در سرور می پردازند ، پایگاه داده شما جزو بخش هایی است که ممکن است توسط آنها مورد استفاده قرار بگیرد . یکی از نمونه های بارز این حملات ، حملات brute-force برای به دست آوردن پسورد root پایگاه داده شما می باشد .

در این مقاله ما به شما راه های مفید برای کانفیگ امنیتی پایگاه داده MySQL را آموزش خواهیم داد .

۱ – کانفیگ امنیتی پایگاه داده MySQL با استفاده از اسکریپت

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

  • اگر شما به هنگام مراحل نصب پسورد root برای MySQL در نظر نگرفته باشید ، از شما میخواهد که برای root یک پسورد در نظر بگیرید .
  • این اسکریپت قابلیت لاگین به صورت ریموت توسط کاربر root را غیر فعال میکند و اکانت های root که از خارج از localhost قابل دسترسی هستند را حذف میکند .
  • دیتابیس های تست و اکانت های ناشناس anonymous را حذف میکند زیرا این دیتابیس ها به صورت پیشفرض توسط همه کاربران قابل دسترسی هستند ، حتی کاربر anonymous

برای اجرای اسکریپت امنیتی MySQL از دستور زیر استفاده کنید :

mysql_secure_installation

بعد از اجرای این اسکریپت ، پسورد root را تنظیم کنید و سپس با استفاده از عبارت y ( همان yes ) به سوال های بعدی که از شما پرسیده میشود جواب دهید و دکمه Enter را فشار دهید .

۲ – سرور دیتابیس را به آدرس Loopback متصل کنید

این تنظیمات باعث میشود که دسترسی به پایگاه داده از ماشین های خارجی مسدود شود . این کار به MySQL می گوید که فقط درخواست ها و کانکشن هایی که از داخل localhost ارسال میشود را قبول کند . شما با ویرایش فایل تنظیمات اصلی MySQL میتوانید این مورد را تنظیم کنید .

برای ویرایش فایل تنظیمات MySQL در CentOS و RHEL از دستور زیر استفاده کنید :

vi /etc/my.cnf

اگر از Debian یا Ubuntu استفاده میکنید ، میتوانید برای ویرایش تنظیمات MySQL از یکی از دو دستور زیر استفاده کنید :

# vi /etc/mysql/my.conf
OR
# vi /etc/mysql/mysql.conf.d/mysqld.cnf

خط زیر را در زیر بخش [mysqld] اضافه کنید :

bind-address = 127.0.0.1

۳ – غیر فعال کردن قابلیت Local Infile

به عنوان یکی از کارهای مهم برای کانفیگ امنیتی پایگاه داده MySQL ، شما باید قابلیت local_infile را غیر فعال کنید . این کار باعث میشود که با استفاده از MySQL نتوان به فایل های سیستمی مهم دست پیدا کرد . برای این کار میتوانید در بخش [mysqld] از عبارت زیر استفاده کنید :

local-infile=0

۴ – تغییر پورت پیشفرض MySQL

متغییر Port به MySQL میگوید که برای پردازش درخواست های TCP / IP Connections میتوانید از کدام پورت استفاده کند . به صورت پیشفرض شماره پورت MySQL عدد ۳۳۰۶ می باشد ولی شما میتوانید در زیر بخش [mysqld] آن را به صورت زیر عوض کنید و برای مثلا پورت آن را به ۵۰۰۰ تغییر دهید :

Port=5000

توجه : قبل از تغییر پورت مربوط به هر سرویسی ، از باز بودن آن پورت در فایروال سرور خودتان مطمئن شوید .

۵ – فعال کردن قابلیت لاگ سرویس MySQL

لاگ ها بهترین روش برای این هستند که شما بدانید روی سرورتان چه اتفاقاتی در حال رخ دادن می باشد . اگر حمله ای روی سرور شما رخ دهد ، شما به راحتی قادر خواهید بود تا جزییات این حمله را درون لاگ های مربوط به فعالیت های انجام شده ( intrusion related activities ) مشاهده کنید . شما میتوانید با اضافه کردن خط زیر به فایل تنظیمات MySQL ، قابلیت لاگ را فعال کنید :

log=/var/log/mysql.log

۶ – تنظیم کردن مجوزهای دسترسی مناسب روی فایل های MySQL

شما باید مطمئن شوید که تمامی فایل ها و مسیرهای دیتا در پایگاه داده MySQL از مجوزهای دسترسی صحیح برخوردار باشند . فایل etc/my.conf/ باید تنها برای root قابل write باشد . این کار باعث میشود که دیگران نتوانند تنظیمات مربوط به پایگاه داده را ویرایش کنند . برای تنظیم مجوزهای دسترسی فایل تنظیمات MySQL از دستور SSH زیر استفاده کنید :

chmod 644 /etc/my.cnf

۷ – History مربوط به شل MySQL را حذف کنید

تمامی دستورهایی که شما درون MySQL Shell اجرا میکنید ، در دستگاه کلاینت روی فایل هیستوری به نام ~/.mysql_history ذخیره میشود . این مورد بسیار میتواند خطرناک باشد زیرا هر اکانتی که شما ایجاد میکنید ، تمامی یوزرنیم ها و پسورد های تایپ شده در Shell درون فایل هیستوری ذخیره میشود .

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

cat /dev/null > ~/.mysql_history

۸ – دستورهای MySQL را از طریق رابط دستوری SSH اجرا نکنید

همانطور که حتما میدانید ، تمامی دستورهایی که در terminal تایپ میکنید ، درون یک فایل history ذخیره میشود . این فایل بستگی به Shell دارد که شما از آن استفاده میکنید ( برای مثال برای bash فایل هیستوری ~/.bash_history می باشد ) . اگر یک هکر بتواند به فایل history دسترسی داشته باشد ، میتواند به راحتی تمامی پسورد های ذخیره شده در آن مکان را مشاهده کند .

به شما توصیه میکنیم که هرگز پسورد های MySQL را درون رابط کاربری SSH وارد نکنید . برای مثال از دستور زیر استفاده نکنید :

mysql -u root -pPassword

وقتی که شما آخرین بخش فایل هیستوری دستورات را بررسی میکنید ، میتوانید پسورد تایپ شده در آن مکان را مشاهده کنید .

روش صحیح برای اتصال به MySQL استفاده از دستور زیر می باشد :

mysql -u root -p

بعد از وارد کردن دستور بالا از شما خواسته میشود که پسورد خود را وارد کنید که این مدل وارد کردن پسورد کاملا ایمن می باشد .

۹ – برای هر دیتابیس ، یک کاربر در نظر بگیرید

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

mysql -u root -p
CREATE DATABASE osclass_db;
CREATE USER 'osclassdmin'@'localhost' IDENTIFIED BY 'osclass@dmin%!2';
GRANT ALL PRIVILEGES ON osclass_db.* TO 'osclassdmin'@'localhost';
FLUSH PRIVILEGES;
exit

و به خاطر داشته باشید که همیشه باید کاربرانی را که دیگر مسئول مدیریت یک برنامه روی سرور نیستند را حذف کنید .

۱۰ – از افزونه ها و کتابخانه های امنیتی دیگر نیز استفاده کنید .

برای رساندن کانفیگ امنیتی پایگاه داده MySQL به سطح بالاتر ، شما میتوانید از ماژول های اضافی MySQL استفاده کنید . این پلاگین ها میتوانند اتصال کلاینت به سرور را ایمن کنند ، برای اطلاعات حساس درخواست پسورد کنند و … . تمامی این ماژول ها در نسخه رایگان قابل دسترس هستند .

برای مشاهده اطلاعات بیشتر به این لینک مراجعه کنید .

۱۱ – پسوردهای MySQL را به صورت مداوم عوض کنید .

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

USE mysql;
UPDATE user SET password=PASSWORD('Passworde SHoma') WHERE User='root' AND Host = 'localhost';
FLUSH PRIVILEGES;

۱۲ – بسته MySQL را به صورت مداوم آپدیت کنید .

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

# yum update
# apt update

بعد از آپدیت کردن سرور و پایگاه داده MySQL ، باید بر حسب سیستم عامل خود از دستور های زیر استفاده کنید تا سرویس ها را ریستارت کنید و تغییرات اعمال شود :

# systemctl restart mariadb		#RHEL/CentOS
# systemctl restart mysql		#Debian/Ubuntu

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

اگر شما نیاز به میزبانی سایت حرفه ای با امنیت کامل پایگاه داده دارید ، میتوانید از خدمات هاست لینوکس چیتاهاست استفاده کنید .

بارگذاری نوشته های مرتبط بیشتر
مطالب بیشتر از این نویسنده علی دربان
بارگذاری بیشتر در سیستم عامل

پاسخ دهید

بررسی کنید

اسکریپت ارسال ایمیل به مدیر سرور در زمان افزایش مصرف RAM در لینوکس

اگر شما هم مدیریت یک سرور لینوکسی را بر عهده دارید ، حتما با شرایطی مواجه شده اید که مصرف …