Skip to main content

Bagaimana Menginstall Snort dengan Barnyard2 dan Snorby

Mas....!
Apa?
Nuwun sewu, Mas! Saya udah coba install Snort dan Suricata. Tapi bingung...
Bingung gimana?
Bingung nginstallnya.
Sampeyan nginstallnya di mana?
Sampeyan gimana? Ya di kantor, Mas! Masa di rumah.  Di rumah komputer kan cuma 1 doang.
He he....! Maksud saya, nginstallnya di komputer apa, OS nya apa?
Di PC, OS-nya linux
Linux apa?
Ubuntu, Mas!
Hmm... Ubuntu? Sampeyan nginstallnya make apt-get install apa compile dari source-nya?
Make apt-get install, Mas!
sudo apt-get install snort snort-mysql
Emang kenapa, Mas?

Gak apa, Cuma biasanya saya nginstallnya langsung dari source.
Gimana caranya?
Begini, unduh dulu source terakhir yang stabil dari http://www.snort.org/snort-downloads/ Kemudian copykan ke mesin linux yang bakal kita install snort.  Jangan cuma download source snortnya thok.  Download juga library DAQ (Data Aqcuisition Library).  Karena snort juga butuh ini kalo mau mengenable-kan semua fitur snort.
Jangan lupa juga download barnyard2, untuk merekam unified alert ke dalam database.  Dan tentunya, jangan lupa juga install mysql, karena barnyardnya minta database mysql.

Kalo mysql nya harus make source gak, Mas?
Saya gak pengin fokus ke database, jadi ya silaken aja make apt-get install.
Untuk mengunduh snort silaken jalankan perintah ini pada login root.  Banyak blog gak nyaranin, tapi saya bilang, asal kita hati-hati saja, gak masalah make login ini.

root@mycom:~#mkdir snort && mkdir daq
root@mycom:~#wget http://www.snort.org/dl/snort-current/snort-2.9.1.tar.gz -O $HOME/snort/snort-2.9.1.tar.gz
root@mycom:~# wget http://www.snort.org/dl/snort-current/daq-0.6.2.tar.gz -O $HOME/daq/daq-0.6.2.tar.gz
Kalo udah didownload digimanain, Mas?
Ya dikompail, masa dimakan.
He he he...
Untuk menginstall daq, kita perlu modul bison dan flex, nah untuk itu jalanin dulu ini

root@mycom:~#apt-get install bison flex
baru kemudian install daq dengan menjalankan
root@mycom:~#cd daq && tar –xzvf  daq-0.6.2.tar.gz
root@mycom:~#cd daq-0.6.2  && ./configure && make all && make install
Pada saat configure, untuk ubuntu 8.0.4 biasanya diminta untuk mengupdate libpcap.  Versi terakhir libpcap bisa diunduh dari http://www.tcpdump.org
Setelah daq terintall dengan baik maka kita bisa melanjutkan dengan menginstall snort dengan menjalankan

root@mycom:~#cd
root@mycom:~#cd snort && tar  -xzvf  snort-2.9.1.tar.gz
root@mycom:~#cd snort-2.9.1
root@mycom:~#./configure  --enable-ipv6 --enable-gre --enable-mpls --enable-targetbased --enable-decoder-preprocessor-rules --enable-ppm --enable-perfprofiling --enable-zlib --enable-active-response --enable-normalizer --enable-reload --enable-react --enable-flexresp3  --prefix=/usr/local
root@mycom:~#make all && make install
Selesai!
Udah, gitu aja, Mas?!
Belum! He he he... Sebenarnya, instalasi snort kita sudah bisa langsung dikonfig untuk menjalankan service IDS.  Cuma sampeyan perhatikan, waktu kita jalankan ./configure kita belum mengenablekan mysql kan?
Nah lo, terus gimana caranya si snort ini ngerekam data?
Kita konfig alertnya direkam ke dalam format unified, dan serahkan perekaman ke database kepada barnyard2.  Ini juga merupakan salah satu bentuk tuning performa dari IDS.

Caranya gimana, Mas?
Pertama download dulu barnyard2 nya dari http://www.securixlive.com dengan menjalankan perintah

root@mycom:~#mkdir barnyard2
root@mycom:~# wget http://www.securixlive.com/download/barnyard2/barnyard2-1.9.tar.gz -O barnyard2/barnyard2-1.9.tar.gz
root@mycom:~#cd barnyard2 && tar –xzvf  barnyard2-1.9.tar.gz
root@mycom:~/barnyard2#cd barnyard2-1.9
root@mycom:~/barnyard2/barnyard2-1.9#./configure  --enable-ipv6  --enable-gre –enable-mpls –with-mysql  --prefix=/usr/local/barnyard2
root@mycom:~/barnyard2/barnyard2-1.9#make all && make install
Kita ambil –with-mysql aja karena nantinya kita bakal make snorby yang, sampai saat ini, baru bisa make mysql.
Udah itu, Mas?
Belum
Belum lagi?
Iya, belum.  Setelah kita install snort dan barnyard, kita lakukan perubahan konfgurasi.  Installasi snort yang kita buat juga belum mempunyai rules.  Nah, rules set (signatures set), bisa didownload dari https://www.snort.org/snort-rules/?.  Untuk download setidaknya kita sudah terdaftar di http://www.snort.org, dan kita harus login dulu untuk bisa mendapatkan rules-nya.
Setelah kita mendapatkan rules dari snort, kita edit file snort.conf.  File ini bisa didapatkan di sub direktori etc di bawah subdirektori tempat kita mengekstrak rules.
Hal-hal yang akan kita rubah minimal:

$HOME_NET, dari nilai awal any menjadi ip jaringan misalnya [“10.10.0.0/16”,”192.168.0.0/16”]
output_unified2, (baris 520). Buka remark “#” , hapus kata “nostamp” karena akan menyulitkan perekaman oleh barnyard2.
Setelah kita merubah konfigurasi snort, kita lakukan juga perubahan untuk konfigurasi barnyard.  File konfigurasi barnyard bisa ditemukan di /usr/local/barnyard2/etc dengan nama barnyard2.conf. Ha-hal yang harus kita rubah minimal:
output database (baris 318):  output database:  alert, mysql, user=root password=”passwordsampeyan” dbname=snorby host= localhost
Ok, setelah kita konfig keduanya, maka baik snort maupun barnyard2 sudah bisa kita jalankan.
Sudah Mas?
Belum
Masih belum, banyak amat!
Ya emang banyak.  Tapi kalo udah masuk proses install nya asik lo.  Bisa lupa waktu kita.  Nah, buat ngejalanin Snort maupun Barnyard2 akan saya jelaskan dibagian akhir nanti.
Sampeyan udah bisa nginstall snorby-nya belum?
Belum, Mas?
Sampeyan ini, apa yang sudah?He he he...
Nah, snorby adalah aplikas berbasis web yang berjalan dengan apache.  Nah dari sini praktis sampeyan harus punya apache yang telah terinstall.Nginstallnya gimana? Apa harus make source juga?
Udah, gampangnya, make apt-get install aja dengan perintah ini

root@myconn:~#apt-get install apache2 apache2-prefork



Oooo... gitu,
Kemudian install prerequisite dari snorby dengan perintah

root@mycom:~#apt-get install  git-core libapr1-dev libaprutil-dev
git-core diinstall untuk mengunduh snorby yang source nya ada di github.  Sementara libapr (APR, Apache Portable Runtime) digunakan untuk melengkapi server apache. Karena, sebenarnya apr merupakan bagian dari apache. Namun apache project kemudian memisahkan apr sebagai project terpisah sehingga aplikasi lain bisa menggunakan apr untuk mendukung aplikasi tersebut menjadi platform independence.Oooo.... gitu,
Nah setelah itu, kita harus install ruby terlebih dahulu.  Nah untuk bisa menginstall ruby kita juga harus menginstall pre-requisite nya terlebih dahulu.
Pertama kali jalankan perintah ini

root@mycom:~#apt-get install gcc g++ build-essential libssl-dev libreadline5-dev zlib1g-dev \
>linux-headers-generic libsqlite3-dev libxslt-dev libxml2-dev imagemagick \
>libmysqlclient15-dev libmagick9-dev git-core git
Setelah itu, unduh ruby dengan menjalankan perintah-perintah berikut

root@mycom:~#mkdir ruby
root@mycom:~# wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz  \
-O $HOME/ruby/ruby-1.9.3.p194.tar.gz
Ekstrak file yang telah didownload dengan perintah ini
root@mycom:~#cd ruby && tar -xzvf ruby-1.9.3.p194.tar.gz
Compile ruby dengan perintah ini
root@mycom:~/ruby#cd ruby-1.9.3-p194#./configure  --prefix=/usr/local/ruby
root@mycom:~/ruby/ruby-1.9.3-p194#make all && make install
Nah, setelah selesai tanpa ada kesalahan, sampeyan sudah punya ruby terinstall di komputer sampeyan.  Agar ruby sampeyan bisa di akses, sampeyan perlu merubah environment variable dengan menambahkan /usr/local/ruby/bin pada file /etc/environment
root@mycom:~#vi /etc/environment
edit baris pertama “PATH” dengan menambahkan /usr/local/ruby/bin
sebagai contoh:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/ruby/bin"
Simpan, keluar dan jalankan perintah berikut
root@mycom:~#source /etc/environment
Check versi ruby dengan menjalankan perintah berikut
root@mycon:~#ruby  -v
Sampeyan harus bisa melihat hasil seperti ini (yang dikurung siku bergantung mesin sampeyan):
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
Sampai di sini masih bisa nyambung?
Masih, Mas....!
Nah, selanjutnya kita lengkapi kebutuhan Snorby dengan menginstall beberapa gem termasuk rails 3.  Untuk itu jalankan perintah berikut:

gem install tzinfo builder memcache-client rack rack-test erubis mail text-format \
>bundler thor i18n sqlite3 doc
gem install rack-mount --version=0.4.0
gem install rails --version 3.0.0
Sampai di sini, installasi ruby sudah selesai.  Kita bisa lanjutkan dengan installasi Snorby.Masih make source lagi, Mas?
Masih, malah sekarang sourcenya didownload gak make tarball lagi.
Make apa, Mas?
Kita bikin git clone dari reponya si Snorby.
Perintahnya?
Perintahnya gini...

root@mycom:~#cd /var/www
root@mycom:/var/www#git clone git://github.com/Snorby/snorby.git
Ok. Sekarang kita menginstall kebutuhan gem dari Snorby dengan perintah

root@mycom:~#cd /var/www/snorby
root@mycom:/var/www/snorby# bundle install
Setelah selesai dengan installasi gems, kita lanjutkan dengan menginstall passenger agar Snorby kita bisa dijalankan oleh apache2.
root@mycom:~# gem install passenger
root@mycom:~# passenger-install-apache2-module
Kemudian lakukan perubahan terhadap file /etc/apache2/site-available/default

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/snorby/public
       
                Options FollowSymLinks
                AllowOverride all
       

       
                PassengerAppRoor /var/www/snorby [tambahkan]
                Options Indexes FollowSymLinks MultiViews
                AllowOverride all
                Options -Multiviews
                Order allow,deny
                allow from all
       

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
       
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
       

..
..
..
Disamping itu, lakukan juga perubahan pada file /etc/apache2/apache2.conf,
[tambahkan setelah baris terakhir]
LoadModule passenger_module /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.13/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.13
PassengerRuby /usr/local/ruby/bin/ruby
Sekarang apache sudah bisa sudah bisa menjalankan snorby, selanjutnya kita lakukan konfigurasi snorby dengan database mysql.
root@mycom:/var/www/snorby#cd config
root@mycom:/var/www/snorby/config#cp database.example.yml  database.yml
root@mycom:/var/www/snorby/config#cp snorby_config.example yml snorby_config.yml
dengan menggunakan text editor seperti vi/nano/mcedit lakukan perubahan file database.yml pada bagian
# Snorby Database Configuration
#
# Please set your database password/user below
# NOTE: Indentation is important.
#
snorby: &snorby
  adapter: mysql
  username: root
  password:  “passwordsampeyan” # Example: password: "s3cr3tsauce"
  host: localhost
..
..
..
Lakukan juga perubahan terhadap file snorby_config.yml pada bagian
development:
  domain: localhost:3000
  wkhtmltopdf: /usr/bin/hkhtmltopdf
  mailer_sender: 'snorby@snorby.org'
  geoip_uri: "http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry$
  rules:
    - "/Users/mephux/.snort/rules"
    - "/Users/mephux/.snort/so_rules"
  authentication_mode: database
..
..
..
Setelah kedua file tadi kita rubah, kita lanjutkan menjalankan apache dan  melakukan setup terhadap snorby kita dengan menjalankan:
root@mycom:/var/www/snorby/config# cd /var/www
root@mycom:/var/www#/etc/init.d/apache2 start [perintah ini bisa dijalankan dimanapun]
root@mycom:/var/www# rake Snorby:setup
Perhatikan bahwa proses tadi bakal menggenerate database bernama ‘snorby’ pada server mysql kita.

Snorby kita telah siap, selanjutnya kita jalankan snortnya dengan menjalankan
root@mycom:~#/usr/local/snort/bin/snort  -l /var/log/snort -c /etc/snort/snort.conf  -i  ifmon -D
Ifmon adalah interface dimana kita akan melakukan sniffing untuk monitoring.
Selanjutnya kita jalankan barnyardnya dengan:
root@mycom:~#/usr/local/barnyard2/bin/barnyard2  -d /var/log/barnyard2  -c /usr/local/barnyard2/etc/barnyard2.conf  -f snort.alert  -w /var/log/barnyard2/snort.waldo  -D
Sudah semua, IDS kita sudah berfungsi

Sudah, Mas?
Sudah!
Wah wareg tenan....
Sudah kamu catet?
Belum!
Lah dasar kamu! Ya sudah.  Kalo belum di catet, kamu buka saja halaman web ini....
Ha ha ha.....! Bisa aja
Ya bisa, kenapa tidak?

Popular posts from this blog

Badan Intelejen Rusia Mencari Peretas untuk Membajak Jaringan Tor

Penegak hukum Rusia mengumumkan tender tertutup untuk pelaksanaan percobaan mendapatkan informasi pengguna jaringan anonim Tor (The onion router). Kementerian Dalam Negeri Rusia telah mengumumkan pencarian peretas untuk membajak sistem tersebut, namun sampai saat ini belum ada yang mampu melakukannya. Misi ini membutuhkan banyak dana, dan pada akhirnya belum tentu berhasil. Tor adalah server proksi yang memberikan kerahasiaan akses internet dengan mengarahkan lalu lintas internet melalui volunteer network di seluruh dunia. Foto: Getty Images/Fotobank Kementerian Dalam Negeri Rusia hendak menelusuri data pengguna jaringan anonim Tor dan tempat mereka berada. Lembaga pemerintah tersebut mengumumkan, demi keamanan kerahasiaan negara, maka hanya perusahaan dalam negeri saja yang dapat mengikuti tender. Pemerintah siap membayar hingga 3.9 juta rubel (sekitar 112 ribu dolar AS) untuk dapat membajak jaringan Tor. Kepopuleran jaringan Tor di Rusia meningkat tajam dalam satu bulan tera...

Log Management Dengan Graylog2, MongoDB, Elasticsearch, Kibana (2)

Bagian 2 dari 3 tulisan Pada bagian ini diuraikan konfigurasi input dan ekstraktor serta menghubungkan Suricata ke Graylog2 Melanjutkan tulisan sebelumnya Log Management Dengan Graylog2, MongoDB, Elasticsearch, Kibana (1), pada tulisan ini akna sedikit menguraikan tentang beberapa konfigurasi dan pemanfaatannya.  Tentunya masih menggunakan Graylog2. Input. Konfiguras Input sangat penting mengingat ini adalah item konfigurasi yang memungkinkan Graylog2 untuk membuka port menangkap kiriman log. Ada beberapa jenis input.  Namun untuk sementara kita hanya menggunakan “Syslog TCP”  dan “Syslog UDP”.  Dan karena input nanti akan berhubungan dengan extractors, maka sebaiknya input dibuat spesifik untuk mesin log yang spesifik juga.  Misalkan kita akan menangkap log dari Suricata, kita buatkan 1 input khusus dengan protocol UDP misalnya, dan listening pada port 6160 misalkan. Langkah pembuatan input Untuk membuat input, setelah kita bisa memasuki interface Graylog2, ...

Ha Na Ca Ra Ka, Huruf Jawa: Riwayatmu Kini

Ha na ca ra ka; hana caraka; ada utusan. Ah kemanakah para utusan itu sekarang? Sesekali aku jalan-jalan ke blog orang-orang dari wilayah-wilayah asia semacem Thailand, Champa (Khmer); ada yang tiba tiba menyeruak dari kedalaman jiwaku. Dari kedalaman jiwa seorang Jawa. Hari ini aku sudah tidak bisa lagi membaca rangkaian kalimat yang tersusun dari huruf-huruf milik kami, orang jawa. Dulu, ketika aku masih duduk di bangku sekolah dasar, pak guru dan ibu guruku begitu rajinnya mengajarkan aku membaca dan menulis huruf jawa. Sampai kemudian aku pun bisa menuliskannya dengan lancar. Membacanya pun aku tidak ada halangan. Bahkan sampai aksara murda sekalipun. Tapi kini aku seperti menjadi orang lain ketika harus membaca tulisan-tulisan itu. Hari ini, ketika aku tidak mampu lagi membaca hurufku. Aku mencoba untuk menelusuri di internet tentang huruf-huruf jawa. Aku dapat salah satunya di http://en.wikipedia.org/wiki/Javanese_script , kemudian dari sini aku mendapatkan http://www.omniglot...