یکی از مهمترین مسائلی که در شبکه مطرح است و به آن توجه کمتری می شود امنیت در لایه سیستم عامل و به ویژه سیستم عامل ویندوز سرور است، فرآیند امنیتی که برای امن سازی سرورهای ویندوزی و لینوکسی انجام می شود و درجه امنیتی آنها را بالا می برد به عنوان Server Hardening شناخته می شود. در این مقاله به شما چک لیست برقراری امنیت یا Hardening ویندوزهای سرور را بررسی می کنیم و با هم مرور کنیم. مواردی که در این چک لیست مشاهده می کنید بعضا بر روی کامپیوترهای کلاینت نیز قابل پیاده سازی است و توجه کنید که ممکن است در نسخه های مختلف از ویندوزها بصورت متفاوتی پیاده سازی شود اما مفاهیم همچنان ثابت باقی خواهند ماند.
چک لیست امنیتی وب سرور IIS
- به هیچ عنوان سروری که بصورت کامل فرآیند Hardening بر روی آن انجام نشده است را به اینترنت متصل نکنید.
- سرور را در محل فیزیکی امن قرار بدهید، امنیتی فیزیکی از اولین مواردی است که در حوزه امنیت بایستی رعایت شود.
- به هیچ عنوان وب سرور IIS را بر روی Domain Controller نصب نکنید.
- بر روی وب سرور IIS هرگز پرینتر نصب نکنید.
- بر روی سرور دو عدد کارت شبکه بگذارید، یکی برای مدیریت سرور و دیگری برای کاربران
- حتما Service Pack ها، Patch ها و البته Hotfix های لازم را بر روی سیستم عامل سرور نصب کنید.
- ابزار IIS Lockdown را بر روی سرور وب اجرا کنید (در IIS های قدیمی و ویندوزهای سرور قدیمی)
- ابزار امنیتی URLScan را بر روی وب سرور نصب و اجرا و پیکربندی کنید.
- حتما برای Remote Desktop از Encryption مناسب استفاده کنید.
- حتما برای Remote Desktop قابلیت های Account Lockout و Session Timeout را قرار بدهید.
- هرگونه سرویس بلااستفاده بر روی سیستم عامل ویندوز را غیرفعال کنید.
- مطمئن شوید که همگی سرویس ها با حداقل دسترسی کاربری اجرا می شوند.
- اگر به سرویس های FTP ،SMTP و NNTP نیازی ندارید آنها را غیرفعال کنید یا حذف کنید.
- سرویس Telnet را حتما غیرفعال و از روی سیستم عامل حذف کنید.
- اگر سرویس وضعیت ASP.NET یا ASP.NET State Service توسط Application های شما استفاده نمی شود آن را غیرفعال کنید.
- اگر از WebDAV استفاده نمی کنید یا مطمئن هستید Application های شما از آن استفاده نمی کنند آن را غیرفعال کنید.
- اگر از WebDAV استفاده می کنید حتما پارامترهای امنیتی آن را رعایت کنید.
- قسمت Data Access Components را فقط در صورت نیاز نصب کنید در غیر اینصورت حذف کنید.
- قسمت MS Index Server را فقط در صورت نیاز نصب کنید و اگر نیازی نیست نصب نکنید.
- گزینه HTML Version از قسمت Internet Service Manager را اصلا فعال یا نصب نکنید.
- قسمت MS FrontPage Server extensions را فقط در صورت نیاز نصب کنید در غیر اینصورت حذف کنید
- فرآیند Hardening را برای TCP/IP Stack هم انجام بدهید.
- Policy های مربوط به Recycle Bin و Paging File System را مجددا پیکربندی کنید به تناسب سرور
- تنظیمات امنیتی CMOS را انجام دهید.
- امنیت فیزیکی مربوط به CD-ROM و USB Drive ها و … را فراهم کنید.
چک لیست امنیتی Account ها یا حساب های کاربری
- هرگونه حساب کاربری اضافه و بلااستفاده را از روی سرور حذف کنید.
- حساب کاربری Guest را غیرفعال کنید.
- نام کاربر Administrator را عوض کنید و یک پسورد قوی برای آن انتخاب کنید.
- حساب کاربری IUSR_MACHINE را در صورتیکه Application ای از آن استفاده نمی کند غیرفعال کنید.
- یک حساب کاربری با دسترسی محدود برای anonymous account ها ایجاد کنید البته در صورتیکه این سرویس را نیاز دارید.
- به هیچ عنوان به کاربر anonymous دسترسی بصورت write بر روی محتوای دایرکتوری ها و اجرای دستورات بر روی سرور ندهید.
- اگر بر روی سرور شما چندین Web Application وجود دارد برای هر کدام کاربر anonymous جداگانه ای تعریف کنید.
- دسترسی های حساب کاربری process های ASP.NET را با کمترین سطح دسترسی ممکن تعریف کنید.
- گزینه قبل زمانی کاربردی است که شما از اکانت پیشفرضی که برای سرویس ASP.NET تعریف شده است استفاده نمی کنید.
- از یک Password Policy قوی برای کلیه اکانت های موجود بر روی سرور استفاده کنید.
- دسترسی Remote را به حداقل ممکن برسانید، گروه Everyone را از قسمت Access this computer from network حذف کنید.
- برای هر کدام از Administrator های سرور یک اکانت جداگانه تعریف کنید و اکانت مشترک ایجاد نکنید.
- Null Session را غیرفعال کنید یا به بیانی دیگر Anonymous Logon را غیرفعال کنید.
- برای تفکیک کردن اکانتها و کاربردهایشان حتما بایستی تاییده دریافت شود (هر شخص نتواند به شخص دیگری دسترسی بدهد)
- در گروه Administrators بیشتر از دو کاربر تعریف شده نداشته باشید.
- فقط اجازه Logon بصورت Local را بدهید یا برای Remote Desktop حتما از رمزنگاری استفاده کنید.
چک لیست امنیتی فایل ها و پوشه ها
- همیشه چند عدد پارتیشن بر روی هارد دیسک ایجاد کنید
- هیچوقت Home Directory مربوط به وب سرور را در پارتیشن سیستم عامل قرار ندهید.
- بر روی پارتیشن هایی که فایل سیستم آن NTFS است فایل ها و پوشه های خودتان را قرار بدهید.
- محتویات هر وب سایت را در پوشه ای به غیر از Home Directory وب سرور قرار بدهید که NTFS هم باشد.
- همیشه یک وب سایت جدید ایجاد کنید و وب سایت پیشفرض یا Default Site را غیرفعال کنید.
- از وب سرور بصورت متناوب لاگ برداری کنید و لاگها را مرتب بررسی کنید.
- فایل های Log وب سرور را در پارتیشنی به غیر از پارتیشنی که محتویات وب سایت در آن قرار دارند قرار بدهید (NTFS باشد)
- دسترسی گروه Anonymous و Everyone به پوشه های system32 و پوشه وب سایت ها را محدود کنید.
- مطمئن شوید که دایرکتوری ریشه یا Root Directory وب سرور به کاربران گروه Anonymous به هیچ عنوان دسترسی نداده باشد.
- مطمئن شوید که دایرکتوری هایی که شامل محتویات اطلاعاتی وب سرور هستند به کاربران گروه Anonymous به هیج عنوان دسترسی نداده باشند.
- در هر دو مورد گذشته ترجیحا از گزینه Deny برای Access Control Entry های Permission ها استفاده کنید.
- قابلیت Remote IIS Administration یا Remote WWW Administration را به همراه سرویس آن غیرفعال و یا حذف کنید.
- تمامی ابزارهای Resource Kit به همراه SDK ها را از روی وب سرور حذف کنید.
- تمامی Sample Application ها یا برنامه های پیشفرض مثل وب سایت پیشفرض IIS را حذف کنید (از جمله صفحات Help)
- آدرس IP را از Header حذف کنید (برای جلوگیری از شناسایی محل یا Content Location)
چک لیست امنیتی Share های شبکه
- تمامی Share های بلااستفاده از جمله Administrative share ها را از بین ببرید.
- حتما دسترسی ها را به افراد مجاز بدهید و هیچوقت گروه everyone را در لیست دسترسی ها قرار ندهید.
- توجه کنید که سیستم های مانیتورینگی مثل SCOM و SCCM از سری System Center با Administrative Share ها کار می کنند.
- فقط پورت های مورد استفاده در File and Printer Sharing را در فایروال باز کنید.
- دسترسی به شبکه اینترنت را فقط از طریق پورت های 80 و در صورت نیاز 443 مجاز کنید.
- حتما استفاده از اینترنت را محدود کنید و فقط از پروتکل های امنی مثل SSL برای دسترسی به اینترنت استفاده کنید.
- اگر تعداد استفاده کنندگان از Share ها مشخص است، محدودیت Concurrent Connections بر روی Share ها بگذارید.
چک لیست امنیتی Registry
- سرویس Remote Registry را غیرفعال کنید و یا دسترسی به آن را محدود کنید.
- برای سرورهای Standalone فایل SAM را حتما امن کنید و در تنظیمات رجیستری NoLMHash را فعال کنید.
- حتما قابلیت های Auditing و Logging را بر روی سرورها فعال کنید.
- حتما Failed Logon Attempts را Audit کنید.
- محل Log فایل های IIS را تغییر بدهید.
- هر چند وقت یکبار Log ها را آرشیو و تجزیه و تحلیل کنید (حدالمقدور قسمت های امنیتی لاگ ها را)
- حداکثر اندازه لاگ فایل را تعریف کنید.
- دسترسی به فایل Metabase.bin را همیشه Audit کنید.
- تنظیمات IIS را به گونه ای انجام دهید که قالب W3C Extended Log File نیز بازرسی یا Audit شود.
-
بصورت متناوب از رجیستری خودتان Backup تهیه کنید.
چک لیست امنیتی Site ها و Virtual Directory ها
- هیچکاه وب سایت ها را بر روی پارتیشن سیستم ایجاد نکنید.
- تنظیمات Parent Path را غیرفعال کنید.
- Virtual Directory های خطرناکی مثل IISSamples و IISAdmin و IISHelp و Scripts را حذف کنید.
- Virtual Directory مربوط به MSADC را حذف کنید.
- Virtual Directory به نام IIS Internet Printing را حذف کنید.
- مطمئن شوید که Certificate های سرور معتبر و به روز هستند.
- از هر Certificate فقط برای کاری که برای آن تعریف شده است استفاده کنید.
- مطمئن شوید که Public Key مربوط به Certificate ای که دریافت کرده اید معتبر است.
- مطمئن شوید که Certificate مورد استفاده شما Revoke نشده باشد.
-
ISAPI Filter های بلااستفاده را از روی سرور حذف کنید.