Manajemen Log pada Debian Wheezy

Pada pos sebelumnya telah dibahas bagaimana memperkuat sistem operasi dengan konfigurasi kendali akses dan perbaruan. Setelah sistem operasi dikonfigurasi terhadap kendali akses maka langkah selanjutnya adalah memelihara sistem agar dapat dikenali perubahan konfigurasi ataupun kerawanan baru pada sistem melalui manajemen log. Sehingga jika terjadi kesalahan atau kerusakan pada sistem dapat diketahui penyebabnya dari informasi log.

Menurut NIST proses pemeliharaan keamanan meliputi:

  • monitoring dan analisis informasi log
  • melakukan backup rutin
  • pemulihan keamanan yang terkompromi
  • pengujian keamanan sistem rutin
  • menggunakan perangkat lunak yang sesuai untuk memperbarui aplikasi dan monitor perubahan konfigurasi

Pos ini akan membahas bagaimana mengenali manajemen log pada sistem operasi Debian Wheezy dan aplikasi peladen web serta mengkonfigurasi suatu peladen yang dijadikan sebagai peladen log.

Mengenali log pada sistem operasi

Log pada sistem operasi Debian Wheezy terletak pada direktori /var/log/. Kita dapat melihatnya dengan ketik dalam terminal:

$ls -l /var/log/
Direktori log
Direktori log

Terdapat beberapa log dalam sistem operasi Debian Wheezy yaitu:

Nama fasilitas Program apa yang direpresentasikan
MESSAGES log sistem secara keseluruhan mulai sistem berjalan.
DMESG informasi buffer kernel saat booting seperti perangkat keras yang dideteksi kernel.
AUTH informasi otorisasi sistem seperti login pengguna.
BOOT informasi saat sistem booting.
DAEMON log informasi oleh daemon yang berjalan di belakang sistem.
DPKG informasi yang mencatat pemasangan/penghapusan paket.
KERN log informasi kernel yang dapat membantu jika kustomisasi kernel.
LASTLOG informasi login pengguna terbaru dalam format non ASCII.
MAIL log informasi dari peladen surel yang berjalan dalam sistem.
USER informasi tingkatan seluruh pengguna.
ALTERNATIVES mencatat informasi pembaruan alternatif.
BTMP mencatat percobaan login yang gagal.
WTMP mencatat login untuk mencari tahu pengguna yang masuk dalam sistem dan menjalankan perintah.
FAILLOG informasi percobaan login pengguna yang gagal.
APACHE2 log dari peladen web apache.
Nama level Apa yang direpresentasikan
EMERG Kondisi darurat, biasanya di-broadcast ke semua pengguna.
ALERT Sebuah kondisi yang harus diperbaiki sesegera mungkin, seperti basis data sistem rusak.
CRIT Kondisi kritis, misalnya kesalahan pada perangkat keras.
ERR Kesalahan-kesalahan.
WARNING Pesan peringatan.
NOTICE Kondisi yang bukan merupakan kondisi salah, namun kemungkinan harus ditangani secara khusus.
INFO Pesan informatif.
DEBUG Pesan-pesan yang berisi informasi yang umumnya digunakan ketika men-debug program.
NONE Level khusus untuk menonaktifkan fasilitas.

Rotasi log

Pencatatan log dalam sistem akan membutuhkan sumber daya memori cakram penyimpanan yang bertambah. Untuk mengatasi masalah keterbatasan tersebut perlu dilakukan rotasi penyimpanan log sehingga log yang lama dan sudah tidak dibutuhkan dapat dihapus untuk kemudian diganti dengan log yang baru.

Konfigurasi rotasi log dapat dilihat pada berkas logrotate.conf dan direktori logrotate.d untuk mengaksesnya dalam terminal ketik:

$sudo nano /etc/logrotate.conf
Berkas konfigurasi rotasi log
Berkas konfigurasi rotasi log

Direktori logrotate.d menyimpan konfigurasi log yang khusus atau log dari aplikasi yang dipasang dalam sistem. Penjelasan lebih lengkap dari perintah konfigurasi rotasi log dapat dilihat pada terminal dengan ketik:

$man logrotate

Log MySQL

Aplikasi MySQL memiliki pencatatan log yang terpisah dari sistem operasi sama seperti log peladen Apache. Secara default, konfigurasi log MySQL belum berjalan setelah dipasang. Oleh karena itu, perlu dikonfigurasi dahulu sehingga sistem dapat mencatat log ketika MySQL berjalan.

Log yang ada dalam aplikasi MySQL antara lain:

Nama fasilitas Program apa yang direpresentasikan
ERROR LOG informasi kesalahan yang muncul saat peladen berjalan dan saat peladen mulai atau berhenti.
GENERAL QUERY LOG catatan umum yang dilakukan peladen seperti connect, disconnect, dan query.
SLOW QUERY LOG mencatat query.

Konfigurasi log MySQL dapat dilihat pada berkas my.cnf dengan ketik dalam terminal:

$sudo nano /etc/mysql/my.cnf
Berkas konfigurasi log MySQL
Berkas konfigurasi log MySQL

Error log dalam MySQL secara default akan tercatat pada syslog karena konfigurasi berkas /etc/mysql/conf.d/mysqld_safe_syslog.cnf. Namun untuk mengaktifkan General query log dan Slow query log dapat dilakukan dengan menghapus tanda komentar (#) pada berkas my.cnf.

Aktivasi log MySQL
Aktivasi log MySQL

Rotasi log MySQL dikonfigurasi pada berkas mysql-server dalam direktori logrotate.d. Dengan menyunting berkas tersebut dapat diatur bagaimana MySQL melakukan rotasi log setelah aktif. Untuk menyuntingnya ketik dalam terminal:

$sudo nano /etc/logrotate.d/mysql-server
Konfigurasi rotasi log MySQL
Konfigurasi rotasi log MySQL

Log Apache2

Aplikasi peladen web Apache2 memiliki direktori log di dalam direktori /var/log/ yang hanya dapat diakses oleh akun root. Untuk melihat catatan log Apache2 buka berkas access.log untuk catatan login dan error.log untuk kesalahan saat peladen berjalan dengan ketik dalam terminal:

#nano /var/log/apache2/access.log
Berkas access.log
Berkas access.log
#nano /var/log/apache2/error.log
Berkas error.log
Berkas error.log

Log akses pada WordPress

Aplikasi web WordPress membutuhkan suatu plugin sebagai perangkat yang membantu manajemen log akses pengguna. Plugin yang dibutuhkan sangat beragam, dalam studi ini dicontohkan dengan menggunakan WP Security Audit Log yang dapat diunduh pada tautan berikut (klik di sini).

Plugin akses pengguna
Plugin akses pengguna

Langkah pertama yaitu login pada akun WordPress dan buka halaman Plugin dari Dashboard. Selanjutnya klik Add New.

Halaman plugin
Halaman plugin

Halaman Add Plugin akan muncul, lalu klik Upload Plugin.

Halaman upload plugin
Halaman upload plugin

Klik Browse untuk mencari unduhan berkas plugin. Selanjutnya klik Install Now.

Cari berkas plugin yang diunduh
Cari berkas plugin yang diunduh

WordPress akan melakukan pemasangan yang selanjutnya diperlukan aktivasi plugin dengan klik Activate Plugin.

Aktivasi plugin
Aktivasi plugin

Setelah selesai aktivasi maka plugin yang telah dipasang dapat dilihat pada halaman Dashboard.

Plugin telah terpasang dan aktif
Plugin telah terpasang dan aktif

Log belum tercatat oleh plugin setelah pemasangan.

Log belum tercatat
Log belum tercatat

Keluar dari peladen WordPress lalu masuk kembali sebagai contoh pencatatan log pengguna.

Keluar dari WordPress
Keluar dari WordPress

Setelah pengguna berhasil masuk WordPress maka dari halaman Dashboard sudah dicatat oleh log.

Log akun pengguna
Log akun pengguna

Penjelasan lebih lengkap log yang dicatat ada pada halaman Audit Log.

Halaman audit log
Halaman audit log

Log remot

Manajemen log dalam suatu sistem yang terintegrasi memiliki beberapa tipe metode antara lain:

  • log pada peladen yang sama sehingga setiap catatan disimpan dalam direktori lokal peladen.
  • log relay antara dua atau lebih cabang peladen yang kemudian setiap cabang mengirimkan log ke pusat data log
  • log remot pada satu peladen log yang menerima seluruh log dari setiap peladen lainnya.

Log remot memudahkan administrator untuk memantau setiap peladen hanya dari satu peladen log. Dalam beberapa sistem operasi linux seperti Debian dan Red Hat memiliki fitur log remot yaitu rsyslog. Fitur rsyslog akan dikonfigurasi sehingga terdapat satu peladen log yang menerima log dari peladen lainnya.

Dalam studi ini, terdapat peladen Debian yang bertindak sebagai peladen log dan peladen Ubuntu sebagai klien log. Hal yang diperlukan adalah memastikan bahwa konfigurasi jaringan membolehkan koneksi menggunakan protokol UDP pada port 514 antar peladen. Selanjutnya instalasi kebutuhan paket di setiap peladen dengan ketik dalam terminal:

$sudo apt-get install rsyslog rsyslog-doc

Konfigurasi rsyslog terdapat pada berkas /etc/ryslog.conf dan direktori /etc/rsyslog.d/. Misalkan alamat IP peladen log adalah 192.168.56.10 dan klien 192.168.56.11 maka terlebih dahulu salin konfigurasi awal rsyslog peladen log dengan ketik dalam terminal:

$cd /etc/

Masuk dalam direktori /etc/ lalu

$sudo cp rsyslog.conf rsyslog.conf.orig

Sunting berkas

$sudo nano rsyslog.conf

Tambahkan baris perintah

# provides support for local system logging
$ModLoad imuxsock 

# provides kernel logging support (previously done by rklogd)
$ModLoad imklog

# provides UDP syslog reception. For TCP, load imtcp.
$ModLoad imudp

# For TCP, InputServerRun 514
$UDPServerRun 514

# This one is the template to generate the log filename dynamically, depending on the client's IP address.
$template FILENAME,"/var/log/192.168.56.11/syslog.log"

# Log all messages to the dynamically formed file. Now each clients log (192.168.1.2, 192.168.1.3,etc...), will be under a separate directory which is formed by the template FILENAME.
*.* ?FILENAME

Mulai ulang layanan rsyslog dengan perintah:

$sudo service rsyslog restart

Lakukan hal yang sama terhadap konfigurasi klien log dengan menambahkan baris perintah

$ModLoad imuxsock

$ModLoad imklog

# Provides UDP forwarding. The IP is the server's IP address
*.* @192.168.56.10:514 

# Provides TCP forwarding. But the current server runs on UDP
# *.* @192.168.56.10:514

Mulai ulang layanan rsyslog dengan perintah:

$sudo service rsyslog restart

Karena simulasi ini menggunakan VirtualBox maka di dalam direktori /var/log/ terdapat direktori alamat IP virtual. Untuk melihat log dari klien, akses direktori alamat IP dengan root peladen log dengan ketik dalam terminal:

#tail -f /var/log/192.168.43.44/syslog.log

Maka akan ada tambahan log jika klien melakukan sesuatu seperti login dan logout.

Log klien awal
Log klien awal
Log klien selanjutnya
Log klien selanjutnya

One thought on “Manajemen Log pada Debian Wheezy”

Leave a Reply

Your email address will not be published. Required fields are marked *