ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Windows Server

Защита Windows VPS: безопасный RDP, блокировка учётных записей и аудит входов

7 шагов 14 мин чтения 2 просмотров 0
Содержание

Windows-сервер в интернете уже через несколько минут после запуска сканируют на порт 3389 и начинают подбирать пароль, поэтому защита Windows VPS — первое, что нужно сделать. Для Windows Server 2016/2019/2022 разберём: надёжный пароль и переименование Administrator, политику блокировки учётных записей, проверку подлинности на уровне сети (NLA) для RDP, доступ к RDP только с вашего IP, отключение лишних служб, проверку Защитника Windows и аудит неудачных входов (событие 4625) через Get-WinEvent.

Шаг 1: Надёжный пароль и переименование учётной записи Administrator

Используйте пароль от 16 символов из букв разного регистра, цифр и символов и нигде его не повторяйте. Почти все инструменты перебора атакуют имя Administrator, поэтому переименование отсекает большую часть массовых атак.

# Set a new strong password (you will be prompted, nothing is echoed)
net user Administrator *

# Rename the built-in Administrator account
Rename-LocalUser -Name "Administrator" -NewName "srvadmin"
Get-LocalUser | Format-Table Name,Enabled,LastLogon
После переименования вводите в RDP новое имя пользователя. Запишите имя и пароль до отключения. Если позже сброс пароля из клиентской зоны сработает некорректно, создайте тикет и укажите, что учётная запись переименована.

Шаг 2: Настроить политику блокировки учётных записей

Политика блокировки временно блокирует учётную запись после нескольких неверных паролей и сильно замедляет перебор. Её также можно задать в secpol.msc → «Политики учётных записей» → «Политика блокировки учётной записи».

# Lock an account for 30 minutes after 5 failed attempts within 30 minutes
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30
net accounts
В старых версиях Windows встроенная учётная запись Administrator по умолчанию не блокируется. Поэтому переименование, сложный пароль и ограничение по IP из шага 4 остаются главной защитой.

Шаг 3: Включить NLA для удалённого рабочего стола

NLA требует проверки подлинности до создания полноценной RDP-сессии: это снижает нагрузку от неаутентифицированных подключений и закрывает часть уязвимостей RDP. Отметьте «Разрешать подключения только с компьютеров, на которых работает удалённый рабочий стол с проверкой подлинности на уровне сети» в «Свойствах системы → Удалённый доступ» или выполните:

$rdp = "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
Set-ItemProperty -Path $rdp -Name UserAuthentication -Value 1
Get-ItemProperty -Path $rdp -Name UserAuthentication, PortNumber

Шаг 4: Разрешить RDP только с вашего IP-адреса

Это самая эффективная защита RDP от перебора. Команды изменяют встроенные правила брандмауэра для удалённого рабочего стола, разрешая подключение только с IP или подсети вашего офиса. Имена правил одинаковы в системах на любом языке. Если вы меняли порт RDP и создали своё правило, задайте -RemoteAddress и для него.

# Built-in Remote Desktop rules (names are the same on every OS language)
Set-NetFirewallRule -Name RemoteDesktop-UserMode-In-TCP, RemoteDesktop-UserMode-In-UDP -RemoteAddress 203.0.113.10, 198.51.100.0/24
Get-NetFirewallRule -Name RemoteDesktop-UserMode-In-TCP | Get-NetFirewallAddressFilter

# Undo: allow RDP from anywhere again
Set-NetFirewallRule -Name RemoteDesktop-UserMode-In-TCP, RemoteDesktop-UserMode-In-UDP -RemoteAddress Any
Сначала уточните свой текущий внешний IP (у домашнего интернета он может меняться). При ошибке в IP соединение сразу оборвётся — в этом случае создайте тикет, и поддержка поможет восстановить доступ.

Шаг 5: Отключить ненужные службы

Каждая работающая служба — потенциальная точка атаки. Выведите список запущенных служб и остановите лишние. Диспетчер печати (Spooler) на сервере почти не нужен и имел серьёзные уязвимости. Не отключайте системные службы, назначение которых вам неизвестно.

Get-Service | Where-Object { $_.Status -eq "Running" } | Sort-Object DisplayName | Format-Table Name,DisplayName

# Example: print spooler is rarely needed on a server
Stop-Service -Name Spooler
Set-Service -Name Spooler -StartupType Disabled

Шаг 6: Проверить, что Защитник Windows включён и обновлён

В Windows Server 2016 и новее встроен антивирус Microsoft Defender. Убедитесь, что защита в реальном времени включена, обновите сигнатуры и запустите быструю проверку.

Get-MpComputerStatus | Select-Object AMServiceEnabled,RealTimeProtectionEnabled,AntivirusSignatureLastUpdated
Set-MpPreference -DisableRealtimeMonitoring $false
Update-MpSignature
Start-MpScan -ScanType QuickScan

Шаг 7: Аудит неудачных входов (событие 4625) через Get-WinEvent

Событие 4625 фиксирует неудачную попытку входа. Команды ниже показывают последние неудачные входы и IP-адреса с наибольшим числом попыток за сутки — так видно, идёт ли перебор, и подозрительные IP можно заблокировать правилом брандмауэра.

# Make sure failed logons are audited (GUID = "Logon" subcategory, language independent)
auditpol /set /subcategory:"{0CCE9215-69AE-11D9-BED3-505054503030}" /failure:enable

# Last 20 failed logons
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20 |
  Select-Object TimeCreated, @{n='User';e={$_.Properties[5].Value}}, @{n='SourceIP';e={$_.Properties[19].Value}}

# Top attacking IPs in the last 24 hours
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddDays(-1)} |
  ForEach-Object { $_.Properties[19].Value } | Group-Object | Sort-Object Count -Descending |
  Select-Object -First 10 Count, Name

Частые вопросы

Есть ли смысл менять порт RDP?

Это снижает «шум» от автоматических сканеров, но не заменяет сложный пароль и ограничение по IP. Лучше сочетать все три меры; см. инструкцию «Смена порта RDP в Windows».

Домашний IP часто меняется. Как настроить белый список?

Разрешите диапазон адресов вашего провайдера или подключайтесь через промежуточный сервер или VPN с фиксированным IP.

Почему в событиях 4625 вместо IP стоит «-»?

Обычно это локальный вход или адрес не был записан на этапе NLA. Если таких событий много, сопоставьте их с журналом брандмауэра.

Если проблема не решена, создайте тикет — техподдержка IMIDC работает 24/7. Укажите IP сервера, версию ОС, выполненные команды и приложите скриншот ошибки, чтобы мы быстрее нашли причину.

Помог ли вам данный ответ?

Похожие руководства