1. Configurar o WEF

1. Configurar o WEF
  • Temos um servidor SCOM 2012.

  • Temos agentes SNARE para conformidade com PCI,mas agora queremos economizar dinheiro reunindo todos os eventos de todos os servidores Windows usando seus recursos nativos.

  • Também temos um servidor Linux centralizado executando SYSLOG que agregará os logs ao nosso dispositivo de retenção de logs (tudo isso é para fins de PCI)

Assim, minha pergunta:

Um servidor Windows (SCOM 2012) pode encaminhar os logs de eventos para um servidor syslog Linux? Presumo que isso ocorreria seguindo um formato de arquivo simples padrão ou algo semelhante.

Obrigado

Responder1

Você precisa usar um agente Syslog, pois o Windows não fornece um.

... o sistema operacional Windows não inclui um agente syslog capaz de enviar dados syslog para um servidor syslog. Sem um agente syslog, o sistema operacional Windows não apenas não pode enviar mensagens syslog para um servidor syslog, mas também não pode enviar mensagens syslog de nenhum aplicativo em execução no sistema operacional Windows (como um servidor web ou banco de dados).

Fonte

Tanto a página de origem quantoPesquisando no Google por "Agente Syslog do Windows"forneça muitos agentes Syslog diferentes que você pode experimentar.

Responder2

Você pode tentar o NXLog no servidor Linux para receber os eventos WEF nativos do Windows e encaminhá-los para o servidor syslog, já que o NXLog possui uma edição comunitária. Não tenho recursos para tentar isso no momento. Se o NXLog for inteligente o suficiente para transformar o WEF em texto antes de encaminhá-lo para o syslog, ele poderá funcionar, caso contrário, poderá espalhar ruído binário no syslog. Por favor, informe se funcionou:

1. Configurar o WEF

[ https://adamtheautomator.com/windows-event-collector/ ]

  • Crie um GPO por meio do Console de gerenciamento de política de grupo. Dentro do GPO, navegue até Configuração do Computador → Políticas → Modelos Administrativos → Componentes do Windows → Encaminhamento de Eventos → Configurar gerenciador de assinaturas de destino.
  • Configure o valor do gerenciador de assinaturas de destino para o terminal WinRM no coletor. Você definirá o servidor para estar no formato:
    • Servidor=http://nomedohost:5985/wsman/SubscriptionManager/WEC,Refresh=60

2. Configure o NXLog:

(A configuração do WEF para enviar ao NXLog foi copiada deaqui, mas veja minha configuração na parte inferior desta resposta do SE para fazer o encaminhamento real)

Criar e mapear um usuário de domínio do Active Directory

Para que um servidor WEC em uma máquina Linux possa usar a autenticação Kerberos, um usuário correspondente precisa ser criado no Active Directory e mapeado para um nome principal Kerberos.

On the domain controller, create a new user with its logon name matching the hostname of the WEC server.

    Go to Administrative Tools > Active Directory Users and Computers > example.com > Users.

    Right click and choose New > User.

        First name: linux-wec

        Full name: linux-wec

        User logon name: linux-wec

        Set a password for the user.

        Uncheck User must change password at next logon.

        Check Password never expires.

    Right click on the new user, click Properties, and open the Account tab.

        Check This account supports Kerberos AES 128 bit encryption.

        Check This account supports Kerberos AES 256 bit encryption.

On the DNS server, create an A record for linux-wec.example.com.

    Go to Administrative Tools > DNS > Forward Lookup Zones > example.com.

    Right click and choose New Host (A or AAAA)….

    Add a record with name linux-wec and IP address 192.168.0.3.

    Check the Create associated pointer (PTR) record option.

Back on the domain controller, open a command prompt and execute these commands. Use the same <password> that was specified when the above user was created. These commands map the domain account to the Kerberos principal names and generate two keytab files containing the shared secret.

> ktpass /princ hosts/[email protected] /pass <password> /mapuser EXAMPLE\linux-wec -pType KRB5_NT_PRINCIPAL /out hosts-nxlog.keytab /crypto AES256-SHA1

> ktpass /princ http/[email protected] /pass <password> /mapuser EXAMPLE\linux-wec -pType KRB5_NT_PRINCIPAL /out http-nxlog.keytab /crypto AES256-SHA1

Copy the resulting hosts-nxlog.keytab and http-nxlog.keytab files to the WEC server.

Configurar Kerberos no servidor WEC

Agora que o usuário do Active Directory foi criado e mapeado para o nome principal, o servidor WEC pode ser configurado para autenticação Kerberos.

Confirm that the Kerberos krb5 client and utility software are installed on the WEC server. The required package can be installed with yum install krb5-workstation or apt install krb5-user.

Edit the default Kerberos configuration file, usually located at /etc/krb5.conf.

    In section [domain_realm] add:

    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

    In section [realms] add:

    EXAMPLE.COM = {
     kdc = example.com
     admin_server = example.com
    }

Use ktutil to merge the two keytab files generated above.

# ktutil
ktutil:  rkt /root/hosts-nxlog.keytab
ktutil:  rkt /root/http-nxlog.keytab
ktutil:  wkt /root/nxlog-result.keytab
ktutil:  q

Validate the merged keytab.

# klist -e -k -t /root/nxlog-result.keytab
Keytab name: FILE:/root/nxlog-result.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   5 17.01.2021 04:20:08 hosts/[email protected] (aes256-cts-hmac-sha1-96)
   4 17.01.2021 04:20:08 http/[email protected] (aes256-cts-hmac-sha1-96)

Either copy the keytab into place, or merge it if there are already keys in /etc/krb5.keytab.

    To copy the keytab:

    # cp /root/nxlog-result.keytab /etc/krb5.keytab

    To merge the keytab and validate the result:

    # ktutil
    ktutil:  rkt /etc/krb5.keytab
    ktutil:  rkt /root/nxlog-result.keytab
    ktutil:  wkt /etc/krb5.keytab
    ktutil:  q

    # klist -e -k -t /etc/krb5.keytab
    Keytab name: FILE:/etc/krb5.keytab
    KVNO Timestamp           Principal
    ---- ------------------- ------------------------------------------------------
       <other entries>
       5 17.01.2021 04:20:08 hosts/[email protected] (aes256-cts-hmac-sha1-96)
       4 17.01.2021 04:20:08 http/[email protected] (aes256-cts-hmac-sha1-96)

Verify that the user account used by the NXLog service has sufficient privileges to open and read the /etc/krb5.keytab file. If not, Kerberos authentication will fail.

Test that the authentication with Active Directory is working successfully when using the keytab. Run the following command on the Linux WEC server. If the configuration is correct a ticket-granting ticket (TGT) will be created and cached. This command should be invoked with the same user that the NXLog service runs as. By default, it uses the nxlog user account.

# kinit -kt /etc/krb5.keytab http/[email protected]

Verify the ticket was obtained by running klist as the same user from the previous step:

# klist
Ticket cache: KCM:0
Default principal: http/[email protected]

Valid starting     Expires            Service principal
28/01/21 11:41:44  28/01/21 21:41:44  krbtgt/[email protected]
        renew until 04/02/21 11:41:44

#3 Use esta configuração do NXLog para fazer proxy do Windows para Syslog:

# Recieve from native WEF:
<Input windows_events>
    Module              im_wseventing
    Address             https://linux-wec.example.com:5985/wsman
    ListenAddr          0.0.0.0
    Port                5985
    HTTPSCertFile       /path/to/server-cert.pem
    HTTPSCertKeyFile    /path/to/server-key.pem
    HTTPSCAFile         /path/to/ca-cert.pem
    <QueryXML>
        <QueryList>
            <Query Id="0">
                <Select Path="Application">*</Select>
                <Select Path="Security">*</Select>
                <Select Path="System">*</Select>
            </Query>
        </QueryList>
    </QueryXML>

    # Log connections for testing and troubleshooting
    LogConnections      TRUE
</Input>

# Send it to a syslog server:
<Output udp>
    Module  om_udp
    Host    192.168.1.1:514
</Output>

# (or using the syntax prior to NXLog EE 5,
# where the port is defined in a separate directive.)
#<Output udp>
#    Module  om_udp
#    Host    192.168.1.1
#    Port    514
#</Output>

# Route WEF to UDP
<Route uds_to_udp>
    Path    im_wseventing => udp
</Route>

informação relacionada