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

چک لیست امنیت وب سرور IIS : چگونه IIS را امن کنیم ؟

چگونه IIS را امن کنیم؟ سالهاست که در حوزه امنیت فعالیت می کنم و یکی از مهمترین دغدغه هایی که داشتم ، امن کردن وب سرورهایی بوده است که بصورت عمومی در اینترنت قرار دارند . به عنوان یک مدیر شبکه و نه حتی مدیر امنیت شما باید بتوانید تا حد امکان مکانیزم های امنیتی سیستم عامل و سرویس های وابسته به آن را برقرار کنید و این الزامی نیست که شما یک کارشناس امنیت اطلاعات ویژه چنین کاری داشته باشید.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

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

این مقاله و چک لیست امنیتی حاصل حداقل 7 سال فعالیت تخصصی بنده بر روی وب سرورهای ویندوزی عمومی و البته مطالعه چک لیست های متعدد امنیتی که در اینترنت به وفور وجود دارند اما در عمل ممکن است کارایی نداشته باشند تهیه شده است . بعد از اینکه این مقاله تمام شد حتما نسخه انگلیسی آن را هم منتشر می کنیم تا کاملترین مرجع امنیت وب سرور IIS ویندوز در اینترنت را در لایه های مختلف در وب سایت توسینسو ارائه کرده باشیم .

طبیعتا ساده ترین روش امن کردن سرویس های وب استفاده از چک لیست ها است و ما هم بر همین اساس طراحی خودمان را انجام میدهیم تا شما عزیزان به سادگی هر چه بیشتر بتوانید وب سرور خودتان را امن کنید . فراموش نکنید که ما نسخه های مختلفی از وب سرور IIS مایکروسافت داریم که هر کدام می تواند به خودی خود نکات مختلف امنیتی داشته باشد اما ما بصورت کلی از پرداختن به وب سرورهای نسخه 6 و پایینتر از آن که در ویندوزهای سرور قدیمی مورد استفاده قرار می گرفتند اجتناب می کنیم و صرفا از نسخه 7 و بالاتر از آن که تغییر ساختار کلی در وب سرور ایجاد شده است می پردازیم .

اگر بخواهیم بصورت لایه بندی شده برنامه چک لیست را جلو ببریم ما امنیت را در وب سرور ویندوز به لایه های زیر تقسیم بندی می کنیم :

  1. امنیت در لایه فیزیکی
  2. امنیت در لایه شبکه
  3. امنیت در لایه سیستم عامل
  4. امنیت در لایه وب سرور
  5. امنیت در لایه Application وب سایت
  6. امنیت در لایه Database Engine 7
  7. و امنیت در لایه شبکه ( ما اینجا هم سیستم عامل مطرح می کنیم )

خوب تا همینجا باید یک چیز رو متوجه شده باشید ، چی ؟ اینکه امن کردن وب سرور IIS فقط و فقط امنیت خود این سرویس نیست و شما باید مجموعه ای از عوامل موثر رو امن کنید تا در نهایت وب سرور شما امن بشه . به زبان ساده وقتی شما میخاین یک سری مدارک و مستندات رو در جای امن کنید فقط خریدن گاوصندوق و قرار دادن مدارک داخلش مهم نیست .

شما باید کل محیط رو امن کنید از ساختمون گرفته ، درها و دیوارها و ... باید در یک سطح امنیتی مناسب باشند تا در نهایت مدارک شما امن باشه و این قضیه برای وب سرور IIS هم صادق هست و شما باید کلیه زیرساخت ها رو امن کنید . خوب بریم سراغ قسمت اول ماجرا و امنیت فیزیکی در وب سرور IIS رو با هم بررسیم ی کنیم .


1- چک لیست امنیت فیزیکی در وب سرور IIS

منظور از امنیت فیزیکی در این مرحله این نیست که شما سگ نگهبان بزارید و درب قفل دار بزارید و ... در واقع وقتی شما یک سرور مجازی یا فیزیکی اجاره می کنید مواردی مثل حفاظت فیزیکی عملا در دست افراد دیگه ای هست که مدیریت هاستینگ شما رو بر عهده دارند . اگر هاستینگ بر عهده خودتون هست که حتما مواردی مثل حفاظت فیزیکی رو رعایت کنید . اما بحث ما در اینجا این هست که امنیت فیزیکی از نظر ما یعنی مواردیکه ما از راه دور می تونیم روی فیزیک سرور اعمال کنیم برای امنیت بیشتر ، سخت شد متوجه شدنش ؟ پس موارد زیر رو در نظر داشته باشید :

  1. در صورت Co-Locate کردن سرور فقط کلید دسترسی به Rack رو در اختیار افراد مجاز قرار بدید
  2. حتما برای لاگین کردن به ویندوز بصورت Local الزام به وارد کردن کلید های Ctrl+Alt+Del داشته باشید
  3. حتما مطمئن بشید که سرور فیزیکی شما از آخرین نسخه از ROM و Patch های امنیتی Firmware بهره مند هست
  4. حتما برای دسترسی VNC به سرور ( ریموت از راه دور سخت افزاری ) پسورد و پروتکل امن مناسب داشته باشید

 2- چک لیست امنیت شبکه در وب سرور IIS

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

  1. حتما وب سرور رو پشت یک فایروال سخت افزاری قرار بدید
  2. ترجیحا از ساختار DMZ برای سرویس دهی در سازمان ها استفاده کنید و پایگاه داده رو در شبکه داخلی قرار بدید
  3.  فقط و فقط پورت های مجاز و قابل سرویس دهی رو در فایروال به سمت سرور IIS باز کنید و نه چیز بیشتر
  4. همیشه فایروال رو به روز نگه دارید و Rule ها رو دائما بررسی کنید
  5. ترجیحا از فایروال های لایه هفت یا WAF ها در مسیر ارتباطی وب سرور IIS استفاده کنید تا حملات لایه هفت ای که به سمت سرور ارسال میشند رو به حداقل برسونید

3- چک لیست امنیت سیستم عامل در وب سرور IIS

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

  1. آخرین بسته های امنیتی و به روز رسانی رو نصب کنید . همیشه ویندوز Update باشه
  2. در تنظیمات Windows Update تعیین کنید که Update های سایر محصولات مایکروسافت رو هم دریافت کنه مثلا MSSQL
  3. نام کاربر Administrator رو تغییر بدید و نام کاربری دیگه ای رو جایگزینش کنید
  4. نام کاربر Guest رو تغییر بدید و نام کاربری دیگه ای رو جایگزینش کنید
  5. نام کاربری Guest تغییر نام داده شده رو در حالت Disabled قرار بدید و غیرفعالش کنید
  6. مطمئن بشید که همه پارتیشن های ویندوز شما با NTFS فرمت شدند و FAT32 ای وجود نداشته باشه
  7. پارتیشن های سیستم عامل ، فایل های وب سایت و فایل های دیتابیس رو تفکیک کنید
  8. برای حافظه SWAP یا Virtual Memory در صورت نبودن RAM کافی حتما یک پارتیشن جدا روی دیسک SSD داشته باشید
  9. ترجیحا سیستم عامل و دیتابیس ها رو در هارد دیسک SSD داشته باشید
  10. حتما پسورد مناسب و طولانی قوی برای دسترسی به سرور وب سایت داشته باشید
  11. کلیه Administrative Share ها رو از روی سیستم عامل حذف و غیرفعال کنید
  12. سرویس های اضافه و بلااستفاده در ویندوز سرور رو غیرفعال کنید
  13. اگر کارایی سرور برای شما مهم است و منابع کافی در اختیار ندارید Log برداری از ویندوز را غیرفعال کنید ( پانوشت : این مورد از نظر امنیتی توصیه نمی شود اما نکته اینجاست که زمانیکه متوجه می شوید منابع زیادی از سیستم بدون توجه به سرویس دهی مناسب سرور در فرآیند لاگ برداری به هدر می رود بنابراین بهتر است که این قسمت غیرفعال و در صورت نیاز بصورت مقطعی فعال شود ) این مورد هم در خصوص لاگ های ویندوز و هم در خصوص لاگ های خود وب سرور IIS صادق است .
  14. در Group Policy گزینه Additional restrictions for anonymous connections را در حالت No access without explicit anonymous permissions قرار بدهید
  15. در Group Policy گزینه Restrict CDROM access to locally logged on user only را در حالت Enabled قرار بدهید
  16. در Group Policy به هیچ کاربری دسترسی act as part of the operating system ندهید
  17. از SYSKEY برای امن کردن فایل SAM استفاده کنید ( اگر دسترسی VNC به سرور دارید )
  18. فقط پورت های مورد استفاده در سرور را در فایروال باز کنید بصورت Inbound یعنی : 80 و 443
  19. مورد قبل را در صورت استفاده از ایمیل سرور فقط پورت های مربوط به ایمیل را باز کنید : 25 و 143 و 110
  20. حتما پورت پیشفرض ریموت دسکتاپ را تغییر بدهید و در فایروال فقط پورت مورد نظر را باز کنید
  21. سطح رمزنگاری ریموت دسکتاپ را به High Encryption تغییر دهید
  22. NetBIOS over TCP/IP را غیرفعال کنید
  23. گزینه Enable LMhosts lookup را حذف کنید
  24. و ...

محمد نصیری
محمد نصیری

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

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

نظرات