Přeskočit obsah

Shromažďování protokolů ze systému Microsoft Windows

Existuje více způsobů, jak shromažďovat protokoly, respektive Události systému Windows ze systému Microsoft Windows.

Sběr pomocí nástroje Window Event Collector (WEC/WEF)

Window Event Collector (WEC) bez agenta odesílá protokoly z počítačů se systémem Windows prostřednictvím služby Windows Event Forwarding (WEF) do kolektoru LogMan.io. Kolektor LogMan.io funguje jako Window Event Collector (WEC). Konfiguraci WEF lze zajistit pomocí zásad skupiny buď centrálně spravovaných serverem Active Directory, nebo pomocí místních zásad skupiny. Tato strategie nevyžaduje žádnou konfiguraci v počítačích se systémem Windows.

Tip

Tuto metodu doporučujeme pro shromažďování protokolů událostí systému Windows.

TeskaLabs LogMan.io Collector for WEC/WEF

Schema: Průběh událostí sbírky WEC/WEF v TeskaLabs LogMan.io.

Možnosti konfigurace WEC

Specifikace vstupu: input:WEC:

listen: <ADDRESS> <PORT> <OPTIONAL SSL># 0.0.0.0 5985" pro HTTP s Kerbros nebo "0.0.0.0 5986 ssl" pro HTTPS.
dotazy:  # Dotazy na události systému Windows oddělené novými řádky, které určují, které události systému Windows mají být načteny v odběrech.
výstup:  # Na který výstup se mají příchozí události odesílat
last_value_storage:  # Trvalé úložiště pro aktuální poslední hodnotu (výchozí: ./var/last_value_storage)
read_existing_events:  # (nepovinné) Informuje počítače se systémem Windows, zda mají odesílat existující události (true/false, výchozí: true)
connection_retries:  # (nepovinné) Kolik opakovaných pokusů v řadě je přijatelných pro počítače se systémem Windows (výchozí: 60)
connection_retries_wait:  # (nepovinné) Jak dlouho v sekundách se má čekat na opakování připojení (výchozí: 10.0)
heartbeat:  # (nepovinné) Jak často v sekundách se má při odběru volat srdeční tep (výchozí: 60)
backlog:  # (nepovinné) Určuje počet čekajících spojení, která bude fronta držet (výchozí: 128)
servertokens:  # (nepovinné) Řídí, zda bude zahrnuto pole hlavičky odpovědi "Server" ("full") nebo podvržené pole "prod" (výchozí: full).
cors: # (nepovinné) Určuje atributy CORS (výchozí: žádné)

Nastavení queries s dotazy na události systému Windows může vypadat následovně (název dotazu následovaný jeho definicí):

  dotazy:
    Systém: Úroveň: "*[System[(Úroveň=1 nebo Úroveň=2 nebo Úroveň=3 nebo Úroveň=4 nebo Úroveň=0 nebo Úroveň=5)]]"
    Bezpečnost: "*[System[(Level=1 nebo Level=2 nebo Level=3 nebo Level=4 nebo Level=0 nebo Level=5)]]"

Dotazy lze zadat pro každý typ protokolu událostí okna, včetně:

  • Aplikace pro protokoly aplikací
  • System pro systémové protokoly
  • Security pro bezpečnostní protokoly

Dotazy lze omezit pro určité zdrojové IP adresy nebo ID strojů pomocí seznamu identifikátorů YAML na konci dotazu. ID stroje je jedinečné pro každý počítač se systémem Windows a je založeno na názvu hostitele domény.

  dotazy:
    Systém:
      Úroveň: "*[System[(Level=1 nebo Level=2 nebo Level=3 nebo Level=4 nebo Level=0 nebo Level=5)]]"

    Zabezpečení:
      "*[System[(Level=1 nebo Level=2 nebo Level=3 nebo Level=4 nebo Level=0 nebo Level=5)]]"
    ...
    Aplikace:
      "*[System[(Level=1 nebo Level=2 nebo Level=3 nebo Level=4 nebo Level=0 nebo Level=5)]]":
        - 192.168.111.128
        - 192.168.111.128
        - "APP.example.com"
    ...

Tímto způsobem budou aplikační protokoly odesílat pouze počítače se systémem Windows s IP adresami 192.168.111.128, 192.168.111.128 a s ID stroje APP.example.com (jejich odběr bude obsahovat dotaz na aplikaci).

Pro WEC existují dvě možnosti ověřování:

  1. Kerberos a Active Directory
  2. Vzájemné ověřování SSL pomocí certifikátu HTTPS

Ověřování Kerberos

Ověřování Kerberos využívá pro ověřování a šifrování předávání protokolů příslušné Kerberos tikety domény Active Directory vydané řadičem domény. Server WEC (kolektor LogMan.io) naslouchá na serveru HTTP na portu tcp/5985. Toto ověřování vyžaduje Active Directory.

Možnosti konfigurace kolektoru LogMan.io WEC pro ověřování Kerberos

listen: 0.0.0.0 5985
last_value_storage:  # Trvalé úložiště pro aktuální poslední hodnotu (výchozí: ./var/last_value_storage)
read_existing_events:  # (nepovinné) Informuje počítače se systémem Windows, zda mají odesílat existující události (true/false, výchozí: true)
connection_retries:  # (nepovinné) Kolik opakovaných pokusů v řadě je přijatelných pro počítače se systémem Windows (výchozí: 60)
connection_retries_wait:  # (nepovinné) Jak dlouho v sekundách se má čekat na opakování připojení (výchozí: 10.0)
heartbeat:  # (nepovinné) Jak často v sekundách se má při odběru volat srdeční tep (výchozí: 60)
backlog:  # (nepovinné) Určuje počet čekajících spojení, která bude fronta držet (výchozí: 128)
servertokens:  # (nepovinné) Řídí, zda bude zahrnuto pole hlavičky odpovědi "Server" ("full") nebo podvržené pole "prod" (výchozí: full).
cors: # (nepovinné) Určuje atributy CORS (výchozí: žádné)
output:  # Na který výstup se mají posílat příchozí události

Nastavení ověřování Kerberos

Předpoklady
  • Řadič domény Microsoft Active Directory (v tomto příkladu s IP adresou 192.168.0.1 a názvem hostitele ad.example.om, názvem domény example.om / EXAMPLE.OM).
  • Hostitelský počítač s operačním systémem Linux a sběrným systémem LogMan.io (v tomto příkladu s IP adresou 192.168.0.2 a jménem hostitele lmio-wec).
  • Datum a čas kolektoru LogMan.io MUSÍ být synchronizovány s NTP.
  • Kolektor LogMan.io MUSÍ používat server DNS služby Active Directory.
Konfigurace na serverech Windows

1) Vytvoření nového uživatele v Active Directory

Přejděte do Administrative Tools > Active Directory Users and Computers > example.om > Users (Uživatelé).

Klikněte pravým tlačítkem myši a vyberte možnost Nový > Uživatel

Zadejte následující informace:

  • Křestní jméno: lmio-wec.
  • Celé jméno: TeskaLabs LogMan.io
  • Přihlašovací jméno uživatele: lmio-wec

Nastavení hesla pro uživatele. Tento příklad používá Heslo01!.

Zrušte zaškrtnutí políčka "Uživatel musí při příštím přihlášení změnit heslo".

Zaškrtněte políčko "Heslo nikdy nevyprší".

Stiskněte tlačítko "Next" a poté tlačítko "Finish" pro vytvoření uživatele.

Nakonec klikněte pravým tlačítkem myši na nového uživatele, klikněte na položku Vlastnosti a otevřete kartu Účet: * Zaškrtněte políčko "Tento účet podporuje 128bitové šifrování Kerberos AES". * Zaškrtněte políčko "Tento účet podporuje 256bitové šifrování Kerberos AES".

Nový uživatel lmio-wec je nyní připraven.

2) Na serveru DNS vytvořte záznam A pro lmio-wec.example.om.

Přejděte na Administrativní nástroje > DNS > Přesměrování vyhledávacích zón > example.om

Klikněte pravým tlačítkem myši a zvolte "Nový hostitel (A nebo AAAA)...".

Přidejte záznam s názvem lmio-wec a IP adresou 192.168.0.2.

Zaškrtněte možnost "Vytvořit přidružený záznam ukazatele (PTR)".

Stiskněte tlačítko "Přidat hostitele" a dokončete.

Hint: Toto nastavení DNS můžete ověřit příkazem ping.

3) Na příkazovém řádku serveru řadiče domény Active Directory nakonfigurujte hlavní název pro hostitele a službu běžící na kolektoru LogMan.io provedením následujících příkazů

Vytvořte hlavní jméno hostitele a související soubor s klíčovou tabulkou:

&gt; ktpass /princ host/lmio-wec.example.om@EXAMPLE.OM /pass Password01! /mapuser EXAMPLE\lmio-wec -pType KRB5_NT_PRINCIPAL /out host-lmio-wec.keytab /crypto AES256-SHA1

Tip

Budete muset použít heslo, které jste nastavili pro uživatele lmio-wec.

Vytvořte hlavní název služby a související soubor s klíčovou tabulkou:

&gt; ktpass /princ http/lmio-wec.example.om@EXAMPLE.OM /pass Password01! /mapuser EXAMPLE\lmio-wec -pType KRB5_NT_PRINCIPAL /out http-lmio-wec.keytab /crypto AES256-SHA1

Tip

Budete muset použít heslo, které jste nastavili pro uživatele lmio-wec.

Konfigurace ##### v kolektoru LogMan.io

  1. Zkopírujte vygenerované tabulky klíčů ze serveru Windows Active Directory Domain Controller do adresáře /tmp počítače LogMan.io collector.

  2. Nainstalujte klienta Kerberos na kolektor LogMan.io

Pro Linux Ubuntu použijte:

# sudo apt update -y &amp;&amp; sudo apt install krb5-user -y
  1. Upravte konfigurační soubor Kerberosu v kolektoru LogMan.io.

Konfigurační soubor systému Kerberos se obvykle nachází na adrese /etc/krb5.conf.

Do sekce [domain_realm] přidejte:

.example.om = EXAMPLE.OM
example.om = EXAMPLE.OM

V sekci [realms] přidejte:

EXAMPLE.OM= {
kdc = example.om
admin_server = example.om
}

  1. Pomocí nástroje ktutil sloučte dva soubory keytab vygenerované z příkazů ktpass v kolektoru LogMan.io.
# ktutil 
 1. ktutil: rkt /tmp/host-lmio-wec.keytab 
 2. ktutil: rkt /tmp/http-lmio-wec.keytab 
 3. ktutil: wkt /tmp/lmio-result.keytab
 4. ktutil: q
  1. Ověřte sloučený keytab v kolektoru LogMan.io
# klist -e -k -t /tmp/lmio-result.keytab

 Název keytab: FILE:/tmp/lmio-result.keytab
KVNO Timestamp Principal
---- ----------------- --------------------------------------------------------
3 08/04/22 15:06:24 host/lmio-wec.example.om@EXAMPLE.OM (aes256-cts-hmac-sha1-96) 
4 08/04/22 15:06:24 http/lmio-wec.example.om@EXAMPLE.OM (aes256-cts-hmac-sha1-96)
  1. Přesuňte nový soubor keytab na místo v kolektoru LogMan.io.
# cp /tmp/lmio-result.keytab /etc/krb5.keytab
# rm /tmp/*.keytab
# chmod a+r /etc/krb5.keytab
  1. Otestujte, zda ověřování pomocí služby Active Directory při použití keytabu úspěšně funguje.

    Spusťte následující příkaz na kolektoru LogMan.io. Pokud je konfigurace správná, bude vytvořen a do mezipaměti uložen ticket-granting ticket (TGT). Tento příkaz by měl být vyvolán se stejným uživatelem operačního systému, jako je spuštěna služba LogMan.io.

    # kinit -kt /etc/krb5.keytab http/lmio-wec.example.om@EXAMPLE.OM
    
  2. Ověřte, zda byl tiket získán spuštěním klist jako stejný uživatel z předchozího kroku.

    # klist
    Ticket cache: FILE:/tmp/krb5cc_0
    Výchozí zadavatel: http/lmio-wec.example.om@EXAMPLE.OM
    
    Platný počáteční principál služby Expires
    08/04/22 15:09:29 08/05/22 01:09:29 krbtgt/EXAMPLE.OM@EXAMPLE.OM
    Obnovit do 08/05/22 15:09:29
    
  3. Skončili jsme.

    Nyní vytvořte objekt zásad skupiny pro předávání událostí systému Windows z počítače se systémem Windows do systému Linux WEC (podívejte se na část "Konfigurace zásad skupiny" níže).

    Adresa URL pro WEF je:
    http://<WEC_SERVER_HOSTNAME>:5985/wsman/SubscriptionManager/WEC,Refresh=<Refresh interval in seconds>

Ověřování certifikátem HTTPS

Ověřování WEC je alternativou ke Kerberosu, pomocí certifikátů HTTPS očekává server WEC (kolektor LogMan.io) poskytnutí serveru HTTPS na portu tcp/5986. Toto ověřování lze provozovat bez služby Active Directory.

Možnosti konfigurace kolektoru LogMan.io WEC pro ověřování certifikátem HTTPS

Následující volby slouží k nastavení ověřování certifikátů HTTPS.

listen: 0.0.0.0 5986 ssl
cert:  # Zadejte cestu k certifikátu serveru WEC
key:  # Zadejte cestu k soukromému klíči serveru WEC 
issuer_thumbprints:  # d6986fef2104f21ab0c7ccb279217abe29c0808a).
heslo:  # (nepovinné) Zadejte heslo souboru soukromého klíče (výchozí: žádné)
cafile (soubor s klíčem):  # (nepovinné) Zadejte soubor pro ověření peera (výchozí: žádný)
capath:  # (nepovinné) Zadejte cestu k ověření peera (výchozí: žádná)
ciphers:  # (nepovinné) Zadejte vlastní šifry SSL (výchozí: žádné)
dh_params:  # (nepovinné) Parametry výměny klíčů Diffie-Hellman (D-H) (TLS) (výchozí: žádné)
verify_mode:  # (nepovinné) Prázdné nebo jedno z následujících: CERT_NONE, CERT_OPTIONAL nebo CERT_REQUIRED

Požadavky na certifikát TLS/SSL:

  • Certifikát WEF (klient) MUSÍ mít rozšířené použití klíče X509 v3: TLS Web Client Authentication.
  • Certifikát WEC (server) MUSÍ mít X509 v3 Extended Key Usage: TLS Web Server Authentication.

Nápověda: V případě potřeby můžete použít certifikáty poskytnuté certifikační autoritou. Ujistěte se, že certifikáty splňují výše uvedená kritéria.

Nápověda: K vygenerování certifikátů certifikační autority, serveru WEC a klienta WEF můžete použít nástroj XCA.

Nápověda: Ke generování příslušných certifikátů můžete použít také správce certifikátů systému Windows.

Adresa URL pro WEF je:
https://<WEC_SERVER_HOSTNAME>:5986/wsman/SubscriptionManager/WEC,Refresh=<Refresh interval in seconds>,IssuerCA=<Thumbprint of the issuing CA certificate>

Konfigurace zásad skupiny

Na počítačích se systémem Windows, které mají odesílat protokoly na LogMan.io, musí být nakonfigurováno předávání událostí systému Windows (WEF).

Konfiguraci Windows Event Forwarding může poskytnout:

  • Místní zásady skupiny
  • Zásady skupiny Active Directory

Předpoklady:

Ujistěte se, že je povolen WinRM, že brána firewall neomezuje síťové připojení a že hostitelský název serveru WEC je důvěryhodný na zdrojovém počítači se systémem Windows. Chcete-li povolit WinRM, spusťte jako správce následující příkaz:

winrm qc -q

Server WEC je třeba přidat mezi důvěryhodné hostitele, aby WinRM umožnil komunikaci s WEC:

winrm set winrm/config/client '@{TrustedHosts="<SERVER_HOSTNAME>"}'

Po dokončení nastavení nakonfigurujte předávání událostí systému Windows (další informace a snímky obrazovky jsou k dispozici na https://docs.microsoft.com/cs-cz/advanced-threat-analytics/configure-event-collection ):

Místní zásady skupiny

Konfiguraci místních zásad skupiny lze použít pro konfiguraci jednotlivých počítačů se systémem Windows.

  1. Otevřete Redaktor místních zásad skupiny

Stiskněte klávesy Win+R a zadejte: gpedit.msc.

  1. Přejděte na:

Šablony pro správu\Součásti systému Windows\Předávání událostí`.

  1. Konfigurace zásad Cílový správce odběru

  1. Přidejte novou položku Server

pro ověřování Kerberos a Active Directory (port tcp/5985):

Server=http://<WEC_HOSTNAME>:5985/wsman/SubscriptionManager/WEC,Refresh=<Refresh interval in seconds>

Pro ověření HTTPS (port tcp/5986):

Server=https://<WEC_HOSTNAME>:5986/wsman/SubscriptionManager/WEC,Refresh=<Refresh interval in seconds>,IssuerCA=<Thumbprint of the issuing CA certificate>

Doporučený interval Refresh je 60 sekund.

Otisk certifikátu je řetězec SHA-1, malá písmena, např. d6986fef2104f21ab0c7ccb279217abe29c0808a.

Pokud je přítomna zprostředkující certifikační autorita, pak IssuerCA musí ukazovat na vydávající zprostředkující certifikační autoritu, NE na kořenovou certifikační autoritu.

  1. Stisknutím tlačítka "Apply" uložte změny

  2. V příkazovém řádku spusťte gpupdate /force.

  3. Povolte protokol zabezpečení (viz níže)

Další informace naleznete v části: https://docs.microsoft.com/en-us/windows/win32/wec/setting-up-a-source-initiated-subscription

Zásady skupiny služby Active Directory

Konfigurace zásad skupiny služby Active Directory je vhodná pro konfiguraci většího počtu počítačů se systémem Windows, připojených k příslušnému řadiči domény. 1. Otevřete konzolu pro správu zásad skupiny a upravte objekt

  • Na úvodní obrazovce vyberte možnost Nástroje pro správu. Zobrazí se seznam dostupných nástrojů pro správu, včetně nástroje Správa zásad skupiny nainstalovaného v předchozí části.

  • Chcete-li otevřít Konzolu pro správu zásad skupiny (GPMC), zvolte možnost Správa zásad skupiny.

  1. Vytvořit objekt zásad skupiny
  2. V konzole pro správu zásad skupiny vyberte vlastní organizační jednotku (OU), například MyCustomOU. Pravým tlačítkem myši vyberte organizační jednotku a zvolte možnost Vytvořit objekt GPO v této doméně a propojit jej zde...:

  • Zadejte název nového objektu GPO, například My custom GPO, a vyberte OK. Tento vlastní objekt GPO můžete volitelně založit na existujícím objektu GPO a sadě možností zásad.

  1. Konfigurace objektu GPO
  2. Vlastní objekt GPO je vytvořen a propojen s vaší vlastní organizační jednotkou. Chcete-li nyní nakonfigurovat nastavení zásad, vyberte pravým tlačítkem myši vlastní objekt GPO a zvolte možnost Upravit...:

  • Otevře se Editor správy zásad skupiny, který vám umožní upravit objekt GPO:

  1. Nakonfigurujte Zásady předávání událostí v části Konfigurace počítače (jak je uvedeno výše v části "Zásady místní skupiny" na této stránce dokumentace).

  2. Povolte protokol zabezpečení (viz níže)

Povolit protokol zabezpečení

WEF nemá ve výchozím nastavení přístup k bezpečnostnímu protokolu. Aby bylo možné povolit předávání bezpečnostního protokolu, MUSÍ být do WEF přidána Síťová služba.

  1. Spusťte Editor zásad skupiny (zadejte gpedit.msc).
  2. Přejděte do části Konfigurace počítače > Šablony pro správu > Součásti systému Windows > Služba protokolu událostí > Zabezpečení.
  3. Upravte položku "Konfigurace přístupu k protokolu"
  4. Povolte zásady
  5. Do pole Log Access zadejte: (A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573 (A;;0x1;;;NS)`
  6. Použijte příkaz gpupdate /force

Test

Následujícím příkazem vytvoříte testovací událost v počítači se systémem Windows:

eventcreate /Id 500 /D "Toto je testovací zpráva pro ověření sběru protokolu WEC/WEF." /T ERROR /L System

Testovací protokol by měl okamžitě dorazit do LogMan.io.

Řešení problémů

Protokol událostí systému Windows Forwaring

Kanál událostí Eventlog-forwardingPlugin/Operational zaznamenává příslušné informace o počítačích, které jsou nastaveny na předávání protokolů do kolektoru. Obsahuje také informace o možných problémech s odběrem WEF. K prozkoumání použijte aplikaci "Prohlížeč událostí".

Shromažďování pomocí WinRM

Připojení k požadovanému počítači se systémem Windows bez použití agenta a spuštění příkazu pro sběr jako samostatného procesu pro sběr jeho standardního výstupu.

Specifikace vstupu: input:WinRM:

Vstup WinRM se připojí ke vzdálenému stroji Windows Server, kde zavolá zadaný příkaz. Poté pravidelně kontroluje nový výstup na stdout a stderr, takže se chová podobně jako input:SubProcess.

Možnosti konfigurace kolektoru LogMan.io WinRM

endpoint:   # http://MyMachine:5985/wsman).
transport: ntlm # Typ ověřování
server_cert_validation:  # Zadejte ověření platnosti certifikátu (výchozí: ignorovat)
cert_pem:  # (nepovinné) Zadejte cestu k certifikátu (pokud používáte HTTPS)
cert_key_pem:  # (nepovinné) Zadejte cestu k soukromému klíči
username:  # (nepovinné) Pokud používáte ověřování uživatelským jménem (například přes ntlm), zadejte uživatelské jméno ve formátu <DOMAIN>\<USER>
heslo:  # Heslo výše uvedeného ověřovaného uživatele
výstup:  # Na který výstup se mají posílat příchozí události

Následující konfigurace objasňuje příkaz, který má být vzdáleně volán:

# Čtení 1000 systémových protokolů jednou za 2 sekundy
příkaz:  # příkaz, který má být vzdáleně volán (např. wevtutil qe system /c:1000 /rd:true).
chilldown_period:  # Jak často v sekundách se má vzdálený příkaz volat, pokud je ukončen (výchozí: 5)
duplicity_check:  # Určuje, zda se mají kontrolovat duplicity na základě času (true/false)
duplicity_reverse_order:  # Určete, zda se mají duplicity kontrolovat v obráceném pořadí (např. protokoly přicházejí v sestupném pořadí).
last_value_storage:  # Trvalé úložiště pro aktuální poslední hodnotu při kontrole duplicity (výchozí: ./var/last_value_storage)

Shromažďování agentem na počítači se systémem Windows

V této variantě běží kolektor LogMan.io jako agent na požadovaném počítači se systémem Windows a shromažďuje události systému Windows.

Specifikace vstupu: input:WinEvent

Poznámka: input:WinEvent funguje pouze na počítači se systémem Windows.

Tento vstup pravidelně čte události systému Windows ze zadaného typu události.

Možnosti konfigurace kolektoru LogMan.io WinEvent

server:  # (nepovinné) Určete zdroj událostí (výchozí: localhost, tj. celý místní počítač).
event_type:  # (nepovinné) Určuje typ události, která se má načíst (výchozí: System)
buffer_size:  # (nepovinné) Určete, kolik událostí se má načíst v jednom dotazu (výchozí: 1024)
event_block_size:  # (nepovinné) Určete množství událostí, po kterém bude proveden čas nečinnosti, aby mohly být provedeny další operace (výchozí: 100)
event_idle_time:  # (nepovinné) Zadejte výše uvedenou dobu nečinnosti v sekundách (výchozí: 0,01).
last_value_storage:  # Trvalé úložiště pro aktuální poslední hodnotu (výchozí: ./var/last_value_storage)
output:  # Na který výstup se mají posílat příchozí události

Typ události lze zadat pro každý typ protokolu událostí okna, včetně:

  • Aplikace pro protokoly aplikací.
  • System pro systémové protokoly
  • Security pro bezpečnostní protokoly atd.