Защита Windows Server с PowerShell: пять быстрых шагов

Отключите SMBv1, остановите диспетчер печати там, где он не нужен, включите firewall и защитите удалённый рабочий стол — с готовыми командами.

Многие инциденты в Windows используют старые протоколы и службы, которые остаются включёнными «на всякий случай». Эти пять шагов убирают самые злоупотребляемые из них. Подходят для Windows Server 2016 и новее.

Перед началом: запускайте PowerShell от имени администратора, сначала проверяйте на одном сервере и запланируйте окно для перезагрузки. В домене эти настройки лучше применять групповыми политиками, чтобы новые серверы получали их автоматически.

Шаг 1. Отключите SMBv1

Через SMBv1 распространялись WannaCry и NotPetya. Современной Windows он не нужен; очень старые устройства (старые сканеры, NAS), которым он ещё нужен, следует обновить или заменить.

Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart

Шаг 2. Остановите диспетчер печати там, где никто не печатает

После PrintNightmare Microsoft рекомендует отключать диспетчер печати на контроллерах домена и других серверах, которым печать не нужна.

# on domain controllers and servers that never print:
Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Disabled

Шаг 3. Убедитесь, что Windows Firewall включён

Все три профиля должны быть включены. Открывайте только действительно нужные серверу порты и только для тех сетей, которые ими пользуются.

Get-NetFirewallProfile | Select-Object Name, Enabled
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True

Шаг 4. Защитите удалённый рабочий стол

Требуйте проверку подлинности на уровне сети (NLA) и никогда не открывайте RDP (3389) напрямую в интернет — используйте VPN или шлюз удалённых рабочих столов с MFA.

# require Network Level Authentication for Remote Desktop
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -Value 1

Шаг 5. Проверьте администраторов и запущенные службы

Уберите учётные записи, которым не нужны права администратора, и остановите неиспользуемые службы. Повторяйте проверку раз в несколько месяцев.

Get-LocalGroupMember -Group Administrators
Get-Service | Where-Object {$_.Status -eq 'Running'} | Sort-Object DisplayName

Самый быстрый способ снизить риск — выключить то, чем вы не пользуетесь.

Нужна помощь? Свяжитесь с CySec — первая консультация бесплатно.


Все статьи

Нужна помощь с этим?

Наши инженеры проанализируют вашу текущую инфраструктуру и предложат конкретные улучшения.