ایمن سازی سرورهای ESX و ESXi بهجهت امنیت بالای این دو محصول بسیار آسان شده است. اما این گفته بدین معنی نیست که نمی توان امنیت آنها را با توجه به شرایط محیطی بالاتر برد. ESX به جهت برخورداری از کنسول خدمات دارای تنظیمات گوناگونی در دیوار آتش (Firewall) است و این تنظیمات وابسته به سرویس های فعال در سیستم است. نرمافزار ESXi گزینه های زیادی جهت تنظیم ندارد اما می توان گزینه Lockdown mode (وضعیت قفل) را روشی برای حفاظت از حساب کاربری root در نظر گرفت.
در اینجا به ترتیب به بررسی عمیق این مطالب می پردازیم و ابتدا از «درک مفاهیم اصول امنیتی پیش فرض سیستم» شروع می کنیم.
درک اصول امنیتی پیشفرض سرور ESX/ESXi
در زمان کار با سیستمهای اطلاعاتی و سرورها، مسائل امنیتی تقریباً یکی از اولویتهای اول هر سرپرست سیستم است. نرمافزار vSphereامنیت بسیار بالایی را در هر یک از لایههای خود عرضه میکند. در مقایسه با سیستمهای فیزیکی، حفاظت از ماشینهای مجازی به سبب طراحی ذاتی و رعایت اصول مهندسی خاص در معماری محصولات ESX/ESXiبسیار مؤثرتر است.
با نگاهی بر سرور ESXو معماری امنیتی آن متوجه چهار وجه مهم این طراحی میشوید:
- لایه مجازیسازی؛
- ماشینهای مجازی؛
- کنسول خدمات؛
- لایه شبکه.
هر یک از موارد فوق، امنیت سراسری زیرساخت مجازیسازی را تامین میکنند. بگذارید به هر یک از اجزای این طراحی و چگونگی کارکرد آنها که سبب بهبود امنیت شده است نگاهی بیندازیم.
لایه مجازیسازی
میتوان گفت یکی از مطرحترین جنبههای پرداخت شده در یک سرور ESX/ESXi، لایه مجازیسازی یا آنچه به نام VMKernel(هسته مجازیسازی) شناخته میشود است. لایه هسته مجازیسازی، طراحی شده است تا دسترسی ماشینهای مجازی در حال اجرا بر روی هر میزبان را به دنیای امن حافظه (memory) فراهم سازد. لایه هسته مجازیسازی مسئولیت دسترسی به سختافزار سرور، زمانبندی و تخصیص منابع به ماشینهای مجازی را برعهده دارد. شرکت ویامور تلاش جدی برای عدم افزایش کدهایی کرده است که به تسهیل هدف نهایی سیستم یعنی «اجرای ماشینهای مجازی» نمیافزاید.
لایه هسته مجازیسازی دارای دو قابلیت امنیتی است:
- حفاظت از حافظه (Memory hardening)
- یکپارچگی اجزا در هسته (Kernel module integrity)
قابلیت حفاظت از حافظه وظیفه اختصاص «تصادفی حافظه» و تشخیص اجزای مختلف سرور ESXدر حافظه را دارد که با نام «اختصاص آدرس دهی فضای تصادفی[1]»(ASLR)نیز معروف است. افزوده شدن این سپر حفاظتی بر روی حافظههای غیرقابل اجرایی (nonexecutable memory) توسط ریزپردازندههای (NXXD /) صورت میگیرد و امکان استفاده از کدهای مخرب برای آسیب رسانی به اجزای سرور ESXرا به طور چشم گیری کاهش داده است.
اطمینان از یکپارچگی اجزا در هسته با استفاده از امضای دیجیتالی که بر روی پلاگین ها، درایورها و نرمافزار کاربردی در زمان بارگذاری در حافظه سرور ESXتوسط هسته مجازیسازی صورت میگیرد فراهم میشود. با امضای دیجیتال اجزا نرمافزار ESXمیتوانند تولید کننده هر پلاگین، درایور یا نرمافزار کاربردی را بررسی و تایید یا عدم تایید آن توسط شرکت ویامور را شناسایی کنند.
ماشینهای مجازی
از ابتدا ماشینهای مجازی شرکت ویامور بارگذاری حافظه خود را در واحدها یا بهتر بگوییم دنیایی جداگانه انجام میدادند. این جداسازی مزیتهای فراوانی دارد. اما در زمینه مسائل امنیتی به ماشینهای مجازی اجازه داد تا بدون تأثیرپذیری از حافظه اشغالشده توسط ماشین مجازی دیگر فعالیت کند. به هر یک از ماشینهای مجازی امکان دسترسی به سختافزار به طور اشتراکی داده می شود اما این اشتراک گذاری هیچگونه تأثیری بر عملیات یا امنیت ماشین مجازی دیگر نخواهد داشت.
از آنجایی که ماشینهای مجازی اجرا شده، هرکدام فضای متفاوت حافظه خود را دارند، هیچ راهی برای یک نفوذ گر حتی با دسترسی سرپرستی در سیستم عامل مهمان (یک ماشین مجازی میزبانی شده در سرور میزبان) و نفوذ به ماشین مجازی دیگر در یک میزبان ESXیکسان وجود ندارد. در صورت از کارافتادگی کامل ماشین مجازی این خرابی هیچگونه تأثیری بر ماشین مجازی دیگر که بر روی همان میزبان قرار دارد نخواهد داشت.
ماشینهای مجازی تنها میتوانند با سختافزار مجازی خود در ارتباط باشند. سختافزار واقعی به آنها نمایش داده نمیشود و دسترسی به سختافزار واقعی که به آنها امکان تغییر در پیکربندی سیستم را بدهد داده نشده است.
با اعمال محدودیت و رزرو منابع سیستم میتوان از استفاده یک ماشین مجازی از تمامی منابع که سبب خسارت به ماشینهای مجازی دیگر که بر روی میزبانی یکسان قرار دارند حفاظت نمود. در صورت تعریف محدودیت در میزان دسترسی به حافظه و پردازنده میتوان تأثیر یک حمله از نوع اخلال در سرویس دهی[2] DoSرا به شدت کاهش داد. اجازهی رزرو منابع به ماشینهای مجازی امکان میدهد همانطور که از آنها انتظار دارید فعالیت کنند، حتی در زمان بروز یک حمله DoSمحتمل توسط یک ماشین مجازی دیگر.
کنسول خدمات
کنسول خدمات سرور ESXبر پایه توزیع لینوکس Red Hat Enterpriseویرایش 5.2 است. این کنسول مدیریت، امکان نظارت در فعالیتهای میزبان ESXو ماشینهای مجازی اجرا شده در آن را میدهد. همچنین امکان انجام دیگر عملیاتهای مدیریتی سرور میزبان را با استفاده از خط فرمان به صورت اسکریپت و یا اجرای فرامین فراهم میکند.
کنسول خدمات با استفاده از یک دیوار آتش (Firewall) محافظت شده است و شرکت ویامور نقاط ریسک را با استراتژیهای زیر کاهش داده است:
- تنها سرویسهای حیاتی در کنسول خدمات اجرا میشوند.
- تنظیمات دیوار آتش در بالاترین سطح قرار دارد؛ بنابراین تمامی ترافیک دریافتی از خارج مسدود شده و تنها چند پورت ارتباطی به درون برای ارتباط با نرمافزار vSphere Client، SSHو نرمافزار vCenterباز است.
- در صورت نصب سرویسهای جانبی بر روی کنسول خدمات، بایستی به صورت دستی اقدام به باز نمودن پورتهای مورد نیاز کنید.
- تمامی ارتباطات میان سرورهای ESXو سرویس گیرندههای آن با استفاده از الگوریتم SHA-1یا بر اساس رمزگذاری RSAحفاظت میشود.
- سرویس دهندهی وب Tomcatمحدود شده است و تنها قادر به ارائه خدمات جهت مدیریت ماشینهای مجازی و نظارت بر عملیاتها آن هم در شرایطی محدود است و در برابر بسیاری از حملات آسیب پذیر نیست.
- شرکت ویامور در جهت یافتن نقاط آسیب پذیر جدید بر چندین سایت امنیتی نظارت میکند؛ در صورت مشخص شدن نقاط آسیب پذیر در کنسول خدمات، شرکت ویامور وصلهی بهروزرسانی انتشار خواهد داد.
- سرویسهایی همانند FTPو Telnetبه جهت ضعفهای امنیتی موجود در ساختار آنها نصب نشدهاند.
- نرمافزارهای کاربردی که از پرچمهای setuidو setgidاستفاده میکنند کاهش یافته است.
لایه شبکه مجازی
شبکه مجازی در سرور ESX/ESXiشامل کارتهای شبکه مجازی ماشینهای مجازی و سوئیچهای مجازی موجود در هسته مجازیسازی میشود. لایه هسته مجازیسازی با استفاده از کدهایی امکان ارتباط با استفاده از توپولوژی TCP/IPرا مابین ماشینهای مجازی، دستگاههای ذخیرهسازی iSCSIو NASو دیگر میزبانها در شبکه فیزیکی فراهم میکند.
سرورهای ESXبا بهکارگیری تکنیکهای امنیت شبکه همانند VLAN، اعمال سیاستهای امنیتی در لایه 2 و دیوارهای آتش زیرساخت یک محیط شبکه با امنیت بالا را محیا میسازد.
یک مثال قابل طرح جهت بالا بردن امنیت، ساخت یک منطقه محافظت شده[3] (DMZ) در داخل یک سرور ESXاست.
شکل یک منطقه داخلی DMZدر شبکه
در این روش دیوار آتش یکی از ماشینهای مجازی به حفاظت از ماشینهای مجازی دیگر که در پشت این دیوار قرار دارند اقدام می کند. بدین ترتیب به سرور اجازه میدهد با یک کارت شبکه به درخواست شبکه خارجی و با یک کارت شبکه دیگر به درخواستهای خصوصی شبکه داخلی جواب دهد. اگرچه در اکثر شرایط مشتریان با اینگونه طرحها با دلسردی برخورد میکنند اما قابلیتهای ذاتی امنیت شبکه در سرور میزبان محیطی ایدهآل را برای چنین فعالیتهایی فراهم کرده است.
[1]address space load randomization
[2]denial-of-service
[3]demilitarized zone