نوشته‌ها

چند نکته امنیتی SQL Server

موارد امنیتی که در زمان استفاده از ویژگی های زیر باید غیر فعال بمانند:
غیر فعال نمودن xp_cmdshell در صورت عدم نیاز.
غیر فعال کردن کامپوننتهای COM.
غیر فعال کردن Procedure های مربوط به ایمیل (Database Mail and SQL Mail) درصورتیکه نیاز به ارسال ایمیل به‌وسیله‌ی SQL Server ندارید.
نکته: برخی از Stored Procedureها مثل Procedureهایی که در کتابخانه‌های SQLSMO و SQLDMO استفاده می‌شوند را نمی‌توان به‌وسیله‌ی SQL Server Surface Area مدیریت نمود.آن‌ها باید به‌صورت مستقیم به‌وسیله‌ی sp_configure یا The SQL Server Management Studio(SSMS) مدیریت شوند.

رمزنگاری: اطلاعات حساس مانند شماره کارت اعتباری، سریال‌ها در دیتابیس باید بصورت رمز نگاری شده ذخیره شوند.
محدود کردن دسترسی به کامپیوتر SQL سرور، به اشتراک نگذاشتن پوشه‌های پایگاه‌داده در شبکه، حذف دیتابیس‌هایی که به آن‌ها احتیاج ندارید و بستن SQL چنانچه از آن استفاده نمی‌کنید ازجمله مواردی است که می‌توان در زمینه‌ی امنیت فیزیکی اعمال نمود.
محدود کردن تعداد یوزرهایی با نقش db_owner برای هر DataBase.
تعریف owner‌های مجزا: توجه داشته باشیدکه دیتابیس ها دارای owner (مالک، مدیر)های مجزا می‌باشند؛ از تعیین نمودن owner کلیه DataBaseها بصورت SA یا sysadmin یا هر یوزر دیگری خودداری کنید.
حذف یوزر guest از همه دیتابیس ها بجز master، msdb و tempdb.
NTFS File System: سطح امنیتی فایل‌ها و فولدرها یکی از مزایای کلیدی این فایل‌سیستم می‌باشد، که به کاربر امکان تعریف مجوزهای مناسب امنیتی برای کار با فایل‌های مهم را فراهم می‌کند.
Patching Server: مایکروسافت بطور منظم Service Packها و بروز رسانی‌های امنیتی جدید منتشر می‌کند، همیشه آخرین Service Packهای SQL و ویندوز را نصب کنید و بدین ترتیب نرم افزار را بگونه‌ی امن‌تر، قوی، و بدون باگ حفظ نمائید.
پس ازنصب فایل‌های setup را حذف نمائید. فایل‌های setup مانند ایل‌های sqlstp.log ،sqlsp.log ،setup.iss در MSSQL\Install (یا MSSQL$;\Install، شامل متن‌های ساده و گواهینامه‌های رمزنگاری شده هفتگی می‌باشند؛ این فایل‌ها ممکن است در هنگام نصب اطلاعات حساسی از تنظیمات انجام شده را ذخیره نمایند، بنابراین بهتر است پس از نصب آن‌ها را حذف نمایید.
Audit: هدف از فعال کردن Audit نظارت بر فعالیت‌های در حال انجام یا انجام شده و ثبت وقایع در یک LogFile (فایل گزارش) است؛ فعال کردن Audit این امکان را به شما می‌دهد تا هر آسیب‌پذیری احتمالی را پیش بینی و از وقوع آن جلوگیری نمائید. چهار سطح امنیتی برای فعال نمودن Audit وجود دارد، توصیه می‌شود گزینه Both Failed and Successful Logins را انتخاب نمائید.
می‌توان به‌کار برد.

تنهاComponent (کامپوننت‌)ها و Network Libraryهایی که نیاز دارید را نصب کنید.
بعد از نصب با استفاده از ابزار SQL Server Configuration Manager، ویژگی‌ها و سرویس‌های غیر ضروری را غیر فعال کنید.
حالت Windows Authentication امن‌تر از حالت SQL Authentication و توصیه شده‌است تا حد امکان از حالت Windows Authentication mode استفاده کنید؛ اگر احتیاج به استفاده از حالت SQL Authentication دارید حتما از رمز عبورهای پیچیده‌ استفاده کنید.
موارد زیر را در انتخاب رمز عبور و نام‌کاربری در نظر بگیرید:
بهتر است رمز انتخابی ترکیبی از حروف کوچک، بزرگ، سمبل‌ها -کارکترهای غیر الفبایی مانند &, ^,%,*,$- و اعداد باشد.
از نام‌های کاربری شناخته شده، رایج و آسان مانند admin ،password ،sa ،administrator ،sysadmin و امثال آن استفاده نکنید.
از رمز عبورهای طولانی استفاده کنید (حداقل ۸ کاراکتر).
چنانچه نیاز به استفاده از حالت SQL Authentication دارید، حتما از گواهینامه SSL معتبر استفاده کنید.
SQL Server 2005 اجازه نمی‌دهد که اکانت sa بدون پسورد باشد، بنابراین رمز عبور اکانت sa را با توجه به موارد گفته شده تنظیم نمائید.
نکته: درصورتیکه در هنگام نصب حالت Authentication mode انتخاب شده‌است بصورت پیش فرض login sa غیرفعال می‌باشد.اگر حالت Authentication را پس از نصب به SQL Server تغییر دهید، اکانت sa غیر فعال خواهد بود، و باید به صورت دستی فعال شود.

از Mixed Mode Authentication برای برنامه‌های کاربردی Legacy و کاربران غیر ویندوزی استفاده کنید، توجه داشته باشید زمانیکه از Mixed Mode Authentication استفاده می‌کنید، برای امنیت بیشتر اکانت sa را تغییر نام دهید.
تغییر نام اکانت Sa

قبل از تغییر نام اکانت sa، بررسی کنید که اکانت دیگری به SQL دسترسی دارد یا خیر.
رمز عبور sa را بصورت دوره‌ای و با توجه به توصیه‌های بالا تغییر دهید.
تغییر port پیش فرض: پورت پیش فرض اتصال به SQL سرور ۱۴۴۳ می باشد، و برای هکرها شناخته شده‌است، بنابراین این پورت را تغییر دهید تا از Port scanning هکرها جلوگیری نمائید. مقادیر TCP Dynamic و TCP Port را برای هر IP آدرس بجز IP all پاک کنید.
Instance های SQL Server را مخفی نمائید و یا سرویس SQL Server Browser را غیر فعال کنید.

گروه BUILDIN\Administrators را حذف کنید.

به‌کمک Query زیر می‌توانید گروه ویندوز BUILTIN\Administrators از یک Instance در SQL Server را حذف نمائید، در صورتیکه چندین Instance وجود دارد باید Query زیر برای هر یک بصورت جداگانه اجرا شود.

امنیت در SQLغیر فعال کردن برخی از Stored Procedures.
Sql Server دارای Stored Procedureهای گوناگونی همچون xp_cmdshell orsp_send_dbmail است که با سیستم‌عامل در تعامل است، این دسته از Stored Procedureها کدهایی خارج از Permitionهای نرمال SQL اجرا می‌کنند که می‌تواند ریسک‌های امنیتی به‌همراه داشته باشد.

در SQL Server 2005 ممکن است Stored Procedures در ابزار Surface Area Configuration فعال/غیر فعال باشند. این موضوع را می‌توانید در مسیر زیر بررسی و مدیریت نمایید:

Start -> All Programs -> Microsoft SQL Server 2005 -> Configuration Tools -> Surface Area Configuration tool.

آموزش ریستور کردن فایل های بزرگ و حجیم دیتابیس MYSQL در SSH لینوکس

ریستور کردن فایل های دیتابیس پر حجم و بزرگ از طریق محیط ssh در سیستم عامل لینوکس سرور

یکی از بزرگ ترین مشکلات مشتریانی که از هاست اشتراکی و میزبانی وب لینوکس به سرور مجازی یا سرور اختصاصی کوچ میکنند مشکل ریستور کردن فایل های sql بزرگ و حجیم در MySQL سرور لینوکس است . برنامه هایی مانند phpmyadmin یا MySQL  Dumper قادر به ذخیره سازی و ریستور کردن و بازیابی دیتابیس های خیلی بزرگ و حجیم نیستند و در صورت انتقال و ریستور کردن با آن ها همیشه احتمال و خطر بازیابی ناقص اطلاعات و آسیب دیدین دیتابیس وجود دارد .

از طرفی همیشه امکان ریستور کردن بکاپ کلی یا Full Backup برای خریدار سرور مجازی یا سرور اختصاصی امکان پذیر نیست . مثلا فول بکاپ توسط کنترل پنل cPanel ایجاد شده است ولی سرور مقصد از کنترل پنل دایرکت ادمین یا کلوکسو استفاده میکند . در این وضعیت هیچ راهی نیست جز استفاده از دستورات و کامند های ssh در لینوکس . در صورت استفاده صحیح از این کامند ها و دستورات برای بازیابی و ریستور کردن فایل های MySQL و دیتابیس ، قادر خواهید بود به راحتی فایل های MySQL با پسوند .sql و حجم های بالای ۱۵ و ۲۰ گیگ را در کمترین زمان ممکن و بدون خطا و آسیب دیدن به اطلاعات بازیابی و ریستور کنید .

قبل از انجام ریستور کردن دیتابیس توسط دستورات لینوکس در محیط ssh ابتدا باید اندازه پارامتر max_allowed_packet را بر اساس حجم دیتابیس مورد نظر تنظیم نمایید . برای ایجاد تغییرات در این پارامتر باید فایل my.cnf در مسیر /etc/ را ادیت کرده و میزان مورد نظر خود را وارد نمایید . سپس فایل را ذخیره کرده و سرویس MySQL را ریست کنید .

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

mysql -u dbuser -p  dbname < db.sql

با زدن کلید Enter سیستم عامل از شما رمز و کلمه عبور دیتابیس ساخته شده در کنترل پنل را میخواهد که با وارد کردن آن عملیات بازیابی و ریستور کردن دیتابیس آغاز میگردد . اگر به کلمه عبور MySQL Root Password دسترسی دارید میتوانید بدون نیاز به کلمه عبور و نام کاربری دیتابیس اقدام به بازیابی و ریستور کردن آن با یوزر root پایگاه داده MySQL نمایید :

mysql -u root -p  dbname < db.sql