چگونه امنیت ویندوز سرور را افزایش دهیم؟
همیشه موضوع امنیت سرور مطرح بوده و خواهد بود. در این مقاله برخی قوانین اساسی برای افزایش امنیت سرور ویندوز را بررسی میکنیم که میتواند برای کاربران سیستم عامل Window Server که با سرور مجازی ویندوز کار میکنند مفید باشد.
مصرف غیرطبیعی در سرور مجازی ویندوز میتواند دلیل آلودگی سرور به بدافزار باشد، در این قبیل موارد بهتر است ابتدا از بخش Task Manager وضعیت سرور و پروسسهای روی آن را به دقت بررسی کرد.Task Manager ابزاری است که از اولین روزهای استفاده از رابط گرافیکی در تمام سیستم عامل های ویندوز وجود داشته است، اما در طول سال ها پیشرفت بسیار زیادی داشته است.
Task Manager معمولا توسط Ctrl + Alt + Del روی صفحه کلید و سپس کلیک بر روی Task Manager یا با کلیک راست بر روی Taskbar و انتخاب Task Manager فراخوانی می شود.
بهروزرسانی سیستمعامل و نرمافزارهای نصبشده
خیلیها معتقدند به روز رسانی ویندوز نیاز نیست و چیزی جز دردسر ندارد و بهتر است آن را غیرفعال کنیم! این یکی از بزرگترین اشتباهات است. نصب بهموقع بهروزرسانیها، بهویژه موارد حیاتی، بسیار مهم است. به روز نگه داشتن نرم افزارهای مرتبط نصب شده از جمله سامانه مدیریت پایگاه داده (DBMS) ، فریمورک های مختلف و ... هم اهمیت دارد.
تهیه نرم افزار از منابع قابل اعتماد(سایتهای معتبر)
توصیه میکنیم قبل از دانلود بسته نصبی نرم افزار حتی اگر Open Source باشد، از معتبر بودن منبع مطمئن شوید. اغلب اتفاق می افتد که منبعی از نظر ظاهری کاملا شبیه به وب سایت رسمی است ولی نرم افزارهای در معرض خطر (فیشینگ) را توزیع می کند. ممکن است یک فایل با کد مخرب به بسته نصب اضافه شده باشد.
پیکربندی درست فایروال
درک این نکته مهم است که سرور از طریق اینترنت قابل دسترسی است. به همین دلیل، سیستم عامل باید توسط firewall محافظت شود. اگر فایروال ا آنتی ویروس نصب نکردهاید؛ فایروال ویندوز آخرین امید برای محافظت در برابر اتصالات غیرمجاز به سرور خواهد بود.
هرچه پورتهای TCP/UDP کمتری از خارج در دسترس باشد، احتمال حمله به سرور کمتر است. در این مورد، مهم است که بدانید چه چیزی را باید مسدود کنید. اگر ما در مورد یک وب سرور صحبت می کنیم، پورتهای TCP مانند 80 و 443 باید در دسترس باشند (سرویس به طور پیش فرض به این پورتها Listen میشود).
اینها پورتهای عمومی بودند، اما فراموش نکنید که پورتهایی وجود دارد که دسترسی به آنها باید طبق وایت لیست - یعنی فقط برای گروه خاصی از افراد - فراهم شود. نمونه پورت ها:
- 3389 - RDP (پروتکل ریموت دسکتاپ)
- 135-139 - NetBIOS
- 445 - Samba (به اشتراک گذاری فایلها و پوشهها)
- 5000 - 5050 - FTP در passive mode
- 1433 - 1434 - پورت های SQL
- 3306 - پورت استاندارد برای MySQL
- 53 – DNS
ایجاد یک Rule کار سختی نیست. منوی زیر را باز کنید
Start → Control Panel → System and Security → Administrative Tools → Windows Firewall with Advanced Security.
در پنجره برنامه روی Rules for incoming connections راست کلیک کرده و در منوی زمینه که باز می شود، Create Rule را انتخاب کنید.
نام حساب administrator را تغییر دهید
از چندین حساب مدیر استفاده کنید.
اگر چندین نفر سرور را مدیریت میکنند، باید برای هر کدام یک حساب جداگانه ایجاد کنید. چنین اقدامی به شما این امکان را می دهد که مقصر آنچه را که اتفاق افتاده ردیابی کنید.
از یک حساب کاربری با محدودیت استفاده کنید.
برای انجام کارهای روزمره همیشه لازم نیست از حساب کاربری administrator استفاده کنید. ما به شما توصیه می کنیم یک حساب کاربری با دسترسی محدود ایجاد کنید. اگر حساب به خطر بیفتد، مهاجم باید تلاش کند تا administrator را به دست آورد و انجام برخی کارهای بد برای او بسیار پیچیده خواهد بود. همچنین، چنین اقدامی می تواند به نجات سرور از بعضی اقدامات خودتان هم کمک کند.
به اشتراک گذاری فایل و پوشه را محدود کنید، password protection را فعال کنید.
پیشنهاد میکنیم که کانکشنها را با کاربران ناشناس (anonymous) یا کاربران بدون رمز عبور به اشتراک نگذارید. حتی اگر فایلهای ذخیره شده در پوشهها ارزشی نداشته باشند، هیچ چیز مانع از این نمیشود که مهاجم فایل شما را با فایلی با محتوای مخرب جایگزین کند. پیامدهای چنین تغییری می تواند بسیار بد باشد.
علاوه بر استفاده از password protection ، توصیه می کنیم کاربران مختلف را در سطح دسترسی به فایل ها و پوشهها (خواندن، نوشتن، تغییر) محدود کنید.
هنگام خروج از حالت idle ، درخواست رمز ورود برای ورود به سیستم و همچنین قطع کردن جلسات در حالت idle را فعال کنید.
هنگام استفاده از یک سرور فیزیکی (نه ریموت یا سرور مجازی)، توصیه می شود که درخواست رمز عبور کاربر را در wakeup فعال کنید. این تنظیم در کنترل پنل پیکربندی شده است:
Control Panel → All Control Panel Items → Power Options.
همچنین تعیین محدودیتهای عدم فعالیت کاربر و درخواست رمز عبور upon return نیز مهم است. در صورت خروج یا فراموش کردن جلسه RDP، این امکان را از ورود شخص دیگری از طرف کاربر حذف می کند. برای پیکربندی این مورد، از تنظیمات پالیسی محلی secpol.msc استفاده کنید.
استفاده از Security Configuration Wizard
(SCW – Security Configuration Wizard) به شما امکان می دهد فایل های XML از سیاست های امنیتی ایجاد کنید که بعدا می توانند به سرورهای دیگر منتقل شوند. این سیاست ها نه تنها شامل قوانین استفاده از خدمات، بلکه تنظیمات کلی سیستم و رولهای فایروال نیز می شود.
پیکربندی درست سیاستهای امنیتی
علاوه بر پیکربندی اولیه سیاستهای گروه Active Directory، باید به صورت دورهای بازبینی و پیکربندی مجدد شوند. این یکی از راه های اصلی تضمین امنیت زیرساخت ویندوز است.
برای سهولت مدیریت سیاستهای گروه (group policies)، میتوانید نه تنها از ابزار gpmc.msc که در Windows Server تعبیه شده است، بلکه از (SCM-SecurityCompliance Manager) استفاده کنید که توسط مایکروسافت ارائه شده است.
استفاده از سیاستهای امنیتی لوکال
علاوه بر استفاده از سیاستهای امنیتی گروه Active Directory، باید از سیاستهای محلی نیز استفاده کرد که بر حقوق کاربران ریموت و حسابهای محلی تأثیر میگذارد.
برای مدیریت سیاستهای محلی، میتوانید از Local Security Policy مناسب استفاده کنید که با دستور secpol.msc در مسیر زیر فراخوانی میشود.
Start -> Run (Windows key + R)
محافظت از سرویس ریموت دسکتاپ (RDP)
اتصالات RDP را برای کاربران با رمز عبور خالی مسدود کنید.
حضور کاربران بدون رمز عبور غیرقابل قبول است، اما اگر نمیتوان از این امر اجتناب کرد، حداقل می توانید اتصال به RDP را غیرفعال کنید. برای انجام این کار به مسیر زیر را باز کنید.
Start → Administrative Tools
در پوشهای که باز می شود، Local Security Policy را اجرا نمائید.
در پنجره Local Security Policies، در سمت چپ، Local Policies → Security Options را انتخاب کرده و در قسمت اصلی پنجره Accounts: Limit account local use of blank passwords to console logon only را پیدا نمائید.
این مورد را با دوبار کلیک کردن انتخاب و سوئیچ را به موقعیت Disabled ببرید و دکمه OK را فشار دهید.
پورت پیش فرض RDP را تغییر دهید
جایگزینی پورت TCP سرویسهای استاندارد با اعداد دیگر ممکن است امنیت سرور را افزایش دهد، نکته اصلی این است که شماره پورت جدید را فراموش نکنید.
برای تغییر پورت:
- ویرایشگر رجیستری ویندوز(Windows Registry Editor) را باز کنید.
- در هر حال، یک نسخه بکاپ از رجیستری ایجاد میکنیم (File → Export)
- شاخه HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp را گسترش داده و در قسمت سمت راست پنجره، پارامتر PortNumber را پیدا کنید.
- با دوبار کلیک کردن گزینه را باز و در پنجره ای که باز میشود Calculation system: Decimal را انتخاب و یک پورت جدید را مشخص کنید، روی دکمه OK کلیک نموده و پنجره ویرایشگر رجیستری را ببندید.
برای اینکه بتوانیم به سرور متصل شویم، یک rule مناسب برای فایروال ویندوز ایجاد میکنیم. بر روی Inbound Rules کلیک راست کرده و New Rule را از منوی زمینه انتخاب کنید.
در پنجره Wizards گزینه For Port را انتخاب کنید.
سپس TCP Protocol و Specific Local Ports را انتخاب و یک شماره پورت جدید را مشخص کنید.
مرحله بعدی انتخاب Allow the connection است.
اینجا تنظیم میکنیم که این قانون برای کدام شبکهها اعمال شود، موارد ضروری را با تیک علامت گذاری کنید.
در مرحله آخر نام rule و توضیحاتی برای آن را مشخص و برای اعمال تغییرات، سرور را ریبوت کنید
برای اتصال به ریموت دسکتاپ، اکنون از یک آدرس IP یا یک نام دامنه استفاده می کنیم و پورت را از طریق یک کولون (:) مشخص میکنیم.
درگاه ترمینال سرویس را پیکربندی کنید
سرویس TS یا (Remote Desktop Services) Gateway به شما امکان میدهد با استفاده از پروتکل HTTPS (SSL) اتصال ریموت دسکتاپ را امن کنید و در نتیجه مدیر سیستم (administrator) را از راه اندازی VPN بی نیاز نمائید. این ابزار قادر است دسترسی به ماشینها را به طور جامع کنترل نموده و همچنین قوانین و الزامات مجوز را برای کاربران ریموت تنظیم کند، به عنوان مثال:
- کاربران یا گروه هایی از کاربرانی که مجاز به اتصال به internal network resources هستند.
- منابع شبکهای که کاربران می توانند به آنها متصل شوند.
- آیا کامپیوتر کلاینت باید عضو اکتیو دایرکتوری باشد یا خیر؟
- آیا مشتریان نیاز به استفاده از احراز هویت مبتنی بر کارت هوشمند یا رمز عبور دارند، یا می توانند از یکی از روش های احراز هویت بالا استفاده کنند.
منطق عملیات Remote Desktop Gateway نیاز به استفاده از یک ماشین جداگانه دارد. با این حال، استفاده از ماشین مجازی مستقل را ممنوع نمی کند
نصب درگاه ترمینال سرویس (TS gateway)
ابتدا Server Manager را باز کنید.
گزینه Add roles and features را انتخاب کنید
در مرحله Installation type گزینه Install roles and features را انتخاب کنید.
مرحله بعدی انتخاب سرور فعلی است.
بعد از قسمت Server role گزینه Remote Desktop Service را فعال کنید.
بیایید به سمت role service رفته و Remote Desktop Gateway را انتخاب کنید.
به مرحله تأیید رفته و روی دکمه Install کلیک کنید.
نصب گواهینامه SSL برای ریموت دسکتاپ
پس از نصب role، در پنجره Server Manager به مسیر زیر بروید
Tools → Remote Desktop Services → Remote Desktop Gateway Manager
در پنجره باز شده در قسمت سمت چپ بر روی آیکون سرور کلیک کرده و در قسمت اصلی پنجره View and change certificate properties را انتخاب کنید.
در پنجره Properties که باز می شود، به برگه SSL Certificate بروید. گزینه Create a self-signed certificate را انتخاب و روی دکمه Create and import a certificate کلیک کنید.
اگر گواهینامه را قبلا ایجاد کردهاید، بسته به اینکه چه کسی آن را صادر کرده است، می توانید از یکی از گزینه های زیر استفاده کنید.
در پنجره جدید تنظیمات را بررسی و اگر همه چیز درست است، روی OK کلیک کنید.
با یک پنجره جدید، سیستم شما را از ایجاد موفقیت آمیز گواهینامه مطلع کرده و مسیر فایل را به شما می دهد.
به پنجره properties سرور رفته و روی Apply کلیک کنید.
پیکربندی سیاست های گروه (group policies) باقی مانده
در پنجره Remote Desktop Gateway Manager ، در ستون سمت چپ، شاخه سرور را گسترش داده و Policies و سپس Connection Authorization Policies را انتخاب کنید. در ستون سمت راست همان پنجره Create a new policy و بعد Wizard را انتخاب نمائید.
در پنجره جدید، Create only a Remote Desktop Connection Authorization Policy را انتخاب و روی Next کلیک کنید.
نام مورد نظر را برای policy تعیین کنید؛ بهتر است نام را به لاتین وارد کنید.
مرحله بعدی انتخاب یک روش احراز هویت راحت است (رمز عبور یا کارت هوشمند) فقط Password را علامت بزنید. روی ...Add Group کلیک کنید.
در پنجره انتخاب گروه، روی دکمه Advanced کلیک کنید.
اندازه پنجره تغییر خواهد کرد. بر روی دکمه Search کلیک کرده و در نتایج یافت شده، Domain Admins را انتخاب و روی دکمه OK کلیک کنید.
در پنجره انتخاب گروه، نام اشیاء انتخاب شده را بررسی کرده و روی OK کلیک نمائید.
گروه اضافه شد برای رفتن به مرحله بعد، روی دکمه Next بزنید.
در مرحله بعد، گزینه Enable device redirection for all client devices را انتخاب نموده و روی Next کلیک کنید.
session timeouts و اعمال بعد از انقضای آنها را تنظیم کنید؛ توصیه میکنیم اتصال جلسه را قطع کنید تا فرآیندهای background کاربر زمان CPU را اشغال نکنند. روی Next کلیک کنید.
در آخرین مرحله، خلاصهای از اطلاعات را مشاهده می کنیم، روی Finish کلیک نمائید.
برای تأیید ایجاد policy ، روی Close کلیک کنید.
تنظیم resource authorization policy
این فرآیند هم مشابه قبلی انجام می شود.
در پنجره Remote Desktop Gateway Manager، شاخه زیر را گسترش داده و در قسمت سمت راست پنجره، Create a new policy و Wizard را انتخاب کنید.
Policies → Connection Authorization Policies
در پنجره ای که باز می شودCreate only a Remote Desktop Resource Authorization Policy را انتخاب نموده و روی دکمه Next کلیک کنید.
اولین قدم این است که نام مورد نظر را برای authorization policy مشخص کنید؛ بهتر است نام را به لاتین نوشته و دکمه Next را فشار دهید.
در پنجره انتخاب گروه، روی دکمه Advanced کلیک کنید.
اندازه پنجره تغییر خواهد کرد. دکمه Search را فشار دهید. در نتایج جستجو، Domain Admins را پیدا کنید و روی دکمه OK کلیک کنید.
در پنجره انتخاب گروه، نام اشیاء انتخاب شده را بررسی کرده و روی OK کلیک کنید.
گروه اضافه شد برای رفتن به مرحله بعد، روی دکمه Next کلیک کنید.
در مرحله بعد به کاربران اجازه می دهیم به هر منبع شبکه متصل شوند. برای انجام این کار، گزینه مناسب را انتخاب و روی دکمه Next کلیک کنید.
پورت های مجاز را تنظیم کنید اگر پورت سرور RDP تغییر نکرده است، 35489 را به عنوان پورت پیشفرض پارسدو وارد کرده و روی Next کلیک کنید.
مرحله آخر این است که تنظیمات را بررسی و روی دکمه Finish کلیک کنید.
ایزوله کردن roleهای سرور و غیرفعال کردن خدمات استفاده نشده
در مرحله برنامه ریزی اولیه معماری شبکه، یکی از وظایف اصلی برنامه ریزی خطرات در صورت خرابی هر یک از عناصر شبکه است. دلایل زیادی برای این وجود دارد از خرابی تجهیزات گرفته تا هک از بیرون شبکه میتوان به آن اشاره کرد. هر چه role های بیشتری به سرور اختصاص داده شود، در صورت از کار افتادن سرور، عواقب شدیدتری خواهد داشت. برای به حداقل رساندن خطرات و آسیبها در صورت امکان، باید نقش های سرور را در مرحله طراحی مشخص کرد. غیرفعال کردن سرویسها و نقشهای سرور مورد نیاز نیز تأثیر مثبتی بر عملکرد آن خواهد داشت.
حالت ایده آل این است که یک سرور یک عملکرد خاص مانند کنترل کننده دامنه، سرور فایل یا ترمینال سرور را انجام دهد. در عمل، دستیابی به چنین تفکیکی در نقشها دشوار است.
Role isolation را می توان توسط سرورهای مجازی نیز انجام داد. فناوری های مجازی سازی مدرن سطح بالایی از عملکرد و ثبات را ارائه میدهند، در حالی که نه مدیر و نه کاربر هیچ محدودیتی را تجربه نمیکنند. سختافزار و قطعات نرمافزاری که بهدرستی انتخاب شدهاند، میتوانند جایگزینی کامل برای ناوگان کامل تجهیزات باشد.