Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

의미없는 블로그

[Wazuh] 와저 다시 설치 / Cluster 구성 본문

# 나/!nfra

[Wazuh] 와저 다시 설치 / Cluster 구성

SaltLee 2023. 10. 10. 17:17

[와저 공식 다큐먼트]

https://documentation.wazuh.com/

 

OpenSearch  /  Open Distro for Elasticsearch   Elastic Stack

이렇게 세가지 구성 중에 선택해서 설치할 수 있다

서칭 기능의 차이인거 같은데 뭐가 좋은지는 잘 모르겠다

 

 

 

1. 걍 와저 다큐먼트 installation guide 대로 설치하면 OpenSearch 로 설치됨

2. 엘라스틱 깔때 apt install opendistroforelasticsearch 로 깔면 Open Distro 로 깔림 

3. 와저 다큐먼트에 Elastic Stack 으로 설치하는거 있는데 그걸로 하면 이렇게 됨

 

[OpenSearch 설치]

hi-wtest-i
Ubunbu 20.04 / Ram 4G / CPU 2 core / 10G (테스트용이라 최저로)
asia-northeast3 / hi-network (443, 1514 인바운드 허용)

 

인덱서 - 서버 - 대시보드 설치하면 되는데 

다 한 서버에 설치할거고

 

인덱서가 말 그대로 인덱싱 하는거고 (엘라스틱 서치 같은)

대시보드가 보여주는거 (키바나 같은)

서버는 매니저랑 파일비트

 

0)사전 작업

wazuh-install.sh 인스톨 파일이랑

config.yml 컨피그 파일 다운받아서

 

config.yml 컨피그에 인덱서, 서버, 대시보드 설정해주고

wazuh-install.sh 로 tar 파일 만들어서 

각각 서버에 배포해주는 과정이다

 

wazuh-install.sh 랑 config.yml 파일 다운

config.yml 파일 설정하는 건데 

다 한 서버에 설치할거라 ip 동일하게 지정해줬고

각각 설치할거면 각각 지정해주면 됨 (gcp 내부 ip로 지정)

wazuh-install.sh 실행시키면 config.yml 참고해서 tar 파일 생기는데

각각 설치할거면 각 서버에 tar 파일 넣어줘야됨

1)인덱서 설치 

./wazuh-install.sh --wazuh-indexer node-1

비번 잘 기억

MO2fRui5c5YKGzo1gfaIBgjC+ZB7qS6H

2)서버 설치 (매니저, 파일비트)

./wazuh-install.sh --wazuh-server wazuh-1

3)대시보드 설치 

./wazuh-install.sh --wazuh-dashboard dashboard

4)방화벽 오픈

iptable 말고 ufw 로 하면 됨

gcp 네트워크 에서도 443 열어줘야 됨 

그러면 gcp 외부 ip 로 대시보드 붙을 수 있음

 

[Open Distro 설치]

https://saltlee.tistory.com/270

 

[Elastic Stack 설치]

https://documentation.wazuh.com/current/deployment-options/elastic-stack/index.html

 

요렇게 한 host 에 다 까는 방식 있고 (올인원 배포)

분산해서 설치하는 방식 있음 (분산 배포)

Master 서버(매니저, 파일비트)

Worker 서버(매니저, 파일비트)

Worker 서버(매니저, 파일비트)

...

Elastic(인덱서)

Elastic(인덱서)

...

Kibana(대시보드)

이런식으로 설치하는것

 

 

[올인원 배포]

hi-wtest-k

Ubunbu 20.04 / Ram 4G / CPU 2 core / 10G (테스트용이라 최저로)

asia-northeast3 / hi-network (443, 1514 인바운드 허용)

 

#엘라스틱 설치

가이드대로 하고 elasticsearch 서비스 활성화 시

systemctl 로 했다

Changed password for user elastic
PASSWORD elastic = aTDGiC4lF47qPXwST6O3

#와저 서버 설치

wazuh-manager 설치

파일비트 설치 

#키바나 설치

#GCP 외부IP(443) 접속

 

[분산 배포]

https://documentation.wazuh.com/current/deployment-options/elastic-stack/distributed-deployment/index.html

 

Master 와저 서버 (hi-wtest-m1 / 10.178.0.21)
Worker 와저 서버 (hi-wtest-w1 / 10.178.0.22)
Worker 와저 서버 (hi-wtest-w2 / 10.178.0.23)

Master node Elastic (hi-wtest-e1 / 10.178.0.18)
Data node Elastic (hi-wtest-e2 / 10.178.0.19)

Kibana (hi-wtest-k1 / 10.178.0.20)

 

엘라스틱 설치부터 하는게 좋다고 함 (hi-wtest-e1)

 

#필수 구성 요소 설치

apt-get install lsb-release curl apt-transport-https zip unzip gnupg

 

#레파지토리 설치 

curl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/elasticsearch.gpg --import && chmod 644 /usr/share/keyrings/elasticsearch.gpg

echo "deb [signed-by=/usr/share/keyrings/elasticsearch.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.list

apt-get update

 

#엘라스틱 설치

apt-get install elasticsearch=7.17.13

curl -so /etc/elasticsearch/elasticsearch.yml https://packages.wazuh.com/4.5/tpl/elastic-basic/elasticsearch_cluster_initial_node.yml

 

#인증서 생성

vi /usr/share/elasticsearch/instances.yml

/usr/share/elasticsearch/bin/elasticsearch-certutil cert ca --pem --in instances.yml --keep-ca-key --out ~/certs.zip

 

certs.zip 이거 모든 서버에 넣으래

 

hi-wtest-e2 도 똑같이 elastic 깔고

certs.zip 만 넣어줌

 

 

 

인증서 만들 때

와저 서버 몇개 할건지 먼저 정해놔야 함

 

 

Changed password for user apm_system
PASSWORD apm_system = pHG1QqSg22ALVNuXjrbb

Changed password for user kibana_system
PASSWORD kibana_system = FSlgsLii0mw4zx8Fkm9n

Changed password for user kibana
PASSWORD kibana = FSlgsLii0mw4zx8Fkm9n

Changed password for user logstash_system
PASSWORD logstash_system = lhLLYseBKpwhu5TuKLuw

Changed password for user beats_system
PASSWORD beats_system = bwHKbYcdt0Ybm2xClNzc

Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = znDe2Dc31yWnPycnHt7e

Changed password for user elastic
PASSWORD elastic = 3rVFncbskZCF45vpbzIK

 

 

 

와저 서버 Master 노드랑 Worker 노드를 정해놔야 함

wazuh-manager 로 설치하는건 동일하고 ossec.conf 에서 어떻게 설정하느냐에 따라 마스터/워커로 나뉨

ossec.conf 설정하고 wazuh-manager 서비스 start 하면 됨

hi-wtest-m1 (마스터)
hi-wtest-w1 (워커)
hi-wtest-w2 (워커)

 

셋 다 필요한 패키지 깔고

apt-get install lsb-release curl apt-transport-https zip unzip gnupg

 

GPG키?

curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && chmod 644 /usr/share/keyrings/wazuh.gpg

 

저장소 추가

echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list

apt-get update

 

와저 매니저 설치

apt-get install wazuh-manager=4.5.4-1

 

ossec.conf 구성해주는데

이때 마스터/워커 각자 설정해주면 됨

key는 openssl rand -hex 16 명령으로 생성

 

systemctl daemon-reload
systemctl enable wazuh-manager
systemctl start wazuh-manager

 

/var/ossec/bin/cluster_control -l 했을때 잘 뜨면 된다

 

파일비트 설치하고

인증서 certs.zip 옮겨와서 아래 명령어 수행할때

filebeat-X 부분을 엘라스틱 instances.yml 에 설정한 대로 지정하라고 함

mkdir /etc/filebeat/certs/ca -p
zip -d ~/certs.zip "ca/ca.key"
unzip ~/certs.zip -d ~/certs
cp -R ~/certs/ca/ ~/certs/filebeat-X/* /etc/filebeat/certs/
mv /etc/filebeat/certs/filebeat-X.crt /etc/filebeat/certs/filebeat.crt
mv /etc/filebeat/certs/filebeat-X.key /etc/filebeat/certs/filebeat.key
chmod -R 500 /etc/filebeat/certs
chmod 400 /etc/filebeat/certs/ca/ca.* /etc/filebeat/certs/filebeat.*
rm -rf ~/certs/ ~/certs.zip

이렇게 설정되어 있음
hi-wtest-m1 > filebeat-1
hi-wtest-w1 > filebeat-2
hi-wtest-w2 > filebeat-3

 

filebeat test output 으로 확인하면 되는데

elastic2 가 좀 이상해서 연결이 안돼서 일단 단일 노드로 연결해둠

 

키바나 깔고 

인증서 설치하고 

하라는대로 하면 됨

키바나 외부 ip로 접속해 봄

 

 

55000 안열어줘서 그런감...?

아 저기 wazuh.yml 파일에 와저 매니저 IP로 지정해주면 된다

 

 

워커 1, 2 에다가 각각 연결해 보겠다

워커 죽으면 status 에 사라지고

restart cluster 해도 안생기는데 이건 걍 현재 선택된 매니저를 리스타트 하는건가 보다

 

 

 

Comments