جعل خادم ويندوز أكثر أمانا

في هذه المقالة ، يرغب المؤلف في تقديم بعض النصائح الجيدة حول إدارة خوادم Windows ، والتي لم أجدها لسبب ما على الإنترنت.

باتباع هذه المبادئ ، ستقوم بتأمين الخوادم التي تستند إلى Windows بشكل كبير في البيئات المحلية والعامة.


1. ندخل الكمبيوتر بشكل صحيح في م


لا تستخدم المستخدمين الذين لديهم امتيازات إدارية لإدخال أجهزة الكمبيوتر في Active Directory. لا أحد يضمن أن Keylogger لم يظهر بالفعل على كمبيوتر الموظف. وجود حساب منفصل. يمكن للمهاجم الذي سرق بيانات الاعتماد إضافة المزيد من أجهزة الكمبيوتر إلى م فقط.

1.1. إنشاء مستخدم جديد


للقيام بذلك ، انتقل إلى ADUC (مستخدمي الدليل النشط وأجهزة الكمبيوتر). انقر فوق مساحة فارغة في المجلد Users and Computers وإنشاء مستخدم. للبساطة ، دعنا نسميها JoinAdmin.

1.2. تفويض السلطة


بعد إنشاء المستخدم ، يحتاج إلى تعيين أذونات. للقيام بذلك ، انقر بزر الماوس الأيمن على مجلد "المستخدمون" وحدد "تفويض التحكم". انقر فوق "التالي" وحدد المشرف لدينا.


نريد أن يقوم المستخدم بوظيفة واحدة فقط ، لذلك نختار الخيار الثاني.


بعد ذلك ، حدد "كائنات الكمبيوتر" وجميع عناصرها الفرعية.



استخدم هذا المستخدم ولا تقلق من قيام شخص ما بسرقة كلمة المرور من المسؤول.

2. التحكم في الوصول إلى المجلد


قدم Windows Server 2019 وصولاً فعالاً إلى المجلد يمكن التحكم فيه بميزة. يحظر الوصول إلى التسجيل للبرامج غير المدرجة في القائمة البيضاء على المجلدات أو الأقسام المحددة.

سيؤدي تشغيله إلى حماية البيانات من فيروسات Ransomware حتى إذا كان الخادم قد أصيب. ومع ذلك ، هذا لا يحمي بياناتك من السرقة ، ويمكن قراءتها.

يمكنك تمكين الميزة في مركز أمان Windows أو من خلال Powershell:

Set-MpPreference -EnableNetworkProtection Enabled 

إضافة البرامج المسموح بها:

يمكن إضافة البرامج المسموح بها من خلال مركز أمان Windows ، ومن خلال Powershell تحتاج إلى إدخال المسار الكامل للملفات القابلة للتنفيذ ، مفصولة بفواصل.

 Set-MpPreference -ControlledFolderAccessAllowedApplications "C:\Folder\File.exe"             . $ApplicationToAdd = "C:\Fodler\file.exe" $ExistingApplicationList = (Get-MpPreference).ControlledFolderAccessAllowedApplications $FullList = $ApplicationToAdd + $ExistingApplicationList Set-MpPreference -ControlledFolderAccessAllowedApplications $FullList 

إضافة مجلدات محمية:

تتم إضافة المجلدات بنفس الطريقة تمامًا مثل البرامج. على سبيل المثال ، مع هذا الأمر ، نضيف محرك الأقراص C: بأكمله:

 Set-MpPreference -ControlledFolderAccessProtectedFolders "C:\" 

3. SYSWOW64 و SMB


جميع برامج 32 بت تعمل على 64 بت من خلال طبقة التوافق - SYSWOW64. تعطيل هذا المكون يجعل جميع برامج 32 بت غير متوافقة ، بما في ذلك الفيروسات.

في حد ذاتها ، تكون التطبيقات ذات 32 بت أكثر عرضة للتأثر ، ولا يمكن مهاجمة البرامج ذات 64 بت عن طريق تجاوزات المخزن المؤقت ، ومن خلالها يكون تنفيذ التعليمات البرمجية التي لا توفرها هذه البرامج أكثر صعوبة. إذا كانت المكونات المدمجة أو برامج 64 بت فقط تعمل على الخادم ، فتأكد من إزالة هذا المكون.

هل تتذكر Wannacry الذي سار عبر SMB1؟ لا يزال الإصدار الأول SMB مكونًا قياسيًا في Windows Server ويتم تثبيته افتراضيًا في كل إصدار.
اخترق Wannacry الضعف EternalBlue ، تم تصحيح الثغرة الأمنية ، ولكن بقيت الرواسب.
يقوم هذا الأمر بإزالة SMB1 و SYSWOW64:

 Remove-WindowsFeature WoW64-Support, FS-SMB1 


لا يستحق الأمر التوصية كذريعة لإزالة هذه المكونات المحددة ، ولكن تعطيل جميع المكونات غير المستخدمة بشكل عام.

4. تعطيل بينغ


بشكل افتراضي ، يستجيب الكمبيوتر المستند إلى Windows إلى ICMP فقط على الشبكة المحلية. يؤدي تعطيل ICMP إلى زيادة طفيفة في أمان خادمك. ويرجع ذلك جزئيًا إلى وجود أدلة على kulhacker ومنتديات كيدي سيناريو أخرى حول كيفية البحث عن الأهداف التي يمكن أن تكون القوة الغاشمة.

لإظهار أنك سوف تفوز إذا قمت بتعطيل ICMP ، تم إنشاء خادمين. تم فتح RDP على كلاهما ، إلا أن أحد الخوادم لم يستجب لـ ICMP.

تم تعطيل ICMP:


تم تمكين ICMP:


كما يتضح من لقطة الشاشة ، فإن هذا لم يمنع الجميع ، بل الكثير. لجمع بيانات حول مقدار ما يريدون اختراقك ، يمكنك استخدام هذا البرنامج النصي:

 function Get-Bruteforce {    $Last = 4    $Attempts = 10    #Getting date -one hour (default)    $DateTime = [DateTime]::Now.AddHours(-$Last)    $BruteEvents = Get-EventLog -LogName 'Security' -InstanceId 4625 -After $DateTime -ErrorAction SilentlyContinue | Select-Object @{n='IpAddress';e={$_.ReplacementStrings[-2]} }    $TopPunks = $BruteEvents | Group-Object -property IpAddress | Sort-Object Count    #Get bruteforsers that tried to login greated or equal than 4 times (default)    $GetPunks = $TopPunks | where {$_.Count -ge $attempts} | Select -property Name    Write-host Unique attackers IP: $GetPunks.Length -ForegroundColor Green    Write-Host Total bruteforce attempts: $BruteEvents.Length -ForegroundColor Green    #Output-punks    foreach ($i in $TopPunks | where {$_.Count -ge $attempts}) {    $PunkRdns = (Resolve-DnsName $i.Name -ErrorVariable ProcessError -ErrorAction SilentlyContinue).NameHost    if ($ShowRDNS) {        if ($PunkRdns) {            Write-Host "attempts": $i.count IP: $PunkRdns        }        else {            Write-Host "attempts": $i.count IP: $i.name        }    }    else {        Write-Host "attempts": $i.count IP: $i.name    }    }  } Get-Bruteforce 

لا يزال بإمكانك مراقبة الخادم الخاص بك ، على سبيل المثال ، عن طريق التحقق من توفر منفذ معين:

 Test-NetConnection 192.168.0.1 -Port 3389 

5. ليست جميع الأسماء جيدة على قدم المساواة


باستخدام برنامج نصي آخر ، سحب أسماء المستخدمين الأكثر شيوعًا التي تمت مهاجمتها.

إذا كنت تقوم بتثبيت خدمات سطح المكتب البعيد ، فإننا نوصي بشدة بتجنب هذه الأسماء. بالاقتران مع كلمة مرور ضعيفة ، يمكنك ضمان حساب قرصنة سريع.

لراحتك ، تمت إعادة كتابة قائمة الأسماء "السيئة" في جدول:
محاولات الاختراقاسم الحساب
40IRINA
41منزل
42SKLAD
42سيكلسرفير
42SYS
42KASSA2
43الخاص Admin1
43PC
45ضيف
46مضيف
46التدقيق
49USER3
54TEST1
55BUH2
66USER
66مدير
75ADM
77.NET.v.4.5
80BUH1
86BACKUP
89BUH
90ADMIN
1001
116الخادم
122USER2
128À نى ب ي ب ًٌٍ À ٍ Î ً
147اختبار
219USER1
308USER
330ADMIN
9299ADMINISTRATOR
13972ADMINISTRATOR

يمكنك الحصول على نفس القائمة على الخادم الخاص بك باستخدام هذا البرنامج النصي:

 function Get-Badname {    $Last = 24    $Attempts = 40      $DateTime = [DateTime]::Now.AddHours(-$Last)    $BruteEvents = Get-EventLog -LogName 'Security' -InstanceId 4625 -After $DateTime -ErrorAction SilentlyContinue | Select-Object @{n='IpAddress';e={$_.ReplacementStrings[5]} }    $TopPunks = $BruteEvents | Group-Object -property IpAddress | Sort-Object Count      $GetPunks = $TopPunks | where {$_.Count -ge $attempts} | Select -property Name    Write-host Unique attackers IP: $GetPunks.Length -ForegroundColor Green    Write-Host Total bruteforce attempts: $BruteEvents.Length -ForegroundColor Green    #Output    foreach ($i in $TopPunks | where {$_.Count -ge $attempts}) {        Write-Host "Attempts": $i.count Username: $i.name    }  } Get-Badname 

6. أشياء واضحة


حسنًا ، ننهي المقالة بالأشياء الواضحة:

  1. إنشاء بوابة - لإدارة بنية أساسية كبيرة ، من الأفضل أن تحمي نفسك بنقطة دخول واحدة. بمزيد من التفاصيل .
  2. تثبيت التحديثات. على وجه الخصوص ، على خوادم المعركة.
  3. تعطيل الخدمات التي لا تستخدمها - هذه منطقة إضافية للهجوم.
  4. استخدم Server Core ، وهو يحتوي على أقل منطقة هجوم وأقل عدد من عمليات إعادة التشغيل عند تثبيت التحديثات
  5. يعد خادم سطح المكتب البعيد لعدة مستخدمين فكرة سيئة. التمسك بمبدأ شخص واحد أو خدمة - خادم واحد.
  6. عمل نسخ احتياطية وتأكد من اختبارها. النسخ الاحتياطي الذي لم يتم اختباره ليس نسخة احتياطية.

نأمل أن تكون النقاط الخمس الأولى مفيدة ومثيرة للاهتمام بالنسبة لك.

نحن نقدم تعريفة محدثة UltraLite Windows VDS مقابل 99 روبل مع تثبيت Windows Server 2019 Core.

Source: https://habr.com/ru/post/ar484396/


All Articles