25
BAB III PERANCANGAN DAN IMPLEMENTASI
3.1 Persiapan Server Snort dan IPTables Firewall
Berikut ini merupakan spesifikasi komputer server yang digunakan dalam melakukan konfigurasi Snort IDS dan IPTables Firewall :
Sistem Operasi : Ubuntu 9.10
Prosesor : AMD Athlon X2 dengan kecepatan 2GHz
RAM : 2 GB DDR2
Hard Disk : 160 GB
LAN Card : 1Gbps
Untuk sistem operasi yang digunakan adalah distribusi linux Ubuntu 9.10 yang sudah terintegrasi dengan berbagai aplikasi pendukung dalam Snort IDS dan
IPTables Firewall.
3.2 Instalasi aplikasi pendukung
Untuk memenuhi kebutuhan fungsional sistem pencegahan penyusupan dibutuhkan modul-modul utama dan modul pendukung. Modul utama berupa:
snort engine, rule snort, engine IPS dan firewall. Sedangkan modul pendukung berupa: ACID manajemen event dan Webmin manajemen rule. Diagram blok
sistem pencegahan penyusupan yang dirancang sebagai berikut :
Universitas Sumatera Utara
Gambar 3.1. Diagram Blok Sistem Keamanan Komputer
Komponen Utama : 6.
Rule Snort : Modul ini menyertakan rule berupa pola serangan yang pernah terjadi. Rule merupakan file teks yang mempunyai susunan
tertentu. Rule diatur secara statis melalui
snort.conf
maupun aplikasi Webmin.
7. Snort Engine : Modul ini berfungsi membaca paket dan
membandingkannya dengan rules snort. Jika paket terdeteksi sebagai penyusup maka snort engine akan menuliskannya ke alert berupa file log
dan database MySQL.
8. IPS Engine : Merupakan sistem yang membaca alert pada database
kemudian memerintahkan firewall menutup akses dari penyusup. Dalam hal ini digunakan Snort dan SnortSam melalui modul
alert_fwsam
.
Universitas Sumatera Utara
IPS engine merupakan sistem yang akan membaca alert kemudian memerintahkan firewall untuk menutup akses paket data dari penyerang.
Cara kerja IPS engine digambarkan dalam flowchart berikut ini :
Gambar 3.2: Flowchart IPS engine
IPS akan menutup akses bagi penyerang ketika aktivitas tersebut terdeteksi oleh IDS. Dalam bahasan ini, proses pembacaan alert dan
update rules pada firewall dilakukan secara periodik. Ketika terjadi usaha penyusupan dan terdeteksi oleh IDS, maka IPS akan memerintahkan
firewall untuk menutup akses dari alamat IP penyerang, jika pada waktu yang lain administrator IPS akan membuka alamat IP yang telah
melakukan penyerangan, hal ini dapat dilakukan dengan menghapus isi alert pada serangan dari IP yang dimaksud pada database ACID.
9. IPTables Firewall : Merupakan aplikasi firewall pada linux. Pada
sistem keamanan komputer ini digunakan sebagai aplikasi yang menutup akses sesuai rule yang akan diterapkan. Rule bergantung dari Snort IDS.
Universitas Sumatera Utara
Komponen Pendukung : 10.
Webmin : Modul yang digunakan untuk mengelola rule. Webmin dapat digunakan untuk pengelolaan rule berupa aktif maupun tidaknya
rule dan penambahan secara manual. Webmin menggunakan antarmuka berbasis web.
11. ACID : Digunakan untuk mengelola data-data security event.
12. ACID History : Digunakan untuk menganalisa catatan-catatan IDS.
Database pada ACID History tidak dihapus karena bersifat arsip, berbeda dengan database pada ACID yang akan dihapus sesuai jika administrator
IPS membuka akses terhadap alamat IP yang pernah ditutup.
13. Alert : Merupakan catatan serangan pada file log.
3.2.1 Instalasi dan konfigurasi Snort IDS
Dalam menginstall dan mengkonfigurasi Snort IDS diperlukan berbagai macam aplikasi pendukung. Adapun aplikasi-aplikasi pendukung tersebut
diantaranya adalah : 1.
Pcap Packet Capture 2.
Pcre Perl Compatible Regular Expression 3.
SSH Secure shell Aplikasi pcap terdiri dari application programming interface untuk
menangkap lalu lintas paket. Linux menempatkan pcap pada pustaka libpcap. Snort menggunakan libpcap untuk menangkap paket yang melintas dalam suatu
jaringan dan dalam versi terbaru mengirimkan paket pada suatu jaringan pada layer link dan juga untuk mendapatkan daftar antarmuka jaringan yang dapat
digunakan. Libpcap juga dapat menyimpan paket yang telah ditangkap ke dalam suatu
file dan membaca isi didalamnya. File yang telah disimpan dalam format libpcap dapat digunakan oleh aplikasi lain. Libpcap pertama kali dikembangkan oleh
pengembang Tcpdump pada grup peneliti jaringan Lawrence Berkeley Laboratory. Merupakan packet capture level rendah. File yang telah ditangkap,
disimpan dalam pustaka yang dapat dihubungkan dengan tcpdump.
Universitas Sumatera Utara
Library pcre merupakan library yang menggunakan pencocokan pola ekspresi yang hampir sama dengan Perl. Sebagai tambahan fungsi pencocokan
pcre memiliki fungsi yang berbeda dalam pencocokan pola kompilasi yang sama. Dalam keadaan yang berbeda, cara ini memiliki beberapa keunggulan. Pcre
disusun dalam bahasa C dan dirilis sebagai library C. SSH
secure shell merupakan protokol jaringan yang memungkinkan pertukaran data menggunakan saluran yang aman antara dua perangkat jaringan.
Selain aplikasi diatas terdapat beberapa modul, seperti modul pustaka dan adapter
libpcap0.8-dev, libpcre3-dev, pcregrep
yang akan digunakan dalam tugas akhir ini. Adapun langkah-langkah instalasi dan konfigurasi semua aplikasi pendukung
akan disertakan pada lampiran. Sebelum menginstall Snort, ada beberapa hal yang harus dilakukan.
Pertama kali adalah mengamankan SSH dengan beberapa pengaturan dan menjalankan beberapa layanan yang akan digunakan pada saat menginstall dan
konfigurasi snort. Untuk instalasi Snort, user yang digunakan adalah
user root
. Kemudian
snort dapat diunduh pada situs penyedia aplikasi snort yaitu http:www.snort.orgdl
. Snort terbaru dapat diunduh pada bagian most recent release rilis terbaru.
Setelah diunduh menggunakan aplikasi wget, aplikasi bawaan unix yang digunakan untuk mengunduh sebuah file, file sumber snort diekstrak dan
dikonfigurasi lalu diinstal. Sebelum snort digunakan, snort membutuhkan rules. Rules didapat setelah mendaftar sebagai pengguna pada situs snort. Unduh pada
bagian “registered user release” rilis untuk pengguna terdaftar dan kemudian simpan pada direktori
etcsnortrules
. File
snort.conf
memerlukan sedikit perubahan sesuai dengan kebutuhan jaringan. Hal ini dapat dilakukan dengan mengedit file
etcsnortsnort.conf
menggunakan text editor nano.
nano etcsnortsnort.conf
.
...
Universitas Sumatera Utara
var HOME_NET menjadi var HOME_NET 10.4.12.024 var EXTERNAL_NET menjadi var EXTERNAL_NET HOME_NET
var RULE_PATH ..rules menjadi RULE_PATH etcsnortrules ...
Variabel
HOME_NET
merupakan atribut konfigurasi snort yang berfungsi untuk memberikan informasi jaringan yang akan diperiksa oleh snort dari
percobaan-percobaan intrusi. Sedangkan
var EXTERNAL_NET
merupakan informasi jaringan luar. Dan yang terakhir
var RULE_PATH
adalah direktori rules snort.
Setelah itu lakukan perubahan pada bagian
output database: log, mysql, user=
, aktifkan dengan menghapus tanda pada awal baris. Kemudian ganti
user=root
menjadi
user=snort
, dan
password=password
menjadi
password=hahnroot
,
dbname=snort
. Hal ini dilakukan agar log pada MySQL diaktifkan dan pengguna serta password dapat digunakan ketika mengakses
MySQL. Permission dan owner file
snort.conf
harus diganti. Hal ini dilakukan agar file
snort.conf
hanya dapat dibaca tulis oleh user snort, dibaca oleh group snort dan tidak dapat dibaca tulis oleh user lain. Setelah itu snort dapat dijalankan dengan
perintah :
snort -c etcsnortsnort.conf -i eth0 -D
Perintah ini menjalankan Snort pada antarmuka
eth0
pada modus daemon. Antarmuka
eth0
merupakan antarmuka LAN pada IPS engine. Perintah ini dapat ditambahkan pada file
etcrc
.
local
sehingga dapat langsung dijalankan setelah reboot. Untuk memastikan snort telah berjalan, dapat dilakukan dengan perintah
berikut:
ps aux | grep snort
Universitas Sumatera Utara
3.2.2 Konfigurasi Dekoder
Salah satu keunggulan Snort adalah mudah dikonfigurasi sesuai kebutuhan jaringan. Bagian dari Snort yang memegang peranan penting dalam pengolahan
awal paket adalah Dekoder. Dekoder dapat dikonfigurasi untuk mengaktifkan atau tidak sebuah events.
Konfigurasi dapat dinonaktifkan dengan menambahkan karakter “ ” jika
tidak dibutuhkan. Dekoder digunakan untuk mengatur checksum, pengaturan alerts pada beberapa protokol seperti TCP, IP maupun pengaturan decode drops.
3.2.3 Konfigurasi Preprocessors
Preprocessor pertama kali digunakan pada Snort versi 1.5. Preprocessor
memungkinkan kegunaan snort diperluas dengan mengaktifkan plugins. Kode pada Preprocessor dijalankan setelah Dekoder dan sebelum Detection Engine.
Konfigurasi pada Preprocessor didahului kata
preprocessor
. Konfigurasi
Preprocessor yang terdapat pada snort terus berkembang menyesuaikan dengan kebutuhan jaringan. Berikut ini beberapa modul yang perlu
diaktifkan pada konfigurasi Preprocessor : 1.
Stream5, merupakan modul reassembly berbasiskan paket TCP pada
Snort. Dengan menggunakan Stream5, Rules “flow” dan “flowbits” dapat digunakan pada TCP maupun UDP.
2. Http_inspect_server, modul ini bekerja dengan men-decode buffer,
mencari fields http dan mengembalikan fields ke keadaan normal. Pada HTTP inspect, terdapat dua wilayah konfigurasi yaitu global dan server.
3. Rpc_decode, bekerja dengan mengembalikan catatan RPC yang
terfragmentasi menjadi catatan tunggal yang tidak terfragmentasi. Hal ini dilakukan dengan mengembalikan paket ke keadaan normal pada buffer paket.
4. Sfportscan, digunakan untuk mendeteksi fase awal penyerangan. Pada
fase ini penyusup mendeteksi protokol jaringan dan layanan yang digunakan host. Fungsi pada sfportscan hampir sama dengan aplikasi Nmap.
Universitas Sumatera Utara
3.2.4 Instalasi dan konfigurasi Database MySQL
Konfigurasi paket Snort untuk login ke remote MySQL server pada antarmuka grafis berbasiskan web dapat digunakan untuk melihat paket yang telah
terdeteksi dan statistiknya. Dalam bahasan ini, server Snort adalah
snort.host
dan server MySQL adalah
mysql.host
. Pada paket instalasi Snort terdapat sebuah file
create_mysql
, yang memiliki skema untuk database. Pada saat menginstal Linux, file ini akan ditemukan di
usrsharedocsnort
. Extract dan install file tersebut agar penambahan tabel tambahan yang diperlukan snort dapat digunakan.
Tabel tambahan tersebut terdapat pada database “snort” diantaranya tabel- tabel tersebut adalah data, detail, encoding, event, dll. Selanjutnya, pada server
snort, ubah file konfigurasi
etcsnortsnort.conf
untuk me-log ke database:
output database: log, mysql, user=snort password=hahnroot dbname=snort host=localhost
3.3 Instalasi dan konfigurasi Web server ACID BASE
Untuk mengumpulkan dan menyajikan informasi alert pada Snort, digunakan ACID Analisis Console for Intrusion Detection. ACID merupakan
konsol analisis berbasis open source yang disesuaikan secara khusus untuk Snort. ACID yang merupakan sekumpulan skrip PHP memerlukan program-program
pendukung berikut:
Sebuah server web yang mendukung versi 4.0 atau yang lebih baru dari skrip PHP
PHP versi 4.0 atau yang terbaru.
ADODB Active Data Objects Data Base
JpGraph dan PHPlot paket yang digunakan dalam mengumpulkan data
grafis oleh ACID
Zlib, pustaka perangkat lunak yang digunakan untuk kompresi data. Setelah instalasi paket pendukung, ACID dapat diinstal. ACID merupakan
alat pelaporan dan analisis pada Snort yang dapat diakses melalui web browser. ACID bukan merupakan aplikasi secara utuh, melainkan kumpulan skrip PHP.
Skrip ini bekerja sama untuk mengumpulkan data dari database, mengaturnya
Universitas Sumatera Utara
dalam format yang mudah dikelola dalam halaman web dan memperbaharui halaman tersebut secara rutin. Versi ACID yang digunakan disini adalah versi
0.9.6.b.23. Setelah
diextract, langkah berikutnya adalah konfigurasi ACID. File konfigurasi ACID berada di file
acid.conf
pada direktori
wwwhtmlacid
. Dalam hal ini digunakan text editor nano untuk mengubah file konfigurasi tersebut.
Berikut ini variabel yang perlu diubah :
sudo nano wwwhtmlacidacid.conf -- edit:
DBlib_path = “varwwwhtmladodb”; DBtype = “mysql”;
alert_dbname = “snort”; alert_host = “localhost”;
alert_port = “ ”; alert_user = “snort”;
alert_password = “password”; archive DB connection parameters
archive_dbname = “snort”; archive_host = “localhost”;
archive_port = “ ”; archive_user = “snort”;
archive_password = “password”; ......
Chartlib_path = “varwwwhtmljpgraph-1.14.src”;
Kemudian pada web browser buka laman
“ http:localhostacidacid_main.php
”. Lakukan pemilihan pengaturan dan pembuatan tabel Alert Group ACID ACID AG.
Tahap selanjutnya adalah mengamankan direktori ACID dari pengguna luar dengan cara mengaktifkan password.
Kemudian ubah file
httpd.conf
dan lakukan perubahan pada
AuthName
,
AuthUserFile
dan
RequireUser
agar dapat mengakses database pada direktori ACID.
Universitas Sumatera Utara
ACID menganalisa database pada snort untuk ditampilkan. Skema database yang digunakan ACID bisa dilihat pada gambar berikut:
Gambar 3.3 Skema database yang digunakan ACID
Setelah dikonfigurasi, ACID dapat digunakan. Berikut contoh tampilan ACID :
Gambar 3.4 ACID digunakan untuk menganalisa event berbasiskan web
Universitas Sumatera Utara
3.4 Instalasi Webmin