Senin, 13 Juni 2011

membangun next-gen firewall berbasis Solaris Zones

SUMBER

Dear KIOSer,

abdi ada sedikit tutorial tentang bagaimana membangun sebuah next-generation network firewall berbasis Solaris Zones. sebetulnya - jaman dulu pada tahun 2006, proyek firewall berbasis Solaris Zones ini merupakan sebuah proposal dari abdi untuk sebuah perusahaan yang sedang kami garap network infrastrukturnya - tetapi, kebetulan pimpinan lebih memilih menggunakan linux iptables sebagai solusinya. its ok - jadi kita sama2 kembangkan di-KIOS ya :)

sebagai permulaan, konsep firewall ini meliputi :
1. implementasi Solaris Zones sebagai virtual router/virtual system
2. implementasi firewalling itu sendiri (menggunakan aplikasi ipfilter dari Solaris)
3. implementasi kemampuan proses routing (statik dan dinamis dgn Zebra-Quagga) dan switching/forwarding atau QoS
4. implementasi aplikasi lainnya yang dapat dimasukkan kedalam firewall - seperti Snort sebagai fungsi IDS/IPS, squid untuk web-cache dsb tergantung dari kebutuhan, yang bila kita tidak hati2 malah akan merusak firewall itu sendiri :)

ok, sekarang - sebelumnya agar kita paham dengan poin konsep diatas maka kita masuk kepada tahapan membaca referensi (dan ini merupakan hal yang terpenting) :
1. apa itu Solaris Zones?
http://www.sun.com/bigadmin/content/zones/index.jsp
disana didapat penjelasan tentang Solaris zones atau container, konsepnya dsb.

2. apa itu ipfilter?
http://coombs.anu.edu.au/~avalon/
secara singkat = ipfilter merupakan aplikasi firewall yang telah diadopsi oleh Solaris.

3. apa itu Quagga?
http://www.quagga.net/
secara singkat Quagga merupakan OSS routing daemon yang diadopsi oleh Solaris

4. snort? squid?
menyusul ya :) itu nanti setelah proses 1, 2 dan 3 kita kerjakan dan sukses :)

secara sederhana - ide dari membangun enterprise class next-generation firewall berbasis Solaris Zones ini akan berbentuk sbb :

http://i165.photobucket.com/albums/u66/rossonieri_1/SPEEDY/solaris-zones-fw/zone12.png

betul, skema diatas seperti kita memasang beberapa router firewall sekaligus dan menggunakannya secara serial (inline).

beberapa waktu yang lalu abdi telah berdiskusi membahas secara langsung dengan seorang Sun Microsystem engineer - yaitu Mr. Steffen Weiberle, yang sangat membantu dalam memberikan ide2 pengembangan/riset untuk proyek firewall ini, beserta link2 dari sesama Sun Microsystem engineer sbb :

Steffen Weiberle :
http://blogs.sun.com/stw/entry/what_hap … my_packets

Nicholas Droux :
http://blogs.sun.com/droux/entry/privat … or_solaris

Sunay Tripathi :
http://blogs.sun.com/sunay/entry/networ … x_creating

ada beberapa poin penting yang kami bahas - termasuk implementasi etherstub dan virtual NIC (vnic) pada proyek Solaris Crossbow http://opensolaris.org/os/project/crossbow/ sebagai media penyambung antar sistem pada Solaris Zones.

ok, kita mencoba untuk membahas semua dgn menggunakan metode tanya-jawab ya :)

1. implementasi Solaris Zones sebagai virtual router/virtual system

Q. kenapa membuat firewall dgn menggunakan teknologi Solaris Zones dan ipfilter? kelebihannya dibanding dgn mengembangkan firewall berbasis BSD atau linux iptables?
A. seperti yang kita ketahui bahwa BSD pf (seperti pfsense, monowall dsb) atau linux iptables adalah sebuah solusi network firewall yang sangat handal & telah dipasang pada banyak jaringan.

tetapi - sepengetahuan abdi - AFAIK, kedua sistem network firewall dari BSD dan linux iptables hanya memiliki satu (atau single) traffic flow pada sebuah sistem fisik yaitu secara sederhana sbb :

input ---> forward ---> output

jadi kita *hanya* memiliki 3 proses screening (ditambah 2 untuk pre dan post-routing pada linux iptables) - yaitu INPUT, FORWARD dan OUTPUT chain - maka selebihnya traffic akan sampai pada target.

pertanyaannya : bagaimana bila screening rule secara tidak sengaja meloloskan bad traffic?

peraturan #1 = semua berjalan sejajar, yaitu semakin mudah kita membuat sebuah firewall - maka semakin mudah pula untuk ditembus :)

perkenalan konsep Solaris Zone untuk aplikasi firewalling enterprise.
Q. apa itu virtual router atau virtual system?
A. virtual router berbeda dengan virtual system. tetapi sebagai pengantar saja - kita anggap keduanya adalah hal yang sama ya :)

virtual router/sistem adalah sebuah lingkungan routing atau sistem yang dibangun diatas sebuah sistem selain fungsi routing atau sistem yang dimiliki oleh sistem itu sendiri - jadi jumlah routernya (virtual router + host sistem) bisa lebih dari 2, dan independen (berdiri sendiri) antara 1 dengan lainnya.

dengan Solaris Zones - maka sebuah mesin fisik dapat dibagi menjadi beberapa bagian yang secara fisik tidak saling terhubung antara 1 zone dengan zone lainnya - hal ini jelas membuat biaya yang dikeluarkan semakin murah - yaitu, dapat sekaligus membuat beberapa sistem routing firewall pada 1 mesin fisik, dengan konfigurasi resources pada hardware (NIC, CPU, RAM dsb) yang dapat dikontrol lebih lanjut.

Q. hubungan penggunaan Zones dengan traffic flow diatas?
A. seperti kita ketahui tadi sistem firewall basis BSD ipfilter dan linux iptables - hanya memiliki single traffic flow - yaitu, INPUT (masuk), FORWARD (teruskan) dan OUTPUT (keluar) - bila bad traffic lolos dari ketiga proses screening tersebut maka akan langsung sampai kepada target. tentu saja hal ini yang akan kita coba hindari dengan menggunakan fungsi Solaris Zones -> agar mendapatkan multi-traffic flow sekaligus multi-screening sehingga bad traffic yang lolos pada flow pertama tidak langsung lolos pada flow kedua dst -> seperti terlihat pada gambar skenario diatas.

flow masuk dari zone WAN - di-screening dulu secukupnya, lolos dari situ maka akan di-route dan forward dan bertemu dengan persimpangan jalan lagi yaitu zone LAN atau zone DMZ dst lengkap dengan proses firewall screening maupun basic network address translation/NAT. intinya = multi-traffic flow & multi-screening point. semakin susah kita membuat firewall, semakin sulit untuk ditembus.

Q. bila sistem2 Zones tersebut tidak saling terhubung - bagaimana arus traffic-nya?
A. pada opensolaris 2009.06 atau SXCE build 115 telah diadopsi sebuah proyek bernama crossbow - yaitu implementasi virtual switch dan virtual NIC yang ditanam didalam mesin Solaris. jadi lebih merupakan sebuah mekanisme tunnel antar sistem lengkap berikut MAC address khusus layaknya sebuah hardware fisik -> ini dapat dipergunakan untuk menghubungkan Zones berikut implementasi ipfilter (firewall)

skenario-nya agak berbeda dari proposal abdi pada jadul tahun 2006, tapi insyaAlloh memiliki fungsi yang hampir sama :)

Q. caranya memulai membangun firewall berbasis solaris zones ini bagaimana?
A. yang kita butuhkan adalah source instalasi Solaris SXCE build 115 atau OpenSolaris 2009.06 (karena memiliki fitur penting yang sangat kita butuhkan yaitu proyek Crossbow).

abdi tidak akan membahas indepth untuk proses instalasi sistem Solaris - tapi link berikut http://opensource.telkomspeedy.com/foru … hp?id=3943 akan dapat memberikan gambaran bagaimana cara instalasi OpenSolaris SXCE berbasis text.

Q. kenapa instalasi berbasis text?
A. walaupun openSolaris 2009.06 yang berbasis x-windows GUI lebih nyaman untuk pemula & memiliki fitur yang hampir sama dengan SXCE b115, kita ingin membangun sebuah mesin Solaris yang sangat terbatas (stripped down) untuk digunakan sebagai firewall agar dapat meminimalisir eksploitasi dari fungsi aplikasi lainnya.

berikut adalah bagian opsi paling penting dari instalasi basis text pada SXCE agar kita dapat membuat sebuah stripped down Solaris machine sbg firewall :

http://i165.photobucket.com/albums/u66/rossonieri_1/hip-today/lsxcep1/14.gif

http://i165.photobucket.com/albums/u66/rossonieri_1/hip-today/lsxcep1/15.gif

kita buang bagian yang tidak kita butuhkan agar :
1. hemat tempat - kita pilih core system support
2. menghindari eksploitasi dari software yang tidak kita perlukan.

paket yang terpenting untuk membangun firewall ini adalah SUNWluzone (paket aplikasi zone)

Code:

# pkginfo -l|grep zone
   PKGINST:  SUNWluzone
      NAME:  Live Upgrade (zones support)
      DESC:  Live Upgrade (zones support)
   PKGINST:  SUNWzoner
   PKGINST:  SUNWzoneu
dan tentu saja paket ipfilter sebagai firewall : SUNWipfh + SUNWipfr + SUNWipfu (biasanya sudah terinstall secara default - tapi tidak online)

dan paket zebra/quagga sebagai routing daemon : SUNWquaggar + SUNWquaggau

seperti biasa - jangan lupa cek dependensi dari aplikasi diatas :)

note :
tetapi, sebelum kita membangun Solaris Zone ini - kita membutuhkan infrastruktur hardware terlebih dahulu di-install pada mesin - yaitu implementasi dari proyek crossbow (virtual switch etherstub, dan virtual nic vnic) - yang berguna sebagai penghubung internal antar sistem/zones - sehingga traffic tidak keluar dari mesin fisik (NIC secara fisik).

kedua virtual switch dan virtual NIC tersebut memiliki sifat virtual device yang dibuat melalui user interface perintah dladm (data link administration) pada zone global (induk) sebelum nanti akan dibagikan kepada child zone (zona anak) agar dapat difungsikan secara mandiri/independen dengan fungsi zonecfg ip-type=exclusive.

0 komentar: