Базовое администрирование AD, и подключение стека ELK

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Домашняя лаборатория: Active Directory + Windows 7 + сбор логов в ELK

Пошаговое руководство по развёртыванию мини‑стенда в VirtualBox:

  1. Контроллер домена Active Directory (с DNS и DHCP) на Windows Server 2019.

  2. Политика аудита через GPO.

  3. Клиент Windows 7 в домене.

  4. ELK‑стек (Elasticsearch, Logstash, Kibana 9.4.2) и отправка событий Windows через Winlogbeat.

Статья написана по реальному развёртыванию, поэтому в конце есть раздел с проблемами, которые встретились по пути, и их решениями.

⚠️ Важно. Windows 7 снята с поддержки и содержит неисправленные уязвимости. Используйте её только в изолированной лабораторной сети и не давайте ей доступ к рабочим ресурсам. Конфигурации ELK в статье упрощены (в Logstash используется учётная запись elastic) и подходят только для лаборатории.

Содержание

  • Архитектура стенда

  • 1. Active Directory

  • 2. DHCP

  • 3. Структура домена

  • 4. Политика аудита (GPO)

  • 5. Ввод Windows 7 в домен

  • 6. Подготовка ELK‑сервера

  • 7. Logstash

  • 8. Winlogbeat на DC и Windows 7

  • 9. Просмотр логов в Kibana

  • 10. Проблемы и решения

  • 11. Что дальше


Архитектура стенда

Машина

ОС

Роль

Адрес

DC01

Windows Server 2019

AD DS, DNS, DHCP

192.168.100.10 (статический)

WIN7-PC01

Windows 7

Клиент домена

DHCP, диапазон .100–.200

elk

Ubuntu Server

Elasticsearch, Logstash, Kibana

192.168.100.20 (статический)

  • Домен: corp.lab (NetBIOS: CORP)

  • Сеть: 192.168.100.0/24, в VirtualBox тип подключения «Сеть NAT» с именем AD-Lab. Встроенный DHCP‑сервер этой сети VirtualBox отключён, адреса выдаёт DC.

Ресурсы виртуальных машин (ориентир):

ВМ

CPU

RAM

Диск

DC01

2

4 ГБ

40 ГБ

WIN7-PC01

1–2

2 ГБ

30 ГБ

elk

2

4,5 ГБ можно больше

40 ГБ

На 3 ГБ RAM Elasticsearch и Kibana работают на пределе, а с Logstash начинают падать из‑за нехватки памяти. Закладывайте не меньше 4–6 ГБ.

Настройка сети VirtualBox

  1. Файл → Инструменты → Сетевой менеджер → Сети NAT → создать сеть AD-Lab, префикс 192.168.100.0/24, снять галочку «Включить DHCP».

  2. У всех трёх ВМ: Настройки → Сеть → Адаптер 1 → тип «Сеть NAT», имя AD-Lab.

  3. Для доступа с хоста добавить проброс портов (Свойства сети → Проброс портов), протокол TCP:

Имя

IP хоста

Порт хоста

IP гостя

Порт гостя

ssh‑elk

127.0.0.1

2222

192.168.100.20

22

kibana

127.0.0.1

5601

192.168.100.20

5601

Тогда на хосте работают ssh -p 2222 elk@127.0.0.1 (удобно, когда в консоли ВМ не работает буфер обмена) и http://localhost:5601.

1. Active Directory

Все команды этого раздела выполняются в PowerShell от администратора на DC01.

1.1. Имя и статический IP

Rename-Computer -NewName "DC01" -Restart

После перезагрузки:

Get-NetAdapter
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.100.10 -PrefixLength 24 -DefaultGateway 192.168.100.1
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 127.0.0.1

(вместо Ethernet подставьте имя адаптера из Get-NetAdapter).

1.2. Установка роли и повышение до контроллера домена

Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
Install-ADDSForest -DomainName "corp.lab" -DomainNetbiosName "CORP" -InstallDns:$true -SafeModeAdministratorPassword (Read-Host -AsSecureString "DSRM password") -Force:$true

Сервер перезагрузится. Дальше входите как CORP\Administrator.

1.3. Проверка

Get-ADDomain
dcdiag /q
Get-Service NTDS, DNS, Netlogon, KDC

dcdiag /q не должна выводить ошибок.

2. DHCP

Install-WindowsFeature -Name DHCP -IncludeManagementTools

# Авторизовать сервер в AD
Add-DhcpServerInDC -DnsName "dc01.corp.lab" -IPAddress 192.168.100.10

# Область выдачи адресов (команда одной строкой, без обратных кавычек)
Add-DhcpServerv4Scope -Name "Lab" -StartRange 192.168.100.100 -EndRange 192.168.100.200 -SubnetMask 255.255.255.0 -State Active

# Опции для клиентов: DNS и суффикс
Set-DhcpServerv4OptionValue -DnsServer 192.168.100.10 -DnsDomain corp.lab -Router 192.168.100.1

Restart-Service DHCPServer

Проверка:

Get-DhcpServerv4Scope
Get-DhcpServerInDC
Get-DhcpServerv4OptionValue -ScopeId 192.168.100.0

Если при создании области появляется ошибка DHCP 20052 / ResourceExists, значит, область уже создана мастером при установке роли. Проверьте её и поправьте через Set-DhcpServerv4Scope.

3. Структура домена

$base = "DC=corp,DC=lab"

New-ADOrganizationalUnit -Name "Lab"       -Path $base
New-ADOrganizationalUnit -Name "Users"     -Path "OU=Lab,$base"
New-ADOrganizationalUnit -Name "Computers" -Path "OU=Lab,$base"
New-ADOrganizationalUnit -Name "Groups"    -Path "OU=Lab,$base"

New-ADGroup -Name "IT-Admins" -GroupScope Global -Path "OU=Groups,OU=Lab,$base"
New-ADGroup -Name "Employees" -GroupScope Global -Path "OU=Groups,OU=Lab,$base"

# Новые компьютеры по умолчанию попадают в OU=Computers
redircmp "OU=Computers,OU=Lab,DC=corp,DC=lab"

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

$pwd = Read-Host -AsSecureString "Пароль для тестовых пользователей"

New-ADUser -Name "Ivan Petrov" -SamAccountName "ipetrov" -UserPrincipalName "ipetrov@corp.lab" -Path "OU=Users,OU=Lab,DC=corp,DC=lab" -AccountPassword $pwd -Enabled $true
New-ADUser -Name "Anna Smirnova" -SamAccountName "asmirnova" -UserPrincipalName "asmirnova@corp.lab" -Path "OU=Users,OU=Lab,DC=corp,DC=lab" -AccountPassword $pwd -Enabled $true

Add-ADGroupMember -Identity "Employees" -Members ipetrov, asmirnova
Add-ADGroupMember -Identity "IT-Admins" -Members ipetrov

Проверка:

Get-ADOrganizationalUnit -Filter * | Select-Object Name, DistinguishedName
Get-ADUser -Filter * -SearchBase "OU=Users,OU=Lab,DC=corp,DC=lab" | Select-Object Name, SamAccountName, Enabled
(Get-ADDomain).ComputersContainer

4. Политика аудита (GPO)

Чтобы в журнале «Безопасность» появились события входов, создания учётных записей и запуска процессов, нужно включить расширенный аудит.

4.1. Создание GPO

New-GPO -Name "Lab-Audit-Policy"
New-GPLink -Name "Lab-Audit-Policy" -Target "DC=corp,DC=lab"

# Командная строка процессов в событии 4688
Set-GPRegistryValue -Name "Lab-Audit-Policy" -Key "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Audit" -ValueName "ProcessCreationIncludeCmdLine_Enabled" -Type DWord -Value 1

4.2. Подкатегории аудита

gpmc.msc → Lab‑Audit‑Policy → Изменить → Конфигурация компьютера → Политики → Конфигурация Windows → Параметры безопасности → Расширенная конфигурация политики аудита → Политики аудита.

Категория

Подкатегория

Успех

Отказ

Вход учётной записи

Проверка учётных данных

✔

✔

Вход учётной записи

Служба проверки подлинности Kerberos

✔

✔

Вход учётной записи

Операции с билетами службы Kerberos

✔

✔

Управление учётными записями

Управление учётными записями пользователей

✔

✔

Управление учётными записями

Управление группами безопасности

✔

✔

Вход/выход

Вход в систему

✔

✔

Вход/выход

Выход из системы

✔

Вход/выход

Специальный вход

✔

Подробное отслеживание

Создание процесса

✔

Доступ к службе каталогов

Изменение службы каталогов

✔

Изменение политики

Изменение политики аудита

✔

✔

Дополнительно в той же политике: Параметры безопасности → Локальные политики → Параметры безопасности → «Аудит: принудительно переопределять параметры политики аудита категорий параметрами подкатегорий…» → Включено.

4.3. Проверка

gpupdate /force
auditpol /get /category:* | Select-String -NotMatch "Без аудита"
reg query HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v SCENoApplyLegacyAuditPolicy

Должны остаться строки «Успех» / «Успех и сбой», а значение реестра равно 0x1.

4.4. Если аудит остаётся «Без аудита»

Это была самая неочевидная проблема стенда. Политика применялась (gpresult показывал Lab-Audit-Policy, событие 1704 сообщало об успехе, файл audit.csv лежал в SYSVOL), но аудит не включался.

Причина: в атрибуте gPCMachineExtensionNames объекта политики не было записи о расширении «Конфигурация расширенной политики аудита» ({F3CCC681-B74C-4060-9F26-CD84525DCA2A}). Клиент запускает только те расширения, которые перечислены в этом атрибуте, поэтому настройки из audit.csv игнорировались. Обычно запись создаёт сам редактор политик, но здесь этого не произошло.

Диагностика:

$gpo = Get-GPO -Name "Lab-Audit-Policy"
$dn  = "CN={$($gpo.Id)},CN=Policies,CN=System,DC=corp,DC=lab"
(Get-ADObject $dn -Properties gPCMachineExtensionNames).gPCMachineExtensionNames

В выводе нужен фрагмент F3CCC681-B74C-4060-9F26-CD84525DCA2A. Если его нет, дописываем запись (один раз):

$entry = "[{F3CCC681-B74C-4060-9F26-CD84525DCA2A}{0F3F3735-573D-9804-99E4-AB2A69BA5FD4}]"
$cur   = (Get-ADObject $dn -Properties gPCMachineExtensionNames).gPCMachineExtensionNames
if ($cur -notlike "*F3CCC681*") { Set-ADObject $dn -Replace @{gPCMachineExtensionNames = $cur + $entry} }

gpupdate /force

Если при повторном запуске запись добавилась дважды, уберите дубль: $clean = $cur.Replace($entry, "") + $entry, затем Set-ADObject $dn -Replace @{gPCMachineExtensionNames = $clean}.

Запасной вариант (локально на одной машине, без GPO):

auditpol /set /subcategory:"{0CCE923F-69AE-11D9-BED3-505054503030}" /success:enable /failure:enable

GUID подкатегорий не зависят от языка системы: {0CCE9215-...} вход в систему, {0CCE9235-...} управление пользователями, {0CCE922B-...} создание процесса и так далее

5. Ввод Windows 7 в домен

5.1. Подготовка

  1. Установлен Service Pack 1 (winver).

  2. При установке задано имя ПК WIN7-PC01 и локальная учётная запись (например, labadmin).

  3. Адаптер в сети AD-Lab, адрес выдаёт DC:

ipconfig /all

Нужно: IP из диапазона 192.168.100.100–200, DNS‑сервер 192.168.100.10, DNS‑суффикс corp.lab. Адрес вида 169.254.x.x означает, что DHCP недоступен.

  1. Проверка DNS:

ping 192.168.100.10
nslookup corp.lab
nslookup -type=SRV _ldap._tcp.dc._msdcs.corp.lab
  1. Время на ПК и на DC не должно отличаться больше чем на 5 минут (требование Kerberos).

5.2. Ввод

PowerShell от администратора (на Windows 7 доступен PowerShell 2.0):

Add-Computer -DomainName corp.lab -Credential CORP\Administrator -Restart

Или графически: Компьютер → Свойства → Изменить параметры → Изменить → Член домена.

5.3. Проверка

После перезагрузки войдите как CORP\ipetrov (для проверок аудита нужен CORP\Administrator):

whoami
gpresult /scope computer /r
auditpol /get /category:* | find /v "Без аудита"

В gpresult должна быть Lab-Audit-Policy. На DC:

Get-ADComputer -Filter * | Select-Object Name, DistinguishedName

WIN7-PC01 должен находиться в OU=Computers,OU=Lab,DC=corp,DC=lab.

Для вывода командной строки в событии 4688 на Windows 7 нужно обновление KB3004375.

6. Подготовка ELK‑сервера

На сервере Ubuntu должны быть установлены Elasticsearch и Kibana версии 9.4.2 (по документации Elastic). Дальше описана подготовка сети и ресурсов.

6.1. Статический адрес

ls /etc/netplan/

Конфигурацию удобно записать одной строкой, чтобы не ошибиться в отступах YAML (имя файла и интерфейса подставьте свои):

echo 'network: {version: 2, ethernets: {enp0s3: {dhcp4: false, addresses: [192.168.100.20/24], routes: [{to: default, via: 192.168.100.1}], nameservers: {search: [corp.lab], addresses: [192.168.100.10]}}}}' | sudo tee /etc/netplan/50-cloud-init.yaml
sudo chmod 600 /etc/netplan/50-cloud-init.yaml
sudo netplan try

# чтобы cloud-init не перезаписал настройку после перезагрузки
echo 'network: {config: disabled}' | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

Проверка:

ip a | grep inet
resolvectl status
nslookup dc01.corp.lab
ping -c 3 192.168.100.10

В resolvectl status у интерфейса должен быть DNS Servers: 192.168.100.10.

Альтернатива: вместо статического адреса на самой машине можно создать на DHCP резервацию по MAC‑адресу (Add-DhcpServerv4Reservation). Адрес в этом случае должен попадать в диапазон области. Статика независима от DC, поэтому для серверов её используют чаще.

6.2. Память

free -h

Если RAM мало, увеличьте её в настройках ВМ и ограничьте кучи Java:

printf -- '-Xms2g\n-Xmx2g\n' | sudo tee /etc/elasticsearch/jvm.options.d/heap.options
sudo systemctl restart elasticsearch

6.3. Kibana доступна снаружи

По умолчанию Kibana слушает только 127.0.0.1:

sudo sed -i 's/^#\?server.host:.*/server.host: "0.0.0.0"/' /etc/kibana/kibana.yml
sudo systemctl restart kibana

6.4. Пароль пользователя elastic

sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

Новый пароль выводится один раз, запишите его.

7. Logstash

Winlogbeat 7.17 (единственная ветка, работающая на Windows 7) не подключается напрямую к Elasticsearch 9.x, поэтому между ними ставится Logstash той же версии, что и Elasticsearch (9.4.2).

7.1. Установка

Если сервер может обращаться к репозиторию Elastic, подойдёт обычный apt. Если загрузка пакетов блокируется (ответ 403 Forbidden), скачайте logstash-9.4.2-amd64.deb на другой машине и передайте на сервер:

scp -P 2222 "C:\Users\<user>\Downloads\logstash-9.4.2-amd64.deb" elk@127.0.0.1:~/

Устанавливайте файл через dpkg, а не apt install ./файл. Во втором случае apt пытается скачать пакет из репозитория, а локальный файл читает от служебного пользователя, у которого нет доступа к домашней папке (ошибка Permission denied):

sudo dpkg -i ~/logstash-9.4.2-amd64.deb
/usr/share/logstash/bin/logstash --version

Если памяти мало, уменьшите кучу Logstash:

sudo sed -i 's/^-Xms1g/-Xms512m/; s/^-Xmx1g/-Xmx512m/' /etc/logstash/jvm.options

7.2. Сертификат Elasticsearch

sudo mkdir -p /etc/logstash/certs
sudo cp /etc/elasticsearch/certs/http_ca.crt /etc/logstash/certs/
sudo chown -R logstash:logstash /etc/logstash/certs
sudo chmod 640 /etc/logstash/certs/http_ca.crt

7.3. Pipeline

Пароль запрашивается интерактивно и подставляется в файл, в историю команд он не попадает:

read -s -p "Пароль elastic: " PW; echo
sudo tee /etc/logstash/conf.d/winlogbeat.conf > /dev/null <<EOF
input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["https://localhost:9200"]
    user => "elastic"
    password => "$PW"
    ssl_certificate_authorities => ["/etc/logstash/certs/http_ca.crt"]
    index => "winlogbeat-%{+YYYY.MM.dd}"
  }
}
EOF
unset PW

Хранить пароль elastic в конфигурации допустимо только в изолированной лаборатории. В реальной среде создайте отдельного пользователя с минимальными правами на запись в индексы winlogbeat-*.

7.4. Запуск

sudo systemctl enable --now logstash
sudo ss -tlnp | grep -E '5044|5601|9200'

Logstash стартует около минуты. Должны слушаться порты 9200 (Elasticsearch), 5601 (Kibana) и 5044 (Logstash). Если включён ufw:

sudo ufw allow from 192.168.100.0/24 to any port 5044 proto tcp

8. Winlogbeat на DC и Windows 7

8.1. Версия

Winlogbeat

Windows 7

Комментарий

7.17.x

✅

Используем на DC и Windows 7

8.x и новее

❌

Не запускается на Windows 7

Скачайте winlogbeat-7.17.x-windows-x86_64.zip (для 32-разрядной Windows 7 вариант x86) и распакуйте в C:\Program Files\Winlogbeat.

8.2. Конфигурация winlogbeat.yml

Одинаковая для обеих машин:

winlogbeat.event_logs:
  - name: Security
    ignore_older: 72h
  - name: System
    ignore_older: 72h
  - name: Application
    ignore_older: 72h

setup.template.enabled: false
setup.ilm.enabled: false

output.logstash:
  hosts: ["192.168.100.20:5044"]

logging.level: info
logging.to_files: true
logging.files:
  path: C:/ProgramData/winlogbeat/Logs

Другие секции output.* и setup.kibana должны быть закомментированы или удалены.

Совет, если в ВМ не работает буфер обмена: распакуйте архив на сервере ELK (python3 -m zipfile -e <архив>.zip ~/wlb), запишите конфиг через cat > ... <<'EOF', запакуйте обратно (python3 -m zipfile -c ~/winlogbeat-ready.zip <папка>) и раздайте в лабораторной сети командой python3 -m http.server 8000. На DC скачать можно так: Invoke-WebRequest -UseBasicParsing -Uri http://192.168.100.20:8000/winlogbeat-ready.zip -OutFile C:\winlogbeat-ready.zip. После скачивания остановите веб‑сервер.

8.3. Проверка

Из каталога Winlogbeat, от администратора:

winlogbeat.exe test config -c winlogbeat.yml -e
winlogbeat.exe test output -c winlogbeat.yml

test output должен подтвердить подключение к 192.168.100.20:5044.

8.4. Установка службы

DC01 (PowerShell):

Set-ExecutionPolicy -Scope Process Bypass
.\install-service-winlogbeat.ps1
Start-Service winlogbeat

Windows 7 (cmd, одной командой; штатный скрипт требует более новый PowerShell):

sc create winlogbeat binPath= "\"C:\Program Files\Winlogbeat\winlogbeat.exe\" -c \"C:\Program Files\Winlogbeat\winlogbeat.yml\" -path.home \"C:\Program Files\Winlogbeat\" -path.data \"C:\ProgramData\winlogbeat\" -path.logs \"C:\ProgramData\winlogbeat\Logs\"" start= auto DisplayName="Winlogbeat"
sc start winlogbeat

Пробелы после binPath= и start= обязательны. Проверка: sc query winlogbeat показывает RUNNING.

9. Просмотр логов в Kibana

9.1. Проверка на стороне сервера

read -s -p "Пароль elastic: " PW; echo
curl -sk -u elastic:$PW 'https://localhost:9200/_cat/indices/winlogbeat-*?v'

Должен появиться индекс winlogbeat-ГГГГ.ММ.ДД, а docs.count растёт. Статус yellow у одиночного узла нормален (нет второго сервера для реплик).

События по хостам:

curl -sk -u elastic:$PW 'https://localhost:9200/winlogbeat-*/\_search?size=0&pretty' -H 'Content-Type: application/json' -d '{"aggs":{"hosts":{"terms":{"field":"host.name.keyword"}}}}'

Должны быть и DC01, и WIN7-PC01.

9.2. Data View

Kibana сама не создаёт Data View для winlogbeat-*:

  1. http://localhost:5601 (логин elastic).

  2. Stack Management → Data Views → Create data view.

  3. Name: winlogbeat, Index pattern: winlogbeat-*, Timestamp field: @timestamp.

  4. Discover → выберите этот Data View, диапазон «Last 24 hours».

9.3. Генерация событий

  • На Windows 7: один раз введите неверный пароль для CORP\ipetrov, затем верный.

  • На DC:

New-ADUser -Name "Test User" -SamAccountName "tuser"
Add-ADGroupMember -Identity "IT-Admins" -Members tuser
Remove-ADUser -Identity tuser -Confirm:$false

9.4. Полезные запросы (KQL)

Что ищем

Запрос

События с DC

host.name: "DC01"

События с Windows 7

host.name: "WIN7-PC01"

Успешные входы

event.code: "4624"

Неудачные входы

event.code: "4625"

Создание пользователей

event.code: "4720"

Удаление пользователей

event.code: "4726"

Добавление в группы

event.code: ("4728" or "4732" or "4756")

Билеты Kerberos (на DC)

event.code: ("4768" or "4769")

Запуск процессов

event.code: "4688"

Имена полей зависят от версии Winlogbeat. Если запрос ничего не находит, раскройте любое событие в Discover и посмотрите реальные названия (event.code, winlog.event_id, winlog.event_data.*).

10. Проблемы и решения

Симптом

Причина и решение

Add-DhcpServerv4Scope: «недопустимый адрес IP»

При вставке команды обратная кавычка ` оказалась посреди строки. Выполняйте команду одной строкой

DHCP 20 052 ResourceExists

Область уже существует (создана мастером). Проверьте Get-DhcpServerv4Scope, поправьте через Set-DhcpServerv4Scope

auditpol показывает «Без аудита», хотя GPO применена

В gPCMachineExtensionNames нет расширения аудита, см. 4.4

Win7: «Не удаётся найти контроллер домена»

DNS клиента не указывает на DC. Проверьте nslookup -type=SRV ldap.tcp.dc._msdcs.corp.lab

Win7: ошибка при входе или вводе, связанная со временем

Расхождение больше 5 минут, синхронизируйте часы

ELK в сети 10.0.2.x, DC и Win7 его не видят

У ВМ стоит обычный «NAT» вместо «Сети NAT» AD-Lab

netplan try: Invalid YAML: inconsistent indentation

Неверные отступы. Запишите конфиг одной строкой (см. 6.1)

nslookup на ELK: SERVFAIL

В resolvectl status указан не тот DNS (например 192.168.100.1 вместо .10). Исправьте в netplan и выполните sudo netplan apply

apt install logstash: 403 Forbidden

Загрузка пакетов Elastic блокируется. Скачайте .deb на другой машине, передайте scp и установите dpkg -i

apt install ./файл.deb: Permission denied

Служебный пользователь apt не читает домашнюю папку. Используйте sudo dpkg -i файл.deb

ssh: hostname contains invalid characters

Для копирования файлов нужен scp (порт задаётся -P), а не ssh

elasticsearch-reset-password: exit code 69

Elasticsearch ещё не поднялся или упал из‑за нехватки памяти. Проверьте systemctl status, free -h, dmesg

Elasticsearch и Kibana падают или тормозят

Мало RAM (3 ГБ недостаточно). Увеличьте память ВМ, ограничьте кучи Java

Logstash: Elasticsearch Unreachable ... handshake

Elasticsearch перезапускался или не справлялся с нагрузкой. После стабилизации Logstash подключается сам

curl --cacert ...: error setting certificate file

У пользователя нет прав на файл. Запускайте через sudo

В Kibana нет Data View winlogbeat

Его нужно создать вручную (см. 9.2)

Нет событий с одного хоста

Проверьте службу Winlogbeat, test output и журнал в C:\ProgramData\winlogbeat\Logs

В событии 4688 нет командной строки

Не включена настройка GPO или нет KB3004375 на Windows 7

Цепочка диагностики, если данных нет: служба Winlogbeat запущена → test output успешен → порт 5044 слушает (ss -tlnp) → в журнале Logstash нет ошибок (journalctl -u logstash) → индекс создан (_cat/indices) → в Kibana выбран правильный диапазон времени.


11. Что дальше

  • Установить Sysmon (например, с конфигом SwiftOnSecurity) и добавить канал Microsoft-Windows-Sysmon/Operational в Winlogbeat.

  • Создать дашборд: неудачные входы по времени и хостам, топ учётных записей с ошибками, изменения групп.

  • Включить безопасность Elastic по‑настоящему: отдельный пользователь для Logstash, TLS между компонентами, убрать пароль elastic из конфигов.

  • Настроить правила обнаружения (Kibana Security или Sigma), например для перебора паролей и создания привилегированных учётных записей.

  • Заменить Windows 7 на современную ОС и использовать Elastic Agent вместо Winlogbeat.

  • Потренироваться на атаках в лаборатории (перебор паролей, Kerberoasting) и посмотреть, как они выглядят в логах.


Лицензия

MIT. Материал предоставляется «как есть». Не применяйте приведённые конфигурации в рабочей среде без доработки безопасности.

Источник: https://habr.com/ru/articles/1098864/


Интересные статьи

Интересные статьи

Если вы разрабатываете на Битрикс24 и поддерживаете несколько окружений — тест, стейдж, прод — вы знаете эту боль. Настроил воронку, добавил пользовательские поля, написал робота с десятком условий, в...
Привет, Хабр! Меня зовут Никита Полосухин, я старший системный аналитик центра мониторинга и реагирования на кибератаки RED Security SOC. В этом материале я хочу снова поднять тему важности своевремен...
Или как избавить DS от рутинных задач по обучению и обновлению моделей и их дальнейшему передеплою в проде?Всем привет! Я Настя Бондарева, senior Data Scientist в Хабе Юридических Лиц Альфа-Банка, лид...
В этой статье ознакомимся с 15 лучшими и крупнейшими доступными библиотеками иконок для веб-сайтов. Многие из них предлагают тысячи, а то и миллионы пиктограмм, так что обязательно найдётся и...
Мы публикуем видео с прошедшего мероприятия. Приятного просмотра.