๐ฅ AWS Free Tier๋ก Splunk ๋ฉ ๋ง๋ค๋ฉด์ ํ OS ํ๋ ์ ๋ฆฌ
์ด๋ฒ์๋ AWS Free Tier ํ๊ฒฝ์์ Splunk ๋ฉ์ ๊ตฌ์ถํ๋ฉด์
OS ํ๋์ ์กฐ๊ธ ์ ๋ํด๋ดค๋ค!!!
๋ฌด์์ ๊ผญ ํด์ผ ํ๊ณ , ๋ฌด์์ ์ ํ์ธ์ง, ๋ฌด์์ ์ ํด๋ ๋๋์ง
ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ์ ํ ๋ฒ์ ์ ๋ฆฌ!
1) ๐ ํ์ OS ์ ์ (Must)
์ด๊ฑด ์ ํ๋ฉด ๊ทธ๋ฅ ์ ๋์๊ฐ๋๋ค. ์ฆ ํ์.
[A] Hostname ์ค์
sudo hostnamectl set-hostname splunk-es

[B] ์์คํ ์ ๋ฐ์ดํธ + ๊ธฐ๋ณธ ํจํค์ง ์ค์น
sudo yum update -y
sudo yum install -y wget tar curl unzip
[C] splunk ์ฌ์ฉ์ ๊ณ์ ์์ฑ
sudo useradd splunk
[D] Java 11 ์ค์น (DBX์ฉ)
sudo dnf install -y java-11-devel
[E] AWS SG ํฌํธ ์คํ
Security Group์์ ํ์ํ ํฌํธ๋ง ํ์ฉ:
- 8000 → Splunk Web
- 22 → SSH
- (์ต์ ) DB ์ฐ๊ฒฐ์ฉ TCP
- (์ต์ ) 9997 → ์ธํ์ฉ

[F] Boot-start ํ์ฑํ >> Splunk ์ค์น ์ดํ์!!
sudo /opt/splunk/bin/splunk enable boot-start -user splunk
โก๏ธ ์ฌ๊ธฐ๊น์ง๊ฐ ํ์ 6๋์ฅ
2) ๐ง ํด๋๋ฉด ๋งค์ฐ ์ข์ ํญ๋ชฉ (Should)
์ ํด๋ ๋์๊ฐ์ง๋ง ์ด์ ์ ๋ฏธ๋ฌํ๊ฒ ๋์ ๋๋ ํญ๋ชฉ๋ค
[G] ulimit ์กฐ์
sudo vi /etc/security/limits.conf
splunk soft nofile 100000
splunk hard nofile 100000
- ulimit๋ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ ์ ์๋ ์์(FD/์ค๋ ๋/๋ฉ๋ชจ๋ฆฌ)์ ์ํ์ ์ ํด์ ์๋น์ค๊ฐ ์์ ๋ถ์กฑ์ผ๋ก ์ฃฝ์ง ์๋๋ก ํ๊ธฐ ์ํด ์กฐ์ ํ๋ค.
- ์๋ฒํ ์ํฌ๋ก๋๋ ๊ธฐ๋ณธ๊ฐ์ด ๋๋ฌด ๋ฎ์ ๊ณ ์ฑ๋ฅ I/O·๋ค์ค ์ฐ๊ฒฐ·์ค๋ ๋ ๊ธฐ๋ฐ ์๋น์ค์์ ๋ฐ๋ก ๋ณ๋ชฉ ๋๋ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ค.
- ๋ณด์ ๊ด์ ์์๋ ์ํ์ ๋๋ฌด ๋๊ฒ ๋๋ฉด DoS ๊ณต๊ฒฉ ์ ์์์ด ๋ฌด์ ํ ์๋น๋ ์ ์์ด ํฉ๋ฆฌ์ ์ธ upper bound ์ค์ ์ด ์ํ ์ํ ์๋จ์ด ๋๋ค.
์ ์ฒด๋ฅผ ํ ๋ฌธ์ฅ์ผ๋ก ๋จผ์ ์์ฝ
“์ปค๋ ํ๋(fs.file-max) ≥ ์ฌ์ฉ์ ์ธ์
ํ๋(limits.conf) ≥ ์ค์ ํ๋ก์ธ์ค๊ฐ ์ฐ๋ ulimit”
์ด๋ ๊ฒ ์ธ ๋ ์ด์ด๋ฅผ ๋ง์ถฐ์ค์ผ ์๋น์ค๊ฐ ์จ ์ ๋งํ๊ณ ์ ์ ๋์ํจ.
1. ํ์ผ ๋์คํฌ๋ฆฝํฐ ์ด๋ ํ์ธ
# root ์ฌ์ฉ์๋ก ์ ํํด์ ํ์ธํ๋ ๊ฒ์ด ์ข์
sudo -i
cat /proc/sys/fs/file-nr
sysctl -a | grep fs.file-max
์๋ฏธ:
- fs.file-max = ๋ฆฌ๋ ์ค ์ปค๋ ์ ์ฒด๊ฐ ์ด ์ ์๋ ํ์ผ ๋์คํฌ๋ฆฝํฐ ์ต๋์น (OS ์ ์ญ ํ๋)
- file-nr = ํ์ฌ ์ด๋ ค ์๋ ํ์ผ ์ / ์ฌ์ฉ ๊ฐ๋ฅ ์ / max ๊ฐ์ ํ์
์ฆ:
OS ์ ์ฒด ์์ “์ด ๊ทธ๋ฆ ํฌ๊ธฐ”๋ฅผ ํ์ธํ๋ ๋จ๊ณ

2. sysctl.conf ์ค์
vi /etc/sysctl.conf
fs.file-max = 3657031
์๋ฏธ:
- ์์์ ํ์ธํ ๊ฐ ๊ธฐ๋ฐ์ผ๋ก ์ปค๋ ๋ ๋ฒจ์์ ํ์ผ ๋์คํฌ๋ฆฝํฐ ์ต๋์น๋ฅผ ์ํฅ ์กฐ์
- ์๋ฒ ์ ์ฒด์ ์ต๋ ์ฐ๊ฒฐ/ํ์ผ ์คํ ์ฌ๋ ฅ์ ๋๋ฆผ
์ฆ:
“OS ์ ์ฒด ํ๋” ๋๋ฆฌ๋ ๊ตฌ๊ฐ
3.limits.conf ํ์ธ (์ผ๋ฐ ๊ณ์ ์ผ๋ก)
$ ulimit -a
์๋ฏธ:
- ํ์ฌ ๋ก๊ทธ์ธ๋ ์ฌ์ฉ์ ์ธ์ ์ด ์ค์ ๋ก ์ธ ์ ์๋ ํ๋๋ฅผ ํ์ธ
- ์ฌ๊ธฐ์ ๋ง์ด๋ค ์ค์ํ๋ ๊ฒ root ๊ณ์ ์ด ์๋๋ผ ์๋น์ค ์ฌ์ฉ์(splunk ๋ฑ) ๊ธฐ์ค์ผ๋ก ๋ด์ผ ์ ์ฉ ์ฌ๋ถ๊ฐ ๋ณด์
์ฆ:
์ค์ ์๋น์ค๊ฐ ์ธ ์ ์๋ “์ฌ์ฉ์·์ธ์
ํ๋” ํ์ธ
4. limits.conf ์ค์
/etc/security/limits.conf
๋๋
/etc/security/limits.d/*.conf
## ์ค์ ๋ด์ฉ ##
root soft nofile 100000
root hard nofile 100000
splunk soft nofile 100000
splunk hard nofile 100000
## ์ด๊ฑด ๊ตณ์ด ์ํด๋ ๋ ๋ฏ ##
## AWS Linux ๊ธฐ๋ณธ ๊ฐ์ด unlimited์ผ
root soft nproc 100000
root hard nproc 100000
splunk soft nproc 100000
splunk hard nproc 100000
์๋ฏธ:
- soft = ๊ธฐ๋ณธ๊ฐ (์ธ์ ์ด ์ฐ์ ์ ์ผ๋ก ์ ์ฉ)
- hard = ์ ๋ ์ํ (soft๊ฐ hard๋ฅผ ๋์ ์ ์์)
- nofile = ํ์ผ/์์ผ ์ต๋ FD ์
- nproc = ์์ฑ ๊ฐ๋ฅํ ํ๋ก์ธ์ค·์ค๋ ๋ ์
์ฆ:
“์ฌ์ฉ์ ๋จ์ ์์ ์ ํ” ์ค์
์ splunk ์ฌ์ฉ์ ๋ณ๋๋ก ์ค์ ํ๋?
→ Splunk ํ๋ก์ธ์ค๋ root๊ฐ ์๋๋ผ splunk ๊ณ์ ์ผ๋ก ๋๊ธฐ ๋๋ฌธ
5. sysctl ์ ์ฉ
$ sysctl -p
์๋ฏธ:
- sysctl.conf์์ ์ปค๋ ํ๋ผ๋ฏธํฐ ๋ค์ ๋ก๋ฉ
- ์ฆ ์ปค๋ ๋ ๋ฒจ ํ์ผ ๋์คํฌ๋ฆฝํฐ ๊ด๋ จ ํ๋ ์ ์ฉ ์๋ฃ
6. ์ฌ๋ก๊ทธ์ธ ํ์ ์ด์ (CentOS ๋ฑ)
- limits.conf๋ PAM (Pluggable Authentication Modules)์ ํตํด ๋ก๊ทธ์ธ ์ธ์ ์ ์ ์ฉ๋๋ฏ๋ก
- SSH ๋ค์ ๋ค์ด์ค๊ฑฐ๋ ์๋น์ค ์ฌ์์ํด์ผ ๋ฐ์๋จ
์ฆ:
์ฌ๋ถํ
๊น์ง๋ ํ์ ์์ง๋ง “๋ค์ ๋ค์ด์ฌ ๊ฒ” ํ์

[H] THP Disable
# ํ์ผ ์์ฑ
sudo vi /etc/systemd/system/disable-thp.service
# ๋ด์ฉ ๋ฃ๊ธฐ
[Unit]
Description=Disable Transparent Huge Pages
After=sysinit.target
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo never > /sys/kernel/mm/transparent_hugepage/enabled"
ExecStart=/bin/sh -c "echo never > /sys/kernel/mm/transparent_hugepage/defrag"
[Install]
WantedBy=multi-user.target
# ์ ์ฉ
sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp
# ํ์ธ
cat /sys/kernel/mm/transparent_hugepage/enabled

[I] ์๊ฐ ๋๊ธฐํ (NTP/Chrony)
sudo yum install -y chrony
sudo systemctl enable --now chronyd
## ํ๊ตญ์๊ฐ์ผ๋ก ๋ฐ๊พธ๊ธฐ
sudo timedatectl set-timezone Asia/Seoul
## ์ ์ฉ ํ์ธ
timedatectl
SIEM์์ timestamp๋ ๊ฑฐ์ ์ ๊ฒฉ ์กด์ฌ…

[J] SElinux ์ค์
vi /etc/selinux/config
SELINUX=disabled
sudo reboot
getenforce
4) ๐ซ ์ง๊ธ์ ์ ํด๋ ๋๋ ๊ฒ๋ค (Don’t)
์ด๋ฒ ๋ฉ ํ๊ฒฝ์์๋ ๋ถํ์
- โ RAID / MegaCLI (EBS๋ RAID ์๋)
- โ Java8/Java17 ๊ณ ๋ฏผ (DBX๋ Java11 ์์ )
- โ UDP Buffer Tuning (UDP ์์ง ์์)
- โ Queue tuning (๋จ์ผ ingest์์๋ ๊ณผํจ)
- โ Heavy Forwarder ์ค์ (๋ฏธ์ฌ์ฉ)
๋ค์์๋ Splunk ์ค์น + DB ์์ฐ ์ฐ๋(DBX) + ํฐ์ผ/์ํฌํ๋ก ๊ตฌ์ฑ๋ ์ ๋ฆฌํด๋ณผ ์์ !