Wazuh
wazuh란
https://velog.io/@jhly/What-is-Wazuh-2ktn64p8
- XDR 및 SIEM 기능을 통합하는 무료 오픈 소스 보안 플랫폼
- 온프레미스, 가상화, 컨테이너화된 클라우드 기반 환경에서 시스템 보호 가능
- Wazuh는 세 개의 중앙 플랫폼 구성 요소와 단일 범용 에이전트 구성
Wazuh는 총 3가지 서버 사이드 구성요소와 클라이언트 사이드의 에이전트로 구성되어진다.
- Wazuh 인덱서(Indexer)확장성이 뛰어난 전체 텍스트 검색 및 분석 엔진이며, Wazuh 서버에서 생성된 알림을 색인하고 저장한다.
- Wazuh 서버(Server)에이전트로부터 받은 데이터를 분석하여, 디코더와 규칙을 통해 데이터를 처리하여 보안 이벤트를 생성하며, 또한 에이전트를 관리, 원격 구성/업그레이드 하는데 사용한다.
- Wazuh 대시보드(Dashboard)데이터 시각화 및 분석을 위한 웹 사용자 인터페이스이며, Wazuh 구성을 관리하고 상태를 모니터링 하는데 사용한다.(보안이벤트, 컴플라이언스, CVE, 파일 무결성 모니터링 등 기본 제공 대시보드 포함)
- Wazuh 에이전트(Agent)엔드포인트에 설치되며, 위협 예방, 탐지 및 대응 기능을 제공한다.(Linux, Windows, macOS, Solaris, AIX, HP-UX 지원)
기본 파일 설치 및 가이드
https://github.com/wazuh/wazuh-kubernetes/blob/master/instructions.md
$ git clone [https://github.com/wazuh/wazuh-kubernetes.git](https://github.com/wazuh/wazuh-kubernetes.git)
$ cd wazuh-kubernetes
SSL certificates 설정
다음 경로에 있는 .sh를 실행해 pem 파일들을 생성시킨다.
wazuh/certs/indexer_cluster/generate_certs.sh
wazuh/certs/dashboard_http/generate_certs.sh
코드수정 & 환경 설정
해당 git clone 한 코드에는 몇가지 수정사항이 필요하다
코드 수정
wazuh image tag 변경
github에 나와있는 코드에는 image tag가 잘못되어있어 dockerhub에 존제하는 tag로 변경해준다.
image: ‘wazuh/wazuh-manager’ → image: 'wazuh/wazuh-manager:4.6.0’
image: 'wazuh/wazuh-dashboard → image: 'wazuh/wazuh-dashboard:4.6.0'
internal 오류
해당 라인값에는 true 아님 false가 와야하며 지워도 무방하다
internet-facing 수정
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/network-load-balancing.html
로드밸런스의 체계가 Internal 여서 내부 ip 로 찍히고 있는 문제가 발생할 수 있으므로 코드 내부에서 svc yaml 파일들(wazuh manager 등 모든 svc)에 다음과 같이 'internet-facing' 옵션을 추가한다.
annotations:
service.beta.kubernetes.io/aws-load-balancer-scheme: 'internet-facing'
다음과 같이 로드 밸런스에 체계가 internet-facing이 되어있으면 성공이다.
환경 설정
ebs csi driver를 설치
ebs 관련 역할을 생성
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/csi-iam-role.html
eksctl create iamserviceaccount \
--name ebs-csi-controller-sa \
--namespace kube-system \
--cluster eks-JaeHyuk \
--role-name AmazonEKS_EBS_CSI_DriverRole \
--role-only \
--attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
--approve
eksctl create iamserviceaccount --name ebs-csi-controller-sa --namespace kube-system --cluster eks-JaeHyuk --role-name AmazonEKS_EBS_CSI_DriverRole --role-only --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy --approve
드라이버를 설치
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/managing-ebs-csi.html
aws eks describe-addon-versions --addon-name aws-ebs-csi-driver
eksctl create addon --name aws-ebs-csi-driver --cluster eks-JaeHyuk --service-account-role-arn arn:aws:iam::871065065486:role/AmazonEKS_EBS_CSI_DriverRole --force
서브넷 tag 수정(로드 밸런스 미 생성 오류)
https://repost.aws/ko/knowledge-center/eks-load-balancer-controller-subnets
vpc → 서브넷으로간뒤 각 서브넷 태그를 다음과 같이 추가해줬다.
kubernetes.io/role/internal-elb 1
다음과 같이 해결되는것을 확인 할 수 있다.
wazuh 서버에 접속하는 방법
kubectl exec -it wazuh-manager-master-0 -n wazuh --/bin/bash
최종 wazuh-kubernetes.zip 수정 파일
eks에 배포
kubectl apply -k envs/eks/
💡 Trouble Shooting - 잘못된 리다이렉트 이슈
로그인을 진행하면 /app/wz-home으로 이동되며 application을 찾을 수 없다는 오류가 나오지만
/app/wazuh로 이동해보면 문제없이 화면이 보이는것을 확인 할 수 있다.\
wazuh agent 설치
wazuh 서버를 설치했다면 모니터링하고 싶은 서버에 agent를 설치해줘야한다.
agent 설치 방법
주의 처음 ip등록할떄는 1515 도메인으로 연결해준다음에 vi /var/ossec/etc/ossec.conf 명령어로 1514의 도메인으로 수정해주고 sudo systemctl restart wazuh-agent 이걸로 에이전트를 다시 실행해줘야한다.
dashboard LoadBalancer 172.20.121.201 k8s-wazuh-dashboar-5cd5eb3ced-47cf773c8bb6c733.elb.us-east-2.amazonaws.com 443:31899/TCP 6d22h
indexer LoadBalancer 172.20.39.187 k8s-wazuh-indexer-05e7c1c667-6c134e11715d97fb.elb.us-east-2.amazonaws.com 9200:31168/TCP 6d22h
wazuh LoadBalancer 172.20.37.46 k8s-wazuh-wazuh-3e0721f42c-bef9798678a81a35.elb.us-east-2.amazonaws.com 1515:30362/TCP,55000:31300/TCP 6d22h
wazuh-cluster ClusterIP None <none> 1516/TCP 6d22h
wazuh-indexer ClusterIP None <none> 9300/TCP 6d22h
wazuh-workers LoadBalancer 172.20.93.8 k8s-wazuh-wazuhwor-eb59a6b113-6e4884d26af16cba.elb.us-east-2.amazonaws.com 1514:31816/TCP 6d22h
- 설치 명령어 실행
curl -o wazuh-agent-4.6.0-1.x86_64.rpm https://packages.wazuh.com/4.x/yum/wazuh-agent-4.6.0-1.x86_64.rpm && sudo WAZUH_MANAGER='k8s-wazuh-wazuh-3e0721f42c-bef9798678a81a35.elb.us-east-2.amazonaws.com
' WAZUH_REGISTRATION_PASSWORD='password
' WAZUH_AGENT_GROUP='default
' WAZUH_AGENT_NAME='trivy-agent
' rpm -ihv wazuh-agent-4.6.0-1.x86_64.rpm
curl -o wazuh-agent-4.6.0-1.x86_64.rpm https://packages.wazuh.com/4.x/yum/wazuh-agent-4.6.0-1.x86_64.rpm && sudo WAZUH_MANAGER='k8s-wazuh-wazuh-3e0721f42c-bef9798678a81a35.elb.us-east-2.amazonaws.com' WAZUH_REGISTRATION_PASSWORD='password' WAZUH_AGENT_GROUP='default' WAZUH_AGENT_NAME='trivy-agent' rpm -ihv wazuh-agent-4.6.0-1.x86_64.rpm
[k8s-wazuh-wazuh-3e0721f42c-bef9798678a81a35.elb.us-east-2.amazonaws.com](http://k8s-wazuh-wazuh-3e0721f42c-bef9798678a81a35.elb.us-east-2.amazonaws.com)
: 1515 서비스의 도메인password
: \wazuh\secrets\wazuh-authd-pass-secret.yaml 에 password로 password가 지정되어있음default
: agent group을 설정trivy-agent
: agent이름을 설정
- wazuh-agent 실행
sudo systemctl daemon-reload
sudo systemctl enable wazuh-agent
sudo systemctl start wazuh-agent
- 접속 도메인 변경
- agent 설정파일 수정
vi /var/ossec/etc/ossec.conf
- 1514포트인 도메인으로 변경
dashboard LoadBalancer 172.20.121.201 k8s-wazuh-dashboar-5cd5eb3ced-47cf773c8bb6c733.elb.us-east-2.amazonaws.com 443:31899/TCP 6d22h
indexer LoadBalancer 172.20.39.187 k8s-wazuh-indexer-05e7c1c667-6c134e11715d97fb.elb.us-east-2.amazonaws.com 9200:31168/TCP 6d22h
wazuh LoadBalancer 172.20.37.46 k8s-wazuh-wazuh-3e0721f42c-bef9798678a81a35.elb.us-east-2.amazonaws.com 1515:30362/TCP,55000:31300/TCP 6d22h
wazuh-cluster ClusterIP None <none> 1516/TCP 6d22h
wazuh-indexer ClusterIP None <none> 9300/TCP 6d22h
wazuh-workers LoadBalancer 172.20.93.8 k8s-wazuh-wazuhwor-eb59a6b113-6e4884d26af16cba.elb.us-east-2.amazonaws.com 1514:31816/TCP 6d22h
<client>
<server>
<address>k8s-wazuh-wazuhwor-eb59a6b113-6e4884d26af16cba.elb.us-east-2.amazonaws.com</address>
</server>
</client>
- agent 재시작
sudo systemctl restart wazuh-agent
- agent 연결 확인
wazuh의 기능
특정 관제 파일 추가
vi /var/ossec/etc/ossec.conf
<localfile>
<log_format>json</log_format>
<location>/var/log/trivy/*</location>
</localfile>
/home/ec2-user/test
이때 관제 대상 파일의 권한을 수정해줘야 할 수 도 있다.
파일 검색
agent가 설치되면 다음과 같이 파일을 검색할 수 도 있으며 파일의 내용은 확인 못하지만 메타 데이터를 확인 할 수 있다.
Wazuh 보안 정보 및 이벤트 관리(SIEM)
https://wazuh.com/platform/siem/
'DevOps' 카테고리의 다른 글
EKS 환경 구축 총정리 (0) | 2023.12.18 |
---|---|
Trivy (0) | 2023.12.18 |
argocd (1) | 2023.12.18 |
Jenkins + gitops (0) | 2023.12.18 |
CI / CD 란? (0) | 2023.12.18 |