๐Ÿ’ญ Minji's Archive

[side project] ๐Ÿงจ Mac์—์„œ Wazuh Docker๋กœ ๋Œ๋ฆฌ๋ ค๋‹ค๊ฐ€ ์‚ฝ์งˆํ•œ ๊ธฐ๋ก

November 13, 2025

1๋‹จ๊ณ„. ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋งŒ๋“ค๊ธฐ

  • ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” mini-soc-lab ํด๋” ์•„๋ž˜์— wazuh/, dvwa/, notes/ ๊ตฌ์กฐ๋กœ ํด๋”๋ฅผ ๊ตฌ์„ฑํ–ˆ๋‹ค.
  • wazuh/์—๋Š” SIEM ํ™˜๊ฒฝ ๊ตฌ์„ฑ์„ ์œ„ํ•œ docker-compose ํŒŒ์ผ๋“ค, dvwa/ ์—๋Š” ์ทจ์•ฝํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€๋ จ ์„ค์ •์„ ๋ชจ์•˜๋‹ค.

2๋‹จ๊ณ„. Wazuh (SIEM) ๋‹จ์ผ ๋…ธ๋“œ ์˜ฌ๋ฆฌ๊ธฐ

Docker๋กœ Wazuh managet + indexer + dashboard ํ•œ ๋ฒˆ์— ๋„์šฐ๊ธฐ.

(1) docker-compose.yml ํŒŒ์ผ ์ž‘์„ฑ(2) docker compose ์‹คํ–‰ (3) ๋Œ€์‹œ๋ณด๋“œ ์ ‘์† ํ…Œ์ŠคํŠธ http://localhost:5601์— ์ ‘์†ํ•ด๋„ ์•„๋ฌด๊ฒƒ๋„ ๋œจ์ง€ ์•Š์•˜๋‹ค. ๋กœ๊ทธ๋“ค์„ ์‚ดํŽด๋ณด๋‹ˆ Wazuh ์ด๋ฏธ์ง€(AMD64)์™€ ๋‚ด ๋งฅ(ARM64)์˜ ์•„ํ‚คํ…์ณ๊ฐ€ ๋‹ฌ๋ž๋‹ค. (์–ด์ฉ์ง€ ์—„์ฒญ ์˜ค๋ž˜ ๊ฑธ๋ฆผโ€ฆ) ์™€์ € ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ž˜ ๋œจ๊ธด ํ–ˆ์ง€๋งŒ dashboard๋Š” ARM์—์„œ ์—๋ฎฌ๋ ˆ์ด์…˜ ์„ฑ๋Šฅ ๋ฌธ์ œ๋กœ ์ดˆ๊ธฐ ๋ถ€ํŒ…์ด ๋งค์šฐ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ฑฐ๋‚˜ ๋‚˜์ฒ˜๋Ÿผ ๋จนํ†ต์ด ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ yaml ํŒŒ์ผ ๋‚ด์— platform: linux/amd64๋กœ ํƒ€์ž…์„ ์ง€์ •ํ–ˆ๋‹ค.

์‚ฝ์งˆ ์‹œ์ž‘โ€ฆ

๋ถ„๋ช… Wazuh ๊ณต์‹ ๋ฌธ์„œ์— ๋‚˜์˜จ docker-compose๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด๋ฏธ์ง€ pulll ๋‹จ๊ณ„์—์„œ๋ถ€ํ„ฐ ๋ง๋„ ์•ˆ ๋˜๊ฒŒ ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค. ๊ทธ๋ƒฅ ์ด๋ฏธ์ง€๊ฐ€ ์ปค์„œ ๊ทธ๋ ‡๊ฒ ์ง€ ์ƒ๊ฐํ–ˆ๋Š”๋ฐโ€ฆ

์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ผœ์กŒ๋Š”๋ฐ Dashboard๋Š” ์•ˆ ์ผœ์ง€๋Š” ํ˜„์ƒ ๋ฐœ์ƒ

wazuh.manager Started wazuh.indexer Started wazuh.dashboard Started

ํ•˜์ง€๋งŒ Dashboard(5601)์€ ์ ‘์†์ด ์•ˆ ๋˜๊ณ , ๋กœ๊ทธ๋ฅผ ๋ณด๋‹ˆ dashboard๊ฐ€ indexer์— ์—ฐ๊ฒฐ์„ ๋ชป ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. docker logs -f wazuh-wazuh.dashboard-1 [ConnectionError]: connect ECONNREFUSED 172.18.0.2:9200 ๊ฒฐ๊ณผ๊ฐ€ ๊ณ„์† ์ด๋Ÿผ. ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ Indexer(OpenSearch)์™€ ์•„์˜ˆ ํ†ต์‹ ์ด ์•ˆ ๋˜๋ฉด์„œ ์•„์˜ˆ ์ค€๋น„๊ฐ€ ์•ˆ ๋จ.

docker logs โ€“tail 50 wazuh-wazuh.indexer-1 ERROR: no such index [.opendistro_security] ERROR: Not yet initialized (you may need to run securityadmin) ERROR: Failure retrieving configuration ์—ฌ๊ธฐ์„œ ์กฐ์กŒ๋‹ค๋Š” ๊ฑธ ๊นจ๋‹ฌ์•˜๋‹ค. OpenSearch๊ฐ€ ARM Mac์—์„œ ์ œ๋Œ€๋กœ ์•ˆ ๋Œ์•„๊ฐ„๋‹ค๋Š” ๊ฒƒ์„โ€ฆ Wazuh Indexer์€ x86 ๊ธฐ๋ฐ˜ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์„โ€ฆ ์ข€ ๋” ์ฐพ์•„๋ณด๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์–ด์•ผ ํ–ˆ๋Š”๋ฐ ๋„ˆ๋ฌด ์„ฑ๊ธ‰ํ–ˆ๋‹ค. M1/M2์—์„œ ๋Œ๋ฆฌ๋ ค๋ฉด ๋„์ปค๊ฐ€ ์ž๋™์ ์œผ๋กœ qemu ์—๋ฎฌ๋ ˆ์ด์…˜์œผ๋กœ x86์ด๋ฏธ์ง€๋ฅผ ๋Œ๋ฆฌ๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๊ฑด ๋А๋ฆฌ๊ณ  ๋ถˆ์•ˆ์ •ํ•˜๊ณ  ๋‚œ๋ฆฌ๊ฐ€ ๋‚œ๋‹ค.

๊ทธ๋ž˜๋„ ๋งˆ์ง€๋ง‰ ํฌ๋ง์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ถ”๊ฐ€, ํฌํŠธ ๋งคํ•‘ ์ถ”๊ฐ€, ulimits๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

    environment:
      - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
    ports:
      - "9200:9200"
    ulimits:
      memlock:
        soft: -1
        hard: -1

์ด๋ ‡๊ฒŒ ๋Œ๋ฆฌ์ž compose๊นŒ์ง€ ์—๋Ÿฌ ๋‚˜๊ณ  ์—‰๋ง์ง„์ฐฝ.

๊ฒฐ๋ก 

AWS/Linux ์„œ๋ฒ„์—์„œ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋กœ์ปฌ์—์„œ UTM์— Ubuntu VM ๋„์šฐ๊ณ  ๊ทธ ์•ˆ์—์„œ ๋„์ปค ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๋ฐฐ์šด ์ 

๊ณต์‹ ๋ฌธ์„œ์˜ ์‚ฌ์–‘์„ ์ž˜ ์ฝ์–ด๋ณด์žโ€ฆ ใ… ใ