Kali-id
Panduan membaca log serangan web di server sendiri | Kali Linux Indonesia

Kalau kamu sering mengelola server pribadi di lab rumahan, kamu pasti sudah tidak asing lagi dengan berkas log yang menumpuk di direktori /var/log/apache2 atau /var/log/nginx. Kadang barisnya jutaan. Di situlah cerita sebenarnya tersimpan, siapa yang mencoba masuk, apa yang mereka kirim, dan bagaimana kalimat permintaan mereka bisa bocorkan niat asli. Di Kali Linux Indonesia, kami biasa menjadikan proses membaca log ini sebagai kebiasaan rutin, sama wajibnya dengan memperbaharui daftar paket. Tulisan ini bukan tutorial instan, melainkan catatan lab yang saya susun setelah dua tahun menjajal analisis log secara defensif dengan Kali Linux dan beberapa alat pendukung.
Sebenarnya mesin server jarang berteriak saat sedang diserang. Mereka hanya mencatat. Karena itu memahami baris log sama dengan belajar mendengar bisikan sebelum benturan keras terjadi. Selama latian di lingkungan Capture The Flag (CTF) dan server uji pribadi dengan Kali Linux 2024.2, saya makin nyadar bahwa membaca log adalah fondasi sebelum bicara intrusion detection yang rumit.
Mengenali anatomi log server web di mesin sendiri
Server web populer seperti Apache dan Nginx menyimpan log akses dengan format gabungan (combined log format) yang antara lain mencatat IP peminta, waktu permintaan, metode HTTP, URI yang diminta, kode status HTTP, ukuran respons, dan user-agent. Contoh tipikalnya bisa kita lihat dengan perintah sudo tail -f /var/log/apache2/access.log di terminal Kali. Baris yang tampak sederhana seperti “GET /wp-admin HTTP/1.1” dengan kode status 403 bisa jadi penanda awal bahwa ada pihak luar yang mencoba mencium panel login kita.
Yang sering dilewatkan pemula adalah kolom waktu yang dicatat dalam format offset zona waktu. Padahal ini krusial. Tanpa menyinkronkan zona waktu di server (pakai timedatectl di Kali), kamu bisa keliru membaca kronologi serangan saat mengorelasikan dengan log firewall atau auth.log. Saya pernah menghabiskan hampir sejam menduga telah terjadi brute‑force massal, padahal cuma gara‑gara offset waktu server yang selisih tujuh jam dari log UFW.
Sebagian besar lab pribadi memakai Nginx yang ramping. Di Kali, Nginx bisa dipasang dalam satu perintah, lalu kamu bisa telusuri log‑nya langsung dengan kombinasi cat, grep, dan awk—alat yang sudah terpasang secara bawaan. Praktik ini berguna untuk membangun pemahaman sebelum beralih ke parser otomatis.
Melatih mata melihat anomali dengan alat bawaan Kali
Kali Linux datang dengan lebih dari 600 tool keamanan yang terpasang, termasuk sekumpulan utilitas analisis teks seperti awk, sed, dan sort yang kaya fitur. Dalam konteks membaca log, kita tidak selalu butuh aplikasi berat. Cukup dengan cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr kamu bisa langsung tau alamat IP mana yang paling sering mengirim permintaan dalam satu jam terakhir. Hasilnya sering bikin kita kaget bangeet, ternyata ada IP dari subnet asing yang mengirim 800 permintaan ke titik /xmlrpc.php.
Latian sederhana ini sudah mencerminkan cara kerja IDS dasar. Kita mengolah data mentah, mencari frekuensi tidak wajar, dan mempersempit kecurigaan. Sambil berlatih, kamu juga akan mulai mengenali string‑string mencurigakan seperti UNION SELECT, ../../etc/passwd, atau eval(base64_decode—yang merupakan jejak klasik percobaan SQL injection dan local file inclusion. Substring ini tidak pernah muncul di situs normal yang kita kelola sendiri.
Penggunaan grep dengan opsi -E (extended regex) juga mempercepat pendeteksian. Misalnya, grep -E "select|union|drop|insert" /var/log/nginx/access.log akan langsung menampilkan baris yang memuat kata kunci berbahaya. Tapi harus hati‑hati, jangan sampai hanya mengandalkan regex tanpa memahami konteks; banyak aplikasi modern menyandikan payload dalam base64 atau URL encoding, sehingga kita perlu tambahan langkah dekode lewat python3 -c "import urllib.parse; ..." di terminal Kali. Saya