25 обязательных GPO-политик для корпоративной сети

Задача клиента: безопасная среда для 500 рабочих станций банка

Банк «БанкСервис» обратился к специалистам itfresh.ru после аудита информационной безопасности. Регулятор (ЦБ РФ) выявил ряд несоответствий стандартам: слабые парольные политики, отсутствие шифрования на рабочих станциях, бесконтрольное использование USB-накопителей, неполное журналирование событий безопасности. Инфраструктура банка — 500 рабочих станций Windows 10/11 и 30 серверов Windows Server 2022 в домене Active Directory.

Требовалось за две недели привести среду в соответствие с требованиями регулятора через централизованное управление групповыми политиками (GPO). Ручная настройка 500 компьютеров исключалась — только автоматизация через AD.

Мы разработали набор из 25 GPO-политик, покрывающих все аспекты корпоративной безопасности: от паролей до аудита. В этой статье разберём каждую политику с конкретными значениями и объяснением.

Парольные политики и блокировка учётных записей

Первый блок — политики паролей. В Active Directory парольная политика домена задаётся в Default Domain Policy и применяется ко всем пользователям.

# GPO 1: Password Policy (Default Domain Policy)
# Computer Configuration → Policies → Windows Settings → Security Settings
# → Account Policies → Password Policy

# Минимальная длина пароля: 12 символов (требование ЦБ)
Set-ADDefaultDomainPasswordPolicy -Identity "servicegroup.local" `
  -MinPasswordLength 12

# Сложность пароля: включена (заглавные + строчные + цифры + спецсимволы)
# Password must meet complexity requirements: Enabled

# Максимальный срок действия: 90 дней
Set-ADDefaultDomainPasswordPolicy -Identity "servicegroup.local" `
  -MaxPasswordAge (New-TimeSpan -Days 90)

# Минимальный срок действия: 1 день (защита от быстрой смены)
Set-ADDefaultDomainPasswordPolicy -Identity "servicegroup.local" `
  -MinPasswordAge (New-TimeSpan -Days 1)

# История паролей: 24 пароля (нельзя повторять)
Set-ADDefaultDomainPasswordPolicy -Identity "servicegroup.local" `
  -PasswordHistoryCount 24

Для привилегированных учётных записей (администраторы, сервисные аккаунты) мы создали Fine-Grained Password Policy с ещё более строгими требованиями:

# GPO 2: Fine-Grained Password Policy для администраторов
New-ADFineGrainedPasswordPolicy -Name "Admin-Password-Policy" `
  -Precedence 10 `
  -MinPasswordLength 16 `
  -MaxPasswordAge (New-TimeSpan -Days 60) `
  -PasswordHistoryCount 30 `
  -ComplexityEnabled $true `
  -ReversibleEncryptionEnabled $false `
  -LockoutThreshold 3 `
  -LockoutDuration (New-TimeSpan -Minutes 30) `
  -LockoutObservationWindow (New-TimeSpan -Minutes 30)

# Применяем к группе Domain Admins
Add-ADFineGrainedPasswordPolicySubject -Identity "Admin-Password-Policy" `
  -Subjects "Domain Admins","Enterprise Admins"

GPO 3: Account Lockout Policy — защита от брутфорса:

# Account Policies → Account Lockout Policy
# Порог блокировки: 5 неудачных попыток
# Длительность блокировки: 15 минут
# Сброс счётчика через: 15 минут
Set-ADDefaultDomainPasswordPolicy -Identity "servicegroup.local" `
  -LockoutThreshold 5 `
  -LockoutDuration (New-TimeSpan -Minutes 15) `
  -LockoutObservationWindow (New-TimeSpan -Minutes 15)

Пять неудачных попыток входа блокируют учётную запись на 15 минут. Это не создаёт серьёзных неудобств пользователям, но эффективно останавливает автоматический перебор паролей.

AppLocker: контроль запуска приложений

AppLocker — мощнейший инструмент Windows для ограничения запуска программ. Для банка это критически важно: пользователь не должен запускать ничего, кроме разрешённого ПО.

# GPO 4: AppLocker Rules
# Computer Configuration → Policies → Windows Settings → Security Settings
# → Application Control Policies → AppLocker

# Создаём базовые правила через PowerShell
# Разрешаем стандартные программы Windows
New-AppLockerPolicy -RuleType Publisher,Path,Hash `
  -RuleNamePrefix "BankService" `
  -User "Everyone" `
  -AllowWindows

# Правила для исполняемых файлов (.exe, .com)
# Разрешено: C:\Windows\*, C:\Program Files\*, C:\Program Files (x86)\*
# Запрещено: всё остальное (включая рабочий стол и Downloads)

# Правила для скриптов (.ps1, .bat, .cmd, .vbs, .js)
# Разрешено: только из C:\Scripts\ для администраторов
# Запрещено: для обычных пользователей

# Правила для MSI-пакетов
# Разрешено: только подписанные пакеты от доверенных издателей

Конфигурация AppLocker в XML для импорта через GPO:

<AppLockerPolicy Version="1">
  <RuleCollection Type="Exe" EnforcementMode="Enabled">
    <FilePathRule Id="1" Name="Windows" Description="Allow Windows" 
      UserOrGroupSid="S-1-1-0" Action="Allow">
      <Conditions>
        <FilePathCondition Path="%WINDIR%\*"/>
      </Conditions>
    </FilePathRule>
    <FilePathRule Id="2" Name="Program Files" Description="Allow PF" 
      UserOrGroupSid="S-1-1-0" Action="Allow">
      <Conditions>
        <FilePathCondition Path="%PROGRAMFILES%\*"/>
      </Conditions>
    </FilePathRule>
    <FilePathRule Id="3" Name="Deny UserProfile" Description="Block user folders" 
      UserOrGroupSid="S-1-1-0" Action="Deny">
      <Conditions>
        <FilePathCondition Path="%USERPROFILE%\Desktop\*"/>
      </Conditions>
    </FilePathRule>
  </RuleCollection>
</AppLockerPolicy>

Важно: перед включением AppLocker в режиме Enforce мы провели неделю в режиме Audit Only, анализируя журналы событий. Это позволило выявить легитимные программы, запускаемые из нестандартных путей, и создать для них исключения. Без этого этапа пользователи банка столкнулись бы с блокировкой рабочих инструментов.

BitLocker, USB-ограничения и настройки безопасности

GPO 5-6: BitLocker Drive Encryption — шифрование всех рабочих станций. Требование регулятора для защиты данных при краже или потере ноутбуков.

# Computer Configuration → Administrative Templates → Windows Components
# → BitLocker Drive Encryption → Operating System Drives

# GPO 5: Обязательное шифрование системного диска
# Require additional authentication at startup: Enabled
#   - Allow BitLocker without compatible TPM: Disabled
#   - Configure TPM startup: Allow TPM
#   - Configure TPM startup PIN: Require startup PIN with TPM

# GPO 6: Сохранение ключей восстановления в AD
# Choose how BitLocker-protected OS drives can be recovered: Enabled
#   - Save BitLocker recovery to AD DS: Enabled
#   - Do not enable BitLocker until recovery info stored in AD: Enabled

# Включение BitLocker через PowerShell (массово через Invoke-Command)
$computers = Get-ADComputer -Filter * -SearchBase "OU=Workstations,DC=servicegroup,DC=local"
foreach ($pc in $computers) {
    Invoke-Command -ComputerName $pc.Name -ScriptBlock {
        $tpm = Get-Tpm
        if ($tpm.TpmPresent -and $tpm.TpmReady) {
            Enable-BitLocker -MountPoint "C:" `
              -EncryptionMethod XtsAes256 `
              -RecoveryPasswordProtector `
              -SkipHardwareTest
            # Бэкап ключа в AD
            $key = (Get-BitLockerVolume -MountPoint "C:").KeyProtector |
                   Where-Object { $_.KeyProtectorType -eq 'RecoveryPassword' }
            Backup-BitLockerKeyProtector -MountPoint "C:" `
              -KeyProtectorId $key.KeyProtectorId
        }
    }
}

GPO 7-8: Ограничение USB-устройств — блокировка флеш-накопителей с исключениями для авторизованных устройств.

# GPO 7: Computer Configuration → Administrative Templates
# → System → Device Installation → Device Installation Restrictions

# Запрещаем установку устройств по классу (USB Mass Storage)
# Prevent installation of devices using drivers that match:
#   Class GUID: {36FC9E60-C465-11CF-8056-444553540000}  (USB Mass Storage)

# GPO 8: Разрешаем конкретные USB-устройства по Hardware ID
# Allow installation of devices that match:
#   USB\VID_0781&PID_5583  (SanDisk корпоративные накопители)

# Через реестр:
$regPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions"
New-Item -Path $regPath -Force
Set-ItemProperty -Path $regPath -Name "DenyDeviceClasses" -Value 1
Set-ItemProperty -Path $regPath -Name "DenyDeviceClassesRetroactive" -Value 1

$denyPath = "$regPath\DenyDeviceClasses"
New-Item -Path $denyPath -Force
Set-ItemProperty -Path $denyPath -Name "1" `
  -Value "{36FC9E60-C465-11CF-8056-444553540000}"

GPO 9-12: Дополнительные политики безопасности:

  • GPO 9: Windows Firewall — блокировка входящих подключений по умолчанию, разрешение только ICMP, RDP (для администраторов), и доменного трафика.
  • GPO 10: Отключение автозапуска для всех типов устройств (защита от вирусов на USB).
  • GPO 11: Ограничение доступа к панели управления — пользователям доступны только «Язык и регион» и «Дата и время».
  • GPO 12: Блокировка cmd.exe и PowerShell для обычных пользователей.

Перенаправление папок, подключение дисков и скрипты входа

GPO 13-15: Folder Redirection — перенаправление пользовательских папок на файловый сервер. Это обеспечивает централизованное хранение данных и упрощает бэкап.

# GPO 13: User Configuration → Policies → Windows Settings
# → Folder Redirection

# Перенаправление «Рабочий стол»:
# Root Path: \\FS01-SG\UserFolders$\%USERNAME%\Desktop
# Setting: Basic (redirect all to same location)
# Grant exclusive rights: Yes

# Перенаправление «Документы»:
# Root Path: \\FS01-SG\UserFolders$\%USERNAME%\Documents

# Перенаправление «Загрузки»:
# Root Path: \\FS01-SG\UserFolders$\%USERNAME%\Downloads

# Создание общей папки на файловом сервере
New-Item -Path "D:\UserFolders" -ItemType Directory
New-SmbShare -Name "UserFolders$" -Path "D:\UserFolders" `
  -FullAccess "SERVICEGROUP\Domain Admins" `
  -ChangeAccess "SERVICEGROUP\Domain Users" `
  -FolderEnumerationMode AccessBased  # ABE — пользователь видит только свою папку

# NTFS-права
icacls "D:\UserFolders" /grant "CREATOR OWNER:(OI)(CI)F" /T
icacls "D:\UserFolders" /grant "Domain Users:(CI)(S,RD,AD)"

GPO 14: Drive Mapping — подключение сетевых дисков через Group Policy Preferences:

# User Configuration → Preferences → Windows Settings → Drive Maps

# Диск H: — домашняя папка пользователя
# Action: Replace
# Location: \\FS01-SG\UserFolders$\%USERNAME%
# Label: Мои файлы
# Drive Letter: H:

# Диск S: — общий диск отдела
# Action: Replace
# Location: \\FS01-SG\Departments$\%DEPARTMENT%
# Label: Отдел
# Drive Letter: S:
# Item-Level Targeting: Security Group = SG-Department-*

# Диск P: — общий ресурс для всех
# Action: Replace
# Location: \\FS01-SG\Public$
# Label: Общий
# Drive Letter: P:

GPO 15: Logon Scripts — скрипты входа для дополнительной настройки среды:

# logon_script.ps1 — скрипт входа пользователя
# Подключение сетевых принтеров по расположению
$office = (Get-ADUser $env:USERNAME -Properties Office).Office
switch ($office) {
    "Floor1" { Add-Printer -ConnectionName "\\PRINT01-SG\HP-Floor1" }
    "Floor2" { Add-Printer -ConnectionName "\\PRINT01-SG\HP-Floor2" }
    "Floor3" { Add-Printer -ConnectionName "\\PRINT01-SG\HP-Floor3" }
}

# Установка переменных среды
[Environment]::SetEnvironmentVariable("BANK_ENV", "production", "User")

# Очистка временных файлов старше 7 дней
Get-ChildItem $env:TEMP -Recurse |
  Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } |
  Remove-Item -Force -Recurse -ErrorAction SilentlyContinue

WSUS, RDP-ограничения и политики аудита

GPO 16-18: Windows Update через WSUS:

# GPO 16: Computer Configuration → Administrative Templates
# → Windows Components → Windows Update

# Specify intranet Microsoft update service location:
#   Set the intranet update service: http://WSUS01-SG:8530
#   Set the intranet statistics server: http://WSUS01-SG:8530

# GPO 17: Configure Automatic Updates:
#   4 — Auto download and schedule the install
#   Scheduled install day: 0 (Every day)
#   Scheduled install time: 03:00

# GPO 18: Enable client-side targeting:
#   Target group name: Bank-Workstations

# Реестр для проверки на клиенте:
$wsusReg = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
Get-ItemProperty -Path $wsusReg
# WUServer          : http://WSUS01-SG:8530
# WUStatusServer    : http://WSUS01-SG:8530
# TargetGroupEnabled: 1
# TargetGroup       : Bank-Workstations

GPO 19-20: Remote Desktop ограничения:

# GPO 19: Разрешение RDP только для группы SG-RDP-Users
# Computer Configuration → Windows Settings → Security Settings
# → Restricted Groups
# Group: Remote Desktop Users
# Members: SERVICEGROUP\SG-RDP-Users

# GPO 20: Ограничение сессий RDP
# Computer Configuration → Administrative Templates → Windows Components
# → Remote Desktop Services → Session Time Limits
# Set time limit for active but idle sessions: 30 minutes
# Set time limit for disconnected sessions: 60 minutes
# End session when time limits are reached: Enabled

GPO 21-25: Политики аудита — журналирование событий безопасности для соответствия требованиям регулятора:

# GPO 21-25: Advanced Audit Policy Configuration
# Computer Configuration → Windows Settings → Security Settings
# → Advanced Audit Policy Configuration

# GPO 21: Logon/Logoff
# Audit Logon: Success, Failure
# Audit Logoff: Success
# Audit Account Lockout: Success, Failure
# Audit Special Logon: Success

# GPO 22: Account Management
# Audit User Account Management: Success, Failure
# Audit Security Group Management: Success, Failure
# Audit Computer Account Management: Success

# GPO 23: Object Access
# Audit File System: Success, Failure (для файловых серверов)
# Audit Registry: Failure
# Audit Removable Storage: Success, Failure

# GPO 24: Policy Change
# Audit Audit Policy Change: Success, Failure
# Audit Authentication Policy Change: Success

# GPO 25: Privilege Use
# Audit Sensitive Privilege Use: Success, Failure

# Увеличение размера журнала Security
# Maximum log size: 1 GB
# Retention method: Overwrite events as needed
wevtutil sl Security /ms:1073741824

# Настройка пересылки событий на SIEM-сервер
wecutil qc /q  # Включение Windows Event Collector

# Проверка применения аудита
auditpol /get /category:*

Все события безопасности пересылаются на SIEM-сервер банка (Splunk) для централизованного анализа и хранения в течение 5 лет согласно требованиям ЦБ.

WMI-фильтры и диагностика GPO

WMI-фильтры позволяют применять GPO только к компьютерам, соответствующим определённым критериям. Для «БанкСервис» мы создали несколько фильтров:

# WMI-фильтр: только ноутбуки (для политики BitLocker с PIN)
SELECT * FROM Win32_Battery WHERE BatteryStatus IS NOT NULL

# WMI-фильтр: только Windows 11 (для политик, специфичных для Win11)
SELECT * FROM Win32_OperatingSystem WHERE Version LIKE "10.0.22%"

# WMI-фильтр: компьютеры с RAM >= 8 ГБ (для политики кэширования)
SELECT * FROM Win32_ComputerSystem WHERE TotalPhysicalMemory >= 8589934592

# Создание WMI-фильтра через PowerShell
$wmiFilter = @"
SELECT * FROM Win32_OperatingSystem WHERE
ProductType = "1" AND Version LIKE "10.0.%"
"@
# ProductType: 1 = Workstation, 2 = Domain Controller, 3 = Server

Диагностика применения GPO — критически важный навык. Основные инструменты:

# gpresult — просмотр применённых политик на конкретном ПК
gpresult /r               # Сводка применённых GPO
gpresult /h report.html   # HTML-отчёт с деталями
gpresult /scope computer  # Только компьютерные политики

# Принудительное обновление GPO
gpupdate /force /boot     # С перезагрузкой (для компьютерных политик)
gpupdate /force /logoff   # С перевходом (для пользовательских политик)

# rsop.msc — Resultant Set of Policy (графический инструмент)
# Показывает итоговый набор политик с указанием, какая GPO задала значение

# Проверка репликации GPO между контроллерами домена
repadmin /replsummary
Get-GPO -All | ForEach-Object {
    $gpo = $_
    $dc1 = Get-GPOReport -Guid $gpo.Id -Server DC01-SG -ReportType XML
    $dc2 = Get-GPOReport -Guid $gpo.Id -Server DC02-SG -ReportType XML
    if ($dc1 -ne $dc2) {
        Write-Warning "GPO '$($gpo.DisplayName)' различается между DC!"
    }
}

# Типичные проблемы:
# 1. GPO не применяется → проверьте Security Filtering и WMI-фильтр
# 2. Конфликт GPO → используйте gpresult /h для определения приоритетов
# 3. Медленный вход → отключите неиспользуемые части GPO (User/Computer)

После внедрения 25 политик аудит «БанкСервис» был пройден успешно. Все замечания регулятора закрыты, среда защищена централизованно, а администраторы управляют конфигурацией 500 рабочих станций из одной консоли. Если вашей организации нужна настройка групповых политик — обращайтесь в itfresh.ru.

Часто задаваемые вопросы

Да, через Fine-Grained Password Policies (FGPP). Стандартная парольная политика задаётся в Default Domain Policy и действует на всех. FGPP позволяет создать отдельные политики для групп безопасности — например, более строгие требования для администраторов (16 символов, смена каждые 60 дней) и стандартные для обычных пользователей.
Создайте тестовую OU и переместите туда несколько компьютеров. Привяжите GPO к этой OU и проверьте результат через gpresult /h. Для AppLocker обязательно используйте режим Audit Only перед включением Enforce — это покажет, какие программы будут заблокированы, без реальной блокировки.
Проверьте: 1) находится ли компьютер в OU, к которой привязана GPO; 2) не заблокировано ли наследование (Block Inheritance); 3) есть ли у компьютера/пользователя права Read и Apply в Security Filtering; 4) не блокирует ли WMI-фильтр; 5) выполните gpupdate /force и просмотрите gpresult /h для детальной диагностики.
Придерживайтесь принципа: одна GPO — одна задача. Не объединяйте десятки настроек в одну GPO. Используйте понятные имена (SEC-BitLocker, NET-Firewall, APP-Office365). Документируйте каждую GPO. Минимизируйте использование Enforced и Block Inheritance — они усложняют диагностику.
Да, каждая GPO увеличивает время обработки при входе. Для 25 GPO задержка составляет 5-15 секунд — приемлемо для большинства организаций. Для оптимизации: отключайте неиспользуемую часть GPO (User/Computer Configuration), используйте Security Filtering вместо WMI-фильтров (WMI медленнее), включите Asynchronous Policy Processing.

Нужна помощь с проектом?

Специалисты АйТи Фреш помогут с архитектурой, DevOps, безопасностью и разработкой — 15+ лет опыта

📞 Связаться с нами
#групповые политики#gpo active directory#applocker#bitlocker gpo#password policy#usb restriction#folder redirection#gpo audit
Комментарии 0

Оставить комментарий

загрузка...