็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿ” Linux Log ๅˆ†ๆž่ˆ‡ SIEM ๅฏฆไฝœ:journalctl、GoAccess、ELK、Auditd、Fail2Ban ๅ…จๆ”ป็•ฅ

    ๐Ÿ” Linux Log ๅˆ†ๆž่ˆ‡ SIEM ๅฏฆไฝœ:journalctl、GoAccess、ELK、Auditd、Fail2Ban ๅ…จๆ”ป็•ฅ

    ๅœจ็พไปฃ็’ฐๅขƒ่ฃก,ๅ–ฎไธ€ๅฐ Linux ไธปๆฉŸ็š„ log ๅทฒ็ถ“ไธๅ†ๅชๆ˜ฏ「ๅ‡บๅ•้กŒๆ™‚ๆ‰็ฟปๅ‡บไพ†็œ‹」็š„่ผ”ๅŠฉๅทฅๅ…ท, ่€Œๆ˜ฏๆ•ด้ซ”ๅฎ‰ๅ…จ็›ฃๆŽง่ˆ‡ไบ‹ไปถ่ฟฝ่นค็š„้—œ้ตๅŸบ็คŽ。

    ๆœฌๆ–‡ๆœƒๅพžๅ–ฎๆฉŸ็š„ journalctlAuditdFail2Ban, ๅˆฐ Web ๆต้‡ๅˆ†ๆžๅทฅๅ…ท GoAccess,ไธ€่ทฏๅปถไผธๅˆฐ้›†ไธญๅŒ–็š„ ELK / SIEM ๆžถๆง‹, ๆไพ›ไธ€ๅฅ—ๅฏไปฅๅพž「ไธ€ๅฐไธปๆฉŸ」ๅนณๆป‘ๅ‡็ดšๅˆฐ「ๅคšๅฐไผบๆœๅ™จ้›†ไธญ็›ฃๆŽง」็š„ๅฏฆๆˆฐ่ทฏ็ทš。


    ๐Ÿ“Œ ไธ€、็‚บไป€้บผ้œ€่ฆ้›†ไธญๅŒ– Logging + SIEM?

    ๅ…ˆๅฟซ้€Ÿๆ•ด็†ๅ‚ณ็ตฑๅšๆณ•็š„ๅนพๅ€‹็—›้ปž:

    • ๅชๅœจๅ‡บไบ‹ๆ™‚ๆ‰ไธŠๆฉŸ็œ‹ /var/log,ๅนณๅธธๅฎŒๅ…จๆฒ’ๆœ‰่ถจๅ‹ข่ง€ๅฏŸ。
    • ็’ฐๅขƒไธ€ๅคš(5 ๅฐไปฅไธŠ),ๆฏๅฐ้€ไธ€ ssh ๆŸฅ log ๅฎŒๅ…จไธๅ…ท่ฆๆจกๆ€ง。
    • ๆฒ’ๆœ‰็ตฑไธ€็š„ๆ ผๅผ่ˆ‡ไฟ็•™็ญ–็•ฅ,ๆŸฅ่ˆŠ่ณ‡ๆ–™ๆ™‚่ฆ้ ้‹ๆฐฃ。
    • ็ผบไนๅ‘Š่ญฆ:Docker ็•ถๆฉŸ、Nginx 502、sshd ็ˆ†้‡ๆšดๅŠ›ๆ”ปๆ“Šๆ™‚,ๆฒ’ๆœ‰ไบบ็ฌฌไธ€ๆ™‚้–“ๆ”ถๅˆฐ้€š็Ÿฅ。

    ่€Œไธ€ๅฅ—ๅฎŒๆ•ด็š„ Logging + SIEM ๆžถๆง‹ๅฏไปฅๆไพ›:

    • ้›†ไธญๆ”ถ้›†:็ณป็ตฑ、Web、DB、ๅฎ‰ๅ…จ่จญๅ‚™ log ๅ…จไธŸๅˆฐๅŒไธ€ๅนณๅฐ。
    • ๅ…จๆ–‡ๆชข็ดข:้—œ้ตๅญ—ๆœๅฐ‹ๆˆ–ๅคšๆขไปถ้Žๆฟพ。
    • ่ฆ–่ฆบๅŒ–:ๅ„€่กจๆฟ้กฏ็คบ่ถจๅ‹ข、Top IP、Top URL、Top ้Œฏ่ชค็ขผ。
    • ๅ‘Š่ญฆ:ไพ่ฆๅ‰‡ๆŽจๆ’ญๅˆฐ mail / Slack / Teams / LINE。
    • ็จฝๆ ธ่ฟฝ่นค:้…ๅˆ Auditd、sudo log ็ญ‰ๅปบ็ซ‹ๆ“ไฝœ่ปŒ่ทก。

    ๐Ÿ“š ไบŒ、Linux Log ๅŸบ็คŽ็›ค้ปž:ๅ“ชไบ›ๆฑ่ฅฟ่ฆ่ขซๆ”ถ้›†?

    ๅธธ่ฆ‹่ฆ็ดๅ…ฅ Monitoring / SIEM ็š„ log ้กžๅž‹:

    • ็ณป็ตฑ log:systemd journal(journalctl)、kernel、boot
    • ่ช่ญ‰ log:sshd、sudo、su、PAM
    • ๆœๅ‹™ log:Nginx / Apache / HAProxy / Postfix / DB
    • ๅฎ‰ๅ…จ log:Auditd、Fail2Ban、SELinux / AppArmor event(ๅฏๅƒ่€ƒไฝ ็š„ Linux Security ็ณปๅˆ—):contentReference[oaicite:1]{index=1}
    • ๆ‡‰็”จ็จ‹ๅผ log:่‡ชๅฎถๆœๅ‹™、ๅพฎๆœๅ‹™、ๅฎนๅ™จๆ‡‰็”จ็”ข็”Ÿ็š„ log

    ๆŽฅไธ‹ไพ†ๆœƒๅพž「ๅ–ฎๆฉŸๅทฅๅ…ท」้–‹ๅง‹,้€ๆญฅๅพ€้›†ไธญๅŒ–ๆžถๆง‹่ตฐ。


    ๐Ÿงฐ ไธ‰、journalctl:systemd ๆ™‚ไปฃ็š„ log ๆŸฅ่ฉขไธป่ง’

    ๅœจไฝฟ็”จ systemd ็š„ Linux ไธŠ,ๅคง้ƒจๅˆ†ๆœๅ‹™ log ๅทฒ็ถ“ๆ”ถๆ–‚ๅˆฐ journal ไน‹ไธญ。

    1. ๆŸฅ็œ‹ๆ•ด้ซ” log(ไพๆ™‚้–“ๅ€’ๅบ)

    journalctl -r

    2. ๅช็œ‹ๆœฌๆฌก้–‹ๆฉŸ็š„ log

    journalctl -b

    3. ไพ็…ง service ้Žๆฟพ(ไพ‹ๅฆ‚ nginx)

    journalctl -u nginx.service -f

    4. ไพๆ™‚้–“ๅ€้–“ๆŸฅ่ฉข

    journalctl --since "2025-12-03 10:00" --until "2025-12-03 11:00"

    ๅ–ฎๆฉŸๆŽ’้Œฏ่ˆ‡็จฝๆ ธๆ™‚,็ฟ’ๆ…ฃๅ–„็”จ journalctl ๆœƒ่ฎ“ๆ•ˆ็އๅทฎ้žๅธธๅคš。


    ๐Ÿ›ก ๅ››、Auditd + Fail2Ban:ๅพž Log ๅˆฐๅ‹•ไฝœ(ๅฐ้Ž–ๆ”ปๆ“Š)

    1. Auditd:่จ˜้Œ„「่ชฐๅœจ็ณป็ตฑไธŠๅšไบ†ไป€้บผ」

    Auditd ้ฉๅˆ็”จไพ†่จ˜้Œ„:

    • ้—œ้ตๆช”ๆกˆ่ขซ่ชฐไฟฎๆ”น(ไพ‹ๅฆ‚ /etc/sudoers、/etc/passwd)
    • ็‰นๅฎš็›ฎ้Œ„็š„่ฎ€ๅฏซ่กŒ็‚บ
    • ้‡่ฆๆŒ‡ไปค็š„ๅŸท่กŒ่จ˜้Œ„
    # ็›ฃๆŽง /etc/sudoers ไปปไฝ•ๅญ˜ๅ–
    auditctl -w /etc/sudoers -p wa -k sudoers_watch

    ไน‹ๅพŒๅฏ็”จ:

    ausearch -k sudoers_watch
    aureport -f

    2. Fail2Ban:ๅพž log ไธญ่‡ชๅ‹•ๅฐ้Ž–ๆƒกๆ„ IP

    ไฝ ๅทฒๆœ‰ Fail2Ban ้€ฒ้šŽๆ•™ๅญธๆ–‡็ซ ,ๅฏไปฅ็•ถไฝœๆœฌ็ฏ‡็š„ๅปถไผธ้–ฑ่ฎ€ไน‹ไธ€:contentReference[oaicite:2]{index=2}。

    ็ฐกๅŒ–็‰ˆๆฆ‚ๅฟต:

    • ่ฎ€ๅ–ๆŒ‡ๅฎš log(ไพ‹ๅฆ‚ /var/log/auth.log ๆˆ– journal)
    • ๆฏ”ๅฐ Regex ๆ‰พๅ‡บๅคšๆฌก็™ปๅ…ฅๅคฑๆ•— IP
    • ้€้Ž iptables / nftables / Firewalld ่‡ชๅ‹•ๅฐ้Ž–
    [sshd]
    enabled  = true
    filter   = sshd
    logpath  = /var/log/auth.log
    maxretry = 5

    Fail2Ban ็š„ log ๆœฌ่บซไนŸ่ฆ้€ฒ SIEM,ๅ› ็‚บๅฎƒไปฃ่กจ「ๅ“ชไบ› IP ๆ›พ็ถ“ๆ”ปๆ“Š้Žไฝ 」。


    ๐Ÿ“ˆ ไบ”、GoAccess:Web Access Log ๅณๆ™‚ๅˆ†ๆž

    ไฝ ๅทฒ็ถ“ๆœ‰็จ็ซ‹็š„ GoAccess + Nginx/Apache Dashboard ๆ•™ๅญธๆ–‡,ๅฏ็›ดๆŽฅไธฒ็‚บๆœฌ็ฏ‡ๅปถไผธ้–ฑ่ฎ€:contentReference[oaicite:3]{index=3}。

    ๅ…ธๅž‹็”จๆณ•:

    goaccess /var/log/nginx/access.log \
      --log-format=COMBINED \
      --real-time-html \
      --output=/var/www/html/report.html

    ๅ„ช้ปž:

    • ้ƒจ็ฝฒ่ถ…ๅฟซ,้ฉๅˆ่‡จๆ™‚ๅˆ†ๆžๆต้‡。
    • ๅฏ่ฆ–ๅŒ– Top URL、HTTP ็‹€ๆ…‹็ขผ、ไพ†ๆบ IP、User-Agent。
    • ๅฏ็•ถไฝœ「Web log ่ฆ–่ฆบๅŒ–ๅ‰ๅ“จ」,ๅ†ๆŠŠๅŽŸๅง‹ log ไธŸ็ตฆ ELK ๅšๆ›ด้€ฒ้šŽๅˆ†ๆž。

    ๐Ÿงฑ ๅ…ญ、ELK / SIEM ๆžถๆง‹:้›†ไธญๅŒ– Log ่ˆ‡ๅฎ‰ๅ…จไบ‹ไปถ็ฎก็†

    ๅ…ธๅž‹็š„้›†ไธญๅŒ–ๆžถๆง‹ๅคง่‡ดๅฆ‚ไธ‹:

    ๅ„ Linux ไธปๆฉŸ:
      - systemd journal
      - /var/log/*(Nginx / Apache / App)
      - Auditd / Fail2Ban / Security logs
              │
              ▼
      Log Shipper(Filebeat / Fluent Bit / Vector)
              │
              ▼
      Elasticsearch / OpenSearch(็ดขๅผ•่ˆ‡ๅ„ฒๅญ˜)
              │
              ├─ Kibana / OpenSearch Dashboards(่ฆ–่ฆบๅŒ–)
              └─ Alerting / SIEM(ๅ‘Š่ญฆ่ˆ‡้—œ่ฏๅˆ†ๆž)

    ๅฏฆไฝœ้‡้ปž:

    • ๆ‰€ๆœ‰็ฏ€้ปžๅฎ‰่ฃ่ผ•้‡ Agent(ๅฆ‚ Filebeat / Fluent Bit)。
    • ้‡ๅฐไธๅŒ log ้กžๅž‹ไฝฟ็”จไธๅŒ input module(systemd、nginx、auditd …)。
    • ๅœจไธญๅคฎ็š„ ELK/้กžไผผๅนณๅฐๅš็ดขๅผ•、Mapping ่ˆ‡็ดขๅผ•่ผชๆ›ฟ。
    • ๅœจ Dashboards ไธŠๅปบ Dashboard:ๆต้‡、้Œฏ่ชค、็™ปๅ…ฅๅคฑๆ•—、root/ sudo ๆ“ไฝœ็ญ‰。

    ⚙️ ไธƒ、็ฐกๆ˜“ๅฏฆไฝœ็ฏ„ไพ‹:Filebeat + Elasticsearch + Kibana

    1. ๅœจ ELK ไผบๆœๅ™จๅฎ‰่ฃ Elasticsearch + Kibana(็•ฅ)

    ๅ‡่จญไฝ ๅทฒๆœ‰ไธ€ๅฐ้›†ไธญๅŒ– log ไผบๆœๅ™จ。

    2. ๅœจ Linux ็ฏ€้ปžๅฎ‰่ฃ Filebeat

    # ไปฅ Debian ็ณป็‚บไพ‹(ๅฏฆ้š› repo ไพๅฎ˜ๆ–นๆ–‡ไปถ)
    sudo apt install filebeat

    3. ๅ•Ÿ็”จ systemd module

    filebeat modules enable system
    filebeat modules enable nginx
    filebeat modules enable auditd

    4. ่จญๅฎš่ผธๅ‡บๅˆฐ Elasticsearch

    # /etc/filebeat/filebeat.yml
    output.elasticsearch:
      hosts: ["elk01:9200"]
      username: "elastic"
      password: "your_password"

    5. ๅ•Ÿๅ‹• Filebeat

    systemctl enable filebeat
    systemctl start filebeat

    ไน‹ๅพŒๅณๅฏๅœจ Kibana ไธŠ็œ‹ๅˆฐ systemd、nginx、auditd ็ญ‰ log index,ไธฆๅปบ็ซ‹ Dashboard ่ˆ‡ Alert。


    ๐Ÿ”” ๅ…ซ、ๅ‘Š่ญฆ่ˆ‡ SIEM ่ฆๅ‰‡่จญ่จˆ็ฏ„ไพ‹

    ้›†ไธญๅŒ–ไน‹ๅพŒ,้—œ้ตๅœจๆ–ผไฝ ๅฎš็พฉไป€้บผๆจฃ็š„ไบ‹ไปถ่ฆ「ๅซ้†’ไบบ」:

    • 1 ๅˆ†้˜ๅ…งๅคšๆฌก ssh ็™ปๅ…ฅๅคฑๆ•— > N ๆฌก(้…ๅˆ Fail2Ban ๆชขๆŸฅ)
    • ๆŸๅฐไธปๆฉŸ Journal ๅ‡บ็พ repeated segfault / OOM
    • Web ๆœๅ‹™็š„ 5xx ็‹€ๆ…‹็ขผ็ช็„ถ้ฃ†้ซ˜
    • Auditd ๅ‡บ็พๅฐๆ•ๆ„Ÿๆช”ๆกˆ็š„็•ฐๅธธ่ฎ€ๅฏซ
    • ๆŸ IP ๅฐๅคšๅ€‹ๆœๅ‹™ port ๅš port scan

    ้€™ไบ›่ฆๅ‰‡ๅŒๆ™‚ๅฏไปฅ่จ˜้Œ„ๅœจไฝ ็š„ Runbook / SOP ไธญ,่ฎ“ๅ€ผ็ญไบบๅ“ก็…ง่กจ่™•็†。


    ๐Ÿงช ไน、ๅฎน้‡็ฎก็†่ˆ‡ไฟ็•™็ญ–็•ฅ(็ตๅˆไฝ ็พๆœ‰ logrotate ๆ•™ๅญธ)

    ้›†ไธญๅŒ– log ็š„ๅฆไธ€ๅ€‹ๆŒ‘ๆˆฐๆ˜ฏ:ๅฎน้‡็ˆ†็‚ธ。ไฝ ๅทฒ็ถ“ๆœ‰็จ็ซ‹็š„ logrotate ้€ฒ้šŽๆ•™ๅญธ,ๅฏไปฅ็”จไพ†ๆŽง็ฎกๆœฌๆฉŸ log ๆช”ๆกˆ่ผชๆ›ฟ:contentReference[oaicite:4]{index=4}。

    ๅœจ้›†ไธญๅŒ–ๅนณๅฐๅ‰‡้œ€่ฆ:

    • ็‚บ Index ่จญๅฎšไฟๅญ˜ๅคฉๆ•ธ่ˆ‡ size ไธŠ้™。
    • ๅฐ‡่ˆŠ Index ่ฝ‰ๅˆฐๅ†ทๅ„ฒๅญ˜(S3 / ไพฟๅฎœ็ฃ็ขŸ)。
    • ๅฐ「ๅฎ‰ๅ…จ็›ธ้—œ log」่ˆ‡「ไธ€่ˆฌๆ‡‰็”จ log」่จญๅฎšไธๅŒไฟ็•™ๆ™‚้–“。
    • ๆญ้…ๅ‚™ไปฝ็ญ–็•ฅ(ไพ‹ๅฆ‚ๆฏๅคฉ snapshot、ๅฎšๆœŸ้‚„ๅŽŸๆผ”็ทด)。

    ๐Ÿ“‹ ๅ、Linux Log + SIEM ๅฏฆไฝœ Checklist

    ✅ ็›ค้ปžๆ‰€ๆœ‰่ฆๆ”ถ้›†็š„ log ้กžๅˆฅ(็ณป็ตฑ / Web / DB / ๅฎ‰ๅ…จ่จญๅ‚™ / App)
    ✅ ็ตฑไธ€ๆ™‚ๅ€่ˆ‡ NTP,ๅŒไธ€ไบ‹ไปถไธๆœƒๆฏๅฐๆ™‚้–“้ƒฝไธๅŒ
    ✅ ๅ–„็”จ journalctl / Auditd / Fail2Ban ๅšๅ–ฎๆฉŸ้˜ฒ็ฆฆ
    ✅ Web ๆต้‡ๅ…ˆ็”จ GoAccess ๅšๅˆๆญฅๅˆ†ๆž่ˆ‡ๅ ฑ่กจ
    ✅ ้ƒจ็ฝฒ้›†ไธญๅŒ– Log ๅนณๅฐ(ELK / OpenSearch / ๅ…ถไป–)
    ✅ ๆฏๅฐ Linux ๅฎ‰่ฃ Log Shipper(Filebeat / Fluent Bit / Vector)
    ✅ ๅฐ้—œ้ตไบ‹ไปถๅฎš็พฉ Alert ่ฆๅ‰‡ไธฆๆธฌ่ฉฆ้€š็Ÿฅ
    ✅ ็‚บ Index / Log ่จญๅฎšไฟ็•™ๅคฉๆ•ธ่ˆ‡ๅฎน้‡ไธŠ้™
    ✅ ๅฎšๆœŸๅš「้‚„ๅŽŸ่ˆ‡็จฝๆ ธๆผ”็ทด」,็ขบ่ช log ็œŸ่ƒฝๅ›ž็ญ”ๅ•้กŒ
      

    ๐Ÿ’ฌ ไบ’ๅ‹•็•™่จ€ๅผ•ๅฐŽ(Log / SIEM ๅฏฆๆˆฐๅˆ†ไบซๅ€)

    ๅฆ‚ๆžœไฝ ๅœจ่ฆๅŠƒๆˆ–ๅฏฆไฝœ Linux Log / SIEM ๆžถๆง‹ๆ™‚,้‡ๅˆฐไปฅไธ‹็‹€ๆณ:

    • ไธ็Ÿฅ้“่ฉฒๅ…ˆๆ”ถๅ“ชไบ› log?
    • ELK / OpenSearch ๆžถ่ตทไพ†ๅปๆ•ˆ่ƒฝๅพˆๅทฎ?
    • Filebeat / Fluent Bit ไธ€็›ด้€ไธๅˆฐ้›†ไธญๅนณๅฐ?
    • Fail2Ban / Auditd log ๅคชๅคš,ไธ็Ÿฅ้“่ฉฒ็œ‹ไป€้บผ?

    ๆญก่ฟŽๅœจไธ‹ๆ–น็•™่จ€ไฝ ็š„็’ฐๅขƒ่ฆๆจก、็ฏ€้ปžๆ•ธ้‡่ˆ‡็›ฎๅ‰ๅšๆณ•, ๆˆ‘ๆœƒ็›ก้‡ไปฅๅฏฆๆˆฐ่ง’ๅบฆๅ”ๅŠฉๅˆ†ๆž,ไธฆๆŠŠๆœ‰ไปฃ่กจๆ€ง็š„ๆกˆไพ‹ๆ•ด็†ๆˆๅพŒ็บŒ่ฃœๅ……็ฏ‡。


    ๐Ÿ”— ๅปถไผธ้–ฑ่ฎ€

    — WWFandy・Linux Log & SIEM Notes

    ๐Ÿ”— ๅˆ†ไบซ้€™็ฏ‡ LINE Facebook X

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš