تنظیمات Microsoft host Guardian در ویندوز سرور 2016
تنظیمات Microsoft host Guardian در ویندوز سرور 2016
در حال حاضر ویندوز سرور 2016 با معرفی سرویس Host Guardian برای shielded VM های hyper-V ،به عنوان ایمن ترین نسخه ی سیستم عامل های مایکروسافت می باشد ،در این دوران که از زیر ساختهای cloud استفاده می شود امنیت حتی نسبت به workload distributed چالش برانگیزتر شده است. خیلی از کسب و کارها حجم کاری بالایی روی ماشین های مجازی خود هم درcloud وهم در premises دارند ، ذاتاً ایمن کردن VM ها از سیستم های فیزیکی بسیار دشوارتر است و با توجه به افزایش استفاده از cloud و multi-tenant ، کسب و کارها احتیاج دارند که از حملات مخرب در امان باشند و نیز باید دسترسی به VM ها را برای ادمین های Hyper-V محدود کنند .
در ویندوز سرور 2016 ،Feature جدید shielded VM ها و سرویس Host Guardian در میان ارتقاءهای امنیتی جدیدی هستند که در ماه گذشته منتشر شده اند . سرویس Host Guardian و shielded VM ها به ادمین ها اجازه می دهد که VM ها را در برابر یکسری حملات مخرب محافظت کنند .حال یک مروری بر اینکه سرویس Host Guardian چطور کار می کند و سپس نحوه پیکر بندی آن برای فعالسازیVMs Hyper-V shielded ارائه می دهیم .
اجزاء Shielded VM
سرویس Host Guardian دارای قسمت های مختلفی هست که ممکن است برای راه اندازی دچار مشکل شود .اجزاء اصلی به شرح زیر است :
- Host Guardian (HGS) Role : ویندوز سرور به طور مشخص برروی cluster ای از سرورهای bare-metal نصب می شود .HGS قادر است که کلیدهایی را برای Host های مطمئن Hyper-V منتشر کند که امکان روشن کردن VM ها و یا live migration را به VM ها می دهد .HGS شامل سرویس Attestation و سرویس های Key protection می باشد .
- Guarded host : یک Host Hyper-V قادر به راه اندازی shielded VMs می باشد .Host باید توسط سرویس HGS attestation تایید شود .shielded VM ها بدون گذر از attestation امکان روشن شدن و یا Live migration به یک هاست hyper-V را ندارند.
- Guarded Fabric : هاست های Hyper-V که می تواند shielded VMs و HGS را اجرا کند . Guarded Fabric از کد یکپارچگی ، مد Virtual secure ، TPM v2 و HGS تشکیل شده است .
- Shielded VM : یک VM نسل دوم است که یک TPM مجازی دارد.هارد دیسک مجازی با استفاده از Bitlocker رمزگذاری شده است و تنها می تواند هاست های سالم و تایید شده را در fabric اجرا کند .
در شکل 1 یک نمای کلی از نحوه کار shielded VM ها و HGS ها نشان داده شده است .
در ابتدا کاربر درخواستی مبنی بر شروع یک shielded VM خاص از یک Guarded host را می دهد .اولین چیزی که Guarded host ارسال می کند یک کلید درخواست به HGS می باشد ،HGS سپس پاسخی برای Guarded host می فرستد که نیازمند attestation می باشد .guarded host یک TCG log ارسال می کند که شامل رویدادهای بوت سیستم است و اینکه OS چه کاری انجام داده و کی شروع به کار کرده است .سپس اینها به TPM تبدیل می شود و سرویس HGS attestation درخواست را ارزیابی می کند و برای اطمینان از اینکه رویدادهای log TCG و Guarded host TPM مشابه هستند با guarded host چک می شود .
سپس guarded host ، Policy کد یکپارچگی را ارسال می کند که مطئن شود که تنها کدهایی اجرا می شوند که سالم هستند .اگر اعتبار host با سرویس Attestation تایید شود بعد سرویس attestation برای اینکه نشان دهد هاست تایید شده و سالم است گواهینامه attestation را برای guarded host ارسال می کند .
در مرحله بعد ، Host مجدد یک کلیدی را برای HGS گواهینامه ی سلامت ارسال می کند . HGS گواهینامه را برای تعیین اعتبار آن بررسی می کند .اگر گواهینامه معتبر بود قسمتی از وضعیتVM رمزگشایی می شود و سپس مجدد به مد Virtual secure رمزگذاری شده و کلید به guarded host مد virtual secure ارسال می شود.
مد guarded host virtual secure کلید را رمزگشایی کرده و برای راه اندازی VM استفاده می کند .اگر VM به هاست دیگری منتقل شود و تلاش کند که بدون کلید را اندازی شود شروع به کار نخواهد کرد .به همین ترتیب اگر یک کاربر و یا ادمین برای راه اندازی VM تلاش کند سرویس attestation تعیین می کند که آنها حق دسترسی ندارند پس VM رمزگشایی نشده و راه اندازی نمی شود .
دو نوع مد attestation برای استفاده با سرویس Host Guardian وجود دارد :
- Admin-trusted attestation :به host این اجازه را می دهد که ما آن را به عنوان guarded host در active directory برای رمزگشایی و را اندازی shielded VM به کار بگیریم ، ما host ها را با انتخاب در گروه global security که در AD ایجاد شده به عنوان guarded host انتخاب می کنیم .یک رابطه trust باید بین fabric AD و HGS forest برقرار شود . این مد در اکثر business ها مورد استفاده قرار می گیرد .
- TPM-trusted attestation :به هاست هایی که ما به عنوان guarded host انتخاب کرده ایم و آنها کدهای running ای هستند که ما به عنوان trust برای راه اندازی shielded VM ها معرفی کرده ایم اطلاق می شود .سخت افزار هاست و firmware باید شامل TPM 2.0 و UEFI 2.3.1 همراه با فعالسازی بوت ایمن باشد .راه اندازی آن یک مقدار پیچیده تر است ولی ایمن تر می باشد .TPM-trusted attestation احتمالاً توسط ارائه دهندگان هاست مورد استفاده قرار بگیرد .
الزامات و محدودیت ها
الزامات متعددی در استفاده از VM ها و HGS ها وجود دارد :
- یک هاست bare-metal :ما می توانیم HGS و shielded VM را در هاست قرار دهیم.
- .مایکروسافت پیشنهاد می کند که HGS را برای High availability بیشتر cluster کنیم .
- نسخه data center ویندوز سرور 2016 : ایجاد و راه اندازی shielded VM ها و HGS که تنها با نسخه دیتاسنتر ویندوز 2016 پشتیبانی می شود . این تغییری بزرگ نسبت به ویندوز 2012 سرور محسوب می شود که دارای نسخه های استاندارد و دیتا سنتر بود و feature های برابر داشت .
- برای مد admin-trusted attestation :ما تنها نیازمند سخت افزار سروری هستیم که قابلیت اجرای Hyper-V در ویندوز 2016 TP5 یا بالاتر را داشته باشد .
- برای TPM-trusted attestation :سرور ما باید 0 و UEFI 2.3.1 را داشته باشد و آنها باید در UEFI بوت شوند و همچنین در هاست ها باید بوت امن هم فعال شود .
- Hyper-V role :باید در guarded host نصب شود .
- HGS role :باید به هاست فیزیکی اضافه شود .
- VM های نسل 2
- یک دومین fabric AD
- HGS AD که در ویندوز 2016 TP5 یک زیر ساخت AD مجزا از fabric AD می باشد .
در حال حاضر مایکروسافت Azure از shielded VM ها پشتیبانی نمی کند .بهرحال ،Azure رمزکذاری دیسک را ارائه داده است .
راه اندازی سرویس host Guardian
اولین قدم برای استفاده از shielded VM ها اضافه کردن Role HGS و پیکربندی HGS می باشد ، ما می توانیم HGS را از ویندوز powershell و یا گزینه add role در server manager نصب نماییم.
برای اضافه کردن Role HGS ، در powershell دستور زیر را وارد می کنیم.
Install-WindowsFeature –Name HostGuardianServiceRole –IncludeManagementTools -Restart
بعد از آن که HGS اضافه شد باید Install-HgsServer cmdlet اجرا شود ،این دستور AD forest را برای HGS و همچنین پیکربندی سرویس HGS فعال می کند .با ویندوز سرور 2016 TP5 ما باید اطمینان حاصل کنیم که ماشین HGS به دومین قبل از اجرای این گامها متصل شده است .زمانی که cmdlet در اولین node HGS اجرا می شود ، آن node در DC اولیه برای یک دومین خاص تایید می شود و زمانی که در node، HGS اضافی داشته باشیم آن در DC ثانویه تایید می شود . دستور Install-HgsServer برای reboot مجدد سیستم مورد نیاز می باشد .
پارامتر –HgsDomain نام HGS AD Domain را مشخص می کند.
پسورد تنها برای سرویسهای restore mode directory در AD به کار گرفته می شود و برای لاگین administrator ، پسورد تغییر نخواهد کرد .
ایجاد گواهینامه های self-signed
در مرحله بعد ، باید گواهینامه هایی برای سرویس HGS در راستای اهداف رمزگذاری و signing ایجاد نماییم .سه روش برای استفاده گواهینامه ها با HGS وجود دارد:
- گواهینامه PKI متعلق به خودمون و فایل PFX
- گواهینامه ای که توط یک ماژول سخت افزاری ایمن پشتیبانی شده باشد .
- با گواهینامه های self-signed
برای تست و ارزیابی ، ساده ترین راه این است که از certificate های self-signed استفاده کنیم ، برای ایجاد گواهینامه self-signed در کنسول powershell دستور New-SelfSignedCertificate را اجرا نمایید .در اینجا _DNSName می تواند هرآنچه که ما انتخاب می کنیم باشد .همچنین می توانیم از دستور Export-PfxCertificate برای صدور گواهینامه های self-signed استفاده می کنیم :
سپس ،با اجرای دستور زیر می توانیم گواهینامه رمزگذاری شده ایجاد و صادر کنیم .
مقداردهی اولیه ی سرور HGS با استفاده از Admin-Trusted Attestation
مرحله بعدی از shielded VM ها برای مقداردهی اولیه ی HGS و انتخاب نوع Attestation استفاده می شود . اکثر business ها احتمالاً از Admin-trusted attestation را انتخاب می کنند در حالی که ارائه دهندگان host بیشتر تمایل به انتخاب TPM-trusted attestation دارند .همچنین می توانیم در صورت نیاز Attestation mode را تغییر دهیم .برای تنظیم HGS باید Initialize-HGSServer cmdlet را در Powershell اجرا نماییم تا از certificate های رمزگذاری و signing استفاده نماید .
برای سادگی کار مثال زیر از پسورد مشابه برای رمزگذاری و signing استفاده کرده است .
زمان اجرای دستور ممکن است با خطاهای زیر روبرو شوید .
اگر با همچنین مشکلی روبرو شدید برای حل این مشکل دستور زیر را اجرا نمایید.
تنظیم DNS resolution و ایجاد گروه security
برای Admin-trusted attestation باید DNS forwarding لازم از دومین HGS را برای fabric domain تنظیم نماییم .تنظیمات فوق به این منظور است که Admin-trusted attestation ، host های قانونی را در گروه global AD security در DNS Domain نشان دهد .از دستور theAdd-DnsServerConditionalForwarderZone برای ایجاد DNS forwarder در سیستم HGS استفاده می نماییم .همچنین می توانیم چند DNS server را با کاما از هم جدا کنیم .دستور netdom برای ارتباط های Trust مورد استفاده قرار می گیرد.
همچنین باید یک DNS Forwarder از domain Fabric و domin HGS تعریف شود ،برای تعریف DNS forwarder باید Add-DnsServerConditionalForwarderZone cmdlet را در fabric DNS server اجرا نماییم .
Admin-trusted attestation ، host های Trust را در گروه security AD نشان می دهد .برای ایجاد گروه security ، ابتدا باید به Domain fabric برویم و سپس از Active directory users and computers استفاده نماییم . این گروه security برای شناسایی هاست های مورد اعتماد VM shield ها کاربرد دارد و سپس در سرور HGS برای ثبت گروه با HGS از Add-HgsAttestationHostGroup استفاده می شود .
برای نامگذاری تنها می توانیم از (-) استفاده نماییم و مجاز به استفاده از نقطه و یا فاصله نیستیم .با اجرای دستور Get-ADGroup می توانیم از Fabric Domain ، SID بگیریم.
برای اطمینان از اینکه گروه guarded host اضافه شده دستور زیر را اجرا نمایید Get-HgsAttestationHostGroup و در آخر از دستور Get-HgsTrace cmdlet برای بررسی اینکه آیا HGS به درستی نصب شده یا خیر استفاده می شود . Cmdlet برای چک کردن مشکلات پیکربندی استفاده می شود .
مایکروسافت HA clustering را برای HGS پیشنهاد می کند .
ایجاد shielded VM ها
بعد از پیکربندی HGS برای مدیریت shielded VM ها اقدام می نماییم .روشهای متعددی برای ایجاد shielded VM ها وجود دارد .مایکروسافت دارای پشتیبان built-in برای HGS در System Center Virtual Machine Manager 2016 (VMM) می باشد . همچنین برای ایجاد shielded VM ها می توان از windows Azure pack استفاده نماییم و یا به صورت دستی در Hyper-V وارد نماییم .البته مایکروسافت سرویس VMM را برای ایجاد VM shield های جدید پیشنهاد می کند .
حل مشکل VM Protection
کنترل سطح دسترسی به VM ها مشکلی است که هیچ ارتباطی به این که ما از چه Hypervisor ای استفاده می کنیم ندارد (Hyper-V ، VMware ، KVM )
HGSجدید در windows server 2016 یک راه حل منحصر به فرد برای امنیت VM ها برای کنترل سطح دسترسی ارائه داده است . اگر چه HGS دارای تنظیمات پیچیده ای می باشد ولی VM ها را محدود کرده به طوری که تنها در هاست های trust راه اندازی می شوند ، همچنین از نرم افزار های مخرب و یا دسترسی های غیر مجاز ادمین ها محافظت کرده و از به خطر افتادن VM ها جلوگیری می کند .
نویسنده و مترجم : مهندس سحر بیگی
pingback آشنایی با ویندوز سرور windows server 2016 و مقایسه ورژن های آن با یکدیگر - گروه آموزشی AdminPro