๐ง Linux Log ๅ จ้ขๅผทๅๆๅ:Auditd、Journalctl、Rsyslog、ELK / SIEM ๆดๅๅฏฆๆฐ
Linux ็ณป็ตฑ็ไบไปถ็ด้(Logging)ๆฏๆๆ่ณๅฎ、็ถญ้่ๅ้ก่จบๆท็ๆ ธๅฟ。 ๆฌๆๅๅฐๅฎๆด่งฃๆ Auditd、Journalctl、Rsyslog、ELK / SIEM ๆดๅ ็ๅฎๆดๆต็จ,ไธฆๆไพไผๆฅญ็ดๆไฝณๅฏฆๅ,่ฎไฝ ่ฝๆ้ ๅฏ่ฟฝ่นค、ๅฏ็จฝๆ ธ、ๅ ทๅฏ่ฆๅ่ฝๅ็ๆฅ่ชๅนณๅฐ。
ๆฌ็ฏๆถต่:
- Auditd:่ก็บ็จฝๆ ธ่ๅฎๅ จไบไปถ่ฟฝ่นค
- Journalctl:Systemd ๆฅ่ชๆฅ่ฉข、็ฏฉ้ธ่ๆไน ๅ
- Rsyslog:้ไธญๅผๆฅ่ชๅณ่ผธ
- ELK / SIEM:้ซ้ๅๆ、่ฆ่ฆบๅ、ๅฎๅ จๅ่ญฆ
๐ ไธ、Linux Log ๆถๆงๅฟซ้็ธฝ่ฆฝ
Linux ๅฎๆด็ไบไปถ่จ้็ณป็ตฑ็ฑไธๅฑค็ตๆ:
| ๅฑค็ด | ๅ ไปถ | ็ฎ็ |
|---|---|---|
| ็จฝๆ ธๅฑค | Auditd | ่ฟฝ่นค็ณป็ตฑๅฑค็ดไบไปถ、ๆไปคๅท่ก、ๆชๆกๅญๅ |
| ๆฅ่ชๅฑค | Systemd Journal | ๆ็จ็จๅผ่็ณป็ตฑๆๅ่จๆฏ |
| ้ไธญๅณ่ผธๅฑค | Rsyslog | ๆฅ่ชๆถ้่่ฝ้่ณ SIEM / ELK |
้ไธๅฑคๅฐๆไผๆฅญๆฅ่ช้ๆฑ:
- ๅฎๆดๆง(Integrity) → Auditd
- ๅฏ่ฟฝ่นคๆง(Traceability) → Journalctl
- ้ไธญๅๆ(Correlated Analytics) → Rsyslog + SIEM
๐ ไบ、Auditd:ๆ ธๅฟ็จฝๆ ธ็ณป็ตฑ(Security Events)
Auditd ๆฏ Linux ๅฎๅ จ็จฝๆ ธๆ ธๅฟ,ๅฏ่ฟฝ่นค:
- ๆชๆกๅญๅ(read/write/delete)
- ๆไปคๅท่ก(execve)
- sudo ่ก็บ
- ่ช่ญ、็ปๅ ฅๅคฑๆ
- ็ณป็ตฑ่จญๅฎไฟฎๆน
๐ฆ ๅบๆฌๆฅ็
sudo ausearch -m avc
sudo aureport --summary
๐ฆ ่จญๅฎ็จฝๆ ธ่ฆๅ
-w /etc/passwd -p wa -k passwd_changes
-a exit,always -F arch=b64 -S execve -k exec_monitor
Auditd ๆฏ SIEM ไธญ็ๆ ธๅฟไพๆบ,ๅฏๆไพ「ไธๅฏๅฆ่ชๆง」็ด้。
๐ ไธ、Journalctl:Systemd ็ๆฅ่ชๆ ธๅฟ
Journalctl ๆไพๆฏๅณ็ตฑ syslog ๆดๅฎๆด็็ตๆงๅๆฅ่ช,ๅ ๅซ:
- ็ณป็ตฑๆๅๅๅ่้ฏ่ชค
- Kernel ่จๆฏ
- ๆ็จ็จๅผ่ผธๅบ
๐ฆ ๆฅ็ๆๅๆฅ่ช
journalctl -u nginx
๐ฆ ๆ็บ่ฟฝ่นค(tail)
journalctl -f
๐ฆ ๆๅฎๆ้ๆฅ่ฉข
journalctl --since "1 hour ago"
๐ฆ ๅ็จๆฅ่ชๆไน ๅ
sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald
่ฅๆช้ๅ,้้ๆฉๅพๆฅ่ชๆๆถๅคฑ。
๐ ๅ、Rsyslog:้ไธญๅผๆฅ่ชๅณ่ผธ่ SIEM ๆดๅ
Rsyslog ๆฏ Linux ๆๆ็็ๆฅ่ชๅณ่ผธๆกๆถ,ๅฏไปฅ:
- ๆถ้ๆฌๅฐๆฅ่ช
- ๅณ้ๅฐ Log Server
- ๆฏๆด TCP、UDP、TLS ๅ ๅฏๅณ่ผธ
๐ฆ ๅณ้ๆๆๆฅ่ชๅฐ้ ็ซฏ SIEM
็ทจ่ผฏ /etc/rsyslog.d/90-siem.conf:*.* @@10.10.10.50:514
> @ = UDP
> @@ = TCP(ๆจ่ฆ)
๐ฆ ๅ็จ่จญๅฎ
sudo systemctl restart rsyslog
Rsyslog ่ ELK / Splunk ๅฎๅ จ็ธๅฎน,ๆฏ้ไธญๅผๆฅ่ช็ๆจๆบๅๆณ。
๐ ไบ、ELK / SIEM:ๆฅ่ชๅๆ、่ฆ่ฆบๅ่ๅ่ญฆ
ELK(Elasticsearch + Logstash + Kibana)ๅฏๆไพ:
- ๅ จๆ็ดขๅผ
- ๅ่กจๆฟ(Dashboard)
- ๆปๆๅตๆธฌ
- ไบไปถ้่ฏๅๆ(Correlation)
๐ฆ ๅ ธๅๆถๆงๆต็จ
Auditd → Journalctl → Rsyslog → Logstash → Elasticsearch → Kibana
๐ฏ SIEM ๅฏๅตๆธฌ็่ก็บๅ ๅซ:
- ๆดๅ็ปๅ ฅๆปๆ
- ๆๆๆชๆก่ฎๅฏซ
- sudo ็ฐๅธธไฝฟ็จ
- ๅฏ็็ execve ้ฃ็บๅท่ก
- ้ซๆฌ้ๅธณ่ๆฐๅข
้้ป: ๆฅ่ชๅฟ ้ 「ๅฏๆๅฐ」ไธ「ๅ ทๅไธไธๆ」,ELK ๆ่ฝๅๆๆๅๆ。
๐ ๅ ญ、ๅฎๆด็ Linux Logging ๆไฝณๅฏฆๅ
- ๅ็จ Auditd ไธฆ็ขบไฟๆ้ฉ็ถ่ฆๅ
- ๅ็จ Journal ๆฅ่ชๆไน ๅ
- Rsyslog ๅณ้ๆๆๆฅ่ชๅฐ้ไธญไผบๆๅจ
- ELK/Splunk ๅปบ็ซๅ่กจๆฟ(็ปๅ ฅ้ฏ่ชค、sudo、ๆชๆกๅญๅ)
- ๅฎๆๆชขๆฅ Auditd Policy ้ฟๅ ่ชคๅ ฑ
๐ ไธ、ๅธธ่ฆ้ฏ่ชค่้ท้ฑ
❌ Journalctl ๆฒๆๆไน ๅ
้้ๆฉๅพๆฅ่ชๆถๅคฑ → ็กๆณๅ Forensics。
❌ ๅ จ้จๆฅ่ชไธ้ฒ ELK ้ ๆ็้
ๅปบ่ญฐๅ ๅ Parser ่็ญ็ดๅ้ก。
❌ ๆฒๆ Auditd ่ฆๅ,ไบไปถไธๅฎๆด
ELK ๅช่ฝ็ๅฐ service log,่้็ณป็ตฑ่ก็บ。
๐ ๅ ซ、็ต่ช
Linux ็ๆฅ่ช่ฝๅๆฏไธ่ฌ่ช็ฅๆดๅผทๅคง。 ๅพ Auditd ็็จฝๆ ธ่ฝๅ、Journalctl ็็ตๆงๅๆฅ่ช,ๅฐ Rsyslog ็้ไธญๆถ้,ๅๅฐ ELK/SIEM ็่ฆ่ฆบๅ็ฃๆง,ไฝ ๅฏไปฅๆ้ ไธๅไผๆฅญ็ด、ๅฏ็จฝๆ ธ、ๅฏ่ฟฝ่นค็็ณป็ตฑๅฎๅ จๅนณๅฐ。
ๅฆ้ๆดๆทฑๅ ฅๆดๅ(Ex: Filebeat、OpenSearch、SOAR ่ชๅๅๅ่ญฆ),ๆไนๅฏไปฅๅๅฉ่ฃฝไฝๅปถไผธ็ฏ。
๐ ๅปถไผธ้ฑ่ฎ
- ๐ Linux Auditd + SELinux ๅฏฆๅๆไฝๅฎๆดๆๅ
- ๐ก Linux Fail2Ban ้ฒ้้ฒ็ฆฆๆๅ
- ๐ Linux Log / SIEM / ELK ๆดๅๆๅ(่็่ฃๅผท)
๐ฌ ๆญก่ฟๅจไธๆน็่จไบคๆต!
ๆณไบ่งฃๆดๆทฑๅ ฅ็ๆฅ่ชๅๆ?ELK / SIEM ้จ็ฝฒ?ๆๆฏ Auditd ่ฆๅๆไฝณๅ?ๆญก่ฟ็่จไบคๆต!
— WWFandy・Linux Logging / SIEM ๆ่ก็ญ่จ
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ