25 Juni 2009

Memisah Traffick outgoing dengan PF

traffik yang berjalan pada suatu network tentunya sangat beragam service, dengan tujuan tertentu atau kebijakan network administrator, kadang diperlukan pemisahan outgoing untuk menstabilkan jaringan.
misalkan suatu perusahaan mempunyai kebijakan sebagai berikut:
kirim email dan terima lewat ISP A dan browsing lewat ISP B
mengapa administrator menerapkan kebijakan seperti itu, tentunya administrator punya alasan sendiri.
lalu bagai mana memisahkan traffick tersebut:
misalkan subnet network local adalah 192.168.0.0/24
  • ISP A IP address 202.x.xxx.10 netmask 255.255.255.252 gateway 202.x.xxx.9
  • ISP B IP address 202.x.xxx.18 netmask 255.255.255.252 gateway 202.x.xxx.17
maka rule nya adalah sbb:

$int_if="rl0"
$ext_ifA="rl1"
$ext_ifB="rl2"
$int_add="192.168.0.0/24"
$ext_addA="202.x.xxx.10"
$ext_addB="202.x.xxx.18"
$ext_gwA="202.x.xxx.9"
$ext_gwB="202.x.xxx.17"

pass in on $int_if route-to ( $ext_ifA $ext_gwA ) proto { tcp, udp } from $int_add to any port 25
pass in on $int_if route-to ( $ext_ifB $ext_gwB ) proto { tcp, udp } from $int_add to any port 80
pass in quick all
pass out quick all

Read More ..

09 Mei 2009

Pengantar Menejemen Bandwidth dengan ALTQ IV (Habis)

Pada session terakhir ini pada seri pengantar menejemen bandwidth dengan ALTQ, saya akan sedikit membahas tentang passing pada altq untuk kasus-kasus tertentu.
coba lihat rule altq di bawah ini.
altq on $int_if bandwidth 10M hfsc queue {ddef, dsatu, ddua, dtiga
queue ddef bandwidth 512Kb
queue dsatu bandwidth 1Mb
queue ddua bandwidth 128Kb
queue dtiga bandwidth 256Kb

pass out quick on $int_if inet from any to 192.168.1.0/24 queue dsatu
pass out queue on $int_if inet from any to 192.168.2.0/24 queue dsatu
pass out quick on $int_if inet from any to 192.168.3.0/24 queue dsatu
pass out quick on $int_if inet from any to { 192.168.4.1, 192.168.5.1 } queue ddua

dari rule diatas dapat di artikan sebagai berikut:

  1. bahwa rule altq dengan id dsatu di gunakan untuk banyak rule passing, yang artinya network 192.168.1.0/24, 192.168.2.0/24 dan 192.168.3.0/24 akan mempunyai bandwidth masing-masing sebesar 1Mb, satu network dengan network tidak saling berhubungan dan tergantung.
  2. untuk rule altq dengan id ddua digunakan untuk passing ip 192.168.4.1 dan 192.168.5.1 yang artinya bandwidth share.
tapi dalam menentukan kebijakan menejemen bandwidth yang perlu di perhatikan adalah :
  1. Pelajari dasar kebutuhan nertwork yang kita milik
  2. cari pendekatan yang akan kita gunakan, pendekatan tersebut meliputi : dari ip mana dan ke ip mana, protokol apa yang akan di shape, interface mana yang akan di shape dan service apa yang akan di shape.
  3. karena dengan mengetahui dua permasalahan diatas maka, administrator akan lebih mudah dalam membuat rule ALTQ.


Read More ..

03 Maret 2009

Pengantar Manajemen Bandwidth dengan ALTQ III

Seperti yang telah saya sampaikan diposting sebelumnya bahwa penulisan rule pf haruslah urut sesuai dengan aturannya dan tidak bisa di bolak-balik. adapun urutannya adalah sebagai berikut: variable, table, options, ALTQ, translating, forwarding, blocking dan passing. lalu apa hubungannya dengan posting kali ini?. bahasan kali ini adalah tentang rule passing untuk ALTQ dengan kasus yang spesial. karena rule passing juga tidak bisa di bolak-balik.

misalkan seorang administrator mempunyai kebijakan rule firewall sebagai berikut :
  1. bandwidth network 10.10.1.0/24 ke internet sebesar 128Kb
  2. bandwidth network 10.10.1.0/24 ke 192.168.1.0/24 sebesar 1Mb
  3. bandwidth network 10.10.2.0/24 sebesar 256Kb
  4. bandwidth network 10.10.3.0/24 sebesar 512Kb
  5. bandwidth link antar network 10.10.0.0/16 sebesar 10Mb
  6. bandwidth network 10.10.0.0/16 protocol icmp sebesar 128Kb
  7. bandwidth network 10.10.0.0/16 protocol tcp dan udp port 52 sebesar 128Kb
  8. bandwidth network 10.10.0.0/16 protocol tcp dan udp port 161 sebesar 128Kb
dalam penyusunan rule passing untuk kasus di atas adalah sebagai berikut :
  1. passing aturan nomor 6
  2. passing aturan nomor 7
  3. passing aturan nomor 8
  4. passing aturan nomor 5
  5. passing aturan nomor 2
  6. passing aturan nomor 1
  7. passing aturan nomor 3
  8. passing aturan nomor 4
misalkan aturan di atas tidak di penuhi, lalu apa yang terjadi ?
  1. ketika local link antar network 10.10.0.0/16 penuh, ping time akan naik
  2. link network 10.10.1.0/24 ke 192.168.1.0/24 yang sebesar 1Mb akan menjadi 128Kb
  3. permintaan port 161 klien akan time out karena bandwidth local link antar network 10.10.0.0/16 penuh
  4. masih banyak lagi tergantung kesalahan penempatan rules.

Read More ..

01 Februari 2009

Pengantar Manajemen Bandwidth dengan ALTQ II

Salah satu usaha yang kadang di perlukan dalam manajemen bandwidth adalah men-bypass bandwidth antar local network walaupun berbeda subnet. misalkan, local network tersebut mempunyai subnet 10.10.1.0/30, 10.10.1.4/30, 10.10.1.8/30 dan 10.10.1.12/30.
pada dasarnya secara default tiap-tipa subnet diatas akan terlimit, karena masing-masing mempunyai broadcast yang berbeda. lalu bagaimana jika ingin men-bypass bandwidth antar subnet-subnet yang di inginkan ?
pada awalnya saya mengira bahwa untuk men-bypass bandwidth dengan ALTQ saya bisa menggunakan script table pada pf. tapi ternyata dugaan saya salah.

semula saya mengira dengan script seperti ini

table local { 0.0.0.0/0, !10.10.1.0/24 }

altq on $ext_if bandwidth 2Mb hfsc queue {udef, usatu, udua, tiga, empat }
queue udef bandwidth 8Kb hfsc (default realtime 8Kb)
queue usatu bandwidth 128Kb hfsc (realtime 128Kb)

altq on $int_if bandwidth 2Mb hfsc queue {ddef, dsatu, ddua, dtiga, dempat }
queue ddef bandwidth 8Kb hfsc (default realtime 8Kb)
queue dsatu bandwidth 128Kb hfsc (realtime 128Kb)

pass out quick on $ext_if from 10.10.1.0/30 to local queue usatu
pass out quick on $int_if from local to 10.10.1.0/30 queue dsatu

dengan rule seperti diatas ternyata salah besar, dan network 10.10.1.0/30 akan terlimit walaupun ke network 10.10.1.0/24 atau ke subnet yang lain. mengapa ?
karena defaultnya rule altq dengan pf adalah deny. artinya walaupun untuk local network harus di definisikan berapa besar bandwidth yang harus di sediakan. karena dengan rule seperti diatas maka akan berarti dari nerwork 10.10.1.0/30 ke 10.10.1.0/24 tidak dilimit. ini sangat melanggar aturan dasar ALTQ. lalu apa keuntungannya ? jelas dengan rule default deny (mendifinisikan bandwidth local network) akan sangat membantu bila link antar subnet throughput-nya "terbatas". misalkan link antar BTS yang menggunakan media wireless.

table akan sangat ampuh untuk di gunakan untuk blocking, seperti yang banyak saya gunakan untuk membuat inclusive firewall. misalkan.

table local { 0.0.0.0/0, !10.10.1.0/24 }
block in quick on $int_if proto icmp from local to any

lalu bagaimana men-bypass bandwidth ?
letakkan rule passing local network pada baris paling atas.

Read More ..

30 Januari 2009

Angka 9 (Sembilan)

Angka sembilan adalah angka terahir di bilangan desimal. bila angka tersebut dikalikan dengan angka 1-9 maka akan menghasilkan angka yang bila di jumlahkan akan sama dengan sembilan pula.
biar lebih jelas lihat contoh berikut :

1 * 9 = 09 = 0 + 9 = 9
2 * 9 = 18 = 1 + 8 = 9
3 * 9 = 27 = 2 + 7 = 9
4 * 9 = 36 = 3 + 6 = 9
5 * 9 = 45 = 4 + 5 = 9
6 * 9 = 54 = 5 + 4 = 9
7 * 9 = 63 = 6 + 3 = 9
8 * 9 = 72 = 7 + 2 = 9
9 * 9 = 81 = 8 + 1 = 9

keistimewaan ini tidak di miliki oleh angka lain.


Read More ..

27 Januari 2009

Sejarah Internet Di UMM

Awal Internet dan Packet Radio Network di UMM

Tahun 1996, Universitas Muhammadiyah Malang (UMM) pertama kali tersambung ke internet secara dedicated. Sambungan dilakukan via VSAT TDMA Elektrindo Nusantara ke gateway AI3-ITB pada kecepatan 64 kbps. Kegiatan instalasi jaringan internet pertama kali ini mempunyai momen penting bagi cikal bakal perkembangan TI di UMM khususnya. Instalasi yang melibatkan langsung mahasiswa dengan dibekali pelatihan pengetahuan dasar teknologi internet, tidak pernah kami bayangkan sebelumnya. Dari sinilah perkembangan TI UMM dimulai.

Training UMM oleh CNRG ITB

Di tahun 1997-1998, kurang lebih seminggu tim CNRG ITB mendampingi secara tatap muka, yang saat itu adalah Yadi Heryadi, Luthfi Kisbiono Arif, dan Ismail Fahmi (selanjutnya diskusi secara online via mailing list). Sementara UMMNet yang saat itu dibina Bapak Drs Muizzudin, Bapak Eko Budi Cahyono, S.Kom, dan Bapak Rahmat Wijaya, SE dengan dibantu beberapa mahasiswa yang ternyata menjadi ujung tombak, antara lain Taufik Rahman, Siswanto, Nur Kholis Madjid, Berlian Rozak, Tri Widianto Andi Aminudin, Muhammad Nasar, Haerani Akbar, Saiful Bahri, dan Bima Finanto. Dalam kesempatan inilah diterangkan berbagai materi yang berkaitan dengan Internet dan TCP/IP. Dipraktekkan bagaimana sejumlah komputer saling dihubungkan hingga membentuk jaringan intranet dan internet. Bagaimana instalasi OS FreeBSD dan Linux pertama kalinya dengan metode ftp, dapat dibayangkan bagaimana heran dan sulitnya menerima pelajaran mengingat kami saat itu paling banter hanya mengenal DOS, windows3.11 dan windows 95. Disisi lain, ditunjukkan bagaimana cara memanfaatkan internet untuk menimba pengetahuan, telnet, email, mailing list, search enggine, dsb.. Untunglah, dengan pembagian tim menjadi lebih spesifik, masing-masing dapat juga menguasai barang aneh tersebut, walaupun masih sebatas instalasi, konfigurasi dan trouble shooting.

Hingga akhirnya kami mulai bisa memasang FreeBSD Release-1 untuk server internet pertama kalinya, yang dimotori tim Administrator seperti Siswanto, Tri Widianto, Taufik, Haerani Akbar dengan servis DNS, proxy, dan Web Server. Mulailah online di internet situs UMM pertama kali di http://www.umm.ac.id. Sementara tim Webmaster yang dimotori Nur Kholis Madjid, Berlian, Andi, dkk saat itu mulai sibuk mendesain tampilan web untuk mengisi situs barunya.

Materi NOS (Network Operating System) dan Linux, oleh Ismail Fahmi, diberikan secara unix sebagai alternatif pengembangan jaringan UMMNet berikutnya. Mulailah dibahas teknologi Packet Radio yang menggunakan modem 1200 bps dan radio FM VHF. Terpilih secara alamiah sebagai motor waktu itu Muhammad Nasar dan beberapa kawan, yang konon tertarik dengan pengembangan sistem telekomunikasi radio ini.

Mengembangkan jaringan Packet Radio

Packet radio terus di-oprek oleh Nasar, yang saat itu masih berkutat pada sofware NOS berbasis DOS sampai sekian lamanya, sampai-sampai muncul julukan baru oleh rekan-rekannya, “CNRG UMM” (Cilik-cilik Ngoprek Radio Ga mari-mari). Akan tetapi tidak lama setelah sentilan itu muncul, berhasillah di-setup Gateway Radio Packet se Malang Raya menggunakan sistem operasi Linux Slackware 3.5, dengan perangkat bekas seperti CPU 486DX, memory 16M dan HDD 40Gb, sebuah modem baycom TCM3105 yang dirakit sendiri, serta sebuah radio tranceiver FM-VHF dengan daya pancar 200 mili watt mengudara pada frekuensi 144.15 MHz lewat sebuah antena VHF Omnidirectional yang diletakkan di atas atap gedung perpustakaan pusat UMM.

Alokasi IP Amatir-pun dialokasikan oleh Onno W. Purbo YC1DAV dengan netmask 44.132.136/24 untuk kecepatan 1200bps, dan 44.132.137/24 untuk pengembangan berikutnya di kecepatan 9600bps.

Hari terus berganti, tim UMMNet pun yang status sebagai mahasiswa, setelah masa studi selesai, satu persatu mulai melangkahkan kaki menapak babak selanjutnya.

sumber : http://opensource.telkomspeedy.com

Read More ..

21 Januari 2009

Bekerja dengan Switch

Switch adalah device yang bekerja di layer 2 (Data Link) pada TCP/IP. Device ini selalu identik dengan bridge. karena kedua device ini akan memecah collosion domain yang besar menjadi collosion domain masing-masing port. Apa itu collosion domain ? collosion domain adalah kumpulan laju frame-frame yang banyak dalam jaringan sehingga memungkinkan untuk tubrukan antar frame. oleh karena itu, dengan switch atau dengan bridge maka kumpulan frame-frame yang banyak akan di pisah-pisah pada jalur masing-masing. Perbedaan switch dan bridge adalah swictch hardware base sedangkan bridge software base. lalu apa yang bisa di kerjakan oleh swicth ?
  1. Pengenalan MAC hardware yang konek ke masing-masing port.
  2. Forwarding frame antar port.
  3. Link redundan (hanya bisa di lakukan oleh manage switch).
lalu mengapa switch bekerja lebih baik daripada hub biasa ?
coba lihat gambar berikut :



misalkan
host-1 mempunyai MAC : 00:1c:f0:5b:9c:c1 konek ke port 1
host-2 mempunyai MAC : 00:1c:f0:5b:9c:c2 konek ke port 2
host-3 mempunyai MAC : 00:1c:f0:5b:9c:c3 konek ke port 3
host-4 mempunyai MAC : 00:1c:f0:5b:9c:c4 konek ke port 4
host-5 mempunyai MAC : 00:1c:f0:5b:9c:c5 konek ke port 5
host-6 mempunyai MAC : 00:1c:f0:5b:9c:c6 konek ke port 6

maka yang di lakukan oleh switch adalah sebagai berikut:
  1. Untuk pertama kali switch di nyalakan, switch mempunyai tabel address dalam keadaan kosong (tidak pengenali alamat apapun).
  2. Misalkan host-1 mengirim data ke host-2 maka switch akan mengenali bahwa port 1 konek dengan MAC 00:1c:f0:5b:9c:c1 lalu membroadcast ke alamat tujuan dengan mengirim frame ke semua port kecuali ke port dari mana frame tersebut berasal (di broadcast ke port 2,3,4,5 dan 6). bila sudah ada jawaban dari port tujuan (port 2) maka swicth akan menyimpan alamat MAC yang konek di port 2.
  3. Maka switch akan mempunyai database MAC sebagai berikut : port 1 00:1c:f0:5b:9c:c1, port 2 00:1c:f0:5b:9c:c2 dan port 3,4,5 dan 6 kosong.
  4. Misalkan host-1 mengirim data ke host-3, maka swicth akan mem-broadcast ke sumua port yang belum mepunyai alamat MAC, yaitu port 3,4, 5 dan 6.
  5. Setelah ada jawaban dari alamat tujuan, maka alamat MAC akan di simpan dalam database swicth. sehingga database swicth sebagai berikut : port 1 00:1c:f0:5b:9c:c1, port 2 00:1c:f0:5b:9c:c2 dan port 3 00:1c:f0:5b:9c:c3 dan port 4, 5 dan 6 kosong.
  6. Bila host-1 mengirim data kembali ke host-2, maka swicth akan langsung mengirim frame ke port-2 (karena alamat MAC sudah di simpan di database swicth) tanpa men-broadcast ke port lain.
  7. itu akan di lakukan terus menerus oleh swich bila ada frame yang melewatinya.
itulah sebabnya swicth bekerja lebih baik dari pada hub, karena hub tidak mempunyai tabel alamat MAC, sehingga tiap kali ada frame yang lewat akan terus di broadcast ke semua port sehingga mengurangi bandwidth dan kemungkinan collosion menjadi lebih besar.

walaupun swicth bekerja sudah cukup baik, masih di perlukan router untuk memisah broadcast domain bila network yang dimiliki cukup besar.

Read More ..

16 Januari 2009

Membangun Server Load Balancing beberapa Speedy dengan VLAN

Satu alasan mengapa membangun server load balancing beberapa speedy dengan VLAN adalah karena keterbatasan slot PCI yang ada di komputer server. kalau membangun warnet dengan koneksi 12 speedy akan menjadi masalah di slot PCI server yang pasti tidak ada yang sebanyak itu. maka salah satu solusinya adalah di buat VLAN tiap-tiap modem speedy dengan memanfaatkan salah satu fitur yang di miliki oleh swith, tentunya switch yang support VLAN. dalam kesempatan ini saya menggunakan switch cisco catalyst 2950 XL dengan FreeBSD sebagai routernya.



misalkan IP local modem adalah:
modem-1 192.168.1.1/24
modem-2 192.168.2.1/24
modem-3 192.168.3.1/24
modem-4 192.168.4.1/24
modem-5 192.168.5.1/24
modem-6 192.168.6.1/24

sedangkan Network local LAN adalah 192.168.0.0/24

maka persiapan pertama adalah install mesin FreeBSD dan kompile kernel.

#cd /sys/i386/conf
#cp GENERIC loadbalancer
#vi loadbalancer

untuk module kernel tambahkan option berikut:

device vlan
device pf
device pflog
device pfsync

#config loadbalancer
#cd ..
#make depend && make && make install && reboot &

#vi /etc/rc.conf

pf_enable="YES"
pf_program="/sbin/pfctl"
pf_rules="/etc/pf.conf"
network_interfaces="AUTO"
hostname="loadbalancer"
gateway_enable="YES"
ifconfig_lo0="127.0.0.1"
cloned_interfaces="vlan10 vlan20 vlan30 vlan40 vlan50 vlan60"
ifconfig_rl0="inet 192.168.0.1 netmask 255.255.255.0"
ifconfig_vlan10="inet 192.168.1.2 netmask 255.255.255.0 vlan 10 vlandev rl1"
ifconfig_vlan20="inet 192.168.2.2 netmask 255.255.255.0 vlan 20 vlandev rl1"
ifconfig_vlan30="inet 192.168.3.2 netmask 255.255.255.0 vlan 30 vlandev rl1"
ifconfig_vlan40="inet 192.168.4.2 netmask 255.255.255.0 vlan 40 vlandev rl1"
ifconfig_vlan50="inet 192.168.5.2 netmask 255.255.255.0 vlan 50 vlandev rl1"
ifconfig_vlan60="inet 192.168.6.2 netmask 255.255.255.0 vlan 60 vlandev rl1"

#vi /etc/pf.conf

ext_if1="vlan10" # speedy1
ext_if2="vlan20" # speady2
ext_if3="vlan30" # speedy3
ext_if4="vlan40" # speedy4
ext_if5="vlan50" # speedy5
ext_if6="vlan60" # speedy6

# Gateway Out #
ext_gw1 = "192.168.1.1"
ext_gw2 = "192.168.2.1"
ext_gw3 = "192.168.3.1"
ext_gw4 = "192.168.4.1"
ext_gw5 = "192.168.5.1"
ext_gw6 = "192.168.6.1"

nat on $ext_if1 from $lan_net to any -> ($ext_if1)
nat on $ext_if2 from $lan_net to any -> ($ext_if2)
nat on $ext_if3 from $lan_net to any -> ($ext_if3)
nat on $ext_if4 from $lan_net to any -> ($ext_if4)
nat on $ext_if5 from $lan_net to any -> ($ext_if5)
nat on $ext_if6 from $lan_net to any -> ($ext_if6)

pass in quick on $int_if route-to {($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2), ($ext_if3 $ext_gw3), ($ext_if4 $ext_gw4), ($ext_if5 $ext_gw5), ($ext_if6 $ext_gw6)} round-robin proto tcp from $lan_net to any flags S/SA modulate state

pass in quick on $int_if route-to {($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2), ($ext_if3 $ext_gw3), ($ext_if4 $ext_gw4), ($ext_if5 $ext_gw5), ($ext_if6 $ext_gw6)} round-robin proto { udp, icmp } from $lan_net to any keep state

pass out quick on $ext_if1 proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if1 proto { udp, icmp } from any to any keep state
pass out quick on $ext_if2 proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if2 proto { udp, icmp } from any to any keep state
pass out quick on $ext_if3 proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if3 proto { udp, icmp } from any to any keep state
pass out quick on $ext_if4 proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if4 proto { udp, icmp } from any to any keep state
pass out quick on $ext_if5 proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if5 proto { udp, icmp } from any to any keep state
pass out quick on $ext_if6 proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if6 proto { udp, icmp } from any to any keep state

berikut adalah konfigurasi switch

Interface FastEthernet 0/1
switchport access vlan 10
descriptions speedy 1

Interface FastEthernet 0/2
switchport access vlan 20
descriptions speedy 2

Interface FastEthernet 0/3
switchport access vlan 30
descriptions speedy 3

Interface FastEthernet 0/4
switchport access vlan 40
descriptions speedy 4

Interface FastEthernet 0/5
switchport access vlan 50
descriptions speedy 5

Interface FastEthernet 0/6
switchport access vlan 60
descriptions speedy 6

Interface FastEthernet 0/7
switchport mode trunk
switchport trunk allowed 1,10-60

lalu tinggal nyolokin modem-1 ke port cisco 1 sampai modem-6 ke port cisco 6 dan port cisco 7 di colokin ke server (rl1) sedangkan server (rl0) dicolokin ke hub client.

Read More ..

28 Desember 2008

Pengantar Menejemen Bandwidth dengan ALTQ

Dalam sebuah menejemen bandwidth ada 2 Prinsip yang menjadi dasar.
Pertama adalah bagaimana memaksimalkan penggunaan bandwidth yang dimiliki, misalkan mempunyai bandwidth 128Kbit, maka bagaimana dengan bandwidth 128Kb dapat digunakan secara maksimal dengan penggunaan banyak user maupun beberapa user, siang hari atau malam hari. dalam hal ini biasa digunakan pada sisi client misalkan kampus, warnet, MPG, corporate atau pelanggan rumah.
Kedua adalah bagaimana memberikan jaminan bandwidth yang sesuai dengan yang ditetapkan. misalkan bandwidth 128Kbit maka harus benar-benar 128Kbit boleh lebih tapi tidak boleh kurang, atau yang disebut dengan QoS (Quality of Service). dalam hal ini banyak di terapkan oleh provider.
Dalam menejemen bandwidth seperti kebutuhan di atas, ada beberapa teknik yang bisa di terapkan diantaranya adalah :
ALTQ (Alternate Queueing) dan CBQ (Class Base Queue) dengan cara seperti ini akan sangat cocok bila di terapkan pada sisi client, dimana client mempunya beberapa network/service yang masing-masing network/service mempunyai garansi bandwidth tapi memungkinkan untuk meminjam bandwidth network/service lain bila bandwidth network/service tersebut tidak terpakai atau idle.
ALTQ (Alternate Queueing) dan HFSC (Hierarchical Fair Service Curve) dengan cara seperti sebuah network/service akan di garansi dengan sebuah bandwidth dengan mendifinisikan realtime dan option lainnya seperti upperlimit dan linkshare. HFSC akan sangat cocok di terapkan pada sebuah provider agar menjamin bandwidth yang mengalir ke client benar-benar sesuai dengan besarnya bandwidth pelanggan.
disamping kedua teknik di atas dapat ditambah kan options-options sebagai berikut:
RED (Random Early Detection), RIO (RED In Out), dan PRIQ (Prioritas). Prioritas akan mempunyai nilai 1-7 dimana 1 adalah prioritas terbesar. dengan opsi PRIQ seorang admin dapat dengan mudah mendahulukan sebuah network/service untuk memperoleh bandwidth.
ada beberapa hal yang harus di perhatikan jika menggunakan ALTQ:
  1. PF dan ALTQ sudah terintegrasi dengan kernel FreeBSD 5.3 ke atas, untuk shapping masing-masing versi FreeBSD mempunyai sedikit perbedaan script, tapi untuk logging, blocking, forwarding, translating dan passing relatif sama.
  2. Interface yang hadap internet dianggap upstream dan interface yang hadap client dianggap downstream (FreeBSD 5.x) pada FreeBSD 6.x dan FreeBSD 7.x ada sedikit perbedaan.
  3. Beri options quick.
  4. Mesin limiter harus fungsi routing bukan translating.
  5. Beri nilai default minimal, 8Kbit
  6. Mendifinisikan variable akan lebih memudahkan editing dan perubahan struktur scripts.
  7. Urutan file pf adalah variable, options, ALTQ, Translating, Forwarding, Blocking dan Passing. (tidak boleh terbalik)
  8. Beri queue limit lebih panjang, default bernilai 50
  9. Agar memudahkan editing, penulisan script dibuat grouping atau bertingkat.
  10. Gunakan Interface yang mempunyai buffer yang besar seperti Intel (fxp).
  11. Atau menambah buffer interface dengan merubah nilai default buffer sebuah interface, (sysctl -w kern.ipc.maxsockbuf=(integer).
  12. Cek scripts sebelum loading file (pfctl -nf /etc/pf.conf)
  13. jangan lupa "dipantau".


Read More ..

11 Desember 2008

Membangun Firewall dengan IPFW

IPFW atau IP Firewall adalah salah satu service yang dimiliki oleh Operating System FreeBSD untuk membangun sebuah firewall. firewall ini bekerja pada layer 3 lapisan OSI (Open System Interconnection).
salah satu ciri dari firewall dengan IPFW adalah dalam pembacaan rule-nya akan di baca dari atas kebawah, bila ada traffick yang sudah sesuai dengan rule firewall dibagian atas, maka sistem akan mengeksekusi tanpa membaca atau membandingkan dengan rule di baris berikutnya. lalu bagaimana untuk membangun firewall ini ?

Untuk mengaktifkan IPFW tentunya kernel FreeBSD harus support IPFW dengan menambahkan options sebagai berikut:

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_DEFAULT_TO_ACCEPT
options DUMMYNET
options IPDIVERT


tambahkan pada /etc/rc.conf

firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_logging="YES"
natd_enable="YES"
natd_interfaces=""
natd_program="/sbin/natd"

Berikut adalah format IPFW:

CMD RULE_NUMBER ACTION LOGGING SELECTION STATEFULL
  1. CMD = /sbin/ipfw
  2. RULE_NUMBER = 0001, 0002, 0003, 0004 dst
  3. ACTION = pass, permit, allow, accept, deny atau drop
  4. LOGGING = optional
  5. SELECTION= tcp, udp atau icmp (daftar protokol ada di /etc/protocols). from src to dst, port number, in out, via IF.
  6. STATEFULL = optional

Seperti sudah di jelaskan di posting sebelumnya, bahwa fungsi firewall adalah sebagai berikut.

contoh passing

/sbin/ipfw add 0001 pass all from any to any
/sbin/ipfw add 0002 pass icmp from any to any estabilished
/sbin/ipfw add 0003 pass tcp from 192.168.1.0/24 to any 21 keep-state
/sbin/ipfw add 0004 pass tcp from any to me 21 in via fxp0

contoh blocking

/sbin/ipfw add 0001 deny all from any to any
/sbin/ipfw add 0002 deny icmp from any to any estabilished
/sbin/ipfw add 0003 deny tcp from 192.168.1.0/24 to any 21 keep-state
/sbin/ipfw add 0004 deny tcp from any to me in via fxp0

contoh logging, default logging akan di simpan di /var/log/security

contoh translating

/sbin/ipfw add divert natd all from any to any

contoh shaping

/sbin/ipfw add pipe 10 ip from any to 192.168.1.1 via fxp0
/sbin/ipfw pipe 10 config bw 128Kbit/s
/sbin/ipfw add pipe 20 ip from 192.168.1.1 to any via fxp0
/sbin/ipfw pipe 20 config bw 64Kbit/s


Read More ..