Disponemos de un servidor SCOM 2012.
Contamos con agentes SNARE para el cumplimiento de PCI,pero ahora queremos ahorrar dinero reuniendo todos los eventos de todos los servidores de Windows utilizando sus funciones nativas..
También tenemos un servidor Linux centralizado que ejecuta SYSLOG que agregará los registros a nuestro dispositivo de retención de registros (todo esto es para fines de PCI)
Por eso mi pregunta:
¿Puede un servidor Windows (SCOM 2012) reenviar los registros de eventos a un servidor syslog de Linux? Supongo que esto ocurriría siguiendo un formato de archivo plano estándar o algo similar.
Gracias
Respuesta1
Debe utilizar un agente Syslog, ya que Windows no proporciona uno.
...el sistema operativo Windows no incluye un agente syslog que sea capaz de enviar datos syslog a un servidor syslog. Sin un agente syslog, el sistema operativo Windows no solo no puede enviar mensajes syslog a un servidor syslog, sino que tampoco puede enviar mensajes syslog desde ninguna aplicación que se ejecute en el sistema operativo Windows (como un servidor web o una base de datos).
Tanto esa página fuente comoBuscando en Google "Agente Syslog de Windows"Proporciona muchos agentes Syslog diferentes que puedes probar.
Respuesta2
Puede probar NXLog en el servidor Linux para recibir los eventos WEF nativos de Windows y reenviarlos al servidor syslog, ya que NXLog tiene una edición comunitaria. No tengo los recursos para intentar esto en este momento. Si NXLog es lo suficientemente inteligente como para convertir los WEF en texto antes de reenviarlos a syslog, entonces podría funcionar; de lo contrario, podría generar ruido binario en syslog. Por favor informe si funciona:
1. Configurar el FEM
[https://adamtheautomator.com/windows-event-collector/]
- Cree un GPO a través de la Consola de administración de políticas de grupo. Dentro del GPO, navegue hasta Configuración de la computadora → Políticas → Plantillas administrativas → Componentes de Windows → Reenvío de eventos → Configurar el administrador de suscripciones de destino.
- Establezca el valor del administrador de suscripciones de destino en el punto final de WinRM en el recopilador. Configurará el servidor para que tenga el formato:
- Servidor=http://nombre de host:5985/wsman/SubscriptionManager/WEC,Refresh=60
2. Configure NXLog:
(La configuración WEF para enviar a NXLog se copió deaquí, pero vea mi configuración en la parte inferior de esta respuesta SE para realizar el reenvío real)
Crear y asignar un usuario de dominio de Active Directory
Para que un servidor WEC en una máquina Linux pueda utilizar la autenticación Kerberos, se debe crear un usuario correspondiente en Active Directory y asignarlo a un nombre principal de 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 en el servidor WEC
Ahora que el usuario de Active Directory se creó y se asignó al nombre principal, el servidor WEC se puede configurar para la autenticación 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 Utilice esta configuración de NXLog para enviar Windows a 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>