Snort IPS
Sumber: https://fadhly.web.id/posts/snort-intrusion-prevention-system-dengan-ubuntu.html
Menyambung tulisan saya sebelumnya tentang IDS (Intrusion Detection System) , IDS sendiri bisa dikembangkan menjadi Intrusion Prevention System (IPS) artinya tidak hanya mendeteksi ketika ada intrusi, tapi juga menerapkan rule tertentu untuk mencegah agar server/system tidak tercemar. Kali ini untuk server yang digunakan tetap menggunakan ubuntu 12.10 dan paket snort dengan mysql dan acidbase. Untuk installasi snort standar bisa lihat post saya sebelumnya, jadi asumsinya snort mysql dan acidbase sudah terinstall.
Untuk merubah snort dari mode IDS menjadi IPS, snort harus dijalankan pada mode inline dengan data aquisition (daq), DAQ sendiri memiliki banyak type diantaranya NFQ, IPQ, AFPACKET dan IPFW. Masing-masing tipe ini merupakan skema penangkapan paket, misalnya: NFQ menggunakan Queue yang menggunakan antrian dan rule iptables, AFPACKET menggunakan skema FORWARD paket dari satu interface ke interface lain (membutuhkan 2 interface).
Untuk tulisan kali ini saya menggunakan AFPACKET karena tidak perlu konfigurasi tambahan pada iptables tapi syaratanya harus menggunakan dua interface/ethernet card. Oke langsung aja ya, sebelum konfigurasi IPS harus ada beberapa paket library tambahan yang harus di installkan. Instal paket tersebut dengan perintah dibawah ini:
sudo apt-get install libdnet libdaq0 libdaq-dev libdnet-dev libnfnetlink0 libnfnetlink-dev
Setelah paket selesai di install, cek apakah snort sudah bisa membaca modul daq dengan tipe afpacket. ketik perintah berikut:
snort --daq-list
pastikan daq afpacket ada, outputnya kira-kira sperti ini:
[plain highlight=”5″] 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
Selanjutnya edit konfigurasi snort di /etc/snort/snort.conf dan pastikan baris untuk rule local sudah enable (kalau perlu disable/delete rules lain):
[plain highlight=”1″] include $RULE_PATH/local.rules #include $PREPROC_RULE_PATH/preprocessor.rules #include $PREPROC_RULE_PATH/decoder.rules #include $PREPROC_RULE_PATH/sensitive-data.rules
Setelah diedit, masukkan rule baru yang akan dijadikan action ketika ada intrusi yang terdeteksi edit file /etc/snort/rules/local.rules contohnya:
drop tcp any any -> any 22 (msg: "Drop SSH"; sid: 1; ) drop tcp any any -> any 80 (msg: "Drop HTTP"; sid: 2; )
contoh diatas adalah contoh rules paling sederhana, ketika ada yang mengakses port SSH (22) atau HTTP (80) maka paket akan langsung di drop. Simpan file tersebut dan stop service snort yang sudah berjalan, karena kita akan menggunakan snort dengan mode yang berbeda.
sudo /etc/init.d/snort stop sudo su cd /etc/snort snort -Q --daq afpacket -i eth0:eth1 -c snort.conf &
Test dari client dengan melakukan akses http atau ssh, maka client akan langsung disconnect atau connection failed/refused 🙂 selamat mencoba 😀