На производственном сервере «безопасность» без доказательств — это всего лишь догадки. Надлежащий аудит Windows дает ответы на практические вопросы: кто вошел в систему, что было изменено, какой процесс запущен и пытался ли кто-то взломать RDP методом перебора.
Если вы запускаете рабочие нагрузки на VPS под управлением Windows, включение политики аудита — один из самых быстрых способов улучшить реагирование на инциденты и обеспечить соответствие нормативным требованиям. На VPS-хостинге это также помогает быстрее устранять неполадки, поскольку вы можете соотнести «что произошло» с «когда это произошло».
Политика аудита определяет, какие действия, имеющие отношение к безопасности, записываются в журнал событий безопасности. Это ваша основная временная шкала для:
Распространенной ошибкой является включение всех категорий аудита, в результате чего важная информация теряется в общем шуме. Для сред VPS более эффективный подход заключается в следующем:
Запустите от имени администратора:
auditpol /get /category:*
Если вы управляете сервером через GPO, помните, что политики домена могут переопределять локальные настройки. На автономном VPS обычно достаточно локальных настроек.
Современные версии Windows используют расширенную политику аудита (десятки подкатегорий). Чтобы избежать конфликтов между «устаревшими категориями» и подкатегориями, включите политику:
Дополнительно (для автономных серверов): вы также можете применить это через реестр (запустите от имени администратора) и перезагрузите систему:
reg add "HKLMSYSTEMCurrentControlSetControlLsa" /v SCENoApplyLegacyAuditPolicy /t REG_DWORD /d 1 /f
Следующие настройки обеспечивают надежную защиту и устранение неполадок, не перегружая журналы. Запустите эти команды от имени администратора:
:: Logon events (RDP/interactive/service)
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Logoff" /success:enable /failure:enable
auditpol /set /subcategory:"Special Logon" /success:enable /failure:disable
:: Account logon (Kerberos/NTLM where applicable)
auditpol /set /subcategory:"Credential Validation" /success:enable /failure:enable
:: Account management (users/groups)
auditpol /set /subcategory:"User Account Management" /success:enable /failure:enable
auditpol /set /subcategory:"Security Group Management" /success:enable /failure:enable
:: Policy changes and privilege usage
auditpol /set /subcategory:"Audit Policy Change" /success:enable /failure:enable
auditpol /set /subcategory:"Authorization Policy Change" /success:enable /failure:enable
auditpol /set /subcategory:"Sensitive Privilege Use" /success:enable /failure:enable
:: Process creation (great for incident response)
auditpol /set /subcategory:"Process Creation" /success:enable /failure:disable
Примечание: для событий «Доступ к объекту» (файлы/реестр) необходимо выполнить два условия: (1) включить подкатегорию аудита и (2) настроить аудит SACL для конкретной папки/ключа. Без SACL вы можете не увидеть практически ничего, даже если «Доступ к объекту» включен.
Сначала включите аудит файловой системы:
auditpol /set /subcategory:"File System" /success:enable /failure:enable
Затем настройте аудит (SACL) для папки:
Это правильный способ обеспечить значимость журналов: проводить аудит только того, что имеет значение.
Показать неудачные входы в систему за последние 24 часа:
$since = (Get-Date).AddDays(-1)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=$since} |
Select-Object TimeCreated, Id, Message |
Select-Object -First 30
Показать события создания процессов (если включено) и выполнить поиск по подозрительному имени исполняемого файла:
$since = (Get-Date).AddHours(-6)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688; StartTime=$since} |
Where-Object { $_.Message -match 'powershell|cmd.exe|wscript|rundll32' } |
Select-Object TimeCreated, Message |
Select-Object -First 20
На серверах, подключенных к Интернету, крайне важно хранить журналы дольше. Увеличьте максимальный размер журнала безопасности (например, до 256 МБ):
wevtutil sl Security /ms:268435456
Экспорт журнала безопасности для архивирования или реагирования на инциденты:
mkdir C:Logs 2>nul
wevtutil epl Security C:LogsSecurity_$(Get-Date -Format yyyyMMdd_HHmm).evtx
Если вам нужна предсказуемая среда для этих базовых настроек безопасности, начните с управляемого VPS под Windows и контролируйте поверхность доступа с помощью правил брандмауэра хостинга VPS и надежной аутентификации.