Memakai Snort Di Windows 7

Pada tulisan Memakai Snort Sebagai IPS Di Notebook, saya mencoba menjalankan Snort di Ubuntu. Kali ini, saya akan mencoba menjalankan Snort di sistem operasi Windows 7.

PENTING: Pada Windows, Snort hanya bisa bekerja sebagai Intrusion Detection System (IDS) dan tidak bisa bekerja sebagai Intrusion Prevention System (IPS).

Di Windows juga terdapat paket lengkap yang disebut Windows Intrusion Detection System (WinIDS). Akan tetapi, WinIDS sepertinya dibuat untuk dipakai pada IDS sensor standalone sehingga dilengkapi berbagai paket termasuk laporan via web dan logging ke database MySQL. Karena hanya ingin menjalankan Snort pada komputer yang sama, saya men-download installer Snort 2.9.5 dari http://www.snort.org/downloads/2417. Saya akan men-install Snort pada lokasi root directory sehingga akan terdapat sebuah folder C:\snort. Saya juga perlu men-download dan men-install WinPcap dari http://www.winpcap.org/install/bin/WinPcap_4_1_3.exe.

Saya akan mencoba menjalankan Snort. Sebelumnya, saya perlu menjalankan Command Prompt dalam modus Administrator. Caranya adalah dengan mengetik cmd di Start menu Windows 7 kemudian menekan tombol Ctrl+Shift+Enter, atau memilih icon Command Prompt, men-klik kanan dan memilih menu “Run As Administrator“. Setelah itu, saya memberikan perintah berikut ini:

C:\snort\bin\snort -W

Parameter -W adalah parameter khusus untuk Windows yang akan menampilkan daftar perangkat yang dapat ditangani oleh Snort nantinya. Nama device sepertinya diperoleh dari fungsi getAdapterList() milik WinPcap. Function tersebut akan mengambil informasi perangkat jaringan dari registry HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}. Nama yang ada diawali dengan NPF yang merupakan singkatan dari Netgroup Packet Filter, sebuah bagian inti dari WinPcap.

Saya perlu mencatat nama perangkat yang perlu dipantau oleh Snort. Contoh nama perangkat misalnya \Device\NPF_{5D24AE04-C486-83FB-8B5EC6C7F430}. Karena nama perangkat sulit dikenali, saya menentukan perangkat berdasarkan description (seperti 3Com EtherLink PCI) atau alamat IP.

Catatan untuk pengguna dial-up PPP: WinPcap tidak mendukung koneksi PPP/VPN pada sistem operasi Windows Vista ke atas. Pada Windows 2000/XP 32-bit, capture dapat dilakukan pada adapter dengan deskripsi (‘Adapter for generic dialup and VPN capture’). Informasi ini diperoleh dari FAQ WinPcap di http://www.winpcap.org/misc/faq.htm#Q-5. Bila adapter ‘generic dialup‘ ini tidak muncul pada saat memberikan perintah snort -W, maka capture frame PPP tidak dapat dilakukan. Saya tidak menemukan keterbatasan ini pada sistem operasi Linux yang memakai library libpcap (WinPcap adalah port dari libpcap untuk Windows).

Langkah berikutnya adalah mencoba menjalankan Snort untuk menampilkan packet yang dicapture oleh WinPcap. Caranya adalah dengan memberikan perintah berikut ini:

C:\snort\bin\snort -dev -i namaperangkat

Karena nama perangkat sulit untuk diingat, saya juga dapat menggunakan nomor urut (berdasarkan nilai index di tampilan snort -W), seperti pada perintah berikut ini:

C:\snort\bin\snort -dev -i 3

Setelah ini, bila terdapat aktifitas jaringan pada perangkat tersebut, Snort akan menampilkan informasi ke layar. Pada modus ini, Snort bekerja sama seperti tcpdump atau Wireshark. Untuk keluar, saya menekan tombol Ctrl dan C secara bersamaan.

Untuk memakai Snort sebagai IDS (Intrusion Detection System), saya perlu melakukan konfigurasi pada file C:\snort\etc\snort.conf.

Perubahan yang saya lakukan adalah mengubah beberapa path Linux menjadi Windows, yaitu:

dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/
dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so

Menjadi:

dynamicpreprocessor directory C:\Snort\lib\snort_dynamicpreprocessor
dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll

Selain itu, saya juga perlu menghapus baris ini:

#dynamicdetection directory /usr/local/lib/snort_dynamicrules

Agar saya tidak perlu menentukan device setiap kali menjalankan Snort, saya menambahkan baris berikut ini pada snort.conf:

config interface: namadevice <== misalnya \Device\NPF_{5D24AE04-C486-83FB-8B5EC6C7F430}

Saya juga perlu menyesuaikan network variables, seperti isi dari HOME_NET (ip dari komputer yang dilindungi), DNS_SERVERS, dsb. Selain itu, saya juga menyesuaikan lokasi variabel berikut ini sesuai dengan lokasi di Windows:

var RULE_PATH c:\snort\rules
var SO_RULE_PATH c:\snort\so_rules
var PREPROC_RULE_PATH c:\snort\preproc_rules
var WHITE_LIST_PATH c:\snort\rules
var BLACK_LIST_PATH c:\snort\rules
...
config logdir: C:\snort\log
Selain itu, saya juga perlu menghapus baris berikut ini:
preprocessor normalize_ip4
preprocessor normalize_tcp: ips ecn stream
preprocessor normalize_icmp4
preprocessor normalize_ip6
preprocessor normalize_icmp6

Fungsi normalisasi packet tidak berfungsi di Windows. Hal ini tidak akan berpengaruh bila Snort dijalankan dalam modus Intrusion Detection System (IDS) karena mereka hanya akan aktif bila Snort dipakai dalam modus Intrusion Prevention System (IPS).

Saya juga perlu menentukan output dari Snort (pesan bila terdapat hal mencurigakan). Paket yang lengkap WinIDS menampung output Snort ke dalam database dan memungkinkan hasilnya dibaca melalui web browser. Tapi saat ini yang saya butuhkan hanya menampilkan output ke layar command prompt, sehinggga saya menambahkan baris berikut ini pada file konfigurasi Snort:

output alert_fast: stdout

Untuk menjalankan Snort sebagai IDS, saya akan menggunakan perintah berikut ini:

C:\snort\bin\snort -c C:\snort\etc\snort.conf

Bila perintah tersebut diberikan saat ini, Snort akan protes dengan kesalahan seperti berikut ini:

ERROR: C:\snort\etc\c:\snort\rules/local.rules(0) Unable to open rules file "C:\snort\etc\c:\snort\rules/local.rules": Invalid argument.

Mengapa demikian? Isi dari folder rules saat ini masih kosong! Snort adalah IDS yang melakukan analisa packet (lalu lintas data di jaringan). Bila terdapat aktifitas jaringan yang mencurigakan, Snort akan melaporkannya. Snort mengetahui aktifitas packet mencurigakan atau tidak berdasarkan rules. Sourcefire selaku pembuat Snort juga menyediakan rules dan terus memperbaharuinya seiring dengan tren serangan. User yang membayar akan mendapatkan rules terbaru, sementara user yang mendaftar dapat memperoleh rules tersebut 30 hari kemudian secara gratis. Sebagai informasi, rules Snort tidak harus dibuat oleh Sourcefire Vulnerability Research Team (VRT), tetapi bisa saja dibuat oleh pakar keamanan komputer lainnya.

Saya segera mendownload rules dari http://www.snort.org/snort-rules. Setelah itu, saya men-extract isinya ke folder instalasi Snort; hasil extract akan memiliki nama folder yang mirip dengan di instalasi Snort. Saya perlu berhati-hati agar tidak menimpa file snort.conf, tetapi hanya menerapkan isi baris yang berbeda saja. Untuk melihat perbedaan file di Windows melalui perintah command line, saya dapat menggunakan perintah PowerShell berikut ini (untuk membuka PowerShell, ketik ‘Window PowerShell’ di menu Start):

PS C:\> Compare-Object $(Get-Content c:\snort\etc\snort.conf) $(Get-Content C:\download\rules\etc\snort.conf)
InputObject SideIndicator
----------- -------------
# VERSIONS : 2.9.4.1 =>
include $RULE_PATH/file-java.rules =>
include $RULE_PATH/indicator-scan.rules =>
include $RULE_PATH/os-mobile.rules =>
include $RULE_PATH/protocol-dns.rules =>
include $RULE_PATH/protocol-nntp.rules =>
include $RULE_PATH/protocol-rpc.rules =>
include $RULE_PATH/protocol-scada.rules =>
include $RULE_PATH/protocol-snmp.rules =>
include $RULE_PATH/protocol-telnet.rules =>
include $RULE_PATH/protocol-tftp.rules =>
include $RULE_PATH/server-samba.rules =>
# VERSIONS : 2.9.5.0 <=
...

Perintah Compare-Object di Windows PowerShell dipakai untuk membandingkan dua objek yang berbeda, termasuk isi file. Side indicator => menunjukkan bahwa baris tersebut ada di rules yang saya download tetapi belum ada di file konfigurasi Snort saya. Oleh sebab itu, saya perlu menambahkan baris include di atas pada file konfigurasi Snort.

Kali ini, bila saya menjalankan Snort, saya memperoleh pesan kesalahan yang berbeda, seperti berikut ini:

Unable to open address file C:\Snort\rules\white_list.rules, Error: No such file or directory

Reputation preprocessor membutuhkan dua file, white_list.rules dan black_list.rules. Saat ini kedua file tersebut tidak ada sehingga saya perlu membuatnya secara manual (file kosong). Reputation preprocessor tidak akan bekerja bila tidak menemukan isi pada kedua file tersebut.

Setelah ini, Snort dapat dijalankan dengan baik dengan memberikan perintah:

C:\snort\bin\snort -c C:\snort\etc\snort.conf

Sampai disini Snort dapat dijalankan dengan baik. Tapi saya perlu memastikan bahwa Snort bekerja sebagai IDS. Untuk itu, saya menambahkan baris berikut ini pada file konfigurasi:

alert icmp any any -> any any (msg: "Seseorang sedang men-ping!"; sid: 1000001;)

Baris di atas adalah sebuah rule yang akan memberikan alert setiap kali terdapat paket ICMP (tidak terbatas pada ping!) yang ditangkap. Saya kemudian mematikan Snort dan menjalankan kembali, kemudian saya mencoba men-ping dari komputer lain. Berikut adalah hasil yang saya peroleh:

--== Initialization Complete ==--

,,_ -*> Snort! <*-
o" )~ Version 2.9.5-WIN32 GRE (Build 103)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/snort/snort-t
eam
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using PCRE version: 8.10 2010-06-25
Using ZLIB version: 1.2.3

Rules Engine: SF_SNORT_DETECTION_ENGINE Version 2.0 <Build 1>
Preprocessor Object: SF_SSLPP Version 1.1 <Build 4>
Preprocessor Object: SF_SSH Version 1.1 <Build 3>
Preprocessor Object: SF_SMTP Version 1.1 <Build 9>
Preprocessor Object: SF_SIP Version 1.1 <Build 1>
Preprocessor Object: SF_SDF Version 1.1 <Build 1>
Preprocessor Object: SF_REPUTATION Version 1.1 <Build 1>
Preprocessor Object: SF_POP Version 1.0 <Build 1>
Preprocessor Object: SF_MODBUS Version 1.1 <Build 1>
Preprocessor Object: SF_IMAP Version 1.0 <Build 1>
Preprocessor Object: SF_GTP Version 1.1 <Build 1>
Preprocessor Object: SF_FTPTELNET Version 1.2 <Build 13>
Preprocessor Object: SF_DNS Version 1.1 <Build 4>
Preprocessor Object: SF_DNP3 Version 1.1 <Build 1>
Preprocessor Object: SF_DCERPC2 Version 1.0 <Build 3>
Commencing packet processing (pid=xxxx)
07/20-12:13:08.176640 [**] [1:1000001:0] Seseorang sedang men-ping! [**] [Prior
ity: 0] {ICMP} xxx.xxx.xxx.xxx -> xxx.xxx.xxx.xxx
07/20-12:13:09.177903 [**] [1:1000001:0] Seseorang sedang men-ping! [**] [Prior
ity: 0] {ICMP} xxx.xxx.xxx.xxx -> xxx.xxx.xxx.xxx

Bila perlu, saya juga dapat mengaktifkan pendeteksian port scan, dengan menambahkan baris berikut ini pada file konfigurasi:

preprocessor sfportscan: proto { all } sense_level { medium } logfile { portscan.log }

Hasil alert bila terjadi port scan tidak akan ditampilkan ke layar, melainkan akan disimpan ke file C:\snort\log\portscan.log. Untuk mengujinya, saya dapat menggunakan nmap dari komputer lain.

Perlu diingat bahwa saat ini Snort bekerja dalam modus Intrusion Detection System (IDS). Detection disini benar2 hanya berarti mendeteksi dan memberitahu bila terjadi serangan! Tidak ada upaya untuk menanggulangi atau menghindari serangan. Hal ini berguna bila Snort dipakai dalam honeypot, sebuah sistem yang sengaja menarik perhatian hacker guna menganalisa teknik serangan mereka. IDS seperti Snort biasanya berada di lapisan sebelum firewall sehingga packet dapat dianalisa secara lengkap sebelum diteruskan ke firewall.

Pada Windows, Snort tidak dapat bekerja pada inline mode atau Intrusion Prevention System (IPS). Sebagai contoh, walaupun aktifitas port scan tercatat dan diketahui oleh pengguna, hasil port scan tetap diperoleh oleh penyerang! Selain itu, saya tidak menemukan cara untuk menkonfigurasi firewall bawaan Windows 7 untuk membiarkan Snort bekerja terlebih dahulu sebelum penyaringan dilakukan. Semua pengujian di atas saya lakukan dengan mematikan firewall bawaan. Hal ini tentunya tidak aman untuk keperluan sehari-hari.

Iklan

Memakai Snort Sebagai IPS Di Notebook

Kedengarannya memang aneh, kenapa harus menjalankan Snort di notebook?  Bukankah biasanya Snort IPS dijalankan pada komputer server yang memiliki dua network card (NIC) terpisah?  Tapi, bukanlah hal mustahil untuk menjalankan Snort tanpa melalui bridging (dua network card).  Artikel ini mengasumsikan penggunaan DAQ module NFQ seperti yang dituliskan di artikel sebelumnya.  Artikel ini juga mengasumsikan penggunaan Linux UBuntu 10 LTS.  Setelah Snort berhasil dikonfigurasi dan dijalankan dengan baik, yang perlu dilakukan sekarang adalah melakukan pengaturan iptables.

Jika memakai Snort sebagai IPS pada notebook atau komputer yang dipakai untuk berselancar di Internet, pengguna harus memilih untuk mengorbankan rules di iptables atau tidak:

  • Seluruh packet yang masuk pertama kali akan diterima oleh modul Netfilter di Ubuntu.  Untuk pendeteksian secara maksimal, packet yang masuk dapat dengan segera dialihkan ke Netfilter Queue guna diolah oleh Snort.  Akan tetapi, packet tersebut tidak dicocokkan satu per satu dengan rules iptables lainnya lagi.
  • Atau, packet yang masuk dapat di-saring dulu dengan rules di iptables, baru kemudian packet yang lolos dialihkan ke Netfilter Queue untuk diolah oleh Snort.  Kekurangannya adalah Snort tidak memperoleh packet yang mengidentifikasikan serangan secara lengkap, karena beberapa packet mungkin sudah disaring terlebih dahulu oleh Netfilter.

Apapun metode yang dipakai, semuanya melibatkan penambahan rules di iptables untuk mengalihkan packet ke Netfilter Queue.  Yang membedakan adalah urutan/posisi rule tersebut.  Rules tersebut terlihat seperti:

iptables -A INPUT -j QUEUE
iptables -A OUTPUT -j QUEUE

Tentunya pengguna dapat menambahkan parameter lainnya sesuai kebutuhan dan selera, tetapi yang harus ada adalah -j QUEUE yang menunjukkan bahwa packet akan ditampung oleh Netfilter Queue.  Bila tidak aplikasi yang membaca queue, misalnya Snort sedang tidak berjalan, maka packet akan di-drop.

Bagi yang menggunakan ufw (uncomplicated firewall),  dapat langsung mengedit file yang ada di /etc/ufw/after.rules atau /etc/ufw/before.rules.  Jangan lupa mematikan dan menyalakan kembali firewall setelah melakukan perubahan pada file.  Sebagai contoh, seseorang dapat menambahkan baris berikut pada /etc/ufw/after.rules:

-A ufw-after-input -j QUEUE
-A ufw-after-output -j QUEUE

Langkah selanjutnya, karena Snort dipakai pada “perangkat desktop” yang menjalankan banyak program sehari-hari dan belum tentu stabil, pengguna sebaiknya menambahkan program Snort pada daftar daemo yang diproses oleh Upstart di Ubuntu.  Upstart adalah sebuah program bawaan di Ubuntu yang memiliki fungsi seperti /etc/inittab di UNIX.  Upstart dapat memantau proses Snort, dan bila oleh suatu hal, Snort harus berhenti dijalankan, Upstart akan secara otomatis “menghidupkan” Snort kembali.

Buat sebuah file baru di direktori /etc/init, misalnya /etc/init/snort.conf yang memiliki isi seperti berikut ini:

start on started ufw
stop on stopping ufw
respawn
exec /usr/bin/snort --daq nfq -D -c /etc/snort.conf -Q

Pada konfigurasi di atas, Snort akan dijalankan setelah ufw, dan akan dimatikan sebelum ufw dimatikan.  Hal ini dilakukan karena Snort memakai modul NFQ yang berkaitan erat dengan iptables.  Jangan lupa untuk menyertakan respawn yang berarti proses akan secara otomatis dihidupkan kembali bila tidak dimatikan melalui Upstart.

Setelah ini, restart komputer, dan berikan perintah seperti:

#initctl list
...
snort start/running, process 2084
...

Hal ini memperlihatkan bahwa Upstart telah menjalankan Snort secara otomatis begitu notebook/komputer rumah dijalankan, dan akan terus menjaga agar proses Snort senantiasa aktif.

Snort IPS Di Ubuntu 10 LTS

Instalasi Snort di Ubuntu 10 LTS memang tidak sulit, cukup mengikuti langkah step-by-step yang disediakan oleh pembuatnya yang dapat di-download dalam bentuk PDF di http://www.snort.org/assets/158/011-snortinstallguide2905.pdf.  Akan tetapi, setelah mengikuti langkah-langkah tersebut, Snort berjalan sebagai IDS (Intrusion Detection System).  Sebagai IDS, Snort hanya menganalisa packet yang ada dan memberikan peringatan bila terjadi serangan dari hacker.  Jika seperti ini kasusnya, IDS dikatakan bekerja dalam modus passive.   Bila ingin Snort memblokir upaya serangan dan memberikan respon atas serangan hacker, maka Snort harus bekerja sebagai IPS (Intrusion Prevention System).  Snort akan berfungsi sebagai IPS bila berjalan dalam modus inline.

Bila dijalankan secara standard, Snort akan memakai DAQ module bernama pcap.   DAQ Module pcap ini tidak mendukung modus inline, sehingga administrator yang ingin menjalankan Snort sebagai IPS harus memakai DAQ module lain.  Untuk melihat apa saja DAQ module yang ada, berikan perintah seperti:

# snort --daq-list
Available DAQ modules:
pcap(v3): readback live multi unpriv
ipfw(v2): live inline multi unpriv
dump(v1): readback live inline multi unpriv
afpacket(v4): live inline multi unpriv

Hasil output tersebut menunjukkan bahwa pcap tidak mendukung modus inline.  Salah DAQ Module bawaan, yaitu NFQ yang memakai Netfilter, sama sekali tidak terlihat.  Padahal Netfilter dan iptables merupakan dasar yang membentuk fungsi packet filtering di kernel Linux.

Langkah pertama yang harus dilakukan agar DAQ Module nfq dibuat adalah dengan meng-install paket libnetfilter-queue-dev (beserta paket yang dibutuhkanya seperti libnetfilter-queue1 dan lainnya).   Di Ubuntu 10 LTS,  paket tersebut masih belum ter-install sehingga administrator perlu meng-install dengan menggunakan apt-get (berbasis console) ataupun Ubuntu Software Center (berbasis GUI).

Langkah berikutnya, upgrade libpcap menjadi versi terbaru, yang dapat didownload di www.tcpdump.org.  Ubuntu 10 LTS datang dengan repository yang berisi libpcap0.8.  Versi libpcap ini memiliki bug yang menyebabkan Snort akan berhenti berjalan dan memberikan pesan kesalahan yang berkaitan dengan log_tcpdump dimana pesan-nya adalah Snort tidak dapat menulis pada file /var/log/snort (atau lokasi direktori log yang telah ditentukan sebelumnya).  Pesan kesalahan ini cukup menipu, karena sama sekali tidak berhubungan dengan permission di direktori tersebut, dan akan hilang setelah meng-upgrade ke versi libpcap yang lebih baru, misalnya libpcap-1.1.1.  Karena repository Ubuntu 10 LTS tidak menunjukkan adanya upgrade versi terbaru dari libpcap, download source secara manual, kemudian jalankan script GNU Autoconf yang disediakan, seperti:

# ./configure --prefix=/usr
...
config.status: creating pcap_open_dead.3pcap
config.status: creating pcap_open_offline.3pcap
config.status: creating config.h
# make
...
mv pcap-config.tmp pcap-config
chmod a+x pcap-config
# make install
...

Langkah berikutnya adalah menjalankan script GNU Autoconf untuk DAQ.   Source-nya dapat di-download di http://www.snort.org/downloads/860.  Seperti biasa, jalankan dahulu script configure:

# ./configure
...
Build AFPacket DAQ module.. : yes
Build Dump DAQ module...... : yes
Build IPFW DAQ module...... : yes
Build IPQ DAQ module....... : no
Build NFQ DAQ module....... : yes
Build PCAP DAQ module...... : yes

Pastikan bahwa pada NFQ DAQ module terdapat tulisan yes sehingga nantinya module NFQ akan dibuat.  Setelah itu, seperti biasa, berikan perintah make dan make install.

Berikutnya, lakukan hal yang sama dengan source Snort yang dapat di-download di http://www.snort.org/downloads/867.  Berikan perintah seperti:

# ./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
...
# make
...
# make install
...

Langkah terakhir adalah menjalankan Snort dengan argumen khusus sehingga ia bekerja dalam modus inline sebagai IPS.  Sebagai contoh, Snort dapat dijalankan dengan parameter seperti berikut ini:

# snort --daq nfq -c /etc/snort/snort.conf -Q
...
nfq DAQ configured to inline.
Reload thread starting...
...

Option –daq menentukan module DAQ yang akan dipakai Snort, yaitu NFQ.  Option -c menentukan lokasi file konfigurasi Snort yang tentunya bisa berbeda-beda sesuai kebiasan setiap administrator.  Option -Q menunjukkan bahwa Snort harus bekerja dalam modus inline.  Bila Snort bekerja sebagai IPS, akan terdapat baris yang isinya seperti “nfq DAQ configured to inline.

Pengenalan Snort

Salah satu aplikasi Linux yang dapat dipakai untuk meningkatkan keamanan komputer adalah Snort.  Secara garis besar, Snort adalah sebuah program yang memiliki tiga fungsi atau tiga modus operasi.  Snort dapat dipakai dalam packet sniffer mode sehingga bekerja sebagai sniffer sama seperti Wireshark.  Sama seperti Wireshark, Snort juga dapat menyimpan setiap packet yang di-capture ke dalam media penyimpan di modus packet logger mode.  Akan tetapi berbeda dengan Wireshark, Snort dapat dipakai sebagai komponen NIDS dengan menjalankannya pada Network Intrusion Detection System (NIDS) mode.  Pada modus yang terakhir ini, Snort akan menganalisa packet  berdasarkan rule yang ada untuk mengenali adanya upaya serangan hacker.

Untuk memulai menggunakan Snort, download requirement serta source Snort, kemudian build & install.  Bagi yang memakai distro Ubuntu, libdnet di distro tersebut adalah library yang berbeda dengan yang dibutuhkan Snort. Di Ubuntu, libdnet adalah DECNet libraries, sementara yang dibutuhkan oleh Snort diganti namanya menjadi libdumpnet.  Sebaiknya download source dari Google Code, kemudian install ke lokasi /usr, bukan /usr/local.  Caranya adalah dengan menambahkan argumen – -prefix=/usr pada saat memanggil script configure.

Berikut adalah contoh menjalankan Snort sebagai packet sniffer:

$ sudo snort -v
Running in packet dump mode

        --== Initializing Snort ==--
Initializing Output Plugins!
pcap DAQ configured to passive.
Acquiring network traffic from "eth0".
Decoding Ethernet

        --== Initialization Complete ==--

   ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.0.5 (Build 135)
   ''''    By Martin Roesch & The Snort Team: http://www.snort.org/snort/snort-team
           Copyright (C) 1998-2011 Sourcefire, Inc., et al.
           Using libpcap version 1.1.1
           Using PCRE version: 8.12 2011-01-15

Commencing packet processing (pid=31839)
06/05-12:07:03.524481 192.168.1.200:45263 -> 192.168.1.5:53
UDP TTL:64 TOS:0x0 ID:63753 IpLen:20 DgmLen:73 DF
Len: 45
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

06/05-12:07:03.582863 192.168.1.5:53 -> 192.168.1.200:45263
UDP TTL:255 TOS:0x0 ID:4887 IpLen:20 DgmLen:186 DF
Len: 158
...
===============================================================================
Run time for packet processing was 27.619079 seconds
Snort processed 19 packets.
Snort ran for 0 days 0 hours 0 minutes 27 seconds
   Pkts/sec:            0
===============================================================================
Packet I/O Totals:
   Received:           19
   Analyzed:           19 (100.000%)
    Dropped:            0 (  0.000%)
   Filtered:            0 (  0.000%)
Outstanding:            0 (  0.000%)
   Injected:            0
===============================================================================
... 

Untuk mencatat rekaman packet ke dalam file teks, Snort bisa dijalankan dengan memberikan perintah seperti:

snort -dev -l ./log

Perintah di atas akan menulis rekaman packet ke dalam direktori log (direktori ini harus sudah dibuat sebelumnya).

Dan untuk modus NIDS, tambahan argumen -c yang merujuk ke file konfigurasi Snort, seperti berikut ini:

snort -d -l ./log -c snort.conf

Pada perintah di atas, file konfigurasinya bernama snort.conf.

Untuk menjalankan Snort sebagai daemon (background process yang terus berjalan), tambahkan argumen -D seperti pada contoh ini:

snort -d -l /var/log/snort.log -c /etc/snort.conf -D

Bicara soal file konfigurasi, berikut adalah contoh isi file konfigurasi:

var LOG_IP 100.10.12.13
alert tcp $LOG_IP any -> any any (msg: "Akses Dari Dia"; sid:1;)

File konfigurasi di atas menyebabkan Snort menghasilkan alert dalam file bernama alert setiap kali IP 100.10.12.13 melakukan akses TCP, dengan pesan berupa “Akses Dari Dia”.  Tentu saja ini adalah contoh konfigurasi sederhana yang tidak banyak berguna, akan tetapi cukup untuk menunjukkan syntax file konfigurasi Snort yang lumayan rumit.  Contoh di atas mengandung sebuah variabel IP bernama LOG_IP.  Variabel tersebut dapat digunakan dengan menulis $LOG_IP yang akan disubstitusi dengan nilai yang sesungguhnya.

Argumen yang biasanya diberikan saat memanggil Snort juga dapat dituliskan ke file konfigurasi sehingga tidak perlu diberikan secara manual pada saat menjalankan Snort, seperti pada contoh berikut:

#sama dengan argumen -D
config daemon

#sama dengan argumen -d
config dump_payload

#sama dengan argumen -l
config logdir: /var/log/snort

var LOG_IP 192.168.1.2
alert tcp $LOG_IP any -> any any (msg: "Akses Dari Dia"; sid:1;)

Gunakan preprocessor untuk memakai processor yang sudah disediakan oleh Snort.  Sebagai contoh, untuk mendeteksi terjadinya port scanning, tambahkan konfigurasi berikut:

preprocessor stream5_global:\
        track_tcp yes, track_udp yes, track_icmp yes

preprocessor stream5_tcp:\
        policy first

preprocessor stream5_udp

preprocessor stream5_icmp

preprocessor sfportscan:\
        proto { all } \
        scan_type { all } \
        sense_level { high }

Konfigurasi di atas akan memakai preprocessor sfPortScan dari Source Fire.  Syarat untuk memakai sfPortScan adalah menggunakan preprocessor Stream5.  Sekarang, bila seseorang melakukan port scanning (yang merupakan tahap awal dalam serangan), misalnya dengan menggunakan tool Nmap:

$ nmap -A -v 192.168.1.22

Maka, Snort akan menghasilkan alert seperti berikut ini:

[**] [122:1:0] (portscan) TCP Portscan [**]
[Priority: 3] 
06/06-03:34:13.052153 192.168.1.49 -> 192.168.1.22
PROTO:255 TTL:64 TOS:0x0 ID:0 IpLen:20 DgmLen:158 DF

Alert tersebut menunjukkan bahwa seseorang dari IP 192.168.1.49 melakukan port scanning untuk komputer dengan IP 192.168.1.22.