امن سازی بانک اطلاعاتی MY SQL

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

غیرفعال سازی امکان دسترسی ناامن از راه دور به سرور:
سرویس MySql بصورت پیش فرض از طریق پورت TCP/3306 از راه دور قابل دسترس است. چنانچه نیازی به دسترسی از راه دور به پایگاه داده ها وجود ندارد، این دسترسی را غیر فعال کنید.

خط زیر را در فایل my.cnf ( ویا فایل پیکر بندی Mysql ) قرار دهید.

 

 

skip-networking

همچنین می توانید پورت ۳۳۰۶ را در فایروال سرور مسدود نمایید.

بهینه سازی تنظیمات پیکربندی سرور:
برای بهبود امنیت محلی، بهتر است استفاده از Local Data Local Infile غیرفعال شد. با اینکار از خواندن غیرمجاز فایل های محلی با استفاده از این دستور جلوگیری می شود. ازین دستور در تزریق دستورات SQL طریق سایت های تحت PHP بسیار استفاده میشود. برای غیرفعال سازی دستور زیر را به my.cnf اضافه کنید.

 

local-infile=0

برای اطمینان از اینکه دستور SHOW DATABASES فقط پایگاه داده هایی را نمایش میدهد که کاربر حق دسترسی به آن ها را ارد، باید دستور زیر به my.cnf اضافه شود.

 

safe-show-database

برای اطمینان از ایجاد کاربر جدید (با استفاده از دستور GRANT) تنها توسط کاربرانی که دارای مجوز INSERT بروی جدول user هستند، باید دستور زیر را به my.cnf اضافه کنید.

 

safe-user-create

افزودن دستور زیر به my.cnf برای جلوگیری از احراز هویت کاربرانی که پسورد آن ها با نسخه های قبل از MySql 4.1 ایجاد شده است، پیشنهاد می شود.

 

safe-auth

بهتر است اجازه استفاده از لینک های نمادین (symlink) برای ارتباط با جداول لغو شود، زیرا در صورتی که MySql با کاربر root فراخوانی می شود، هر کاربری حق نوشتن بروی مسیرهای داده سرور را دارد و می تواند فایل های پایگاه داده ها را از روی سیستم حذف کند. برای این منظور عبارت زیر را به my.cnf اضافه کنید.

 

skip-symbolic-links

حدف اشیا غیرضروری:
پیشنهاد می شود اشیا غیرضروری در پایگاه داده MySql حذف شود زیرا ممکن است این موارد باعث بروز آسیب پذیری در MySql شود. از جمله این موارد دیتابیس های تستی و حساب های کاربری بی نام Anonymous هستند. برای حذف این موراد می توانید با کاربر root داده ها را Drop کنید.

 

;mysql> DROP DATABASE test

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

 


~/.mysql_history
1
~/.mysql_history

تغییر نام کاربری root در MySql
بهتر است نام کاربری اصلی سرویس MySql از root به نام جدید و غیرقابل حدس دیگری که براحتی قابل کشف نباشد تغییر دهید. برای این کار می توانید از کد زیر استفاده نمایید.

 

;mysql> USE mysql

;mysql> UPDATE user SET User=’new_username’ WHERE

;User=’root’

;mysql> FLUSH PRIVILEGES

 

تنظیم حق دسترسی مناسب
مطمئن شوید فایل my.cnf تنها توسط کاربر root قابل ویرایش باشد و این فایل در حالت read-only قرار گیرد. همچنین در مسیر ذخیره سازی اطلاعات دیتابیس از پرمیژن مناسب استفاده کنید. مسیر فایل my.cnf بصورت زیر است.

 

etc/my.cnf/

خواندن 100 دفعه

آدرس : تهران ، میدان انقلاب ، کوچه رشتچی ، پلاک ۱۴ (ساختمان ایرانیان) ،طبقه دوم واحد ۸

 

خط ویژه: ۶۶۹۲۸۷۸۷-۰۲۱

تلفن : ۶۶۹۲۸۰۴۰-۰۲۱ | ۶۶۱۲۴۱۴۹-۰۲۱ | تلفن همراه : ۰۹۱۲۳۷۹۰۵۸۸

فکس دیجیتال: ۸۹۸۷۷۳۷۳-۰۲۱

آدرس ایمیل : wnegaran[at]gmail.com 

تمامی حقوق مادی و معنوی این سایت متعلق به شرکت وب نگاران پارسه می باشد