일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 철학
- 에밀 뒤르켐
- 자살론
- CodeEngn Basic 5
- 사회분업론
- BoB 12기 최종합격 후기
- bob
- BoB 12기
- 코드엔진 베이직
- 코드엔진 basic 5
- h4ckinggame
- 리버싱
- CodeEngn Basic 01
- CodeEngn
- 코드엔진
- codeengn basic rce 01
- 논문리뷰
- Best of the Best
- 디지털 포렌식 트랙
- malware
- 사회적 사실
- Today
- Total
SEO
[SOC] Docker를 이용한 Wazuh 구축 본문
구축 전 준비사항
먼저 Docker의 호스트가 될 ubuntu 가상머신의 메모리를 6GB를 할당하겠습니다. 공식 문서에서는 최소 6GB의 램을 추천하고 있습니다.
그리고 max_map_count 설정을 해주어야 합니다. Wazuh Indexer는 많은 메모리 매핑 영역을 생성하기 때문에 커널이 하나의 프로세스에 대해 최소 262,144개의 메모리 매핑 영역을 허용하도록 설정해야 합니다. 공식 문서에서는 현재 세션에서만 제공되는 일시적인 방법과 영구적인 방법을 소개하고 있습니다. 저는 영구적인 방법을 통해 메모리 매핑 영역을 확장시키겠습니다.
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
/etc/sysctl.conf 파일을 수정하여 vm.max_map_count 값을 영구적으로 설정합니다.
sysctl vm.max_map_count
재부팅 후에도 설정이 유지되는지 위 명령어로 확인하시고, 구축 진행하시길 바랍니다.
curl -sSL <https://get.docker.com/> | sh
systemctl start docker
도커를 설치하고 서비스를 시작합니다.
curl -L "<https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-$>(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
Wazuh Docker 배포에는 Docker Compose 1.29 이상이 필요합니다. Docker Compose 바이너리를 설치하고 실행 권한을 부여합니다. Docker Compose 버전을 찍어보면 잘 설치가 된 것을 확인할 수 있습니다.
지금까지 Wazuh 구축에 필요한 환경들을 마련하였습니다. 이제 본격적인 Wazuh 구축을 해보겠습니다.
Wazuh Docker 배포
앞선 게시글과 같이 Wazuh는 단일 노드로도, 다중 노드로도 배포가 가능합니다. 데이터가 많고 부하를 줄이기 위해서는 다중 노드로 배포하겠지만 저는 데이터가 적고 현재 다중 노트를 감당할 하드웨어 자원이 되지 않아 단일 노드로 배포하겠습니다. 즉, Wazuh 관리, 인덱서, 대시보드를 노드 하나에 담아 배포합니다.
git clone <https://github.com/wazuh/wazuh-docker.git> -b v4.10.1
Wazuh Docker 저장소를 클론합니다.
이후 wazuh-docker/single-node 경로로 이동하여 인증서를 준비합니다. Wazuh 노드 간의 통신을 안전하게 하기 위해서는 인증서를 제공해야 합니다. 공식 문서에서는 서명 인증서를 생성하는 방법과 자신이 가지고 있는 인증서를 각 구성 요소에 맞게 사용하는 방법을 설명하고 있습니다. 저는 Wazuh에서 제공하는 인증서 생성을 자동화하는 도구를 통해 인증서를 준비하겠습니다.
single-node 폴더에는 generate-indexer-certs.yml 파일이 존재하는데 이를 통해 인증서를 생성할 수 있습니다. 만약 프록시를 사용한다면 공식 문서를 참고하여 프록시 설정을 해주세요! 저는 프록시를 사용하지 않을 예정이라 인증서 생성만 하겠습니다.
docker-compose -f generate-indexer-certs.yml run --rm generator
generate-indexer-certs.yml 파일을 사용하여 인증서를 생성하였고, 생성된 인증서는 config/wazuh_indexer_ssl_certs 디렉토리에 저장됩니다.
docker-compose up
docker-compose.yml 파일을 사용하여 Wazuh를 시작할 수 있습니다. 저는 포그라운드에서 실행시키겠습니다.
설치 시에는 CPU와 RAM과 하드디스크를 가능한한 많이 할당하시길 바랍니다… CPU 4프로세서 할당했더니 구동까지 1시간 걸렸네요…ㅎㅎ
Wazuh 대시보드의 기본 사용자 이름과 비밀번호는 admin:SecretPassword입니다.
Wazuh 에이전트 배포
에이전트를 직접 각 클라이언트에 설치해도 되지만, 대규모 네트워크에서는 불가능하기 때문에 현재 서버 노드에서 클라이언트들에 에이전트를 배포하겠습니다.
Wazuh 서버에서 Agents management > Summary > Deploy new agent를 클릭합니다.
'Security > BlueTeam' 카테고리의 다른 글
[SOC] 오픈소스 SIEM 솔루션 Wazuh에 대해 알아보자 (0) | 2025.02.12 |
---|