Погодин Евгений — ИТ Заметки
🖥️Windows Server Обновлено 04.11.2026

Windows Server с нуля 12. Безопасность и обслуживание: RDP, LAPS, аудит

Note

Материал сверен с официальной документацией (Microsoft Learn и др.; ссылки — в конце статьи). Примеры вывода — иллюстрации: на вашем сервере значения и формат могут отличаться. Перед работой на боевом сервере проверьте шаги на тестовой машине.

Домен работает, копии снимаются, обновления ставятся. Остаётся не потерять контроль. В небольшой сети безопасность держится на привычках: выдавать минимум прав, не оставлять открытых дверей (прежде всего RDP), не повторять пароль локального администратора, записывать, что происходит, и регулярно проверять здоровье. Обновления, права на папки и групповые политики разобраны в статьях Windows Server с нуля 10, 08 и 06. Здесь вы:

  • разделите повседневные и административные записи, закроете типовые дыры RDP, включите блокировку при подборе паролей и развернёте Windows LAPS;
  • включите аудит, научитесь читать события 4624, 4625 и 4740 и получите чек-лист «ежедневно, еженедельно, ежемесячно».

Warning

Часть шагов способна отрезать вас от серверов: Protected Users, блокировка записей, ограничение адресов RDP. Расширение схемы для LAPS необратимо. Проверяйте всё на стенде и держите открытой консоль гипервизора (она работает без сети). Контрольные точки (снимки) ВМ годятся для стенда и рядовых серверов, а для контроллеров домена в боевой сети откат снимком не применяется, вместо него — копия состояния системы (Windows Server с нуля 11).

Что нужно знать заранее

  • Windows Server с нуля 03: контроллеры, схема, врезка «Кто чем может» (в том числе Schema Admins).
  • Windows Server с нуля 05: OU, группы, Unlock-ADAccount, сброс пароля.
  • Windows Server с нуля 06: создание и связывание GPO, Default Domain Policy.
  • Windows Server с нуля 11: копии, каталоги C:\Backup\..., восстановление леса.
  • Названия окон, политик и подкатегорий аудита даны по английской документации Microsoft (русской версии нет либо она машинная); в русском интерфейсе они переведены, ориентируйтесь на путь и смысл.

Подготовка: тестовая запись и группы

Понадобятся тестовая запись test-admin без административных прав и две глобальные группы: GG-RDP-FS1 (доступ по RDP к FS1) и GG-LAPS-Readers (чтение паролей LAPS). OU Staff и Groups созданы в Windows Server с нуля 05.

$base = (Get-ADDomain).DistinguishedName
New-ADUser -Name 'test-admin' -SamAccountName 'test-admin' `
  -Path "OU=Staff,$base" -Enabled $true `
  -AccountPassword (Read-Host 'Пароль' -AsSecureString)
foreach ($g in 'GG-RDP-FS1', 'GG-LAPS-Readers') {
  New-ADGroup -Name $g -GroupScope Global -GroupCategory Security `
    -Path "OU=Groups,$base"
}

Минимальные привилегии

Чем меньше людей в группах Enterprise Admins, Domain Admins и Administrators и чем реже эти записи входят в систему, тем меньше шансов, что их данные украдут:

  • две учётные записи на человека: обычная для почты и браузера и отдельная для администрирования. В лаборатории admin-lab совмещает роли ради краткости, а в боевой сети их разделяют;
  • встроенный доменный Administrator оставляют для первоначальной настройки и аварий и защищают (см. ниже), а членство в группах не меняют;
  • службам выдают отдельные записи с минимальными правами, а не запись администратора домена.

Запрет входа для встроенного Administrator

Встроенному доменному Administrator запрещают сетевой вход и вход через RDP на рядовых компьютерах и включают флаг «Account is sensitive and cannot be delegated». Для запрета создайте GPO CMP-Deny-Admin-Logon (Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → User Rights Assignment: «Deny access to this computer from the network» и «Deny log on through Remote Desktop Services»). Запись добавляйте строго как LAB\Administrator: имя Administrator без домена закроет вход и локальному администратору на каждом сервере OU, а именно им управляет LAPS.

Сначала оставьте в Security Filtering только FS1 и держите открытой консоль ВМ, затем привяжите GPO к OU Servers. Не привязывайте её к корню домена (запись станет непригодной даже при аварии) и к OU Domain Controllers: вариант для контроллеров Appendix D описывает отдельно, здесь он не разбирается. Откат: Remove-GPLink -Name 'CMP-Deny-Admin-Logon' -Target "OU=Servers,$base" и gpupdate /force (поведение после снятия привязки Appendix D не описывает, проверьте на стенде).

Группа Protected Users

Protected Users — глобальная группа безопасности: её членам Windows применяет защиту, которую они не могут отключить. Для члена группы запрещены проверка подлинности по NTLM (старый протокол Windows), устаревшие типы шифрования Kerberos (DES, RC4) и делегирование, билет Kerberos живёт не дольше 240 минут, а учётные данные не кэшируются: вход на компьютер без связи с контроллером невозможен. Нужны домен с функциональным уровнем Windows Server 2012 R2 и новее и компьютеры с Windows 10 и 11 или Windows Server 2012 R2 и новее.

Не добавляйте в группу записи служб и компьютеров, а членов Domain Admins и Enterprise Admins — только после проверки, что это их не заблокирует. Начните с test-admin; откат — исключить запись из группы:

Add-ADGroupMember -Identity 'Protected Users' -Members 'test-admin'
Remove-ADGroupMember -Identity 'Protected Users' -Members 'test-admin' `
  -Confirm:$false

В русскоязычной системе имена встроенных групп (Protected Users, Domain Admins, Enterprise Admins) переведены: подставьте имя из dsa.msc. Защита включается при следующем входе. Проверка: войдите на PC1 как LAB\test-admin (на контроллеры такая запись не войдёт) и откройте \\DC1\NETLOGON и \\DC2\SYSVOL по именам серверов, а не по IP: NTLM для неё запрещён. Если всё работает, добавьте admin-lab, оставив в консоли ВМ сеанс LAB\Administrator (его в группу не добавляйте): через него вы вернёте admin-lab командой Remove-ADGroupMember. Журналы группы (Applications and Services Logs → Microsoft → Windows → Authentication) по умолчанию выключены.

Безопасный RDP

RDP (Remote Desktop Protocol, протокол удалённого рабочего стола) — главная дверь на сервер, и её чаще всего пытаются подобрать. Включение RDP открывает порт 3389 (правила брандмауэра группы «Remote Desktop» — TCP и UDP). Пусть войти может только нужный человек, с нужной машины, а пароль проверяется до создания сеанса.

Кто может подключаться

Право входа через удалённый рабочий стол называется «Allow log on through Remote Desktop Services». По умолчанию оно есть у Administrators, а на рядовых серверах и станциях ещё и у локальной группы Remote Desktop Users. На контроллерах этой группы в списке нет, поэтому обычные пользователи туда по RDP не попадут: не расширяйте право без нужды. На остальных серверах доступ выдают членством в группе:

Add-LocalGroupMember -Group 'Remote Desktop Users' -Member 'LAB\GG-RDP-FS1'

Группа GG-RDP-FS1 создана выше; в русскоязычной системе имя локальной группы иное, его покажет Get-LocalGroup. Если пользователя нет в группе, при включённом NLA он увидит сообщение, что администратор ограничил тип входа: добавьте его в группу, а NLA не отключайте.

NLA

NLA (Network Level Authentication, проверка подлинности на уровне сети) требует пройти аутентификацию до создания сеанса. В документации она включена по умолчанию в Windows Server 2012; на своём сервере проверьте командой ниже. Закрепить требование можно политикой (GPO с приставкой CMP-, как в Windows Server с нуля 06): Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Security, «Require user authentication for remote connections by using Network Level Authentication» (Enabled; русское название в документации не приведено).

Get-CimInstance -Namespace root/CIMV2/TerminalServices `
  -ClassName Win32_TSGeneralSetting |
  Select-Object TerminalName, UserAuthenticationRequired

Пример вывода (формат приблизительный):

TerminalName UserAuthenticationRequired
------------ --------------------------
RDP-Tcp                                1

Значение 1 означает, что NLA требуется. Отключать её не рекомендуется: проверка подлинности тогда происходит позже, то есть защита слабее.

Не публиковать 3389 в интернет

Не пробрасывайте порт 3389 с роутера на сервер: так вы открываете его всему интернету. Используйте VPN (защищённое соединение с офисной сетью) либо шлюз удалённых рабочих столов (RD Gateway), который передаёт RDP внутри HTTPS. Внутри сети сузьте круг адресов правилом брандмауэра:

Get-NetFirewallRule -DisplayGroup 'Remote Desktop' |
  Set-NetFirewallRule -RemoteAddress 192.168.10.0/24

Команда меняет все правила группы, включая UDP. Адрес должен включать вашу станцию, иначе сеанс оборвётся; откат — Set-NetFirewallRule -RemoteAddress Any. В реальной сети укажите адреса административных станций, а не весь офис. В русскоязычной системе имя группы правил локализовано: найдите его в wf.msc.

Блокировка при подборе паролей

Политика блокировки задаёт, сколько неверных попыток допустимо и на какое время запись блокируется. Базовые настройки безопасности рекомендуют порог 10 попыток и сброс счётчика через 15 минут, а длительность блокировки документация советует около 15 минут (при пороге больше нуля она не меньше интервала сброса). Это ориентир, а не закон. Встроенный доменный Administrator из политики исключён: ему нужен длинный пароль и аудит входов. Блокировать записи можно и нарочно, поэтому её сочетают с аудитом (ниже) и быстрой разблокировкой.

Политика учётных записей домена одна на весь домен и действует сразу: её задают в Default Domain Policy (порог по умолчанию 0). Привязка к тестовому OU её не проверит: OU-политика меняет лишь локальные записи компьютеров. Пробуйте значения на стенде, а перед правкой сохраните политику:

Backup-GPO -Name 'Default Domain Policy' -Path C:\Backup\GPO
Get-ADDefaultDomainPasswordPolicy

В Group Policy Management откройте Default Domain Policy → Edit → Computer Configuration → Policies → Windows Settings → Security Settings → Account Policies → Account Lockout Policy. После gpupdate /force вторая команда покажет LockoutThreshold, LockoutDuration, LockoutObservationWindow. Если пользователи массово блокируются, верните политику через Restore-GPO. Заблокированных найдёт Search-ADAccount -LockedOut -UsersOnly, разблокирует Unlock-ADAccount.

Windows LAPS: свой пароль на каждом сервере

Если у всех серверов один пароль локального администратора, взлом одного открывает все. Windows LAPS (Local Administrator Password Solution) решает это: каждый компьютер сам по расписанию меняет пароль встроенного локального администратора и сохраняет его в Active Directory, а читать его могут только выбранные группы.

Нужны Windows Server 2025 (LAPS встроен) либо Windows Server 2022 и 2019 с обновлениями от 11 апреля 2023 года и новее; клиенты — Windows 11 23H2 и новее, более ранние Windows 11 и Windows 10 с теми же обновлениями. Шифрование паролей требует домена с функциональным уровнем 2016 и новее, пароль DSRM — контроллеров Windows Server 2019 и новее. Прежний Microsoft LAPS (legacy) устарел, и новые ОС блокируют его установку.

Шаг 1. Схема и права

Warning

Расширение схемы необратимо: добавления в схему постоянны, их можно только отключить. Копия одного контроллера отката не даст, потому что схема реплицируется: единственный документированный путь назад — восстановление всего леса (Windows Server с нуля 11). Перед запуском проверьте repadmin /replsummary и dcdiag /q, а саму команду сначала выполните на стенде с параметром -WhatIf. Для изменения схемы обычно нужна группа Schema Admins: как получить её временно, см. врезку «Кто чем может» в Windows Server с нуля 03.

Расширение выполняют один раз на весь лес; затем настраивают права на OU с серверами:

$base = (Get-ADDomain).DistinguishedName
Update-LapsADSchema -WhatIf
Update-LapsADSchema -Verbose
Set-LapsADComputerSelfPermission -Identity "OU=Servers,$base"
Set-LapsADReadPasswordPermission -Identity "OU=Servers,$base" `
  -AllowedPrincipals @('LAB\GG-LAPS-Readers')
Find-LapsADExtendedRights -Identity "OU=Servers,$base"

Вторая команда просит подтверждения. Следующие две разрешают компьютерам OU обновлять свой пароль, а членам GG-LAPS-Readers читать пароли (Domain Admins читают их и так). Последняя показывает, у кого есть «расширенные права» на OU: они позволяют читать конфиденциальные атрибуты, включая пароли LAPS, поэтому в списке должны остаться лишь SYSTEM и Domain Admins.

Шаг 2. Групповая политика

Создайте GPO CMP-LAPS-Servers, свяжите его с OU Servers (Windows Server с нуля 06) и сначала проверьте на одном сервере: в Security Filtering оставьте только FS1. Откат — Remove-GPLink -Name 'CMP-LAPS-Servers' -Target "OU=Servers,$base" (переменную $base задайте заново в новой сессии). Настройки лежат в Computer Configuration → Policies → Administrative Templates → System → LAPS. Если вы используете центральное хранилище шаблонов (Central Store), шаблоны LAPS (LAPS.admx) туда сами не попадают: скопируйте их вручную. Обязателен BackupDirectory:

Параметр По умолчанию Комментарий
BackupDirectory 0 (выключено) нужно задать 2 (хранить пароль в Active Directory)
PasswordAgeDays 30 от 1 до 365 дней
PasswordLength 14 от 8 до 64 знаков

AdministratorAccountName не задавайте: тогда LAPS управляет встроенной локальной учётной записью администратора, которую находит по идентификатору, а не по имени. Названия параметров в редакторе политик могут отличаться от документации («Name of administrator account to manage», «Enable password encryption»): ориентируйтесь на описание.

Шаг 3. Проверка и использование

Примените политику на FS1, затем с контроллера или станции с модулем LAPS прочитайте пароль:

# на FS1
gpupdate /force
Invoke-LapsPolicyProcessing
# на DC1 или административной станции
Get-LapsADPassword -Identity FS1 -AsPlainText

Пример вывода последней команды (значения вымышленные):

ComputerName        : FS1
DistinguishedName   : CN=FS1,OU=Servers,DC=lab,DC=example
Account             : Administrator
Password            : <ПАРОЛЬ>
PasswordUpdateTime  : 11/4/2026 10:15:02 AM
ExpirationTimestamp : 12/4/2026 10:15:02 AM
Source              : EncryptedPassword
DecryptionStatus    : Success
AuthorizedDecryptor : LAB\Domain Admins

Успешную смену пароля фиксирует событие 10018 в журнале Applications and Services Logs → Microsoft → Windows → LAPS → Operational. Использованный пароль смените: Set-LapsADPasswordExpirationTime -Identity FS1 отметит срок как наступивший, и сервер сменит пароль при следующей обработке политики. По умолчанию через 24 часа после входа под управляемой записью пароль сбрасывается, а сеанс завершается.

Для контроллеров LAPS ведёт пароль DSRM (параметр ADBackupDSRMPassword, нужно включённое шифрование): настройте для него отдельную политику на OU Domain Controllers. Этот пароль нужен при восстановлении каталога; если недоступны все контроллеры, его можно прочитать из смонтированной копии базы (инструмент dsamain).

Defender и шифрование дисков

Microsoft Defender Antivirus входит в Windows Server 2016 и новее; как его проверить, показано в Windows Server с нуля 02, а в чек-листе ниже есть строка про него. Исключения для ролей он применяет сам, поэтому вручную их не добавляйте. BitLocker на серверах по умолчанию не установлен; ключи восстановления можно хранить в Active Directory, настроив это политикой до шифрования.

Аудит: что и где смотреть

Настраивайте расширенную политику аудита групповой политикой: Computer Configuration → Policies → Windows Settings → Security Settings → Advanced Audit Policy Configuration → System Audit Policies. Параметр «Audit: Force audit policy subcategory settings (Windows Vista or later) to override audit policy category settings» (Security Options) оставьте включённым. Для таблицы ниже создайте GPO CMP-Audit-DC и свяжите её с OU Domain Controllers, для рядовых серверов — отдельную с OU Servers; откат — Remove-GPLink.

Подкатегория Что фиксирует Ключевые события Что включить
Audit Logon входы в систему 4624, 4625 Success, Failure
Audit Account Lockout отказ при входе в заблокированную запись 4625 Failure
Audit User Account Management создание, изменение, блокировка учётных записей 4720, 4738, 4740, 4767 Success, Failure
Audit Security Group Management изменение групп 4728, 4732, 4756 Success
Audit Directory Service Changes изменение объектов AD (только контроллеры) 5136, 5137, 5141 Success
Audit Credential Validation проверка учётных данных 4776 Failure

Действующую политику покажет auditpol /get /category:*. На рядовых серверах включите Logon, Account Lockout, User Account Management и Security Group Management. Аудит доступа к файлам в этой серии не разбирается.

Три события нужно знать:

  • 4624 — успешный вход. Тип входа (Logon Type) 10 — удалённый рабочий стол, 3 — вход по сети, например при обращении к общей папке;
  • 4625 — неудачный вход. Событие пишется на компьютере, где пытались войти; в нём есть имя записи, тип входа и адрес источника (Source Network Address). Много событий 4625 с одного адреса — признак подбора пароля;
  • 4740 — блокировка учётной записи. Пишется на контроллерах, рядовых серверах и станциях: для доменной записи начинайте с контроллеров, для локальной — с самого компьютера. Поле Caller Computer Name показывает компьютер, с которого пришли неверные пароли.

Журнал удобно читать из PowerShell (от администратора):

Get-WinEvent -FilterHashtable @{
  LogName='Security'; Id=4740; StartTime=(Get-Date).AddDays(-1)
} -MaxEvents 20 | Select-Object TimeCreated, Id, Message

Журнал Security ограничен по размеру и перезаписывается, поэтому важные события отправляйте в мониторинг, например в Zabbix.

Регулярные проверки: чек-лист с командами

Проверки полезны только по расписанию. Запускайте их в PowerShell от имени администратора.

Ежедневно (5–10 минут)

Get-WBSummary                    # копия: последняя успешная не старше суток
repadmin /replsummary            # репликация AD: ошибок быть не должно
dcdiag /q                        # диагностика DC: только ошибки
Get-Volume | Select-Object DriveLetter, SizeRemaining, Size
Search-ADAccount -LockedOut -UsersOnly | Select-Object Name

Get-WBSummary работает там, где установлен компонент Windows Server Backup. Пример вывода repadmin /replsummary (формат приблизительный):

Source DSA          largest delta    fails/total %%   error
 DC1                       05m:12s    0 /   5    0
 DC2                       04m:48s    0 /   5    0

Рост «largest delta» и ненулевые «fails» означают, что репликация не идёт. dcdiag по каждой проверке пишет «passed test …» или «failed test …», а с параметром /q остаются только сбои. Не запрещайте между контроллерами ICMP (протокол, на котором работает ping): dcdiag без него работает не так, как задумано.

Еженедельно

w32tm /query /status             # источник времени, смещение
w32tm /monitor                   # время на контроллерах домена
Get-ADGroupMember 'Domain Admins' | Select-Object Name, objectClass
Get-ADGroupMember 'Enterprise Admins' | Select-Object Name
Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 -UsersOnly |
  Select-Object Name, LastLogonDate
Get-MpComputerStatus | Select-Object AMRunningMode,
  AntivirusSignatureLastUpdated   # Defender, на каждом сервере
Get-HotFix | Sort-Object InstalledOn -Descending |
  Select-Object -First 5          # на каждом сервере

Клиенты берут время у контроллеров, а эмулятор PDC (Primary Domain Controller, главный контроллер домена) корневого домена — у внешнего источника. Расхождение больше допустимого для Kerberos (по умолчанию 5 минут) ломает вход, поэтому смотрите Source и Last Successful Sync Time; настройка источника описана в разделе «Время в домене» Windows Server с нуля 03 и в старой статье про время в домене (для Windows Server 2008 и 2012). Неожиданный участник Domain Admins или Enterprise Admins — повод для немедленной проверки, а неактивные записи отдайте на решение руководителю. Обновления — по Windows Server с нуля 10.

Ежемесячно

$base = (Get-ADDomain).DistinguishedName
Get-LocalGroupMember -Group 'Remote Desktop Users'    # на каждом сервере
Get-ADComputer -Filter * -SearchBase "OU=Servers,$base" `
  -Properties 'msLAPS-PasswordExpirationTime' |
  Where-Object { -not $_.'msLAPS-PasswordExpirationTime' } |
  Select-Object Name
Backup-GPO -All -Path C:\Backup\GPO -Comment 'monthly'

Раз в месяц сверьте состав Remote Desktop Users, найдите серверы без пароля LAPS (вторая команда вернёт компьютеры без срока действия пароля), обновите копии GPO и DHCP, выполните тестовое восстановление (Windows Server с нуля 11) и обновите документацию: схему сети, список записей и ответственных.

Если учётная запись скомпрометирована

Warning

Это краткая памятка, а не план реагирования. Если подозрение касается члена Domain Admins или Enterprise Admins, под угрозой весь домен.

  1. Отключите запись (Disable-ADAccount -Identity <имя>) и сбросьте пароль (Windows Server с нуля 05): пользователь потеряет доступ, но атакующий будет остановлен.
  2. Сохраните журнал, пока он не перезаписан: wevtutil epl Security C:\Backup\Evidence\sec.evtx, затем перенесите файл на отдельный носитель.
  3. Просмотрите события 4624 и 4625 по этой записи, 4728, 4732, 4756 (кого добавляли в привилегированные группы), 4720 (новые записи) и 5136 (изменения каталога), а также состав привилегированных групп и недавние GPO.
  4. Если скомпрометирована привилегированная запись, ориентируйтесь на руководство по восстановлению леса: оно описывает сброс паролей всех административных записей и учётной записи krbtgt (Windows Server с нуля 11). Не «латайте» без плана, при необходимости привлеките специалистов по реагированию.

Типичные ошибки и недоразумения

  • Один пароль локального администратора на всех серверах. Решение — Windows LAPS.
  • Отключили NLA, «чтобы подключиться». Обычно пользователя просто нет в Remote Desktop Users.
  • Порт 3389 проброшен в интернет. Нужны VPN или RD Gateway.
  • Блокировка есть, аудита нет. Вы не узнаете, кого подбирали. Просматривайте 4740 и 4625.
  • admin-lab сразу добавили в Protected Users. Возможна блокировка входа: начните с test-admin.
  • Имя Administrator без домена в запрете входа. Закроется вход и локальному администратору всех серверов OU.
  • Схему расширили без плана. Одним контроллером её не откатить; готовьтесь к восстановлению леса.

Проверьте себя

  1. Зачем нужен NLA и как проверить, что он включён? NLA требует проверки подлинности до создания сеанса RDP. Состояние показывает свойство UserAuthenticationRequired класса Win32_TSGeneralSetting (значение 1).
  2. Какой командой расширяют схему под Windows LAPS и в чём риск? Update-LapsADSchema (один раз на лес, обычно нужна группа Schema Admins; сначала с -WhatIf на стенде). Изменение необратимо, одним контроллером его не откатить: схема реплицируется.
  3. Какое событие говорит о блокировке учётной записи и где его искать? 4740. Для доменной записи начинают с контроллеров; Caller Computer Name показывает компьютер, с которого пришли неверные пароли.
  4. Чем 4625 отличается от 4624? 4624 — успешный вход, 4625 — неудачный; много 4625 с одного адреса — признак подбора пароля.
  5. Какие команды составляют минимальную ежедневную проверку? repadmin /replsummary, dcdiag /q, Get-WBSummary и проверка места на дисках.

Что дальше

Источники

Ещё по теме «Windows Server»