SCOM 2012 서버가 있습니다.
PCI 규정 준수를 위한 SNARE 에이전트가 있습니다.하지만 이제는 기본 기능을 사용하여 모든 Windows 서버에 대한 모든 이벤트를 수집하여 비용을 절약하고 싶습니다..
또한 로그 보존 어플라이언스에 로그를 집계하는 SYSLOG를 실행하는 중앙 집중식 Linux 서버도 있습니다(이것은 모두 PCI용입니다).
따라서 내 질문은 다음과 같습니다.
Windows 서버(SCOM 2012)가 이벤트 로그를 Linux syslog 서버로 전달할 수 있습니까? 나는 이것이 표준 플랫 파일 형식이나 이와 유사한 것을 따르면 발생할 것이라고 가정합니다.
감사해요
답변1
Windows에서는 Syslog 에이전트를 제공하지 않으므로 Syslog 에이전트를 사용해야 합니다.
...Windows OS에는 syslog 데이터를 syslog 서버로 보낼 수 있는 syslog 에이전트가 포함되어 있지 않습니다. syslog 에이전트가 없으면 Windows OS는 syslog 메시지를 syslog 서버로 보낼 수 없을 뿐만 아니라 Windows OS에서 실행되는 모든 애플리케이션(예: 웹 서버 또는 데이터베이스)에서도 syslog 메시지를 보낼 수 없습니다.
해당 소스 페이지와"Windows Syslog Agent"에 대한 인터넷 검색시도해 볼 수 있는 다양한 Syslog 에이전트를 제공합니다.
답변2
NXLog에는 커뮤니티 에디션이 있으므로 Linux 서버에서 NXLog를 사용해 Windows에서 기본 WEF 이벤트를 수신하고 이를 syslog 서버로 전달할 수 있습니다. 지금은 이 작업을 시도할 리소스가 없습니다. NXLog가 WEF를 syslog로 전달하기 전에 텍스트로 변환할 만큼 똑똑하다면 작동할 수 있습니다. 그렇지 않으면 syslog에 바이너리 노이즈를 뿌릴 수 있습니다. 작동하는지 다시 보고해 주세요.
1. WEF 구성
[ https://adamtheautomator.com/windows-event-collector/ ]
- 그룹 정책 관리 콘솔을 통해 GPO를 만듭니다. GPO 내에서 컴퓨터 구성 → 정책 → 관리 템플릿 → Windows 구성 요소 → 이벤트 전달 → 대상 구독 관리자 구성으로 이동합니다.
- 대상 구독 관리자의 값을 수집기의 WinRM 엔드포인트로 설정합니다. 서버를 다음 형식으로 설정합니다.
- 서버=http://호스트 이름:5985/wsman/SubscriptionManager/WEC,Refresh=60
2. NXLog 구성:
(NXLog로 보낼 WEF 구성은 다음에서 복사되었습니다.여기, 그러나 실제 전달을 수행하려면 이 SE 답변 하단에 있는 내 구성을 참조하세요.
Active Directory 도메인 사용자 생성 및 매핑
Linux 시스템의 WEC 서버가 Kerberos 인증을 사용할 수 있으려면 해당 사용자가 Active Directory에 생성되고 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.
WEC 서버에서 Kerberos 구성
이제 Active Directory 사용자가 생성되어 주체 이름에 매핑되었으므로 Kerberos 인증을 위해 WEC 서버를 구성할 수 있습니다.
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 이 NXLog 구성을 사용하여 Windows를 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>