티스토리 뷰

반응형

 

🟩 Filebeat란?

데이터 수집만을 위한 경량화된 모듈
원래 ELK 스택 중 하나인 logstash를 데이터 집계 및 보관, 전송에 사용했으나
위 기능 외에도 원하는 형태로 입출력을 담당해 오버헤드(특정 기능을 수행하기 위해 추가로 사용되는 컴퓨터 자원)가 컸음
이를 해결하기 위해 Wazuh에서는 Filebeat를 사용하도록 가이드되고 있음.

 

아래 내용(1번~마지막까지) 모두 Master, Worker 노드마다 모두 수행해야 한다.

 

 

🟩 Filebeat 설치 및 설정

1. Filebeat 설치

Filebeat 설치 후에는 /etc/filebeat 경로가 생성된다.

soya@wazuh-master-node:~# apt-get -y install filebeat

 

2. Filebeat config 파일 다운로드

wazuh의 filebeat.yml 파일을 curl로 가져와서 /etc/filebeat/filebeat.yml로 저장

soya@wazuh-master-node:~# curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/4.6/tpl/wazuh/filebeat/filebeat.yml

 

 

3. /etc/filebeat/filebeat.yml에 hosts 변경

이 파일은 filebeat를 통해 서버에 전달해야 할 데이터와 indexer의 정보가 담겨있다.

hosts를 wazuh indexer가 설치된 IP로 변경,
만약 multi indexer node라면 hosts: ["indexer-IP-1:9200", "indexer-IP-2:9200"] 과 같이 나열해서 작성

특히 아래 부분은 filebeat가 alerts 데이터(/var/ossec/logs/alerts/alerts.json)만 indexer로 전달한다는 내용이다.

alerts는 wazuh에서 설정한 rule을 위반한 사항에 대한 알림이며,

archives는 rule 위반 여부와 무관한 모든 이벤트이다.

 

 

4. Filebeat keystore 생성

인증 정보를 안전하게 저장하기 위해 keystore를 생성하고

admin이라는 입력을 filebeat keystore의 username, password라는 키에 저장하는 과정 

soya@wazuh-master-node:~# filebeat keystore create
soya@wazuh-master-node:~# echo admin | filebeat keystore add username --stdin --force
soya@wazuh-master-node:~# echo admin | filebeat keystore add password --stdin --force

 

5. wazuh indexer를 위한 alerts template

wazuh alerts template을 가져오고 그룹과 others에 읽기 권한 부여

soya@wazuh-master-node:~# curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.6/extensions/elasticsearch/7.x/wazuh-template.json
soya@wazuh-master-node:~# chmod go+r /etc/filebeat/wazuh-template.json

/etc/filebeat/wazuh-template.json의 내용은 아래와 같고, indexing을 포함한 여러 형식을 정의한다.

실제로 wazuh dashboard에서 확인 가능한 단일 이벤트(wazuh 공식 용어로는 document)의 template과 동일하다.

즉 filebeat -> indexer node -> dashboard(kibana)의 과정에서 전달할 정보의 형식을 정의한다고 보면 된다.

 

 

6. Wazuh 모듈 설치

Filebeat에 필요한 wazuh 모듈(gzip 파일)을 가져와 /usr/share/filebeat/module 디렉터리에 압축 해제

soya@wazuh-master-node:~# curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.2.tar.gz | tar -xvz -C /usr/share/filebeat/module

 

 

7. 서버에 Filebeat 인증서 배포

 

Wazuh Cluster 구축 - 2. Wazuh SSL 인증서 생성

🟧 SSL 인증서 생성 Wazuh 중앙 구성 요소 간 통신을 암호화(기밀성, 무결성 보장)하는 인증서를 생성 1. wazuh-certs-tool.sh + config.yml 다운로드 아래 과정은 어떤 서버에서 진행해도 무관하다. wazuh-certs

likethefirst.tistory.com

 

먼저 서버의 node 이름을 작성해야 한다. 예를 들어 NODE_NAME=wazuh-master-node이다.

soya@wazuh-master-node:~# NODE_NAME=server-node-name

 

wazuh-certificates.tar를 이동시켰던 폴더(위 포스트의 5번 참고)에서 아래 명령어를 수행해야 한다.

soya@wazuh-master-node:~# mkdir /etc/filebeat/certs
soya@wazuh-master-node:~# tar -xf ./wazuh-certificates.tar -C /etc/filebeat/certs/ ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./root-ca.pem
soya@wazuh-master-node:~# mv -n /etc/filebeat/certs/$NODE_NAME.pem /etc/filebeat/certs/filebeat.pem
soya@wazuh-master-node:~# mv -n /etc/filebeat/certs/$NODE_NAME-key.pem /etc/filebeat/certs/filebeat-key.pem
soya@wazuh-master-node:~# chmod 500 /etc/filebeat/certs
soya@wazuh-master-node:~# chmod 400 /etc/filebeat/certs/*
soya@wazuh-master-node:~# chown -R root:root /etc/filebeat/certs

 

8. Filebeat 서비스 시작

드디어 서비스 시작이다.

soya@wazuh-master-node:~# systemctl daemon-reload
soya@wazuh-master-node:~# systemctl enable filebeat
soya@wazuh-master-node:~# systemctl start filebeat

 

9. 서버 Filebeat <-> 서버 연동 확인

root 권한으로 아래 명령어를 수행한다.

soya@wazuh-master-node:~# filebeat test output

결과가 아래처럼 잘 출력되면 성공

elasticsearch: https://192.168.15.132:9200...
  parse url... OK
  connection...
    parse host... OK
    dns lookup... OK
    addresses: 127.0.0.1
    dial up... OK
  TLS...
    security: server's certificate chain verification is enabled
    handshake... OK
    TLS version: TLSv1.3
    dial up... OK
  talk to server... OK
  version: 7.10.2

 

반응형
댓글
반응형
Recent Post.
Recent Reply.
Thanks for comming.
오늘은
명이 방문했어요
어제는
명이 방문했어요