TDCTF Academy Logo TDCTF ACADEMY

Log Management

Protokol Syslog

Syslog adalah standar logging untuk sistem UNIX/Linux (RFC 5424). Setiap pesan log memiliki:

  • Facility - sumber log (kern, user, mail, daemon, auth, syslog)
  • Severity - tingkat keparahan (0=emerg, 1=alert, 2=crit, 3=err, 4=warning, 5=notice, 6=info, 7=debug)

Format standar syslog:

<timestamp> <hostname> <process[pid]>: <message>
Jul 21 10:15:30 server1 sshd[1234]: Failed password for root from 192.168.1.100 port 22 ssh2

rsyslog

rsyslog adalah implementasi syslog modern dengan performa tinggi, dukungan TCP/SSL, dan output ke database.

Konfigurasi di /etc/rsyslog.conf dan /etc/rsyslog.d/:

# Format: facility.severity action
auth.* /var/log/auth.log
*.info;auth,authpriv.none /var/log/syslog
kern.* /var/log/kern.log
cron.* /var/log/cron.log
mail.* /var/log/mail.log
*.*;auth,authpriv.none -/var/log/syslog

Tanda - sebelum path berarti buffered write (lebih cepat, resiko data loss saat crash).

Restart setelah ubah konfigurasi:

sudo systemctl restart rsyslog

journald - Systemd Journal

journald adalah sistem logging bawaan systemd yang menyimpan log dalam format binary terstruktur.

Keunggulan journald:

  • Terintegrasi dengan systemd - log service otomatis tanpa konfigurasi
  • Metadata kaya: PID, UID, GID, priority, boot ID, unit file
  • Rotasi otomatis berdasarkan ukuran/waktu
  • Query fleksibel dengan journalctl

Konfigurasi di /etc/systemd/journald.conf:

[Journal]
Storage=auto # auto, persistent, volatile, none
SystemMaxUse=500M # Maksimum ukuran log
SystemMaxFileSize=100M # Maksimum per file
MaxRetentionSec=2week # Retention 2 minggu
Compress=yes # Kompresi
ForwardToSyslog=yes # Forward ke rsyslog

Logrotate

logrotate mencegah log memenuhi disk dengan merotasi, mengompresi, dan menghapus log lama.

Konfigurasi di /etc/logrotate.conf:

weekly
rotate 4
create
compress
delaycompress
include /etc/logrotate.d

Konfigurasi per-service di /etc/logrotate.d/nginx:

/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
systemctl reload nginx > /dev/null
endscript
}

Jalankan manual:

sudo logrotate -d /etc/logrotate.conf # Dry run
sudo logrotate -f /etc/logrotate.conf # Force rotate

Log Analysis dengan grep dan awk

grep untuk filtering:

# Cari error dalam 24 jam terakhir
grep "$(date +'%b %e')" /var/log/syslog | grep -i error

# Ekstrak IP dari auth.log
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}'

# Hitung jumlah failed login per IP
grep "Failed password" /var/log/auth.log \
| awk '{print $(NF-3)}' \
| sort \
| uniq -c \
| sort -rn

awk untuk parsing:

# Hitung error per jam
awk '/ERROR/ {
hour = substr($0, 12, 2)
count[hour]++
}
END {
for (h in count) print h": "count[h]" errors"
}' /var/log/app.log

Centralized Logging

Pada lingkungan multi-server, log dikumpulkan ke satu server:

Rsyslog server:

# Di server log (/etc/rsyslog.conf)
module(load="imtcp")
input(type="imtcp" port="514")
*.* /var/log/central/all.log

Klien mengirim log:

# Di klien (/etc/rsyslog.d/client.conf)
*.* @logserver:514 # UDP (single @)
*.* @@logserver:514 # TCP (double @@)

Alternatif modern: ELK Stack (Elasticsearch, Logstash, Kibana), Loki (Grafana), atau Graylog untuk visualisasi dan alerting.

Log Security

Prinsip keamanan log:

  1. Jangan hapus log - Log adalah bukti forensik. Hapus hanya setelah backup dan sesuai kebijakan retensi.
  2. Akses terbatas - /var/log/ hanya bisa dibaca oleh admin (chmod 640, group adm)
  3. Waktu akurat - Gunakan NTP. Tanpa timestamp yang akurat, log tidak berguna untuk forensik.
  4. Immutable (append-only) - Gunakan chattr +a /var/log/auth.log agar log hanya bisa ditambahkan, tidak bisa dihapus.
  5. Log rotasi aman - Permission rotasi harus dijaga agar attacker tidak menyusupkan log palsu.
sudo chattr +a /var/log/auth.log # Set append-only
lsattr /var/log/auth.log # Verifikasi flag: ----a--------

Monitoring real-time:

tail -f /var/log/auth.log | grep "Failed password" # Monitor brute force
journalctl -u sshd -f # Journal real-time

Log management yang baik adalah fondasi keamanan siber - tanpa log yang memadai, deteksi insiden dan forensik menjadi mustahil.

PADA HALAMAN INI