Posts tagged ‘iptables’
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.
Mengatur Firewall Di Ubuntu
Berhubung sedang memiliki waktu luang, saya men-download Ubuntu terbaru, yaitu Ubuntu 11. Btw, memeriksa versi Ubuntu yang ter-install bisa dilakukan dengan memberikan perintah:
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 11.04 Release: 11.04 Codename: natty
Kesan pertama sama sekali tidak seperti yang saya harapkan, karena tiba-tiba di layar monitor muncul tulisan “Display Out Of Frequency”. Masalah resolusi? Kalau di monitor CRT zaman dahulu, bisa jadi monitor sudah rusak (tidak ada pengaman kalau frekuensi yang dipakai melewati batas frekuensi yang didukung monitor).. Untung saja lampu harddisk masih menunjukkan aktifitas, setelah proses GRUB berakhir, gambar di monitor tampil seperti biasanya. Semua mulai lancar setelah mengedit file /etc/default/grub, dengan menghilangkan tanda komentar (#) di file tersebut:
# The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' GRUB_GFXMODE=640x480
Jangan lupa update GRUB yang sesungguhnya dengan memanggil update-grub, setelah restart komputer, tampilan GRUB muncul kembali seperti biasanya.
Langkah pertama yang ingin saya lakukan adalah melakukan pengamanan pada sistem operasi yang baru terinstall ini. Hal ini dapat dilakukan dengan melakukan konfigurasi netfilter dengan perintah iptables. Akan tetapi bila perintah iptables dirasa terlalu rumit, Ubuntu menyediakan cara gampangnya yaitu dengan perintah ufw yang merupakan kepanjangan dari uncomplicated firewall. Perlu diperhatikan bahwa ufw bukanlah firewall-nya, melainkan hanya sebuah tool untuk mempermudah pengaturan firewall.
Fakta pertama yang harus diketahui adalah pada awalnya, firewall ‘dimatikan’. Ini berarti tidak ada filter yang terjadi. Untuk ‘menyalakan’ firewall melalui ufw, dapat menggunakan perintah seperti berikut:
# ufw enable Firewall is active and enabled on system startup
Seorang yang paranoid pasti akan memastikan seluruh aktifitas masuk dan keluar di-blokir, dengan memberikan perintah seperti:
# ufw default deny incoming Default incoming policy changed to 'deny' (be sure to update your rules accordingly) # ufw default deny outgoing Default outgoing policy changed to 'deny' (be sure to update your rules accordingly)
Setelah ini, perintah untuk mengatur firewall dapat diberikan. Sebagai contoh, untuk membolehkan hanya akses HTTP dan HTTPS keluar (termasuk akses DNS), berikan perintah seperti:
# ufw allow out http Rule added # ufw allow out https Rule added # ufw allow out 53/udp Rule added
Untuk melihat daftar rule yang sudah ada, berikan perintah seperti:
# ufw status Status: active To Action From -- ------ ---- 80/tcp ALLOW OUT Anywhere 443 ALLOW OUT Anywhere 53/udp ALLOW OUT Anywhere