์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[11์›” 26์ผ] ELK Stack๊ตฌ์ถ•ํ•˜๊ธฐ

ljm 2025. 11. 26. 17:47

๊ตฌ์ถ•ํ™˜๊ฒฝ : ubuntu 24.04.5

 

 

๐Ÿ› ๏ธ ๊ฐ„ํŽธํ•œ ELK Stack ๊ตฌ์ถ• ๋‹จ๊ณ„ (Ubuntu 24.04 LTS ๊ธฐ์ค€)

ELK Stack์€ Java ๊ธฐ๋ฐ˜์ด๋ฏ€๋กœ, ์„ค์น˜ ์ „ Java(JDK)๊ฐ€ ํ•„์ˆ˜์ ์œผ๋กœ ํ•„์š”ํ•˜๋ฉฐ, ์ดํ›„ Elasticsearch, Logstash, Kibana ์ˆœ์„œ๋กœ ์„ค์น˜ ๋ฐ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

1. โ˜• Java (JDK) ์„ค์น˜

Elasticsearch์™€ Logstash๋Š” Java ๊ธฐ๋ฐ˜์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ELK ๋ฒ„์ „์— ๋งž์ถฐ OpenJDK 17์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

# 1. ํŒจํ‚ค์ง€ ๋ชฉ๋ก ์—…๋ฐ์ดํŠธ
sudo apt update

# 2. OpenJDK 17 ์„ค์น˜
sudo apt install openjdk-17-jdk -y

# 3. Java ๋ฒ„์ „ ํ™•์ธ (์„ ํƒ ์‚ฌํ•ญ)
java -version

2. ๐Ÿ”‘ Elastic Repository ํ‚ค ๋ฐ ์ €์žฅ์†Œ ๋“ฑ๋ก

Elastic Stack ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก Elastic์‚ฌ์˜ ๊ณต์‹ ์ €์žฅ์†Œ๋ฅผ ์‹œ์Šคํ…œ์— ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

# 1. GPG ํ‚ค ๋‹ค์šด๋กœ๋“œ ๋ฐ ์ถ”๊ฐ€
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

# 2. apt ์ €์žฅ์†Œ ๋“ฑ๋ก (24.04 ๊ธฐ์ค€)
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

# 3. ํŒจํ‚ค์ง€ ๋ชฉ๋ก ์—…๋ฐ์ดํŠธ
sudo apt update

3. ๐Ÿ”Ž Elasticsearch ์„ค์น˜ ๋ฐ ์„ค์ •

ELK Stack์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ์—ญํ• ์„ ํ•˜๋Š” ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

# 1. Elasticsearch ์„ค์น˜
sudo apt install elasticsearch -y

# 2. ์„œ๋น„์Šค ์‹œ์ž‘ ๋ฐ ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹œ์ž‘ ์„ค์ •
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

# 3. ์„œ๋น„์Šค ์ƒํƒœ ํ™•์ธ (์„ ํƒ ์‚ฌํ•ญ)
sudo systemctl status elasticsearch

# 4. ํฌํŠธ 9200์œผ๋กœ ์ ‘์†ํ•˜์—ฌ ์ •์ƒ ์ž‘๋™ ํ™•์ธ
curl -k -u elastic:jcMilQp_3fR2EkA5ro9y https://localhost:9200

 

elasticsearch ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋Š” ์ˆœ๊ฐ„ user์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํ‘œ์‹œ๋œ๋‹ค. (jcMilQp_3fR2EkA5ro9y)

๐Ÿ’ก SE ํฌํŠธํด๋ฆฌ์˜ค ํŒ: sudo nano /etc/elasticsearch/jvm.options ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ ์ด์ „์— ์„ค์ •ํ•œ 8GB ๋ฉ”๋ชจ๋ฆฌ ์ค‘ 4GB๋ฅผ JVM ํž™ ๋ฉ”๋ชจ๋ฆฌ(-Xms4g, -Xmx4g)๋กœ ํ• ๋‹นํ•˜๋Š” ์ž‘์—…์„ ๋ฐ˜๋“œ์‹œ ๋ฌธ์„œํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

New value: jcMilQp_3fR2EkA5ro9y

 


4.  Logstash ์„ค์น˜ ๋ฐ ์„ค์ •

Suricata ๋กœ๊ทธ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  Elasticsearch๋กœ ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

# 1. Logstash ์„ค์น˜
sudo apt install logstash -y

# 2. Logstash ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ (Suricata ๋กœ๊ทธ๋ฅผ ์ˆ˜์‹ ํ•  ํฌํŠธ ์„ค์ •)
# ์˜ˆ์‹œ: /etc/logstash/conf.d/suricata.conf ํŒŒ์ผ ์ƒ์„ฑ (๋‚˜์ค‘์— ์ƒ์„ธ ์„ค์ • ํ•„์š”)
# sudo nano /etc/logstash/conf.d/suricata.conf

# 3. ์„œ๋น„์Šค ์‹œ์ž‘ ๋ฐ ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹œ์ž‘ ์„ค์ •
sudo systemctl enable logstash
sudo systemctl start logstash

 

์šฐ์„  ์„ค์น˜ํ•˜๊ณ  ๋‚˜์ค‘์— suricata๋ž‘ ์—ฐ๊ฒฐํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. (suricata.conf)


5. ๐Ÿ“Š Kibana ์„ค์น˜ ๋ฐ ์„ค์ •

์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ณ  ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

# 1. Kibana ์„ค์น˜
sudo apt install kibana -y

# 2. Kibana ์„ค์ • ํŒŒ์ผ ์ˆ˜์ • (์„œ๋ฒ„ IP ์„ค์ •)
# sudo nano /etc/kibana/kibana.yml
# server.host: "0.0.0.0" ๋˜๋Š” VM์˜ IP ์ฃผ์†Œ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์™ธ๋ถ€ ์ ‘์† ํ—ˆ์šฉ

# 3. ์„œ๋น„์Šค ์‹œ์ž‘ ๋ฐ ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹œ์ž‘ ์„ค์ •
sudo systemctl enable kibana
sudo systemctl start kibana

 

๋ฐฉํ™”๋ฒฝ ์„ค์ • (Firewall):

  • Ubuntu VM์˜ ๊ธฐ๋ณธ ๋ฐฉํ™”๋ฒฝ์ธ ufw์—์„œ Kibana์˜ ํฌํŠธ์ธ 5601๋ฒˆ TCP ํฌํŠธ๋ฅผ ์—ด์–ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.
sudo ufw allow 5601/tcp
sudo ufw enable

 

 

 

๐Ÿ”‘ Kibana ๋“ฑ๋ก ํ† ํฐ ์ƒ์„ฑ ๋ฐฉ๋ฒ•

ํ† ํฐ์€ Elasticsearch๊ฐ€ ์„ค์น˜๋œ ELK VM์—์„œ root ๊ถŒํ•œ์œผ๋กœ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

1. ํ† ํฐ ์ƒ์„ฑ ๋ช…๋ น์–ด

๋ฆฌ๋ˆ…์Šค(Ubuntu) ํ™˜๊ฒฝ์—์„œ๋Š” bin ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์•„๋‹Œ /usr/share/elasticsearch/bin/ ๊ฒฝ๋กœ์˜ ์…ธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token --scope kibana

2. ์‹คํ–‰ ๋ฐ ๊ฒฐ๊ณผ

๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด Elasticsearch๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์— Kibana๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋“ฑ๋กํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ผํšŒ์„ฑ ํ† ํฐ์„ ์ƒ์„ฑํ•˜์—ฌ ํ„ฐ๋ฏธ๋„์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

# ๋ช…๋ น์–ด ์‹คํ–‰ ๊ฒฐ๊ณผ ์˜ˆ์‹œ
Your enrollment token for Kibana is:
eyJ2Z...[๋งค์šฐ ๊ธด ๋ฌธ์ž์—ด]...QkRjb
  • ์ถœ๋ ฅ๋œ ๊ธด ๋ฌธ์ž์—ด์ด ๋ฐ”๋กœ ํ•„์š”ํ•œ ํ† ํฐ ๊ฐ’์ž…๋‹ˆ๋‹ค.

3. Kibana์— ํ† ํฐ ์ž…๋ ฅ ๋ฐ ์—ฐ๊ฒฐ

ํ† ํฐ ๊ฐ’์„ ๋ณต์‚ฌํ•œ ํ›„, Kibana ์›น ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋Œ์•„๊ฐ€์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. Kibana ์ ‘์†: ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ http://[ELK VM IP ์ฃผ์†Œ]:5601๋กœ ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.
  2. ํ† ํฐ ์ž…๋ ฅ ํ™”๋ฉด: Kibana ์ดˆ๊ธฐ ํ™”๋ฉด(๋˜๋Š” ์—ฐ๊ฒฐ ์„ค์ • ํ™”๋ฉด)์— "Enrollment Token"์„ ์ž…๋ ฅํ•˜๋Š” ํ•„๋“œ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
  3. ์—ฐ๊ฒฐ: ๋ณต์‚ฌํ•œ ํ† ํฐ์„ ๋ถ™์—ฌ๋„ฃ๊ณ  Configure ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
http://[ELK VM IP ์ฃผ์†Œ]:5601

 

์ž…๋ ฅํ•˜๋ฉด Verification Code๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์ฐฝ์ด ๋œฌ๋‹ค. 

 

kivina.yml ํŒŒ์ผ์˜ server.host๊ฐ’์ด 0.0.0.0์œผ๋กœ ๋˜์–ด์žˆ๊ณ  localhost ์™ธ๋ถ€์—์„œ ์ ‘์†ํ•  ๊ฒฝ์šฐ, ์„œ๋ฒ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด verification ์„ ์š”๊ตฌํ•œ๋‹ค.

 

 

Kibana๊ฐ€ Elasticsearch์— ์„ฑ๊ณต์ ์œผ๋กœ ๋“ฑ๋ก(Enrollment)๋œ ํ›„์—, Kibana๊ฐ€ Elasticsearch๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ๋ฐ›์•„ ๋กœ๊ทธ์ธ ์—ฐ๊ฒฐ์„ ์ตœ์ข…์ ์œผ๋กœ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ™•์ธ ์ฝ”๋“œ(Verification Code) ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

์ด 6์ž๋ฆฌ ์ฝ”๋“œ๋Š” Kibana๊ฐ€ ์Šค์Šค๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, Elasticsearch ์„œ๋ฒ„์—์„œ ์ง์ ‘ ์‹คํ–‰๋˜๋Š” ๋ช…๋ น์–ด์˜ ๊ฒฐ๊ณผ๋กœ ์–ป์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ฝ”๋“œ๋Š” ์•ž์„  ์„ค์น˜๊ณผ์ •์˜ ์ถœ๋ ฅ๊ฐ’์„ ์‚ดํŽด๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋‹ค.


๐Ÿ”‘ 6์ž๋ฆฌ ํ™•์ธ ์ฝ”๋“œ(Verification Code) ์–ป๋Š” ๋ฐฉ๋ฒ•

์ถœ๋ ฅ๊ฐ’์—์„œ ์ฐพ์„์ˆ˜์—†๋Š”๊ฒฝ์šฐ, ์ด ์ฝ”๋“œ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„œ๋Š” Elasticsearch๊ฐ€ ์„ค์น˜๋œ ELK VM์œผ๋กœ ๋Œ์•„๊ฐ€์„œ ํŠน์ • ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

root@cmd-VirtualBox:/etc/kibana: sudo /usr/share/kibana/bin/kibana-verification-code
Your verification code is:  082 318

3. Kibana์— ์ž…๋ ฅ

  1. ์ถœ๋ ฅ๋œ 6์ž๋ฆฌ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  2. Kibana ์›น ํ™”๋ฉด์œผ๋กœ ๋Œ์•„๊ฐ€์„œ Verification code ์ž…๋ ฅ ํ•„๋“œ์— ์ด ์ฝ”๋“œ๋ฅผ ๋ถ™์—ฌ๋„ฃ๊ณ  ํ™•์ธ(Verify)์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด Kibana๊ฐ€ Elasticsearch์™€ ์™„์ „ํžˆ ์—ฐ๊ฒฐ๋˜์–ด ๋กœ๊ทธ์ธ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

Enrollment Token → Verification Code ๋‹จ๊ณ„๋ฅผ ๋„˜์–ด์„œ
Elasticsearch ๋กœ๊ทธ์ธ ๋‹จ๊ณ„

 

#elastic ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ ์ง์ ‘ ์ƒ์„ฑ(Reset)
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

Password for the [elastic] user successfully reset.
New value: bqXRJTq57-=g76cQO6G1

 

 

Explore on my own ์„ ํด๋ฆญ (Add integrations ์™€ ๊ฐ™์€ ์—ฐ๊ฒฐ์€ ๋‚˜์ค‘์— ์ž‘์—…)

 

ELK ๋ฉ”์ธ ํ™”๋ฉด

 


 

 

์‚ฌ์‹ค mod_security๋Š” ELK๋กœ ์ „์†ก๋˜๋ฏ€๋กœ, ๋ณ‘๋ ฌ์—ฐ๊ฒฐ๋ฐฉ์‹์— ๋” ๊ฐ€๊น๋‹ค. (pfsense๋„ ์ถ”๊ฐ€ํ•ด์•ผํ•จ)

 

 

๊ณต๊ฒฉ ๋Œ€์ƒ ์„œ๋ฒ„ (์ทจ์•ฝ ์„œ๋ฒ„) 192.168.16.33 Apache + ModSecurity ๊ณต๊ฒฉ์„ ์‹ค์ œ๋กœ ํƒ์ง€ํ•˜๋Š” WAF ์—ญํ• 
๋„คํŠธ์›Œํฌ ์นจ์ž… ํƒ์ง€ ์„œ๋ฒ„ 192.168.16.30 Suricata IDS ๋„คํŠธ์›Œํฌ ๊ธฐ๋ฐ˜ ๊ณต๊ฒฉ ํƒ์ง€
ํ†ตํ•ฉ ๋ณด์•ˆ ๋กœ๊ทธ ์ˆ˜์ง‘ ์„œ๋ฒ„ 192.168.16.27 Elasticsearch + Kibana ์ค‘์•™ ๋กœ๊ทธ ๋ถ„์„/๋Œ€์‹œ๋ณด๋“œ
๊ณต๊ฒฉ์ž 192.168.16.58 Kali, ๊ณต๊ฒฉ ์Šคํฌ๋ฆฝํŠธ ๊ณต๊ฒฉ ์ˆ˜ํ–‰

 

โžก ๋ชฉํ‘œ:
ModSecurity + Suricata์˜ ํƒ์ง€ ๋กœ๊ทธ๋ฅผ ELK๋กœ ๋ชจ๋‘ ๋ณด๋‚ด์„œ ํ†ตํ•ฉ ๋ชจ๋‹ˆํ„ฐ๋ง

 


 

์ง€๊ธˆ๋ถ€ํ„ฐ ํ•ด์•ผํ•  ์ž‘์—…

โœ… 1๋‹จ๊ณ„: ModSecurity ์„ค์น˜ ๋ฐ ๋กœ๊ทธ ์„ค์ • (192.168.16.33)

ModSecurity๋Š” Apache/Nginx ์•ž๋‹จ์—์„œ
์›น ๊ธฐ๋ฐ˜ ๊ณต๊ฒฉ(SQL Injection, XSS ๋“ฑ)์„ ํƒ์ง€ํ•˜๋Š” WAF์ด๊ธฐ ๋•Œ๋ฌธ์—,

โœ” ํ•ด์•ผ ํ•  ์ž‘์—…

  1. ModSecurity ์„ค์น˜
  2. OWASP CRS ๋ฃฐ์…‹ ์ ์šฉ
  3. Logging์„ JSON ํ˜•์‹์œผ๋กœ ์„ค์ •
  4. ๋กœ๊ทธ๋ฅผ ELK(192.168.16.27)๋กœ ์ „๋‹ฌ (Filebeat ์„ค์น˜)

๐Ÿ”ฅ ์ค‘์š”: ModSecurity๋Š” ๋กœ๊ทธ๋ฅผ ํŒŒ์ผ๋กœ ๋‚จ๊น€ → Filebeat๊ฐ€ ๊ทธ ๋กœ๊ทธ๋ฅผ ์ „์†กํ•ด์•ผ ํ•จ

ModSec ๋กœ๊ทธ ์œ„์น˜๋Š” ๋ณดํ†ต:

 
/var/log/modsec_audit.log /var/log/apache2/modsec_audit.log

โœ… 2๋‹จ๊ณ„: Suricata ์„ค์ • + ๋กœ๊ทธ ์ „์†ก (192.168.16.27)

Suricata๋Š” ๋„คํŠธ์›Œํฌ IDS์ด๋ฏ€๋กœ
ํŒจํ‚ท ๊ธฐ๋ฐ˜ ๊ณต๊ฒฉ, ์Šค์บ”, ํฌํŠธ์Šค์œ•, ์ต์Šคํ”Œ๋กœ์ž‡์„ ํƒ์ง€ ๊ฐ€๋Šฅ.

Suricata ๋กœ๊ทธ ์œ„์น˜:

 
/var/log/suricata/eve.json

์ด๋ฏธ JSON์ด๋ฏ€๋กœ Filebeat/Elastic Agent๊ฐ€ ๋ณด๋‚ด๊ธฐ ์ตœ๊ณ ๋กœ ์‰ฌ์›€.

ํ•ด์•ผ ํ•  ์ž‘์—…

  1. Suricata ๋™์ž‘ ํ™•์ธ
  2. eve.json JSON output ํ™•์ธ
  3. Filebeat ๋˜๋Š” Elastic Agent ์„ค์น˜
  4. ELK๋กœ ๋กœ๊ทธ ์ „์†ก

๐Ÿš€ ๊ทธ๋ž˜์„œ ์ค‘์š”ํ•œ ๊ฒฐ๋ก :

๐Ÿ“Œ ๋‘ ์„œ๋ฒ„(33, 30)์— Filebeat๋ฅผ ์„ค์น˜ํ•ด์„œ ELK๋กœ ๋กœ๊ทธ๋ฅผ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค!!

ELK ์„œ๋ฒ„๋Š” ๋กœ๊ทธ ์ˆ˜์ง‘๊ธฐ๊ฐ€ ์•„๋‹˜
→ ๋กœ๊ทธ ์ˆ˜์ง‘์€ ๋ณดํ†ต Beats(Agent)๊ฐ€ ๋‹ด๋‹นํ•จ.


โœ… 3๋‹จ๊ณ„: 192.168.16.33 ๋ฐ 192.168.16.30 ์— Filebeat ์„ค์น˜

๋ชจ๋‘ ๋™์ผํ•œ ๋ฐฉ์‹.

Filebeat ์„ค์น˜ ๋ช…๋ น ์˜ˆ์‹œ (Ubuntu)

 

Kibana์—์„œ Index Template ์ž๋™ ์ƒ์„ฑ๋˜๋„๋ก ์„ค์ •

ELK(192.168.16.38)์˜ Kibana์—์„œ:

Integrations → Filebeat → System / Apache / Suricata ์„ ํƒ

์—ฌ๊ธฐ์„œ config snippet์ด ์ œ๊ณต๋จ.


โœ… 4๋‹จ๊ณ„: ๊ฐ ํ™˜๊ฒฝ์— ๋งž๋Š” Filebeat ์„ค์ •

๐ŸŸฆ 192.168.16.27 (WAF ์„œ๋ฒ„) → Apache + ModSec ๋กœ๊ทธ ์ „์†ก

Filebeat modules:

 
sudo filebeat modules enable apache sudo filebeat modules enable modsecurity

๋˜๋Š” ์ง์ ‘ path ์ง€์ •:

 
/var/log/apache2/modsec_audit.log

๐ŸŸฉ 192.168.16.30 (Suricata ์„œ๋ฒ„) → Suricata ๋กœ๊ทธ ์ „์†ก

 
sudo filebeat modules enable suricata

์„ค์ • ํŒŒ์ผ ์ˆ˜์ •:

 
/etc/filebeat/modules.d/suricata.yml

๋กœ๊ทธ ๊ฒฝ๋กœ:

 
var.paths: - /var/log/suricata/eve.json

โœ… 5๋‹จ๊ณ„: Filebeat๋ฅผ ELK์™€ ์—ฐ๊ฒฐ

๋‘ ์„œ๋ฒ„์˜ filebeat.yml ๊ณตํ†ต ์„ค์ •:

 
output.elasticsearch: hosts: ["192.168.16.27:9200"] username: "elastic" password: "๋น„๋ฐ€๋ฒˆํ˜ธ"

โœ… 6๋‹จ๊ณ„: Kibana์—์„œ ๋ฐ์ดํ„ฐ ํ™•์ธ

  1. Kibana → Discover
  2. filebeat-* ์ธ๋ฑ์Šค ์ƒ์„ฑ ์—ฌ๋ถ€ ํ™•์ธ
  3. Suricata + ModSecurity ์ด๋ฒคํŠธ ์‹ค์‹œ๊ฐ„ ํƒ์ง€ ํ™•์ธ

๐Ÿ”ฅ 7๋‹จ๊ณ„: Visualize & Dashboard ๊ตฌ์ถ•

Kibana์—๋Š” ์ด๋ฏธ Suricata + Apache module ๋Œ€์‹œ๋ณด๋“œ ํ…œํ”Œ๋ฆฟ์ด ์žˆ์Œ.

Dashboard ๊ฒ€์ƒ‰ → Suricata → Suricata Events Dashboard
Dashboard ๊ฒ€์ƒ‰ → Apache → Access Logs Dashboard


๐Ÿ“Œ 8๋‹จ๊ณ„: ๊ณต๊ฒฉ ์ˆ˜ํ–‰ → ํƒ์ง€๋˜๋Š”์ง€ ํ™•์ธ

์ด์ œ ๊ณต๊ฒฉ์ž VM์—์„œ:

  • SQL Injection
  • XSS
  • Directory Traversal
  • nmap ์Šค์บ”
  • Nikto ์Šค์บ”

๋“ฑ ์ˆ˜ํ–‰ →
ModSec + Suricata → ๋กœ๊ทธ ๋ฐœ์ƒ → Filebeat → ELK ์ „์†ก → Kibana์—์„œ ํƒ์ง€๋จ.