وضعیت سرورها

وبــلاگ

وضعیت سرورها
  • امن سازی بانک اطلاعاتی MySql

    بهنام بهادری دوشنبه ۱۸ بهمن ۱۳۹۵ پایگاه داده

    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  سرور شود. این فایل را حذف کنید.  مسیر فایل بصورت زیر است.

     

    تغییر نام کاربری 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/

     

     

    0

    برچسب ها :

با عضویت در خبرنامه شما را از آخرین تجربیات مان و مطالب تخصصی آگاه خواهیم کرد.

پاسخ دهید

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