Hallo semua…Kali ini saya mencoba memasang IDS (Instrusion Detection System) untuk router kantor. Tidak banyak perbedaan dengan waktu ketika saya menginstal menggunakan RedHat ataupun Fedora Core, tapi memang ada beberapa perbedaan yang sempat membuat saya kebingungan, namun akhirnya berhasil juga Alhamdulillah. Tulisan ini dibuat selain untuk saya pribadi agar kelak ketika lupa atau butuh saya tinggal melihat dokumentasi-dokumentasi yang telah saya buat, dan diharapkan catatan kecil ini bisa membawa manfaat untuk khalayak banyak. Amin.
- IDS (Intrusion Detection System)
Dilihat dari cara kerjanya dalam menganalisa apakah paket data dianggap sebagai penyusupan atau bukan, IDS dibagi menjadi 2 :
1. knowledge based atau misuse detection, dan
2. behavior based atau anomaly based.
Knowledge based IDS dapat mengenali adanya penyusupan dengan cara menyadap paket data kemudian membandingkannya dengan data base rule IDS (berisi signature-signature paket serangan). Jika paket data mempunyai pola yang sama dengan (setidaknya) salah satu pola di database rule IDS, maka paket tersebut dianggap sebagai serangan, dan demikian juga sebaliknya, jika paket data tersebut sama sekali tidak mempunyai pola yang sama dengan pola di database rule IDS, maka paket data tersebut dianggap bukan serangan.
Sedangkan behavior based (anomaly) dapat mendeteksi adanya penyusupan dengan mengamati adanya kejanggalan-kejanggalan pada sistem, atau adanya penyimpangan-penyimpangan dari kondisi normal, sebagai contoh ada penggunaan memory yang melonjak secara terus-menerus atau atau ada koneksi parallel dari 1 buah IP dalam jumlah banyak dan dalam waktu yang bersamaan. Kondisi-kondisi diatas dianggap kejanggalan yang kemudian oleh IDS jenis anomaly based dianggap sebagai serangan.
Sedangkan dilihat dari kemampuan mendeteksi penyusupan pada jaringan, IDS dibagi menjadi 2 yakni :
1. host based, dan
2. network based.
Host based mampu mendeteksi hanya pada host tempat implementasi IDS, sedangkan network based IDS mampu mendeteksi seluruh host yang berada satu jaringan dengan host implementasi IDS tersebut. (http://csrgblog.wordpress.com/2007/12/17/merakit-sistem-pencegahan-penyusupan/ )
Baiklah diatas sedikit dibahas mengenai IDS yang saya kutip dari Dosen Jaringan dan Keamanan komputer saya di kampus, selain itu beliau juga merupakan pembina dari CSRG (Computer Security Research Group, http://csrgblog.wordpress.com). Selanjutnya marilah kita melangkah pada tahap persiapan sebelum instalasi. Silahkan dipersiapkan terlebih dahulu kebutuhan-kebutuhan instalasi kita, seperti :
1. system operasi, disini saya menggunakan FreeBSD 6.2. Selain ini silahkan untuk menyesuaikan.
2. snort-2.2.0 => http://www.snort.org
3. mysql-4.1.22 => http://www.mysql.com
4. httpd-2.2.8 => http://www.apache.org
5. php-4.3.10 => http://www.php.net
6. adodb411 => http://phplens.com
7. acid-0.9.6b23 => http://acidlab.sourceforge.net
8. zlib-1.2.1 => http://flow.dl.sourceforge.net
9. jpgraph-1.17 => www.aditus.nu
10. libpcap-0.7.2 => www.tcpdump.org
Apabila semua diatas sudah dipersiapkan, maka marilah kita melanjutkan perjalanan kita. Semua file di atas saya simpan di direktory /tmp/src.
- Ayo kita lakukan
-
- Instal Zlib
r3dluv# tar xzvf zlib-1.2.1.tar.gz
r3dluv# cd zlib-1.2.1
r3dluv# ./configure –prefix=/usr/local/zlib
r3dluv# make test
r3dluv# make install
r3dluv# cd ..
-
- Instal LibPcap
tar xzvf libpcap-0.7.2.tar.gz
r3dluv# cd libpcap-0.7.2
r3dluv# ./configure
r3dluv# make;make install
r3dluv# cd ..
-
- Instal MySql
r3dluv# tar xzvf mysql-4.1.22.tar.gz
r3dluv# cd mysql-4.1.22
r3dluv# pw groupadd mysql
r3dluv# pw useradd mysql –g mysql –d /nonexistent –s /sbin/nologin
r3dluv# ee /root/.profile
tambahkan dengan dibawah ini :
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
r3dluv# make; make install
r3dluv# scripts/mysql_install_db
r3dluv# chown –R root /usr/local/mysql
r3dluv# chown –R mysql /usr/local/mysql/var
r3dluv# chgrp –R mysql /usr/local/mysql
r3dluv# cp support-files/my-medium.cnf /usr/local/etc/my.cnf
r3dluv# ldconfig –R /usr/local/lib
r3dluv# ldconfig –m /usr/local/mysql/lib/mysql
r3dluv# /usr/local/mysql/bin/mysqld_safe –user=mysql &
sekarang coba cek service mysql anda
r3dluv# ps aux|grep mysql
root 961 0.0 0.2 1724 1056 p0- I 11:24AM 0:00.01 /bin/sh /usr/local/mysql/bin/mysqld_safe –user=mysql
mysql 975 0.0 4.7 44112 22732 p0- S 11:24AM 0:56.22 /usr/local/mysql/libexec/mysqld –basedir=/usr/local/mysql –d
root 5161 0.0 0.1 372 252 p0 R+ 8:52AM 0:00.00 grep mysql
r3dluv# cp support-files/mysql.server /etc/rc.d/mysql
r3dluv# chmod 755 /etc/rc.d/mysql
r3dluv# cd ..
-
- Instal httpd
r3dluv# tar xzvf httpd-2.2.8.tar.gz
r3dluv# cd httpd-2.2.8
r3dluv# ./configure –prefix=/www –enable-so
r3dluv# make; make install
r3dluv# cd /www/conf
r3dluv# ee httpd.conf
tambahkan baris-baris dibawah ini
# AddType allows you to …………
AddType application/x-tar .tgz
AddType image/x-icon .ico
AddType application/x-httpd-php .php
# DirectoryIndex: sets the file that Apache will serve if a directory
DirectoryIndex index.html index.php index.html.var
r3dluv# cd /www/bin
r3dluv# cp apachectl /etc/rc.d/httpd
r3dluv# cd /tmp/src
-
- Instal PHP
r3dluv# tar xzvf php-4.3.10.tar.gz
r3dluv# cd php-4.3.10
r3dluv# ./configure –prefix=/www/php –with-apxs2=/www/bin/apxs –with-config-file-path=/www/php –with-mysql=/usr/local/mysql –with-zlib-dir=/usr/local/zlib –enable-sockets –with-gd
r3dluv# make ; make install
r3dluv# cp php.ini-dist /www/php/php.ini
r3dluv# cd ..
-
- Instal Snort
r3dluv# tar xzvf snort-2.2.0.tar.gz
r3dluv# cd snort-2.2.0
r3dluv# pw groupadd snort
r3dluv# pw useradd snort –g snort
r3dluv# ./configure –with-mysql=/usr/local/mysql
r3dluv# make ; make install
r3dluv# cd ..
-
- Konfigurasi Snort
r3dluv# cd snort-2.2.0
r3dluv# cd rules
r3dluv# cp * /usr/local/etc/snort
r3dluv# cd ../etc
r3dluv# cp snort.conf /usr/local/etc/snort
r3dluv# cp *.config /usr/local/etc/snort
r3dluv# cp contrib/S99snort /etc/rc.d/snort
r3dluv# cd /usr/local/etc/snort
r3dluv# ee snort.conf
edit baris-baris berikut ini :
#var HOME_NET any
var HOME_NET 192.168.0.0/24 (sesuaikan dengan jaringan internal anda)
#var RULE_PATH ../rules
var RULE_PATH /usr/local/etc/snort
output database: log, mysql, user=snort password=snortnih dbname=snort host=localhost
r3dluv# ee /etc/rc.d/snort
edit baris-baris berikut ini :
#CONFIG=/usr/local/share/snort/snort.conf
CONFIG=/usr/local/etc/snort/snort.conf
SNORT_GID=snort
-
- Konfigurasi Mysql
r3dluv# /usr/local/mysql/bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 60 to server version: 4.1.22
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> create database snort;
mysql> grant insert,select on root.* to snort@localhost;
mysql> set password for snort@localhost=password(‘snortnih’);
mysql> grant create,select,insert,delete,update on snort.* to snort@localhost;
mysql> grant create,select,insert,delete,update on snort.* to snort;
mysql> flush privileges;
mysql> exit;
r3dluv# cd /tmp/src/snort-2.2.0/contrib
r3dluv# /usr/local/mysql/bin/mysql –u root –p snort < create_mysql
r3dluv# zcat snortdb-extra.gz | /usr/local/mysql/bin/mysql –p snort
r3dluv# /usr/local/mysql/bin/mysql –u root –p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 60 to server version: 4.1.22
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> show databases;
+———-+
| Database |
+———-+
| mysql |
| snort |
| test |
+———-+
3 rows in set (0.00 sec)
mysql> use snort;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+——————+
| Tables_in_snort |
+——————+
| acid_ag |
| acid_ag_alert |
| acid_event |
| acid_ip_cache |
| data |
| detail |
| encoding |
| event |
| flags |
| icmphdr |
| iphdr |
| opt |
| protocols |
| reference |
| reference_system |
| schema |
| sensor |
| services |
| sig_class |
| sig_reference |
| signature |
| tcphdr |
| udphdr |
+——————+
23 rows in set (0.01 sec)
mysql> exit;
>Bye
r3dluv# cd /tmp/src
-
- Instal JPGraph
r3dluv# tar xzvf jpgraph-1.17.tar.gz –C /www/htdocs
r3dluv# cd /www/htdocs
r3dluv# mv jpgraph-1.17 jpgraph
r3dluv# cd jpgraph
r3dluv# rm –rf QPL.txt
r3dluv# rm –rf README
r3dluv# cd /tmp/src
-
- Instal AdoDB
r3dluv# tar xzvf adodb411.tgz –C /www/htdocs
-
- Instal Acid
r3dluv# tar xzvf acid-0.9.6b23.tar.gz –C /www/htdocs
r3dluv# cd /www/htdocs/acid
r3dluv# ee acid_conf.php
edit baris-baris berikut ini :
$DBlib_path = “/www/htdocs/adodb”;
$alert_dbname = “snort”;
$alert_host = “localhost”;
$alert_port = “”;
$alert_user = “snort”;
$alert_password = “snortnih”;
/* Archive DB connection parameters */
$archive_dbname = “snort”;
$archive_host = “localhost”;
$archive_port = “”;
$archive_user = “snort”;
$archive_password = “snortnih”;
$ChartLib_path = “/www/htdocs/jpgraph/src”;
r3dluv# cd /tmp/src
- Selesai
Apabila semua tahap sudah terlaksana dengan baik tanpa ada kesalahan apapun, maka langkah yang selanjutnya adalah anda tinggal menyalakan beberapa service saja, service-service itu adalah :
Httpd
r3dluv# /etc/rc.d/httpd –k start
Mysql
r3dluv# /usr/local/mysql/bin/mysqld_safe –user=mysql &
Snort
r3dluv# snort –c /usr/local/etc/snort/snort.conf
Setelah semua service yang dibutuhkan menyala, yang perlu anda lakukan adalah buka browser anda dan arahkan ke alamat dimana anda menginstal snort, disini saya menggunakan http://192.168.0.5/acid . Setelah itu anda tinggal melakukan optimasi terhadap database snort anda. Ikuti saja langkah-langkahnya, tidak sulit ko.
Baiklah selesai sudah instalasi IDS-nya. Segala macam kekurangan mohon untuk dimaafkan. Kritik dan saran dari anda semua saya nantikan. Bye
Referensi :
1. http://csrgblog.wordpress.com/2007/12/17/merakit-sistem-pencegahan-penyusupan/