Jumat, 17 Agustus 2007

NIDS di Linux dengan Snort



IDS atau Intrusion Detection System itu paan ya? Menurut sejumlah referensi, IDS adalah suatu sistem yang memonitor perubahan-perubahan yang terjadi di sebuah sistem komputer, baik itu perubahan dalam sebuah jaringan maupun dari penggunaan komputer itu sendiri. IDS banyak macamna, antara lain :

1. HIDS, Host based Intrusion Detection System. IDS jenis ini akan memonitor dan menganalisa segala aktifitas yang terjadi dalam satu host tertentu.
2. NIDS, Network Intrusion Detection System. IDS yang ini akan memonitor dan menganalisa semua lalu-lintas paket yang ada di jaringan.
3. PIDS, Protocol-based Untrusion Detection System, nah kalo yang ini biasana ditempatkan di front-end sebuah server. Akan memonitor dan menganalisa semua komunikasi yang terjadi di suatu protokol, misal HTTPS.
4. APIDS, Application Protocol-based Intrusion Detection System. Hampir sama dengan PIDS, hanya saja agak berbeda tempat "nangkringna". Dia akan memonitor dan menganalisa status, perubahan dari suatu aplikasi protokol.
4. Hybrid Intrusion Detection System. Dari namana ajah dah diketahui "gabungan", berarti jenis yang ini adalah gabungan dari jenis2 yang sudah ada.

Yuk kita coba mengimplementasikan NIDS di linux. Disini aq pake box Linux debian etch 2.6.18-4-alpha-generic. Snort adalah salah satu aplikasi NIDS yang ada, Snort yang akan diinstal adalah versi 2.3.3. Oh iya, si Snort ini mempunyai kemampuan untuk mengexport log ke bentuk database, ada beberapa database yang dapat digunakan, kayak MySQL, PostgreSQL, oracle, MSSQL dan odbc. Kali ini kita tidak menggunakan fitur ini :).

Pertama tentuna kita install si Snort, pake perintah apt-get :

debian:~# apt-get install snort

buzz..buzz.. si apt bakal nyari dependencies dari si snort sekalian :). Kalo udah diinstall, nanti akan muncul menu yang menanyakan alamat IP yang akan di monitor ma si Snort. Aq masukin 192.168.1.0/24, buat monitor LAN aq :)

Setelah itu, akan dijalankan si Snort secara otomatis. Buat ngecek dah jalan pa lom, kita cari prosesna :

debian:~# ps -ax | grep snort

2082 ? Ss 0:02 /usr/sbin/snort -m 027 -D -d -l /var/log/snort -u snort -g snort -c /etc/snort/snort.conf -S HOME_NET=[192.168.1.0/24] -i eth3
2321 pts/0 S+ 0:00 grep snort

Yups, si Snort telah berhasil diluncurkan :P hehehhe, secara default si Snort nyimpen logna di /var/log/snort dalam bentuk log tcpdump. Ya kalo pgn dibaca harus pake aplikasi log analisis, ato pake tcpdump juga bisa :)

Apaan sih arti dari argumen2 -D -d -l n dll? -m deklarasi umask, -D berarti Snort berjalan pada mode Daemon, -d berarti Snort akan men-dump layer aplikasi, -l berarti Snort akan menyimpan file log ke lokasi yang ditentukan, -u berarti Snort dijalankan sebagai userid yang ditentukan, -g berarti Snort dijalankan sebagai groupid yang ditentukan, -c berarti si Snort akan menggunakan file konfigurasi yang ditentukan, -S akan mendeklarasikan nilai ke variabel yang ditentukan (n=v), dan -i adalah interface yang akan di"tangkringin" :P

Dalam beberapa kasus si Snort agak bermasalah. Versi yang terbaru saat ini dari www.snort.org adalah versi Snort 2.7.0.1. Aq install di box Debian n Slackware masih ada masalah. Masalahna yaitu si Snort gagal untuk berjalan dgn sukses, hal ini dapat dilihat pada /var/log/syslog :

debian kernel: device eth3 entered promiscuous mode
debian kernel: device eth3 left promiscuous mode

Beberapa thread di forum Snort.org juga menunjukkan hal ini. Tapi sampai saat ini aq juga lom tau kenapa :(.

1 komentar:

empol mengatakan...

keren lho artikelnya :)

kunjungi balik ya ke http://catatanlinuxku.blogspot.com