Anda di halaman 1dari 18

Laporan Resmi Praktikum Snort

Definisi Snort
Snort merupakan sebuah aplikasi ataupun software yang bersifat opensource GNU General
Public License [GNU89]. Sehingga boleh digunakan dengan bebas secara gratis, dan kode
sumber (source code) untuk snort juga bisa didapatkan dan dimodifikasi sendiri.
Snort dikembangkan oleh Marty Roesch, bisa dilihat pada (www.sourcefire.com). Awalnya
dikembangkan diakhir 1998-1n sebagai sniffer dengan konsistensi output.
Snort adalah sebuah software ringkas yang sangat berguna untuk mengamati aktifitas dalam
suatu jaringan komputer. Snort dapat digunakan sebagai suatu Network Intrusion detection
system (NIDS) yang berskala ringan (lighweight), dan software ini menggunakan sistem
peraturan-peraturan (rule system) yang relatif mudah dipelajari untuk melakukan deteksi
dan pencatatan (logging) terhadap berbagai macam serangan jaringan komputer.
Snort sendiri merupakan software yang masih berbasis command-line, sehingga cukup
merepotkan bagi pengguna yang sudah terbiasa dalam lingkungan Graphical User Interface
(GUI). Oleh karena itu, ada beberapa software pihak ketiga yang memberikan GUI untuk
snort, Misalnya IDScenter untuk microsoft windows, dan Acid yang berbasis PHP sehingga
bisa diakses melalui web browser.
Percobaan Instalasi Snort

Internet

.2 192.168.127.0/24

*kelompok I

Bridge
eth0

Guest OS Guest OS
Guest Guest OS 1
1 2
OS 2

eth1 eth0

Host Only Network

Topologi yang digunakan


Mengacu pada modul “JICA TRAINING Network Security Monitoring System of MATA
GARUDA”, praktikum di mulai dari Chapter 1 subbab 2. Installing the Snort Pre-Requisites.
2. Installing the Snort Pre-Requisites
Step 2.1 : Build essentials package
First we want to install all the tools required for building software. The build-essentials
package does this for us:

Step 2.2 : Create a folder


Dalam panduan ini, kita akan mendownload sejumlah tarbals untuk berbagai paket
perangkat lunak. kemudian membuat folder bernama snort_ src untuk menyimpan semua
data di satu tempat:
:~# mkdir snort_src

Step 2.3 : Data AcQuisition library


Snort DAQ (Library Data AcQuisition) memiliki beberapa prasyarat yang perlu dipasang

Step 2.4 : Download and Install DAQ


Download dan instal versi DAQ terbaru dari situs web Snort. Langkah di bawah ini
menggunakan wget untuk mendownload versi 2.0.6 dari DAQ, yang merupakan versi
terbaru pada saat 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

3. Installing Snort
Untuk menginstal Snort di Ubuntu, ada satu syarat tambahan yang dibutuhkan tambahan
yang perlu diinstal yang tidak disebutkan dalam dokumentasi: zlibg yang merupakan library
kompresi.
Step 3.1 : Libraries
Ada tiga perpustakaan opsional yang meningkatkan fuctionality: liblzma-dev yang
menyediakan dekompresi file swf (adobe flash), openssl, dan libssl-dev yang keduanya
menyediakan file SHA dan MD5 signature:

Step 3.2 : Download snort


We are now ready to download the Snort source tarball, compile, and then install. The
[2][3]
--enable-sourcefire option gives Packet Performance Monitoring (PPM) , which lets
us do performance monitoring for rules and pre-processors, and builds Snort the
same way that the Snort team does:

:~# ldconfig
:~# cd snort_src/
:~/snort_src# wget https://snort.org/downloads/snort/snort-2.9.8.3.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
:~/snort_src/snort-2.9.8.3# cd

Step 3.3 : Updata Shared Libraries


Jalankan perintah berikut untuk memperbarui shared library (Anda akan mendapatkan
error saat Anda mencoba menjalankan Snort jika Anda melewatkan langkah ini):
Place a symlink to the Snort binary in /usr/sbin:
:~# ln -s /usr/local/bin/snort /usr/sbin/snort

Step 3.4 : Snort Version


Uji Snort dengan menjalankan binary sebagai pengguna biasa, snort -V (yang memberitahu
Snort untuk memverifikasi dirinya sendiri dan semua file konfigurasi dilewatkan padanya).
Anda harus melihat output yang serupa dengan yang ditunjukkan di bawah ini (walaupun
nomor versi yang tepat mungkin sedikit berbeda):

4. Configuring Snort to Run in NIDS Mode


Karena kita tidak ingin Snort berjalan sebagai root, kita perlu membuat akun dan kelompok
yang tidak berpengharapan untuk daemon yang dijalankannya
Step 4.1 : Create the snort user and group
Kami juga akan membuat sejumlah file dan direktori yang dibutuhkan oleh Snort, dan
mengatur hak akses pada file-file tersebut. Snort akan memiliki direktori berikut: File
konfigurasi dan aturan di / etc / snort Alerts akan ditulis ke / var / log / snort Aturan yang
dikompilasi (.so rules) akan disimpan di / usr / local / lib / snort dynamicrules
!!! # Create the snort user and group:

!!! # Create the Snort directories:

!!! # Create some files that stores rules and ip lists :


!!! # Create our logging directories:

!!! # Adjust permissions:

Step 4.2 : Change ownership on folders


Kami ingin mengubah kepemilikan file yang kami buat di atas juga untuk memastikan bahwa
Snort dapat mengakses file yang digunakannya:
!!! # Change Ownership on folders:

Snort membutuhkan beberapa file konfigurasi dan preprocessors dinamis yang disalin dari
tarball sumber Snort ke folder / etc / snort.
File konfigurasi adalah:

 classification.config
 file magic.conf
 reference.config
 snort.conf
 threshold.conf
 attribute table.dtd
 gen-msg.map
 unicode.map

Step 4.3 : Configuration files and the dynamic preprocessors


Untuk menyalin file konfigurasi dan preprocessors dinamis, jalankan perintah berikut ini:

sekarang memiliki lokasi tata letak dan berkas direktori 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/

Step 4.4 : Edit Snort’s main configuration


Sekarang kita perlu mengedit file konfigurasi utama Snort, /etc/snort/snort.conf. Saat kita
menjalankan Snort dengan file ini sebagai argumen, ia mengatakan bahwa Snort akan
berjalan dalam mode NIDS.
Kami perlu memberi komentar semua file aturan individual yang dirujuk dalam file
konfigurasi Snort, karena alih-alih mendownload setiap file secara terpisah, kami akan
menggunakan PulledPork untuk mengelola rulesets kami, yang menggabungkan semua
peraturan ke dalam satu file. Baris berikut akan memberi komentar semua rulesets di file
snort.conf:
:~# sed -i "s/include \$RULE\_PATH/#include \$RULE\_PATH/" /etc/snort/snort.conf

Step 4.5 : Change some setting in the snort


Sekarang kita akan secara manual mengubah beberapa pengaturan di file snort.conf,
menggunakan editor favorit Anda:

Change the following lines to meet your environment:


Line 45, HOME_NET should match your internal (friendly) network. In the below example
our HOME _NET is 192.168.x.0 with a 24-bit subnet mask (255.255.255.0)

Catatan: Anda seharusnya tidak mengatur EXTERNAL_NET ke $ HOME_NET seperti yang


direkomendasikan di beberapa panduan, karena dapat menyebabkan Snort untuk
melewatkan lansiran.
Catatan: sangat penting bahwa HOME _NET Anda cocok dengan subnet IP dari antarmuka
yang Anda inginkan agar Snort dengarkan. Silakan gunakan ifconfig eth0 | Grep "inet add"
untuk memastikan Anda memiliki alamat dan set mask yang tepat.
Step 4.6 : file paths in snort
Set the following file paths in snort.conf, beginning at line 104:
:~# nano -c /etc/snort/snort.conf

Step 4.7 : Testing Snort


In order to make testing Snort easy, we want to enable the local.rules file, where we can
add rules that Snort can alert on. Un-comment (remove the hash symbol) from line 546
so it looks like this:
:~# nano -c /etc/snort/snort.conf

Setelah file konfigurasi siap, kita akan meminta Snort memverifikasi bahwa itu adalah file
yang valid, dan semua file yang diperlukan yang referensi benar. Kami menggunakan flag -T
untuk menguji file konfigurasi, flag -c untuk memberi tahu Snort file konfigurasi mana yang
akan digunakan, dan -i untuk menentukan antarmuka yang akan didengarkan Snort (ini
adalah persyaratan baru untuk 2.9.8.x Versi snort).
Step 4.8 : Run Snort
Run snort -T -c /etc/snort/snort.conf -i eth0. Run this command as shown below and
look for the following output (only the last few lines of the output are shown for
clarity):
:~# snort -T -i eth0 -c /etc/snort/snort.conf
(...)
Snort successfully validated the configuration!
Snort exiting
:~#
Nama interface telah berubah, dan spesifik sistem (tidak lagi terdaftar sebagai ethN). Pada
perintah di atas, Anda perlu mengganti eth0 dengan nama antarmuka Anda, seperti yang
ditunjukkan dengan perintah ifconfig (dalam kasus saya ini adalah ens160).
Sebaiknya gulir ke atas melalui keluaran dari perintah ini untuk merasakan apa yang sedang
dimuat oleh Snort. Banyak hal itu tidak masuk akal saat ini, tapi akan semakin jelas saat
Anda bekerja lebih banyak dengan Snort. Cari kesalahan dan peringatan yang tercantum.

5. Writing a Simple Rule to Test Snort Detection


Pada tahap ini, Snort tidak memiliki aturan yang dimuat (file aturan kami yang dirujuk dalam
snort.conf kosong). Anda dapat memverifikasi bahwa Snort belum memasukkan peraturan
apapun jika Anda menggulir ke atas melalui keluaran dari perintah sebelumnya. Untuk
menguji kemampuan deteksi Snort, mari buat aturan sederhana yang akan menyebabkan
Snort menghasilkan peringatan setiap kali Snort melihat pesan ICMP "Echo request" atau
"Echo reply", yang mudah dibuat dengan utilitas ping di mana-mana (ini mempermudah
Pengujian aturan).
Step 5.1 : Alert icmp
Paste the following single line into the empty local rules file:
/etc/snort/rules/local.rules:
:~# cd /etc/snort/rules/
:~/etc/snort/rules# nano -c local.rules
Step 5.2 : Alert ICMP
Untuk memastikan bahwa barnyard2 tahu bahwa aturan yang kami buat dengan pengenal
unik 10000001 memiliki pesan "ICMP Test Detected", serta beberapa informasi lainnya.
Kami menambahkan baris berikut ke
/etc/snort/sid-msg.map file:

Bila Anda tidak mengomentari baris 545 di atas (sertakan $ RULE_PATH / local.rules) Anda
memberi tahu Snort bahwa file local.rules harus dimuat oleh Snort. Ketika Snort memuat
file itu saat start-up, ia akan melihat aturan yang Anda buat, dan menggunakan aturan itu
pada semua lalu lintas yang dilihat oleh antarmuka. Dalam kasus ini, ketika kami membuat
peraturan, kami memberi tahu Snort bahwa seharusnya menghasilkan peringatan saat
melihat ping ICMP.
Step 5.3 : changes to the Snort configuration
Karena kami membuat perubahan pada konfigurasi Snort, kami harus menguji file
konfigurasi lagi:
:~/etc/snort# cd
:~# snort -T -c /etc/snort/snort.conf -i eth0
Step 5.4 : NIDS Mode
Sekarang kita tahu bahwa Snort benar-benar menerapkan peraturan dan konfigurasi kita,
kita bisa mulai mendengus dalam mode NIDS, dan memberitahukannya untuk
mengeluarkan peringatan apa pun ke konsol. Kami akan menjalankan Snort dari command
line, dengan menggunakan flag berikut:
-A console The ‘console’ option prints fast mode alerts to stdout
-q Quiet mode. Don’t show banner and status report.
-u snort Run Snort as the following user after startup
-g snort Run Snort as the following group after startup
-c /etc/snort/snort.conf The path to our snort.conf file
-i eth0 The interface to listen on
(change to your interface if different)
:~# /usr/local/bin/snort –A console -q -u snort -g snort –c
/etc/snort/snort.conf -i eth0

Ketika Anda menjalankan baris ini, Anda tidak akan melihat output apa pun, namun Snort
sedang berjalan, memproses semua paket yang sampai pada et0 (atau antarmuka mana pun
yang Anda tentukan dengan flag -i), membandingkannya dengan aturan yang telah
dimuatnya (dalam hal ini Kasus aturan ICMP Ping tunggal kami), dan kemudian akan
mencetak semua peringatan yang dihasilkan saat sebuah paket sesuai dengan peraturan
kami ke konsol.
Step 5.5 : Ping
Dari komputer lain, ping alamat IP eth0 di komputer Snort (atau ganti ping dari host Snort ke
komputer lain, atau eth0 sendiri, tapi bukan antarmuka loopback), dan Anda akan melihat
output konsol serupa dengan apa yang ditampilkan di bawah ini. (Pada contoh di bawah ini,
server Snort mendengarkan eth0 dengan dan alamat IP 10.0.0.105, dan komputer yang
menghasilkan ping adalah 10.0.0.59).
6. Installing Barnyard2
Ini adalah sumber yang intensif bagi Snort untuk menulis acara dalam mode yang dapat
dibaca manusia, baik ke konsol maupun file teks, seperti yang dilakukan di atas. Idealnya,
kami ingin acara Snort disimpan dalam database MySQL sehingga kami dapat melihat,
mencari, dan profil acara. Untuk mendapatkan kejadian Snort secara efisien ke dalam
database MySQL, kami menggunakan Barnyard2.
Step 6.1 : Installing MySQL
Kami akan mengkonfigurasi Snort untuk menampilkan acara dalam bentuk biner ke folder,
dan kemudian membuat Barnyard2 membaca kejadian tersebut secara asinkron dan
memasukkannya ke basis data MySQL kami.
Instalasi MySQL, kita akan menggunakan apt dengan mysql repository. Pertama, tambahkan
sumber repositori mysql untuk mendapatkan versi MySQL terbaru.
:~# wget http://dev.mysql.com/get/mysql-apt-config_0.7.3-1_all.deb
:~# dpkg -i mysql-apt-config_0.7.3-1_all.deb

When adding source repository, It's necessary to set the MySQL version that will be
installed and some other options.

You need to update to make adjustment to the new file apt source.
:~# apt-get update

Memasuki tahap instalasi, Selain menginstal mysql-server kita juga membutuhkan beberapa
library yang berguna untuk mysql.
:~# apt-get install -y mysql-server libmysqlclient-dev mysql-client autoconf libtool

Next, Set password for user root of mysql database. Root password : jarkom123
Instalasi akan meminta Anda untuk membuat password root mysql user. Untuk contoh di
bawah ini, kita akan menggunakan password jarkom123. Anda harus memilih sesuatu yang
berbeda dan lebih aman, dan menyimpannya dengan aman. Kami juga akan membuat akun
pengguna MySQL, dan kata sandi untuk akun itu adalah kata sandi jarkom123, perhatikan
perbedaan antara dua kata kunci ini.
Step 6.2 : output unified2
Kita perlu memberitahu mendengus bahwa itu harus mengeluarkan peringatan itu dalam
format biner (ke file) yang dapat diproses oleh Barnyard2. Untuk melakukannya, edit file
/etc/snort/snort.conf, dan setelah baris 521 (baris komentar dimulai dengan tanda hash)
tambahkan baris berikut:
:~# cd /etc/snort/
:~/etc/snort# nano -c snort.conf

Catatan pada Versi Barnyard2: Pada perintah di bawah ini, kami akan mendownload
cuplikan spesifik dari Barnyard2 dari github: Barnyard2 versi 2.1.14 dengan komit mulai 21
Oktober 2015 (ini adalah versi terbaru saat ini). Saya memilih untuk tidak menggunakan rilis
stabil terbaru: 2.1.13 karena beberapa patch telah ditambahkan setelah rilis yang penting,
dan saya memilih untuk tidak menggunakan rilis Head, karena itu akan berubah setelah rilis
panduan ini, dan saya menang Sudah bisa mengujinya. Jika Anda mau, Anda bisa (dan
mungkin akan menginginkannya) untuk menggunakan rilis Barnyard2 saat ini, namun jika
Anda memiliki masalah, Anda dapat selalu kembali dan menggunakan versi yang telah saya
gunakan di bawah yang telah saya verifikasi akan bekerja dengan yang lain. Potongan
perangkat lunak dalam panduan ini
Step 6.3 : Download and install Barnyard2
Now download and install Barnyard2 2.1.14 release 336:
:~#cd snort_src/
:~/snort_src# wget
https://github.com/firnsy/barnyard2/archive/7254c24702392288fe6be948f88afb7404
0f6dc9.tar.gz \-O barnyard2-2-1.14-336.tar.gz
:~/snort_src# tar -zxvf barnyard2-2-1.14-336.tar.gz
:~/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

Step 6.4 : Library


Barnyard2 needs access to the dnet.h library. However, Barnyard2 expects a
different file name for this library. Create a soft link from dnet.h to dubmnet.h so
there are no issues:
:~/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

Step 6.5 : Configure MySQL


Bergantung pada versi OS Anda (x86 atau x86 64), Anda perlu mengarahkan install ke
perpustakaan MySQL yang benar. Jalankan salah satu dari dua baris berikut untuk
mengkonfigurasi proses pembuatan, tergantung pada arsitektur Anda (jika Anda tidak yakin
dengan arsitektur yang Anda jalankan, gunakan perintah uname -m:
:~/snort_src/barnyard2-2-1.14-336# arch
:~/snort_src/barnyard2-2-1.14-336# ./configure --with-mysql --with-mysql-
libraries=/usr/lib/i386-linux-gnu
Step 6.6 : Install Barnyard2
Now complete the build and install Barnyard2 to /usr/local/bin/barnyard2:
:~/snort_src/barnyard2-2-1.14-336# make
:~/snort_src/barnyard2-2-1.14-336# make install
CATATAN: Jika Anda mendapatkan kesalahan dnet.h pada tahap pembuatan, Anda mungkin
perlu memberi tahu sistem tempat file dnet.h berada. Jalankan perintah berikut sebelum
menjalankan make lagi (ini kadang-kadang dilaporkan sebagai masalah):
Step 6.7 : copy and create some files
Once Barnyard2 is installed, the next step is to copy and create some files
that Barnyard2 requires to run:
:~/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
:~/snort_src/barnyard2-2-1.14-336# chown snort.snort
/var/log/snort/barnyard2.waldo
:~/snort_src/barnyard2-2-1.14-336# cd
Step 6.8 : Create database
Karena Barnyard2 menyimpan alert ke database MySQL kita, kita perlu membuat database
itu, dan juga 'snort' pengguna MySQL untuk mengakses database itu. Jalankan perintah
berikut untuk membuat database dan pengguna MySQL. Saat diminta memasukkan kata
sandi, gunakan 'jarkom123'. Anda juga akan mengatur password pengguna MySQL snort di
perintah mysql keempat, jadi ubah juga di sana.
:~# 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
Step 6.9 : connect to the MySQL database
We need to tell Barnyard2 how to connect to the MySQL database.
Edit /etc/snort/barnyard2.conf, and at the end of the file add this line (changing
password to the one you created above): Line 71, 75 and 348
:~# cd /etc/snort
:~/etc/snort# nano -c barnyard2.conf

Connect to MySQL DB

Step 6.10 : Change Permission


Karena kata sandi disimpan dalam teks mentah di file barnyard2.conf, kita harus mencegah
pengguna lain membacanya:
:~/etc/snort# cd
:~# chmod o-r /etc/snort/barnyard2.conf

Sekarang kita ingin menguji bahwa Snort sedang menulis acara ke file log biner yang benar,
dan bahwa Barnyard2 sedang membaca log tersebut dan menulis kejadian ke database
MySQL kita. Kita bisa saja memulai kedua program tersebut dalam mode daemon dan
menghasilkan beberapa acara dengan melakukan ping ke antarmuka (memicu aturan yang
telah kita buat sebelumnya), tapi lebih baik menguji satu porsi setiap kali.
Step 6.11 : Run Snort in alert mode
Run Snort in alert mode (the command we run below is how Snort will normally
be run when we set it up as a daemon, except we aren’t using the -D flag which
causes it to run as a daemon).
:~# /usr/local/bin/snort -q -u snort -g snort -c /etc/snort/snort.conf -i eth0

Step 6.12 : Interface eth0


:~# cd
:~# cd /var/log/snort
:~/var/log/snort# ls -l /var/log/snort/

Snort Log :

Step 6.13 : Run Barnyard2

Step 6.14 : Check MySQL Database

Anda mungkin juga menyukai