2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 1 NAMA KELOMPOK :
NAUFAL ILHAM RAMADHAN (2110165025)
MUHAMMAD AN’IM FALAHUDDIN (2110165026)
INA RATUDDUJA (2110165029)
LAPORAN PRAKTIKUM KEAMANAN JARINGAN “ SNORT “
PERCOBAAN :
Membuat topologi jaringan seperti berikut ini
Keterangan :
Guest OS 1 digunakan sebagai NAT / Internet gateway. IP Address eth0 192.168.1.7
Guest OS 2 sebagai PC client yang membutuhkan koneksi internet. IP Address 192.168.1.8
LANGKAH-LANGKAH : 1. Instalasi Prasayarat Snort
Langkah 1.1 : Menginstall build essentials
Kita perlu menginstall beberapa library yang nantinya akan digunakan untuk membangun software :
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 2 :~# apt-get install -y libpcap-dev libpcre3-dev libdumbnet-dev
Langkah 1.2 : Membuat folder
Buat folder bernama snort_src untuk menjadikan semua file dalam satu tempat :
:~# mkdir snort_src
Langkah 1.3 : Data AcQuisition library
Snort DAQ memiliki beberapa prasyarat yang harus diinstal yaitu bison flex :
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 3
Langkah 1.4 : Mendownload dan Menginstall DAQ
Mendownload dan menginstal versi terbaru dari DAQ dari website Snort. Langkah- langkah di bawah ini digunakan wget untuk mendownload versi 2.0.6 dari DAQ, yang merupakan versi terbaru pada saat menulis panduan ini.
:~# cd snort_src/
:~/snort_src# wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz
:~/snort_src# tar -xvzf daq-2.0.6.tar.gz :~/snort_src# cd daq-2.0.6
:~/snort_src/daq-2.0.6# ./configure
:~/snort_src/daq-2.0.6# ./configure && make && make install :~/snort_src/daq-2.0.6# cd
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 4 2. Instalasi Snort
Langkah 2.1 : Menginstall zlib1g-dev liblzma-dev openssl libssl-dev
Kita perlu menginstall beberapa library yang nantinya akan digunakan untuk dekompresi file swf (adobe flash), openssl, dan libssl-dev yang baik memberikan SHA dan file MD5
:~# apt-get install -y zlib1g-dev liblzma-dev openssl libssl-dev
Langkah 2.2 : Mendownload snort
Mendownload dan menginstal versi terbaru dari snort dari website Snort. Langkah- langkah di bawah ini digunakan wget untuk mendownload versi 2.9.9.0 dari Snort, yang merupakan versi terbaru pada saat menulis panduan ini.
:~# ldconfig :~# cd snort_src/
:~/snort_src# wget https://snort.org/downloads/snort/snort-2.9.9.0.tar.gz :~/snort_src# tar -xvzf snort-2.9.8.3.tar.gz
:~/snort_src# cd snort-2.9.8.3/
:~/snort_src/snort-2.9.8.3# ./configure --enable-sourcefire && make && make install
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 5
Langkah 2.3 : Memperbarui Shared Libraries
Jalankan perintah berikut untuk memperbarui shared library kemudian tempatkan symlink ke biner Snort di / usr / sbin:/usr/sbin:
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 6
Langkah 2.4 : Melakukan Uji Snort
:~# snort –V
,,_ -*> Snort! <*-
o" )~ Version 2.9.8.0 GRE (Build 229)
✬✬✬✬ By Martin Roesch & The Snort Team:
http://www.snort.org/contact#team
Copyright (C) 2014-2015 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al. Using libpcap version 1.5.3
Using PCRE version: 8.31 2012-07-06 Using ZLIB version: 1.2.8
:~#
3. Konfiguras Snort untuk Berjalan dalam Mode NIDS
Langkah 3.1 : Membuat snort user dan group
Karena kita tidak ingin Snort untuk dijalankan sebagai root, kita perlu membuat account tidak memiliki hak istimewa dan kelompok untuk daemon untuk berjalan di bawah. Kami juga akan membuat sejumlah file dan direktori yang dibutuhkan oleh Snort, dan mengatur hak akses pada file-file. Snort akan memiliki direktori berikut: Konfigurasi dan file aturan di / etc / snort Alerts akan ditulis ke / var / log / snort dan aturan akan disimpan dalam /usr / local / lib / snort dynamicrules.
!!! # Create the snort user and group:
:~# groupadd snort
:~# useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort
!!! # Create the Snort directories:
:~# mkdir /etc/snort :~# mkdir /etc/snort/rules :~# mkdir /etc/snort/rules/iplists :~# mkdir /etc/snort/preproc_rules :~# mkdir /usr/local/lib/snort_dynamicrules :~# mkdir /etc/snort/so_rules
!!! # Create some files that stores rules and ip lists :
:~# touch /etc/snort/rules/black_list.rules :~# touch /etc/snort/rules/white_list.rules :~# touch /etc/snort/rules/local.rules :~# touch /etc/snort/sid-msg.map
!!! # Create our logging directories:
:~# mkdir /var/log/snort :~# mkdir /var/log/snort/archived_logs !!! # Adjust permissions: :~# chmod -R 5775 /etc/snort :~# chmod -R 5775 /var/log/snort :~# chmod -R 5775 /var/log/snort/archived_logs :~# chmod -R 5775 /etc/snort/so_rules :~# chmod -R 5775 /usr/local/lib/snort_dynamicrules
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 7
Langkah 3.2 : Mengubah Kepemilikan pada folders
Mengubah kepemilikan file yang kami buat untuk memastikan bahwa Snort dapat mengakses file yang digunakannya :
!!! # Change Ownership on folders:
:~# chown -R snort:snort /etc/snort :~# chown -R snort:snort /var/log/snort
:~# chown -R snort:snort /usr/local/lib/snort_dynamicrules
Snort membutuhkan beberapa file konfigurasi dan preprocessors dinamis yang disalin ke folder / etc / snort.Konfigurasi filenya meliputi :
classification.config file magic.conf reference.config snort.conf threshold.conf attribute table.dtd gen-msg.map unicode.map
Langkah 3.3 : Konfigurasi files dan the dynamic preprocessors
Untuk mengcopy konfigurasi file dan dynamic preprocessors lakukan peritah dibawah ini :
:~# cd
:~# cd snort_src/snort-2.9.8.3/etc/
:~/snort_src/snort-2.9.8.3/etc/# cp *.conf* /etc/snort :~/snort_src/snort-2.9.8.3/etc/# cp *.map /etc/snort :~/snort_src/snort-2.9.8.3/etc/# cp *.dtd /etc/snort :~/snort_src/snort-2.9.8.3/etc/# cd :~# cd snort_src/snort-2.9.8.3/src/dynamic-preprocessors/build/usr/local/lib/snort_dynamicpreprocessor/ :~./././# cp * /usr/local/lib/snort_dynamicpreprocessor/ :~./././# cd
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 8 Kita memiliki lokasi direktori layout dan file sebagai berikut:
Snort binary file: /usr/local/bin/snort Snort configuration file: /etc/snort/snort.conf Snort log data directory: /var/log/snort
Snort rules directories: /etc/snort/rules /etc/snort/so rules /etc/snort/preproc rules
/usr/local/lib/snort dynamicrules Snort IP list directories: /etc/snort/rules/iplists
Snort dynamic preprocessors: /usr/local/lib/snort dynamicpreprocessor/ Langkah 3.4 : Mengedit Snort.conf
Edit file snort.conf pada /etc/snort/snort.conf
:~# sed -i "s/include \$RULE\_PATH/#include \$RULE\_PATH/" /etc/snort/snort.conf
Langkah 3.5 : Mengubah beberapa pengaturan di snort
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 9
Langkah 3.6 : Mengedit file paths di snort
Aktifkan file paths di snort.conf dengan menghilangkan tanda # seperti dibawah ini:
:~# nano -c /etc/snort/snort.conf
var RULE_PATH /etc/snort/rules var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules var WHITE_LIST_PATH /etc/snort/rules/iplists var BLACK_LIST_PATH /etc/snort/rules/iplists
Langkah 3.7 : Pengujian Snort
Untuk melakukan pengujian Snort dengan mudah, aktifkan file local.rules, di mana kita dapat menambahkan peraturan yang dapat dibaca oleh Snort. Un-comment (hapus simbol hash) dari baris 546 sehingga terlihat seperti ini:
:~# nano -c /etc/snort/snort.conf include $RULE_PATH/local.rules
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 10
Langkah 3.8 : Menjalankan Snort
Menjalankan snort -T -c /etc/snort/snort.conf -i eth0 :
:~# snort -T -i eth0 -c /etc/snort/snort.conf
(...)
Snort successfully validated the configuration! Snort exiting
:~#
4. Menulis Aturan Sederhana untuk Menguji Deteksi Snort
Langkah 4.1 : Mengedit local.rules
Untuk menguji kemampuan deteksi Snort, mari kita membuat aturan sederhana yang akan menyebabkan Snort untuk menghasilkan peringatan setiap kali Snort melihat sebuah pesan "permintaan Echo" ICMP atau "Echo balasan", yang mudah yaitu menghasilkan dengan ping.
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 11 Tuliskan baris berikut ke dalam kosong berkas aturan lokal:
/etc/snort/rules/local.rules:
:~/etc/snort/rules# nano -c local.rules
alert icmp any any -> $HOME_NET any (msg:"ICMP test detected"; GID:1; sid:10000001; rev:001; classtype:icmp-event;)
Langkah 4.2 : Alert ICMP
Untuk memastikan bahwa barnyard2 tahu bahwa aturan kita buat dengan identifier unik 10.000.001 memiliki pesan "ICMP Uji Terdeteksi", serta beberapa informasi lain. Tambahkan baris berikut ke file /etc/snort/sid- msg.map:
:~/etc/snort/rules# cd ..
:~/etc/snort# nano -c sid-msg.map
1 || 10000001 || 001 || icmp-event || 0 || ICMP
Test detected ||
url,tools.ietf.org/html/rfc792
Langkah 4.3 : Mengubah konfigurasi Snort
Setelah membuat perubahan pada konfigurasi Snort, kita harus menguji file konfigurasi:
:~/etc/snort# cd
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 12
Langkah 4.4 : Ping
Jalankan perintah berikut pada host snort untuk mengetahui bahwa snort berjalan sesuai dengan peraturan yang kita buat :
!!!#Example
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 13 5. Instalasi Barnyard2
Kita perlu menginstall beberapa library yang nantinya akan digunakan untuk disimpan dalam database MySQL sehingga kita bisa melihat, pencarian, dan profil peristiwa. Untuk efisien mendapatkan acara Snort ke dalam database MySQL, kita menggunakan Barnyard2.
Langkah 5.1 : Menginstall MySQL
:~# wget http://dev.mysql.com/get/mysql-apt-config_0.7.3-1_all.deb
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 14 Kita juga perlu melakukan update untuk menyesuaikan dengan sumber file baru yang
tepat.
:~# apt-get update
Selain menginstal mysql-server kita juga membutuhkan beberapa library yang berguna untuk mysql.
:~# apt-get install --force-yes mysql-server libmysqlclient-dev mysql-client autoconf libtool
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 15 Selanjutnya membuat password untuk user root pada mysql database.
Instalasi akan meminta Anda untuk membuat password mysql root. Untuk contoh di bawah ini, kita akan menggunakan password root. Kami juga akan membuat akun pengguna MySQL dan kata sandi untuk akun itu adalah root.
Langkah 5.2 : Mengedit snort.conf
Pertama kita perlu memberitahu bahwa Output alert dalam format biner yang Barnyard2 dapat memproses. Untuk melakukan itu, edit file /etc/snort/snort.conf, tambahkan baris berikut:
:~# cd /etc/snort/
:~/etc/snort# nano -c snort.conf
# output unified2: filename merged.log, limit 128, nostamp, mpls event types, vlan event types}
output unified2: filename snort.u2, limit 128
Langkah 5.3 : Mendownload and menginstall Barnyard2
Mendownload dan menginstal versi terbaru dari Barnyard dari website Snort. Yaitu Barnyard2 2.1.14 release 336:
:~#cd snort_src/ :~/snort_src# wget
https://github.com/firnsy/barnyard2/archive/7254c24702392288fe6be948f88af b74040f6dc9.tar.gz \-O barnyard2-2-1.14-336.tar.gz
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 16 :~/snort_src# mv barnyard2-7254c24702392288fe6be948f88afb74040f6dc9
barnyard2-2-1.14-336
:~/snort_src# cd barnyard2-2-1.14-336
:~/snort_src/barnyard2-2-1.14-336# autoreconf -fvi -I ./m4
Langkah 5.4 : Library
Barnyard2 membutuhkan akses ke Library dnet.h, yang kita dipasang dengan libdumbnet paket Ubuntu sebelumnya. Namun, Barnyard2 mengharapkan nama file yang berbeda untuk Library ini. Membuat link dari dnet.h ke dubmnet.h sehingga tidak ada masalah.
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 17 :~/snort_src/barnyard2-2-1.14-336# ln -s /usr/include/dumbnet.h
/usr/include/dnet.h
:~/snort_src/barnyard2-2-1.14-336# ldconfig
Langkah 5.5 : Konfigurasi MySQL
:~/snort_src/barnyard2-2-1.14-336# arch
!!! # Choose ONE of these two commands to run
:~/snort_src/barnyard2-2-1.14-336# ./configure --with-mysql --with-mysql-libraries=/usr/lib/x86_64-linux-gnu
:~/snort_src/barnyard2-2-1.14-336# ./configure --with-mysql --with-mysql-libraries=/usr/lib/i386-linux-gnu
Langkah 5.6 : Menginstall Barnyard2
Melakukan instalasi Barnyard2 to /usr/local/bin/barnyard2:
:~/snort_src/barnyard2-2-1.14-336# make
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 18
Langkah 5.7 : Mengcopy dan membuat beberapa file
:~/snort_src/barnyard2-2-1.14-336# cp etc/barnyard2.conf /etc/snort
!!# the /var/log/barnyard2 folder is never used or referenced
!!# but barnyard2 will error without it existing
:~/snort_src/barnyard2-2-1.14-336# mkdir /var/log/barnyard2
:~/snort_src/barnyard2-2-1.14-336# chown snort.snort /var/log/barnyard2 :~/snort_src/barnyard2-2-1.14-336# touch /var/log/snort/barnyard2.waldo
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 19 :~/snort_src/barnyard2-2-1.14-336# chown snort.snort
/var/log/snort/barnyard2.waldo
:~/snort_src/barnyard2-2-1.14-336# cd
Langkah 5.8 : Membuat database
Barnyard2 menyimpan peringatan ke database MySQL kita, kita perlu untuk membuat database, serta '' MySQL user untuk mengakses database tersebut. Jalankan perintah berikut untuk membuat database dan MySQL user. Ketika diminta untuk password, gunakan MySqlROOTpassword. Anda juga akan menetapkan MySQL sandi pengguna dalam perintah mysql keempat (untuk MySqlSNORTpassword)
:~# mysql -u root –p
mysql> create database snort; mysql> use snort;
mysql> source ~/snort_src/barnyard2-2-1.14-336/schemas/create_mysql; mysql> CREATE USER 'snort' IDENTIFIED BY 'jarkom123';
mysql> grant create, insert, select, delete, update on snort.* to snort; mysql> exit
Langkah 5.9 : Melakukan koneksi ke database MySQL Kita membutuhkan Barnyard2 untuk connect ke database.
Edit /etc/snort/barnyard2.conf, pada akhir file tambahkan baris ini (mengubah password dengan yang telah buat di atas):
:~# cd /etc/snort
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 20 config interface: eth0
config alert_with_interface_name
output database: alert, mysql, user=snort password=jarkom123 dbname=snort host=localhost
Langkah 5.10 : Mengganti Permission (ijin akses)
Setelah password disimpan dalam format teks dalam file barnyard2.conf, kita harus mencegah pengguna lain dari membaca itu:
Snort biasanya akan dijalankan ketika kita memasangnya sebagai daemon, kecuali kita tidak menggunakan bendera -D yang menyebabkan untuk menjalankan sebagai daemon).
:~/etc/snort# cd
:~# chmod o-r /etc/snort/barnyard2.conf
Langkah 5.11 : Menjalankan Snort pada alert mode
:~# /usr/local/bin/snort q u snort g snort c /etc/snort/snort.conf -i eth0
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 21 Ping dari pc yang lain :
Langkah 5.12 : Ping interface eth0
:~# cd
:~# cd /var/log/snort
:~/var/log/snort# ls -l /var/log/snort/
Kita menjalankan Barnyard2 untuk memproses kejadian di snort.u2.nnnnnnnnnn dan memasukkannya ke dalam database Snort.
Kita bisa menggunakan flags dengan Barnyard2:
-c /etc/snort/barnyard2.conf The path to the barnyard2.conf file -d /var/log/snort The folder to look for Snort output files
-f snort.u2 The Filename to look for in the above directory (snort.u2.nnnnnnnnnn)
-w /var/log/snort/barnyard2.waldo The location of the waldo file (bookmark file) -u snort Run Barnyard2 as the following user after startup -g snort Run Barnyard2 as the following group after startup Langkah 5.13 : Menjalankan Barnyard2
:~/var/log/snort# cd
:~# barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.u2 -w /var/log/snort/barnyard2.waldo -g snort -u snort
2110165025_2110165026_2110165029 | POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 22
Langkah 5.14 : Mengecek MySQL database
:~# mysql -u snort -p -D snort -e "select count(*) from event"
Jika berhasil, maka akan mendapatkan output seperti diatas, yang menunjukkan 8 peristiwa ditulis ke database dari permintaan ICMP dan membalas paket (ketika Anda ping dari sistem windows, itu akan secara default mengirim 4 pesan ICMP.