Keamanan Sistem Operasi NetBSD untuk Aplikasi Berbasis Web – Bagian VIII Manajemen Log NetBSD

Manajemen Log  Lokal (syslog) pada sistem NetBSD

Pada sistem operasi NetBSD seluruh log pada sistem operasi NetBSD diatur oleh syslog daemon atau syslogd(8). Direktori dimana log-log ditempatkan berada di /var/log/ dan hasil keluaran dari syslog diatur melalui file konfigurasinya yang terletak di /etc/syslog.conf. Berikut adalah isi /var/log secara umum pada sistem operasi NetBSD :

varlog

File konfigurasi /etc/syslog.conf berisi cara memanajemen log lokal, isinya sebagai berikut :

syslogconf

Untuk dapat mengerti detil dari syslog.conf bisa dilihat informasi detail dengan perintah man syslogd, namun secara singkat akan tetap saya jelaskan. File berbentuk teks ini konfigurasinya dibagi berdasarkan baris, dan masing-masing baris dibagi 2 kelompok dimana :

  1. kelompok pertama (bagian selector) berisi informasi-informasi log yang akan disaring oleh syslogd. Informasi ini mempunyai format
    • facility – menjelaskan bagian dari sistem yang mengeluarkan log, beberapa fasilitas yang tersedia adalah : auth, authpriv, cron, ftp, daemon,
      kern, lpr, mail, mark, news, syslog, user, uucp dan local0 sampai
      local7.
    • comparison flag – merupakan perbandingan level yang akan dilog, secara default komparasinya adalah >= (lebih besar sama dengan)
    • level – merupakan tingkat kegentingan dari pesan log yang disampaikan, secara berurutan dari yang paling genting ke yang paling rendah adalah :  emerg, alert, crit, err, warning, notice, info dan debug
  2. kelompok kedua (bagian action) berisi output kemana log tersebut disimpan, sebagai contoh dibaris pertama action dari log yang masuk adalah disampaikan kepada consol sehingga akan keluar pada tampilan CLI pengguna, sedangkan pada baris kedua log akan disimpan pada berkas /var/log/messages.

Melihat Hasil Log

Untuk melihat log yang ada, kita dapat menggunakan sebuah editor teks bila ingin memudahkan mencari teks yang diinginkan, namun tidak disarankan karena dapat merubah isinya secara tidak sengaja. Disarankan dilihat isinya dengan perintah tail untuk melihat beberapa baris terakhir dan digabung dengan perintah grep untuk mencari sebuah kata kunci yang dicari didalam log, berikut adalah contoh mencari 5 baris terakhir yang memiliki kata “webmaster” didalam file /var/log/authlog.

taillog

tapi ada juga file log yang berbentuk data binary yang tidak dapat dibuka oleh teks editor seperti lastlog, wtmp dan wtmpx. Untuk membukanya harus menggunakan perintah last, berikut contoh penggunaanya:

lastlog

 

Manajemen Rotasi Log dengan newsyslog

Rotasi log dibutuhkan agar berkas log tidak terlalu panjang dan dipecah-pecah menjadi berkas yang lebih kecil dan dikompres agar tidak memakan banyak media penyimpanan. Berbeda dengan sistem linux, NetBSD tidak menggunakan logrotate untuk memanajemen rotasi berkas-berkas log, melainkan menggunakan sebuah utilitas yang bernama newsyslog. Newsyslog ini sebenarnya dijalankan secara berkala oleh cron(8), dan ketika dijalankan akan menyimpan berkas log yang lama kedalam sebuah berkas terkompresi apabila sesuai dengan prasyarat yang telah ditentukan didalam file konfigurasi newsyslog. Prasyarat itu sendiri bisa berupa ukuran dari file log yang sudah dicapai, atau bisa juga berdasarkan lamanya umur berkas log. File konfigurasinya terdapat pada file /etc/newsyslog.conf

newsyslogconf

Seperti yang bisa kita lihat diatas bahwa untuk konfigurasinya berdasarkan baris dan tiap baris dibagi 9 (sembilan) field, yaitu :

  1. logfilename – pada field ini berisi nama file log yang akan diatur rotasinya
  2. owner:group – adalah pemilik dan group pemilik log file tersebut
  3. mode – adalah representasi desimal dari hak mode akses yang dimiliki file
  4. ngen – jumlah file yang disimpan selain file utama log
  5. size – apabila sebuah log telah mencapai ukuran tertentu maka akan dirotasi, satuannya adalah kilobyte, apabila diisi dengan asteriks (*) maka ukuran file tidak menjadi parameter dalam rotasi.
  6. when – adalah interval dimana file log dirotasi, satuan yang digunakan adalah jam, sama dengan diatas, apabila diisi dengan asteriks (*) maka tidak akan menjadi parameter rotasi.
  7. flags – adalah hal-hal optional
    • flag Z berarti menggunakan format gzip untuk kompresi
    • flag B berarti menggunakan format Binary
    • flag N berarti no signal
  8. pidfile – adalah letak file pid dimana process id daemon servis yang hendak dilog diletakan. Referensi letak berkas wajib berawal dari root direktori “/”.
  9. sigtype – diisi dengan tipe signal yang hendak digunakan (opsional).

Menambahkan Log Aplikasi pada newsyslog

Newsyslog tidak saja memanajemen log yang dikelola oleh syslogd, namun juga dapat mengelelola log yang merupakan output aplikasi atau servis lainya seperti log dari Ngingx, PHP-FPM, Mysql dlsb. Pada gambar konfigurasi newsyslog.conf diatas pada 3 baris terakhir dapat dilihat tambahan baris-baris untuk rotasi log dari PHP dan Nginx yang ditambahkan sendiri. Pada NetBSD seringkali setelah instalasi diberikan masukan mengenai bagaimana sebaiknya log rotate diimplementasikan pada newsyslog, seperti 3 baris tersebut adalah saran yang terdapat setelah instalasi selesai.

Manajemen Log Jarak Jauh / Remote dengan rsyslog

rsyslog adalah sebuah servis yang membantu menjadi jembatan dari berbagai macam jenis log untuk dikirim kesebuah log server untuk disimpan kedalam berbagai jenis format penyimpanan baik itu berbentuk teks, binary maupun basis data. Untuk tugas ini, kita akan belajar membuat rsyslog pada sistem operasi NetBSD untuk melaporkan log kepada log server yang berjalan diatas sistem NetBSD lainnya.

Instalasi rsyslog

rsyslog tidak terinstal secara otomatis pada NetBSD sehingga harus menginstall secara manual baik pada server maupun pada host, keduanya menggunakan langkah yang sama yaitu:

# pkgin install rsyslog
# cp /usr/pkg/share/examples/rc.d/rsyslogd /etc/rc.d
# echo "rsyslogd=YES" >> /etc/rc.conf

Manajemen Server rsyslog

Perbedaan pada instalasi server dan host rsyslog hanya terdapat pada isi berkas konfigurasinya, yang pada NetBSD terdapat  pada /usr/pkg/etc/rsyslog.conf.

rsyslogserver

pada setingan server yang perlu dilakukan adalah mengatur pada port mana input log akan didengarkan oleh sistem, disini standar yang biasa digunakan adalah UDP port 514, UDP digunakan untuk menghemat bandwith, namun apabila lebih menghendaki kestabilan dan kekonsistenan sebaiknya menggunakan TCP pada port 514. Setelah berkas konfigurasi selesai disunting dan disimpan jangan lupa dijalankan servernya

# /etc/rc.d/rsyslogd start

Manajemen host rsyslog

Server yang telah kita konfigurasi diatas sudah dapat menerima kiriman log, sekarang kita akan mengatur host agar mengirim log. Informasi yang dibutuhkan hanya nama host atau nomor IP dari server rsyslog, kemudian kita edit berkas konfigurasi dan tambahkan baris berikut pada baris paling bawah :

*.* @ALAMAT_IP:514

rsyslog

kemudian disimpan berkas konfigurasinya, dan aktifkan servernya dengan

# /etc/rc.d/rsyslogd start

Demikian penjelasan manajemen log pada sistem NetBSD

Leave a Reply

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