FreeBSD


Load Balancing 2 Line Speedy ini menggunakan paket office unlimitted.Kedua Modem di set sebagai Bridge.

Teori Singkat
Banyak pertanyaan dari teman-teman, terutama para operator warnet, admin jaringan sekolah/kampus dan korporasi tentang load balancing

dua atau lebih koneksi internet. Cara praktikal sebenarnya banyak dijumpai jika kita cari di internet, namun banyak yang merasa kesulitan pada saat diintegrasikan. Penyebab utamanya adalah karena kurang mengerti konsep jaringan, baik di layer 2 atau di layer 3 protokol TCP/IP. Dan umumnya dual koneksi, atau multihome lebih banyak diimplementasikan dalam protokol BGP. Protokol routing kelas ISP ke atas, bukan protokol yang dioprek-oprek di warnet atau jaringan kecil.

Berikut beberapa konsep dasar yang sering memusingkan:

1. Unicast
Protokol dalam trafik internet yang terbanyak adalah TCP, sebuah komunikasi antar host di internet (praktiknya adalah client-server, misal

browser anda adalah client maka google adalah server). Trafik ini bersifat dua arah, client melakukan inisiasi koneksi dan server akan

membalas inisiasi koneksi tersebut, dan terjadilah TCP session (SYN dan ACK).

2. Destination-address
Dalam jaringan IP kita mengenal router, sebuah persimpangan antara network address dengan network address yang lainnya. Makin menjauh
dari pengguna persimpangan itu sangat banyak, router-lah yang mengatur semua trafik tersebut. Jika dianalogikan dengan persimpangan di jalan, maka rambu penunjuk jalan adalah routing table. Penunjuk jalan atau routing table mengabaikan “anda datang dari mana”, cukup dengan “anda mau ke mana” dan anda akan diarahkan ke jalan tepat. Karena konsep inilah saat kita memasang table routing cukup dengan dua parameter, yaitu network address dan gateway saja.

3. Source-address
Source-address adalah alamat IP kita saat melakukan koneksi, saat paket menuju ke internet paket akan melewati router-router ISP, upstream provider, backbone internet dst hingga sampai ke tujuan (SYN). Selanjutnya server akan membalas koneksi (ACK) sebaliknya hingga kembali ke komputer kita. Saat server membalas koneksi namun ada gangguan saat menuju network kita (atau ISPnya) maka komputer kita sama sekali tidak akan mendeteksi adanya koneksi. Seolah-olah putus total, walaupun kemungkinan besar putusnya koneksi hanya satu arah.

4. Default gateway
Saat sebuah router mempunyai beberapa interface (seperti persimpangan, ada simpang tiga, simpang empat dan simpang lima) maka tabel routing otomatis akan bertambah, namun default router atau default gateway hanya bisa satu. Fungsinya adalah mengarahkan paket ke network address yang tidak ada dalam tabel routing (network address 0.0.0.0/0).

5. Dua koneksi
Permasalahan umumnya muncul di sini, saat sebuah router mempunyai dua koneksi ke internet (sama atau berbeda ISP-nya). Default gateway

di router tetap hanya bisa satu, ditambah pun yang bekerja tetap hanya satu. Jadi misal router NAT anda terhubung ke ISP A melalui interface A dan gateway A dan ke ISP B melalui interface B dan gateway B, dan default gateway ke ISP A, maka trafik downlink hanya akan datang dari ISP A saja. Begitu juga sebaliknya jika dipasang default gateway ke ISP B.

Bagaimana menyelesaikan permasalahan tersebut?
Konsep utamanya adalah source-address routing. Source-address routing ibaratnya anda dicegat di persimpangan oleh polisi dan polisi
menanyakan “anda dari mana?” dan anda akan ditunjukkan ke jalur yang tepat.

Pada router NAT (atau router pada umumnya), source-address secara default tidak dibaca, tidak dipertimbangkan. Jadi pada kasus di atas
karena default gateway ke ISP A maka NAT akan meneruskan paket sebagai paket yang pergi dari IP address interface A (yang otomatis akan mendapat downlink dari ISP A ke interface A dan diteruskan ke jaringan dalam).

Dalam jaringan yang lebih besar (bukan NAT), source-address yang melewati network lain disebut sebagai transit (di-handle dengan protokol BGP oleh ISP). Contoh praktis misalnya anda membeli bandwidth yang turun dari satelit melalui DVB, namun koneksi uplink menggunakan jalur terestrial (dial-up, leased-line atau fixed-wireless). Dalam kasus ini paket inisiasi koneksi harus menjadi source-address network downlink DVB,agar bandwidth downlink dari internet mengarah DVB receiver, bukan ke jalur terestrial.

Di lingkungan Linux, pengaturan source-address bisa dilakukan oleh iproute2. Iproute2 akan bekerja sebelum diteruskan ke table routing. Misal kita mengatur dua segmen LAN internal agar satu segmen menjadi source-address A dan satu segmen lainnya menjadi source-address B, agar kedua koneksi ke ISP terutilisasi bersamaan.

Penerapan utilisasi dua koneksi tersebut bisa mengambil tiga konsep, yaitu round-robin, loadbalance atau failover.

6. Round-robin
Misalkan anda mempunyai tiga koneksi internet di satu router NAT, koneksi pertama di sebut Batman, koneksi kedua disebut Baskin dan
koneksi ketiga disebut Williams, maka konsep round-robin adalah sang Robin akan selalu berpindah-pindah secara berurutan mengambil
source-address (bukan random). Misal ada satu TCP session dari komputer di jaringan internal, maka koneksi TCP tersebut tetap di
source-address pertama hingga sesi TCP selesai (menjadi Batman & Robin). Saat TCP session Batman & Robin tersebut belum selesai, ada ada request koneksi baru dari jaringan, maka sang Robin akan mengambil source-address koneksi berikutnya, menjadi Baskin & Robin. Dan seterusnya sang Robin akan me-round-round setiap koneksi tanpa memperhatikan penuh atau tidaknya salah satu koneksi.

Pasti anda sedang pusing membaca kalimat di atas, atau sedang tertawa terbahak-bahak.

7. Loadbalance
Konsep loadbalance mirip dengan konsep round-robin di atas, hanya saja sang Robin dipaksa melihat utilisasi ketiga koneksi tersebut di atas.
Misalkan koneksi Batman & Robin serta Baskin & Robin sudah penuh, maka koneksi yang dipilih yang lebih kosong, dan koneksi yang diambil menjadi Robin Williams. Request koneksi berikutnya kembali sang Robin harus melihat dulu utilisasi koneksi yang ada, apakah ia harus menjadi Batman & Robin, Baskin & Robin atau Robin Williams, agar semua utilisasi koneksi seimbang, balance.

8. Failover
Konsep fail-over bisa disebut sebagai backup otomatis. Misalkan kapasitas link terbesar adalah link Batman, dan link Baskin lebih kecil. Kedua koneksi tersebut terpasang online, namun koneksi tetap di satu link Batman & Robin, sehingga pada saat link Batman jatuh koneksi akan berpindah otomatis ke link Baskin, menjadi Baskin & Robin hingga link Batman up kembali.

*makan es krim Haagendaz dulu*

Tools NAT yang mempunyai ketiga fitur di atas adalah Packet Firewall (PF) di lingkungan BSD, disebut dengan nat pool. Saya belum
menemukan implementasi yang bagus (dan cukup mudah) di Linux dengan iproute2.

*Uraian panjang di atas hanyalah kata sambutan sodara-sodara…*

Berikut contoh implementasi load balance dua koneksi sesuai judul di atas. Dijalankan di mesin FreeBSD sebagai NAT router dengan dua
koneksi DSL Telkom, interface ethernet vr0 dan rl1.

Script koneksi DSL Speedy, speedy1 untuk koneksi pertama dan speedy2 untuk koneksi kedua. Sesuaikan interface, username dan
passwordnya. Jangan lupa, gunakan indent tab.

# /etc/ppp/ppp.conf
#################################################################
# PPP Sample Configuration File
# Originally written by Toshiharu OHNO
# Simplified 5/14/1999 by wself@cdrom.com
#
# See /usr/share/examples/ppp/ for some examples
#
# $FreeBSD: src/etc/ppp/ppp.conf,v 1.10 2004/11/19 17:12:56 obrien Exp $
#################################################################

default:
speedy1:
set device PPPoE:vr0
set speed sync
set mru 1492
set mtu 1492
set ctsrts off
enable lqr
set log phase tun
add default HISADDR
enable dns
set authname 11140xxx@telkom.net
set authkey xxx

speedy2:
set device PPPoE:rl1
set speed sync
set mru 1492
set mtu 1492
set ctsrts off
enable lqr
set log phase tun
add default HISADDR
enable dns
set authname 11140xxx@telkom.net
set authkey xxx

Aktifkan interface vr0 dan rl1

# ifconfig vr0 up
# ifconfig rl1 up

Jalankan PPPoE, Point to Point Protocol over Ethernet.

# /usr/sbin/ppp -quiet -ddial speedy1
# /usr/sbin/ppp -quiet -ddial speedy2

Jika koneksi Speedy berhasil, IP address dari Speedy akan di-binding di interface tunneling tun0 dan tun1

# ifconfig
tun0: flags=8051 mtu 1492
inet 125.165.112.232 –> 125.165.112.1 netmask 0xffffffff
Opened by PID 917
tun1: flags=8051 mtu 1492
inet 125.162.80.141 –> 125.162.80.1 netmask 0xffffffff
Opened by PID 937

Dan default gateway akan aktif

# netstat -nr |more
Routing tables

Internet:
Destination Gateway Flags Refs Use Netif Expire
default 125.162.80.1 UGS 0 17334 tun1
125.162.80.1 125.162.80.141 UH 1 0 tun1
125.165.112.1 125.165.112.232 UH 0 0 tun0

Serta konfigurasi resolver DNS pun akan terisi

#cat /etc/resolv.conf

nameserver 203.130.193.74
nameserver 202.134.0.155

Aktifkan Packet Firewall pf

# /etc/rc.conf
# — sysinstall generated deltas — # Thu Nov 6 19:38:59 2008
# Created: Thu Nov 6 19:38:59 2008
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.

fsck_y_enable=”YES”
gateway_enable=”YES”
sshd_enable=”YES”

ppp_enable=”YES”

pf_enable=”YES”
pf_rules=”/etc/pf.conf”
pf_flags=”"
pflog_enable=”YES”
pflog_logfile=”/var/log/pflog”
pflog_flags=”"

ifconfig_rl0=”inet 192.168.2.14 netmask 255.255.255.224″
ifconfig_vr0=”up”
ifconfig_rl1=”up”
defaultrouter=”"
hostname=”router.nabila.net”

Script Packet Firewall NAT dan balancing dengan round-robin (ganti round-robin dengan loadbalance jika lebih sesuai dengan kebutuhan anda).

Baris yang di-indent masih termasuk baris di atasnya. Entah kenapa tag malah menghilangkan karakter backslash.

#cat /etc/pf.conf
lan_net = “192.168.2.0/27″
int_if = “rl0″
ext_if1 = “tun0″
ext_if2 = “tun1″
ext_gw1 = “125.162.112.1″
ext_gw2 = “125.165.80.1″

# scrub all
scrub in all
# nat outgoing connections on each internet interface
nat on $ext_if1 from $lan_net to any -> ($ext_if1)
nat on $ext_if2 from $lan_net to any -> ($ext_if2)
# pass all outgoing packets on internal interface
pass out on $int_if from any to $lan_net
# pass in quick any packets destined for the gateway itself
pass in quick on $int_if from $lan_net to $int_if
# load balance outgoing tcp traffic from internal network.
pass in on $int_if route-to \
{ ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin \
proto tcp from $lan_net to any flags S/SA modulate state
# load balance outgoing udp and icmp traffic from internal network
pass in on $int_if route-to \
{ ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin \
proto { udp, icmp } from $lan_net to any keep state
# general “pass out” rules for external interfaces
pass out on $ext_if1 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if1 proto { udp, icmp } from any to any keep state
pass out on $ext_if2 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if2 proto { udp, icmp } from any to any keep state

Aktifkan script yang diperlukan di /etc/rc.local agar setiap reboot langsung bekerja.

ifconfig_rl0=”inet 192.168.2.14 netmask 255.255.255.224″
ifconfig_vr0=”up”
ifconfig_rl1=”up”

/usr/sbin/ppp -quiet -ddial speedy1
/usr/sbin/ppp -quiet -ddial speedy2

PF akan langsung bekerja membaca /etc/pf.conf.
Jika harus me-restart koneksi DSL Speedy, pastikan pppoe dimatikan dulu

# pkill ppp

Jika tidak, maka ppp akan membuat tunneling baru menjadi tun2, tun3 dan seterusnya.

Untuk memantau fungsi nat pool round-robin di atas bekerja atau tidak, bisa menggunakan tools pftop yang bisa diambil di

http://www.eee.metu.edu.tr/~canacar/pftop/

Jika anda mengoptimasikan koneksi jaringan juga dengan menggunakan proxy, misalnya Squid, maka proxy Squid jangan dipasang juga di

mesin router NAT tersebut, sebab saat Squid mengakses halaman web ke internet; oleh PF dianggap bukan sebagai koneksi NAT, jadi tidak

akan di-balance, dan akan stay mengambil interface utama dan default gateway pertama. Simpanlah mesin proxy/squid di belakang router NAT,

agar koneksi proxy ke internet menjadi trafik NAT yang akan di-balance oleh script PF di atas.

Thanks to Starchie dan Hengky atas tutorial basic PF di OpenBSD.

sumber : http://yulian.firdaus.or.id/2007/09/07/load-balance-speedy/

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”.

sumber:wetasem.blogspot.com

I’m new to FreeBSD and am trying to configure the firewall using IPFW, but I’m having a hard time understanding it as compare to Linux. Can you provide a small example on how to go about setting up the rules for a typical FreeBSD based Apache Web server?

A. Ipfirewall (ipfw) is a FreeBSD IP packet filter and traffic accounting facility.

IPFW is included in the basic FreeBSD install as a separate run time loadable module. The system will dynamically load the kernel module when the rc.conf statement firewall_enable=”YES” is used.
FreeBSD compile kernel for IPFW

This step is optional. You do not need to compile IPFW into the FreeBSD kernel unless you want NAT function enabled. However some old version may not have IPFW compiled. Here is a quick guide to compile kernel with IPFW.

Make sure IPFW support not compiled into the kernel:
#ipfw list
If you get an error that read as follows, you must now compile the source code for the kernel.
ipfw: getsockopt(IP_FW_GET): Protocol not available

Another option is open default kernel config file /usr/src/sys/i386/conf and look for IPFIREWALL option:
# grep IPFIREWALL /usr/src/sys/i386/conf
Building and Installing a Custom Kernel with IPFW

Copy default kernel file:
# cd /usr/src/sys/i386/conf
# cp GENERIC IPFWKERNEL

Add IPFW support:
# vi IPFWKERNEL
Append following directives:
options IPFIREWALL # required for IPFW
options IPFIREWALL_VERBOSE # optional; logging
options IPFIREWALL_VERBOSE_LIMIT=10 # optional; don’t get too many log entries
options IPDIVERT # needed for natd

Save and close the file. Building a Kernel, type following commnds:
# cd /usr/src
# make buildkernel KERNCONF=IPFWKERNEL
Install the new kernel:
# make installkernel KERNCONF=IPFWKERNEL
Now reboot the system:
# reboot
Step # 1: Enabling IPFW

Open /etc/rc.conf file
# vi /etc/rc.conf
Append following settings:
firewall_enable=”YES”
firewall_script=”/usr/local/etc/ipfw.rules”

Save and close the file..
Step # 2 Write a Firewall Rule Script

You need to place a firewall rules in a script called /usr/local/etc/ipfw.rule:
# vi /usr/local/etc/ipfw.rules
Append following code:

IPF=”ipfw -q add”
ipfw -q -f flush

#loopback
$IPF 10 allow all from any to any via lo0
$IPF 20 deny all from any to 127.0.0.0/8
$IPF 30 deny all from 127.0.0.0/8 to any
$IPF 40 deny tcp from any to any frag

# statefull
$IPF 50 check-state
$IPF 60 allow tcp from any to any established
$IPF 70 allow all from any to any out keep-state
$IPF 80 allow icmp from any to any

# open port ftp (20,21), ssh (22), mail (25)
# http (80), dns (53) etc
$IPF 110 allow tcp from any to any 21 in
$IPF 120 allow tcp from any to any 21 out
$IPF 130 allow tcp from any to any 22 in
$IPF 140 allow tcp from any to any 22 out
$IPF 150 allow tcp from any to any 25 in
$IPF 160 allow tcp from any to any 25 out
$IPF 170 allow udp from any to any 53 in
$IPF 175 allow tcp from any to any 53 in
$IPF 180 allow udp from any to any 53 out
$IPF 185 allow tcp from any to any 53 out
$IPF 200 allow tcp from any to any 80 in
$IPF 210 allow tcp from any to any 80 out

# deny and log everything
$IPF 500 deny log all from any to any

Save and close the file.
Step # 3: Start a firewall

You can reboot the box or you could reload these rules by entering on the command line.
# sh /usr/local/etc/ipfw.rules
Task: List all the rules in sequence

Type the following command:
# ipfw list
Further readings:

* Refer ipfw man page
* Read IPFW chapter from FreeBSD handbook
* Read the FreeBSD kernel configuration file format chapter from FreeBSD handbook

ref:http://www.cyberciti.biz/

1. Konfigurasi Kernel

Ada beberapa opsi konfigurasi yang harus ditambahkan pada kernel agar ipfw dapat digunakan, Opsi yang akan di tambahkan pada file kernel antara lain :

options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE #informasi firewallnya
options IPFILTER #dukungan untuk ipfilter
options IPFILTER_LOG #log ipfilter

#options IPFIREWALL_DEFAULT_TO_ACCEPT

Jika anda menginginkan default firewall menjadi terbuka, tambahkan saja opsi tersebut.

2. Kompilasi kernel

# cd /usr/src/sys/i386/conf; config CONFIG_KERNEL_
# cd ../../compile/CONFIG_KERNEL
# make depend; make

3. Instalasi Kernel

Jika proses diatas selesai tanpa ‘error’ maka perintah terakhir

#make install
#init 6

4. Menggunakan ipfw untuk membuat ACL (access control list)
Secara dasar aturan untuk ipfw sebagai berikut :

ipfw action number [allow|deny] [all|tcp|udp|ip] darimana kemana via apa

Ubah user menjadi root, contoh nya :

#su

Membolehkan localhost untuk berkomunikasi dengan dirinya sendiri :

/sbin/ipfw add 100 pass all from any to any via lo0
/sbin/ipfw add 200 deny all from any to 127.0.0.0/8

Membolehkan localhost untuk berkomunikasi ke siapa saja melalui ethernet

/sbin/ipfw add 300 allow all from IP_ANDA to any

Membolehkan koneksi normal yang sudah terhubung dengan baik

/sbin/ipfw add 350 allow tcp from any to any established

Jika anda menjalankan webserver dan mailserver, anda memerlukan port 80 dan 25 agar dapat

di akses oleh host yang lain.

/sbin/ipfw add 400 allow tcp from any to any 80
/sbin/ipfw add 500 allow tcp from any to any 25

Membolehkan data tipe udp untuk dikirimkan dari nameserver sebagai fungsi DNS :

/sbin/ipfw add 600 allow udp from DNS_SERVER 53 to IP_ANDA

Membolehkan seluruh ICMP kecuali ping :

/sbin/ipfw add 700 deny icmp from any to YOUR_IP_HERE icmptypes 8
/sbin/ipfw add 800 allow icmp from any to any

Jika anda ingin host berjalan dengan tipe firewall terbuka, tambahkan di file /etc/rc.conf

firewall_enable=”YES”
firewall_type=”OPEN”

Semoga Bermanfaat.
sumber:purwakarta.org

Firewall adalah satu seperangkat software dan hardware yang bertugas menyaring paket-paket yang lewat sesuai dengan aturan yang dimilikinya. firewall biasanya terpasang antara jaringan internet dengan jaringan local, atau juga antara jaringan local dengan jaringan local. dalam proses filterisasi, firewall mempunyai dua macam aturan yang dimiliki, yaitu exclusive firewall dan inclusive firewall. exclusive firewall yaitu firewall yang mengizinkan semua paket traffick yang lewat kecuali paket-paket yang sesuai dengan rulenya (default-allow). sedangkan inclusive firewall adalah menolak semua paket traffick yang lewat kecuali paket-paket yang sesuai dengan rulenya (default-deny).

Dalam penerapan sesungguhnya, inclusive firewall jauh lebih aman dari pada exclusive firewall. tapi dalam proses pembuatan aturan juga jauh lebih sulit, karena harus teliti dalam pembuatan rule terutama unregistered port dan proses-proses pasif. firewall dapat dibangun pada layer 3, 5 dan 7 pada lapisan OSI.
Komponen firewall adalah sebagai berikut :
Passing.
Blocking.
Translating.
Shaping.
Forwarding.
Logging.
untuk melaksanakan fungsi di atas firewall selalu membaca beberapa parameter yang menjadi bagian rulenya, adapun parameter tersebut adalah:

Alamat (IP) asal
Alamat (IP) tujuan
Port asal (/etc/services)
Port tujuan (/etc/services)
Interface
Protocol (/etc/protocols)
Options
Pada Operating System FreeBSD, firewall (layer 3) dapat dibangun dengan IPFW (IP Firewall), IPF (IP Filter) dan PF (Paket Filter). IPFW adalah firewall yang merupakan bawaan dari FreeBSD, sedangkan IPF adalah asli bawaan NetBSD dan FP adalah bawaan dari OpenBSD. PF ada dalam kernel FreeBSD mulai FreeBSD 5.3 dan sesudahnya.

Untuk masing-masing firewall diatas, Insya Allah akan dibahas pada posting selanjutnya.

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

CMD = /sbin/ipfw
RULE_NUMBER = 0001, 0002, 0003, 0004 dst
ACTION = pass, permit, allow, accept, deny atau drop
LOGGING = optional
SELECTION= tcp, udp atau icmp (daftar protokol ada di /etc/protocols). from src to dst, port number, in out, via IF.
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

A. Pendahuluan

Unix dirancang agar dapat digunakan secara simultan oleh banyak orang (multi user), dan memiliki desain TCP/IP built-in. Unix merupakan sistem operasi pertama yang dikembangkan sebagai sistem operasi yang portabel, dan lebih umum digunakan untuk mendukung workstation dan server-server internet. Pertama kali dirancang oleh Ken Thompson dan Dennis Ritchie, peneliti AT&T Bell Laboratories pada tahun 1996, diilhami oleh desain sistem MULTICS yang dikembangkan oleh MIT.

Dibawah pengembangan institusi-institusi riset dan para mahasiswa dari berbagai belahan dunia, dalam waktu relatif singkat Unix tumbuh dengan pesat dan menjadi kompetitor utama Microsoft Windows yang selama ini mendominasi pasar server dan sistem operasi komputer. Saat ini telah lahir puluhan varian atau “flavor” Unix seperti Sun Solaris, IBM AIX, Hewlett-Packard HP/UX, Linux, FreeBSD, NetBSD, OpenBSD, dan lain-lain. Sistem-sistem tersebut umumnya telah teruji dengan baik sehingga bisa diaplikasikan pada platform PC, Macintosh, Sun, bahkan IBM mainframe.

Unix BSD (BSD Unix) adalah implementasi sistem operasi Unix (beserta utilitinya) yang dikembangkan dan didistribusikan oleh University of Californa at Berkeley. Unix BSD (Berkeley Software Distribution) biasanya disebut sebagai BSD Operating System.

FreeBSD adalah UNIX−like operating system (sistem operasi seperti UNIX), tersedia gratis di internet, sangat banyak digunakan dalam dunia ISP (Internet service provider), embedded devices, serta bidang lain yang membutuhkan reliability tinggi. FreeBSD dibuat dari source code UNIX original yang diproduksi oleh AT&T tahun 1970.

Bertahun-tahun yang lalu, AT&T membutuhkan banyak komputer untuk menjalankan bisnis mereka. Saat itu, AT&T dilarang untuk ikut dalam bisnis komputer. Sehingga akhirnya mereka menjual lisensi software mereka beserta source codenya ke universitas dengan harga yang murah. Mahasiswa universitas yang dapat mengakses teknologi ini dapat membaca source code dan belajar bagaimana software tersebut bekerja. Sebagai imbalan, AT&T mendapat programmer gratis, patch gratis, serta para scientist yang meningkatkan kualitas software AT&T. semua orang senang.

Software AT&T yang sangat terkenal dalam lisensi ini adalah UNIX. kenapa disebut UNIX−like? Kata UNIX” adalah sebuah nama trademark (merk dagang) yang dimiliki oleh The Open Group. Jadi, jika Anda mempunyai produk operating system dan ingin diberi nama UNIX, produk Anda harus di-certified oleh The Open Group dan Anda harus membayar uang yang cukup banyak ke mereka. Karena FreeBSD dibuat bukan untuk profit, maka namanya menjadi UNIX-like.

Di Indonesia para pemakai komputer lebih mengenal sistem operasi alternatif Linux daripada varian Unix BSD (FreeBSD, NetBSD, dan OpenBSD).

B. Sejarah Unix BSD

Perjalanan panjang Varian Unix BSD dimulai pada
tahun 1973, dimana pada waktu itu Prof. Bob Fabry dari Universitas California Berkeley menyatakan minat untuk mendapatkan sistem operasi Unix kepada Ken Thompson dan Dennis Ritchie pada kegiatan ”Symposium on Operating Systems Principles” di Universitas Purdue. Prof. Bob Fabry bermaksud mendapatkan Unix untuk eksperimen pada sebuah mainframe milik Universitas Berkeley. Pada tahun 1974 sebuah tape yang berisi Unix versi 4 datang ke Berkeley dan di-install-kan oleh mahasiswa pasca sarjana Keith Standiford pada komputer PDP-11/45.

Meskipun komputer PDP-11/45 pada saat itu diklaim komputer yang cukup mudah untuk menginstall Unix, namun pada kenyataannya berbagai macam masalah dihadapi oleh Keith Standiford dalam menjalankan Unix pada PDP-11/45, karena itu Ken Thompson di Bell Labs AT&T New Jersey melakukan remote debugging pada mesin PDP-11/45 milik Universitas Berkeley di California, karena Universitas Berkeley hanya memiliki 300-baud acoustic-coupled modem, maka Ken Thompson melakukan panggilan terlebih dahulu kepada Keith Standiford diruangan komputer PDP-11/45 tersebut untuk selanjutnya meminta Keith Standiford memasukkan sambungan telepon tersebut ke modem. Dengan demikian Ken Thompson dari New Jersey di pantai timur Amerika Serikat dapat melakukan remote debugging ke Universitas California Berkeley di pantai barat Amerika Serikat.

Masalah yang lain muncul yaitu karena status komputer PDP-11 adalah milik bersama Departemen Matematika dan Statistika juga, departemen tersebut ingin menjalakan RSTS dari DEC, sedangkan Departemen Ilmu Komputer ingin menjalan Unix. Akhirnya kata sepakat dicapai dengan menjalankan masing-masing sistem secara bergantian.

Pada tahun 1975, Departemen Ilmu Komputer Universitas California Berkeley membeli komputer baru sebuah DEC 11/70. Pada tahun yang sama Ken Thompson menjadi Profesor Tamu pada almamaternya yaitu Universitas California Berkeley, Ken Thompson datang dengan membawa sistem operasi Unix versi 6. Dua orang mahasiswa pasca sarjana yaitu Bill Joy dan Chuck Haley membantu Ken Thompson untuk meng-hacked Unix versi 6 tsb pada komputer DEC 11/70. 1

Pada akhir musim panas 1976, Ken Thompson kembali ke Bell Labs New Jersey, seiring dengan kepergian Ken Thompson, Bill Joy dan Chuck Haley mulai mengoprek kernel sistem operasi Unix versi 6 tersebut, berbekal dengan pengalaman satu tahun terakhir mengoprek Unix bersama Ken Thompson sebelumnya.

Akhirnya pada awal tahun 1977, Bill Joy mengeluarkan ”Berkeley Software Distribution”, pada distribusi pertama mencakup pula compiler Pascal dan editor Ex. Pada tahun 1978 Bill Joy memutuskan software yang ada pada distribusi harus diperbaharui seiring dengan banyaknya feedback dari komunitas, hasilnya pada tahun 1978 tersebut keluar ”Second Berkeley Software Distribution” atau disingkat 2BSD, termasuk didalamnya compiler Pascal, editor vi dan termcap.

Pada tahun 1978, Departemen Ilmu Komputer Universitas Berkeley, membeli sebuah komputer VAX-11/780 dari DEC, meskipun komputer tersebut sudah memiliki sistem operasi sendiri yang dikenal dengan nama VMS, namun Departemen Ilmu Komputer menginginkan Unix 32/v (Seventh Edition) dapat berjalan diatas komputer VAX-11/780 tersebut. Lagi-lagi Bill Joy diminta membantu melakukan porting Unix 32/V tersebut untuk mesin VAX-11/780, pada awal Januari 1979, akhirnya Unix 32/V (Seventh Edition) dapat berjalan dengan mulus pada komputer VAX tersebut, pada saat itu juga Bill Joy, memutuskan untuk melakukan porting 2BSD untuk komputer VAX dengan pertimbangan komputer VAX tersebut jauh lebih canggih (berarsitektur 32 bit) daripada PDP-11 yang hanya 16 bit. Pada bulan Januari 1979 distribusi lengkap telah diselesaikan hasilnya 3BSD sebagai distribusi sistem VAX pertama dari Berkeley.

Pada musim gugur 1979, Prof Bob Fabry, merepson keinginan DARPA (Defense Advanced Research Projects Agency ) untuk memperbaiki 3BSD untuk kepentingan komunitas DARPA, dimana pada waktu itu untuk keperluan mengkoneksikan semua komputer pada pusat-pusat riset. Untuk lebih memantapkan pekerjaan dari DARPA tersebut, Prof Bob Fabry, membentuk CSRG (Computer System Research Group).

Pada Oktober 1980 lahir 4BSD, selama 9 bulan kedepan sejak kelahirannya sebanyak 150 kopi telah dikirimkan. Lisensi dibuat berdasarkan institusi bukan per komputer. Karena sudah tersebar luas 4BSD banyak menuai kritik terutama masalah kinerja yang dinilai masih lamban daripada VMS. Untuk itu pada Juni 1981, 4.1BSD lahir dengan berbagai macam perbaikan. Pada awalnya distribusi tersebut akan diberi nama 5BSD, namun pihak AT&T keberatan karena akan membingungkan pelanggan, karena pada saat itu terdapat juga sistem operasi Unix system V, untuk itu Berkeley mengalah dan memberi nama distribusi tersebut 4.1BSD. DARPA cukup puas dengan hasil yang diperoleh dan berminat untuk memperpanjang kontrak dengan CSRG. DARPA berharap hasil kerja berikutnya adalah: fast file system untuk mendukup teknologi disk yang ada pada saat itu, fasilitas komunikasi interproses agar para peneliti DARPA dapat bekerja dalam lingkungan distributed computing, dan fasilitas networking yang terintegrasi sehingga dapat berpartisipasi dalam ARPAnet. Sebagai pendahuluan release pada April 1982, dikeluarkan 4.1aBSD untuk keperluan lokal saja (Berkeley dan DARPA), pada saat itu banyak kritik dan saran perbaikan untuk 4.1aBSD, untuk itu pada Juni 1982 dikeluarkan 4.1bBSD. Release 4.1b BSD ini cukup stabil dan baik maka pada April 1983 dikeluarkan 4.1c BSD. Dengan sedikit perbaikan pada 4.1c BSD, pada Agustus 2003 dikeluarkan 4.2BSD. 4.2BSD pada saat itu sangat populer, lebih dari 1000 institusi mempunyai lisensi 4.2BSD tersebut, para vendor pun pada saat itu lebih suka menawarkan 4.2BSD ketimbang Unix system V karena 4.2BSD mempunyai fasilitas Networking dan Fast File System.

Dengan berbagai macam kritik dan feedback, maka pada tengah 1986 di-release 4.3BSD, selanjutnya pada Juni 1988 di-release 4.3BSD Tahoe dan pada Juni 1990 di-release 4.3BSD Reno. Selain release tsb ada pula release networking yaitu: 4.3BSD Net1 pada Maret 1989 dan 4.3BSD Net2 pada Juni 1991. Release ini tidak tidak memiliki source code yang bersifat proprietary sehingga dapat secara bebas didistribusikan dalam bentuk source code maupun binary.

Release terakhir dari CSRG adalah 4.4BSD, pada saat yang bersamaan juga CSRG me-release 4.4BSD-Lite yang berisi source code non-proprietary dan users tidak perlu memiliki lisensi Unix, namun 4.4BSD-Lite ini mendapat aksi legal dari USL (Unix System Laboratories) yang mengklaim 4.4BSD-Lite mengandung source code asli Unix dari AT&T, hal ini berlanjut hingga ke pengadilan. Setelah 1 tahun proses pengadilan berlangsung akhirnya USL dan BSD mencapai kata sepakat (damai), sisa uang yang ada pada CSRG dipakai untuk me-release 4.4BSD-Lite release 2 pada Juni 1995.

C. Sejarah dan Perkembangan FreeBSD

Proyek FreeBSD dimulai pada awal 1993, sebagian sebagai perkembangan dari “Unofficial 386BSD Patchkit” dari 3 koordinator “patchkit” ini, yaitu: Nate Williams, Rod Grimes dan Jordan Hubberd.

Versi resmi pertama yang dirilis adalah FreeBSD 1.0 pada Desember 1993, yang dikoordinasikan oleh Kordan Hubbard, Nate Williams dan Rod Grimes dengan nama yang diajukan oleh David Greenman. Walnut Greek CDOM yang kemudian menyetujui untuk mendistribusikan FreeBSD dalam CD dan memberikan sebuah mesin untuk bekerja dalam proyek tersebut, dalam koneksi internet yang cepat, yang kemudian dikatakan oleh HUbbard sangat membantu perkembangan cepat FreeBSD. Pada bulan Mei 1994 FreeBSD 1.1 yang sukses dirilis. Akan tetapi, terdapat beberapa perhatian tentang legalitas ‘BSD Net/2 release source code’ yang digunakan pada 386BSD. Setelah sebuah perkara hukum antara UNIX yang mempunyai copyright, Uniix System Laboratories dengan University of California, Berkeley, proyek FreeBSD kembali membangun kebanyakan sistem dengan menggunakan 4.4 BSD-Lite yang dirilis Berkeley, yang membuat perkara hukum ini tidak mempunyai satupun AT&T source code yang dimiliki BSD yang pertama, yang membuatnya tidak dapat digunakan. Dengan usaha yang besar kemudian dirilis sebagai FreeBSD 2.0 pada Januari 1995.

FreeBSD 2.0 memberi fitur yang merubah fitur original memori sistem virtual Carnegie Mellon University Mach, yang dioptimasi untuk performa dalam beban yang tinggi. Rilis-an ini juga mengenalkan sistem FreeBSD Ports, yang membuat instalasi, pen-download-an dan pembentukan software pihak ketiga menjadi sangat mudah. Pada tahun 1996 FreeBSD telah menjadi populer di kalangan komersil dan pengguna ISP, yang digunakan pada situs-situs sukses seperti Walnut Creek CDROM, Yahoo! dan Hotmail. Versi terakhir dari versi 2 FreeBSD, yaitu versi 2.2.8 dirilis pada November 1998.

FreeBSD 3.0 membawa banyak perubahan, berganti format ke format ELF binary. Sistem SMP dan platform 64bit ALpha juga didukung pada versi ini. Versi stabil-3 diakhiri dengan versi 3.5.1 pada Juni 2000.

Rilis terakhir yang stabil dari FreeBSD adalah versi 7.0 yang dirilis pada Februari 2008.

D. Hardware Requirements

§ Minimum configuration:

ü 386 based PC

ü RAM 5 MB

ü HD 60 MB

ü MDA (VGA or better run X)

§ Comfortable configuration:

ü Low end Pentium (P90)

ü 16 MB RAM

ü 400 MB Hard disk

ü Cheap S3 video card

E. Varian BSD

Asal muasal varian BSD berasal dari hasil kerja keras Bill Jolitz yang memporting 4.3BSD Net2 kedalam arsitektur 386, hasilnya disebut 386/BSD. Sebagian orang-orang yang menggunakan 386/BSD kemudian membentuk grup yang dikenal dengan nama NetBSD karena Bill Jolitz pada saat itu sudah sangat sibuk dengan pekerjaan utamanya, sehingga tidak sempat untuk melakukan perbaikan terhadap 386/BSD. Grup NetBSD ini yang kemudian memelihara dan memperbaiki 386/BSD. Kelompok NetBSD ini memilih tujuan untuk mendukung sebanyak mungkin platform/arsitektur. Kelompok FreeBSD terbentuk beberapa bulan setelah NetBSD terbentuk dengan tujuan mendukung arsitektur PC i386 saja pada awalnya. Kelompok OpenBSD terbentuk belakangan ini berpisah dari kelompok NetBSD, dengan fokus pada aspek keamanan.

Secara umum ada dua turunan dari 4.4BSD ini yaitu:

  1. Komersial

Yang termasuk kedalam varian BSD komersial adalah :

a. BSD/OS (http://www.bsdi.com)

BSD/OS dipasarkan oleh BSD, Inc.

b. DarwinOS (http://developer.apple.com/darwin/)

Darwin merupakan bagian penting dari sistem operasi MacOS X. Darwin menggabungkan beberapa teknologi dari Mach dengan sistem operasi 4.4BSD.

  1. Bebas (menggunakan lisensi BSD)

Yang termasuk kedalam varian BSD bebas (menggunakan lisensi BSD)

a. NetBSD (http://www.netbsd.org)

NetBSD fokus pada penyediaan sistem operasi NetBSD pada berbagai macam arsitektur komputer, saat ini sudah mendukung lebih dari 40 arsitektur, mulai dari 64 bit Alpha Server dan desktop system hingga handheld dan embeded system.

Ketika Jolitz dan rekan-rekan lain memfokuskan diri dalam proyek 386BSD, mereka menemui kendala dalam pengerjaannya dan karena itu mulai mengembangkan usaha paralel. Rekan-rekan di Virginia Tech selanjutnya mulai mem-porting BSD ke Macintosh. Usaha terus dikembangkan ke arsitektur lainnya seperti Atari ST, Amiga, dan berbagai platform PC.

Fokus pengembangan NetBSD adalah berusaha memberikan sitem operasi yang stabil, multiplatform, dan berorientasi-riset. Pada Januari 2001, portabilitas NetBSD dikabarkan sudah mencapai 33 Platform.

Lebih menakjubkan lagi, NetBSD mendukung segudang hardware dan perlengkapan modern maupun tradisional, termasuk perlengkapan berbasis PC Intel, Compaq’s Alpha, atau arsitektur Sun Microsystem SPARC. Server tua dan hardware kelas workstation seperti Digital Equipment Corporation (DEC) VAX, komputer Apple Macintosh berbasis prosesor Motorola 68000 juga didukung.

Dedikasi NetBSD atas portabilitasnya telah memimpin sistem-sistem operasi lain. Pada saat grup FreeBSD mulai mem-porting sistemnya ke platform Alpha, pekerjaan pada proyek NetBSD dijadikan landasan. Demikian juga Linux telah mengambil keuntungan dari pengalaman NetBSD. Utiliti boot-loader spesial yang digunakan NetBSD untuk komputer-komputer Macintosh seri 68000 dimodifikasi sedemikian rupa dan menjadi boot-loader Penguin yang digunakan untuk me-launch Linux dalam mesin-mesin tersebut.

Akhirnya, kontribusi besar NetBSD lainnya adalah sebagai ‘batu loncatan’ atas lahirnya sistem operasi OpenBSD.

The NetBSD Project bercita-cita melahirkan sistem operasi riset kelas dunia yang andal. Oleh karena portabilitas NetBSD terhadap beragam hardware sangat terbuka, sekolah dan institusi-institusi riset dapat mewujudkan riset nyata melalui perlengkapan-perlengkapan yang tersedia.

Proyek mayor lainnya yang dikembangkan oleh NetBSD adalah KAME. KAME membantu memperkenalkan IPv6, IPsec (baik untuk IPv4 dan IPv6), dan peningkatan-peningkatan TCP/IP secara umum dalam dunia Unix.

NetBSD merupakan sistem yang cerdas. Datang dengan komplemen lengkap atas tool-tool Unix, dan banyak situs menggunakan NetBSD sebagai server DNS atau server jaringan mereka, terutama karena portabilitasnya yang luas terhadap beragam hardware dan perlengkapan.

b. FreeBSD (http://www.freebsd.org)

FreeBSD fokus pada optimalisasi PC i386 dan Alpha, sekarang ini juga sudah mendukung IA-64, PC-98, dan UltraSparc. FreeBSD dikenal dengan fitur networking yang cukup handal sehingga digunakan pada web server yahoo (http://www.yahoo.com) dan pada ftp server CDROM,Inc (ftp://ftp.cdrom.com)

Perawatan patchkit dirasa menemui jalan buntu sehingga suatu mekanisme baru dibutuhkan. Ketiga author akhirnya memulai proyek baru yang dinamakan “386BSD 0.5″, didalamnya termuat berbagai utiliti perbaikan (fixes) dan fungsi-fungsi lainnya sebagaimana layaknya sebuah sistem operasi riil. Sayangnya tak lama kemudian proyek tersebut terhenti.

David Greenman, yang kemudian bekerja pada Walnut Creek, selanjutnya mengusulkan sistem operasi baru berbasiskan kepada patchkit yang telah ada dengan nama FreeBSD.

Segera setelah itu, Hubbard dikontrak Walnut Creek untuk mempersiapkan channel distribusi CDROM. Walnut Creek memberikan dukungan dengan menawarkan server dan hardware ber-bandwidth tinggi untuk mengembangkannya. CDROM pertama dari FreeBSD adalah versi 1.0, dirilis pada bulan Desember 1993.

FreeBSD 2.0 dirilis bulan November 1994. Selanjutnya sebagai upgrade dan peningkatan dilakukan secara berkesinambungan dan signifikan. Dewasa ini FreeBSD telah melahirkan rilis-rilis yang sangat stabil dan luas digunakan oleh masyarakat dunia. Yahoo!, direktori internet terbesar saat ini, mempercayakan jutaan halamannya untuk dilayani oleh sistem FreeBSD, begitu pula organisasi dan vendor-vendor besar lainnya.

Berdasarkan penuturan Hubbard, sasaran utama FreeBSD Project adalah memberikan software yang dapat digunakan untuk beragam tujuan.

Barangkali apa yang menarik dari FreeBSD adalah sisi teknisnya yang simpel. Diakui bahwa program instalasi FreeBSD termasuk dalam tool instalasi Unix yang paling sederhana di antara yang lainnya. Di samping itu, sistem software third-party yang datang bersamanya (Port Collections) telah diadopsi NetBSD dan OpenBSD. Fitur tersebut memberikan kemudahan yang berarti bagi para user untuk menambah atau menghapus aplikasi-aplikasi sebagaimana yang mereka kehendaki. Para user cukup mengeksekusi satu baris perintah dan aplikasi-aplikasi dengan sendirinya di-download, dicek integritasnya, di-build, dan diinstall secara otomatis. Tugas-tugas administrasi sistem menjadi sangat praktis dan mudah.

Model pengembangan FreeBSD nyaris serupa dengan NetBSD maupun OpenBSD, tetapi memiliki perbedaan yang signifikan dengan development Linux. Model pengembangan FreeBSD dikelola secara profesional oleh ratusan programmer individual yang dipanggil dengan Committers. Commiters berwenang melakukan perubahan-perubahan yang dibutuhkan terhadap source official FreeBSD kapan pun juga. Penyeleksian tim Commiters diputuskan oleh FreeBSD Core Team, yang merupakan papan direksi FreeBSD.

Model pengembangan FreeBSD diarahkan untuk menciptakan produk yang stabil dan mudah digunakan. Sebagai salah satu sistem Unix yang reliabel untuk platform x86, FreeBSD harus menjaga kompatibilitas program-program sebaik mungkin di antara sistem.

c. OpenBSD (http://www.openbsd.org)

OpenBSD fokus pada aspek keamanan (security) dan kriptografi (cryptography). OpenBSD merupakan proyek yang terpisah dari NetBSD pada tengah 1995.

Pada awal tahun 1990-an, Theo de Raadt memegang tanggung jawab terhadap porting SPARC dalam NetBSD dan bagian-bagian lainnya. Akan tetapi, karena adanya kesalahpahaman antara Theo dan tim inti NetBSD berkaitan dengan arah pengembangan NetBSD, Theo mengundurkan diri dan selanjutnya merilis OpenBSD.

OpenBSD sedikit ‘menyimpang’ dari NetBSD sekitar rilis NetBSD 1.1 pada November 1995. Rilis pertama OpenBSD datang setahun kemudian, berikutnya OpenBSD 2.0 dirilis bulan Oktober 1996.

Apabila NetBSD memiliki keunikan dengan portabilitas yang luas, OpenBSD memfokuskan diri pada ketangguhan sistem dan keamanan. ‘Mantera’ OpenBSD yang berbunyi “Secure-by-default” telah menghasilkan produk sistem operasi yang paling sempurna saat ini. OpenBSD mengklaim bahwa tiga tahun tanpa exploitasi remote root memungkinkan administrator-administrator sistem dapat tidur nyenyak sepanjang malam.

Mengambil keuntungan dari domisilinya di Kanada, misi de Raadt tidak terhambat oleh hukum Amerika, dimana penerapan algoritma kriptografi yang kuat (strong cryptography) sangat dimungkinkan, seperti RSA, Blowfish, dan sejumlah algoritma lainnya. Lebih dari itu, versi modifikasi algoritma Blowfish sekarang digunakan untuk mengenkripsi password user.

Developer OpenBSD tidak hanya berhenti disitu, satu sumbangsih lain dari kerja keras mereka adalah OpenSSH, yakni clone multiplatform protokol terpopuler untuk mewujudkan komunikasi-komunikasi yang aman.

Fitur lain dari OpenBSD adalah auditing pengkodean yang teliti, hati-hati, dan apik. Itu semua untuk menjamin keamanan sistem yang bisa dipercaya. Dimulai sejak 1996, tim OpenBSD melakukan analisis baris-demi-baris pada keseluruhan konstruksi sistem operasi dengan mencari peluang atas berbagai hole security dan bug potensial.

Sistem-sistem Unix cukup terganggu dengan apa yang disebut fixed-sized buffers. Disamping tidak familier bagi para programmer, mereka juga mengaeah pada lahirnya hole security, seperti apa yang terjaadi pada eksploitasi fingerd dalam 4.2BSD.

Keseriusannya dalam pengawasan keamanan menyebabkan tim OpenBSD kerap menemukan kelemahan-kelemahan yang berhubungan dengan keamanan pada berbagai sistem operasi lain atau aplikasi-aplikasi third-party, termasuk pada sistem FreeBSD, NetBSD, atau yang lainnya.

Kebanyakan jaminan keamanan diwujudkan dengan audit code secara berkesinambungan dan OpenBSD tidak mentolerir berbagai port jaringan terbuka dalam instalasi default-nya. Seandainya sebuah situs memerlukan akses ke protokol finger, lpd, atau protokol-protokol lainnya, mereka terlebih dahulu harus di aktifkan. Lazimnya, protokol-protokol harus nonaktif saat tidak digunakan, dan instalasi OpenBSD mempertimbangkan hal itu dengan seksama.

OpenBSD termasuk sistem operasi yang portabel. Mungkin itu terpengaruh oleh karakteristik NetBSD sebagai ‘garis keturunannya’. OpenBSD cukup stabil dalam lusinan arsitektur, termasuk platform PC berbasis Intel, Motorola 68k-based Macintosh, dan lain-lain.


F. Model Pengembangan

Pada varian BSD (NetBSD, FreeBSD, dan OpenBSD) model pengembangan sistem operasi tersebut terbuka namun mempunyai hirarki tertentu, yaitu :

  1. Contributor, adalah developer yang menulis code, patch, atau dokumentasi namun tidak memiliki hak untuk menulis atau membuat sebuah file dalam source tree. Jika pekerjaan yang mereka lakukan ingin dimasukkan, maka harus diperiksa terlebih dahulu oleh seorang commiter atau dengan persetujuan beberapa orang commiter.
  2. Commiter adalah developer yang memiliki hak menulis dan mengakses source tree, dalam lingkup CVS, memiliki hak commit. Secara tipikal, seorang commiter bekerja hanya pada bagian-bagian terpilih dari keseluruhan project.
  3. Core Team, membimbing secara keseluruhan arah dan tujuan proyek, dan membuat keputusan akhir dalam kasus perselisihpahaman antar developer mengenai source code atau hal-hal lainnya. (OpenBSD tidak mempunyai core team secara formal, namun Theo de Raadt betugas sebagai pemimpin proyek.).

Setiap orang dapat menjadi contributor, dengan mengirimkan patch, atau membenarkan kesalahan-penulisan dalam sebuah halaman manual. Orang-orang yang mengkontribusikan banyak hal, atau berkompeten dalam sebuah area proyek akan dipromosikan menjadi commiter, hal ini ditujukan untuk menjaga commiter yang lain memeriksa terlalu banyak hal pada waktu yang sama.

G. Feature FreeBSD

§ Binary compatible with others UNIX

ü BSD/OS

ü SCO Unix

ü Linux

ü

§ Runs on x86, DEC Alpha, IA-64, PC-98, and UltraSPARC architectures

§ Networking, performance, security, and compatibility, stability

§ Xfree86 sebagai standard GUI

ü Networking : TCP/IP dari BSD

ü Performance : lebih baik dari sistem operasi komersial!!

ü Stable : 50 server internet ter-stable menurutwww.netcraft.com terdiri atas BSD/OS dan FreeBSD

H. Advanced Features

§ A merged virtual memory and filesystem buffer cache

§ Compatibility modules

§ Kernel Queues

§ Accept Filters

§ Soft Updates

§ Support for IPsec and IPv6

I. Software-Software di BSD

Sebagai implementasi kelengkapan sebuah distribusi, terdapat sebuah aturan dalam memfasilitasi installasi sebuah software kedalam distribusi BSD. BSD memiliki ports dan packages yang diperkenalkan pertama kali di FreeBSD, yang kemudian diadaptasi oleh NetBSD dan OpenBSD. (NetBSD mencoba menghindari kerancuan istilah “port” karena dalam system NetBSD, porting adalah pekerjaan membuat atau memodifikasi system terhadap suatu arsitektur atau platform tertentu, NetBSD menyebutnya sebagai “packages” dan “pre-compiled packages”).

Sebuah package adalah software yang telah dicompile dan siap dijalankan, kira-kira sepadan dengan package yang digunakan oleh distribusi Linux (sebagai contoh RPM). Secara teknis, package tersebut dibundel manjadi sebuah kompresi tarball (.tgz), yang menyertakan file-file yang akan diinstall, ditambah dengan beberapa informasi penting lainnya berkenaan dengan software yang diinstall tersebut. Sebagai contoh packages FreeBSD unzip-5.50.tgz berisi :

+CONTENTS
+COMMENT
+DESC
+MTREE_DIRS
man/man1/funzip.1.gz
man/man1/unzip.1.gz
man/man1/unzipsfx.1.gz
man/man1/zipgrep.1.gz
man/man1/zipinfo.1.gz
bin/unzip
bin/funzip
bin/unzipsfx
bin/zipgrep
share/doc/unzip/README
share/doc/unzip/WHERE

Package diinstall kedalam ${PREFIX} yang sudah terkonfigurasikan, dan secara default adalah /usr/local,/usr/X11R6, atau pada system NetBSD /usr/pkg. Installasi didaftarkan pada sebuah direktori database /var/db/pkg/nama_packages. Pengaturan packages dilakukan dengan berbagai tools pkg_*, seperti pkg_add (1), pkg_delete(1), dan pkg_info(1).

Sebuah port adalah kerangka kerja untuk menginstall software. Secara fungsional, sebuah port sama dengan SPRM, namun bagaimanapun, port tidak menyertakan source tarball dari software.

Biasanya kumpulan port disimpan pada direktory /usr/port/kategori, atau pada NetBSD disimpan pada /usr/pkgsrc. Sebuah port terdiri dari sebuah directory tree dengan beberapa file.

BSD tidak membuat sebuah tool seperti rpm(1) untuk membangun sebuah port, melainkan dengan sebuah infrastuktur berbasis make(1). Sebuah Makefile adalah kunci utama sebuah port, ada sangat banyak variable dalam sebuah makefile yang memungkinkan melakukan tindakan build dengan lebih cermat dan pada umumnya terdapat 2000 sampai 3000 baris dalam sebuah makefile, oleh karena itu dalam lingkungan BSD, makefile tersebut disertakan dalam file bsd.port.mk, sedangkan Makefile yang ada pada port hanya berisi variable yang ingin disertakan menjadi sebuah package. Contoh Makefile pada /usr/ports/net/tcpillust milik FreeBSD :

# new ports collection makefile for: tcpillust

# date created: 14 April 2000

# whom: nishida@csl.sony.co.jp

#
# $FreeBSD: ports/net/tcpillust/Makefile,v 1.4 2003/02/21 13:15:03 knu Exp $

#
PORTNAME= tcpillust

PORTVERSION= 1.0a

CATEGORIES= net tk82 tcl82

MASTER_SITES= ftp://ftp.csl.sony.co.jp/CSL/nishida/

MAINTAINER= nishida@csl.sony.co.jp

COMMENT= A graphical TCP connection analysis tool

LIB_DEPENDS= tk82.1:${PORTSDIR}/x11-toolkits/tk82 ¥

tcl82.1:${PORTSDIR}/lang/tcl82
USE_IMAKE= yes

GNU_CONFIGURE= yes

CONFIGURE_ARGS=
USE_MOTIF= yes

MAN1= tcpillust.1

DOCS= README

SAMPLES= tcpclient.log tcpserver.log

post-install:
.if !defined(NOPORTDOCS)

${MKDIR} ${PREFIX}/share/doc/tcpillust

for i in $(DOCS); do ¥

${INSTALL_DATA} ${WRKSRC}/$$i ${PREFIX}/share/doc/tcpillust; ¥

done

${MKDIR} ${PREFIX}/share/doc/tcpillust/sample

for i in $(SAMPLES); do ¥

${INSTALL_DATA} ${WRKSRC}/sample/$$i

${PREFIX}/share/doc/tcpillust/sample; ¥

done

.endif
.include

Proses build dan installasi sebuah port biasanya adalah:

# cd /usr/ports/net/tcpillust

# make install clean

Perintah tersebut akan melakukan proses :

§ Memeriksa apakah distribusi source berupa tarball tersedia dalam system, dan jika tidak diketemukan akan mengambil dari Internet.

§ Memeriksa checksum file source tersebut.

§ Mengekstrak source kedalam sebuah direktory kerja.

§ Melakukan patch jika tersedia.

§ Memeriksa dependencies software yang bersangkutan, bila dependencies sudah terinstall maka akan melanjutkan proses installasi bila tidak maka akan melakukan installasi terhadap software dependencies tersebut.

§ Melakukan patch yang dibutuhkan untuk mengadaptasikan software ke BSD

§ Menjalankan proses configure.

§ Meng-compile program.

§ Menginstall program.

§ Membersihkan direktory kerja.

J. System Administrasi

Seperti operating system lainnya, BSD memiliki gaya/style tersendiri. BSD tidak menyediakan sebuah tool administrasi seperti SMIT pada AIX, SAM pada HP-UX, atau YaST pada SuSE. Konfigurasi dari system ditanggani dengan mengedit file teks dalam direktori /etc, dan ada banyak konfigurasi pada saat startup dikumpulkan pada sebuah file /etc/rc.conf seperti:

§ Console : font, keymap, screensaver

§ Network : interface, firewall, NAT

§ Daemon : sendmail, lpd, ntp

Walaupun BSD system menyertakan sebuah kernel default, namun sangat disarankan untuk membuat sebuah custom kernel dengan tujuan membuat perampingan pada system, menggunakan hanya driver yang benar-benar dibutuhkan, mempercepat waktu loading, dan menghemat memory. Berikut adalah cara untuk membuat kernel custom :

§ Membuat atau mengedit konfigurasi kernel berdasarkan kernel GENERIC di /sys/arch/`arch`/conf/NAMA_KERNEL (FreeBSD: /sys/`arch`/conf)

§ Jalankan config(8) dan make(1).

BSD menyediakan sebuah cara professional untuk melakukan report dan melacak permasalahan yang ada, serta mengumpulkan feedback dari pengguna. Dengan menggunakan send-pr(1) (OpenBSD: sendbug) yang akan memberikan penjelasan detail permasalahan yang dihadapi, dan mengisi formulir yang dapat dikirimkan via e-mail pada GNATS bug tracking system, mengumpulkannya dalam sebuah database, dan kemudian akan ada developer yang menangani masalah yang dihadapi.

K. File System

BSD memiliki format partisi tersendiri, dan BSD tidak menggunakan partisi IBM/Microsoft, sehingga harddisk harus diset dengan format BSD. FreeBSD menyebut bagian ini dengan “slice”, dan dalam slice tersebut partisi BSD dibuat. Secara umum, a adalah partisi boot, b adalah partisi swap, dan c adalah partisi bayangan yang memuat sebuah bagian dari disk.

BSD memilih partisi asli untuk disk adalah FFS (Berkeley Fast File System) sedangkan on-disk data layout didefinisikan oleh UFS. FFS diperkenalkan sebagai implementasi modern UNIX file system, yang lebih memberikan banyak pilihan dimana setting sebuah file dapat dihapus, tidak dapat diedit, dan lain-lain.

L. Lain-Lain

Dalam banyak FAQ (frequently asked questions) terdapat pertanyaan yang sering diutarakan yaitu, dimana dokumentasi mengenai BSD dapat ditemukan. Pertanyaan ini sangat mudah ditemukan jawabannya dan berikut menjawab pertanyaan tersebut.

§ BSD menyertakan halaman-halaman manual dalam setiap distribusinya.

§ Setiap distribusi BSD mempunyai sebuah FAQ atau beberapa, dalam website resminya.

§ FreeBSD documentation project telah menghasilkan FreeBSD Handbook, sebuah tutorial dan referensi yang juga dapat diterapkan pada NetBSD dan OpenBSD.

§ Sebuah tulisan. The Design and Implementation of the 4.4BSD Operating System, karangan Marshall Kirk McKusick, dapat dijadikan patokan untuk melakukan pengembangan atau pemahaman mengenai system BSD secara lebih lanjut.

§ Sebuah tulisan lain mengenai BSD, The Complete FreeBSD, karangan Greg Lehey, juga mengangkat masalah serupa.

§ Search engine juga dapat membantu mencari jawaban setiap pertanyaan yang berkaitan dengan BSD.

§ Arsip mailing-list yang berkaitan dengan distribusi BSD secara lebih spesifik yang dapat dicari pada website resminya.

M. Perbedaan BSD (FreeBSD) dengan Linux

§ Perbedaan antara FreeBSD dengan Linux lebih kepada aspek filosofi daripada konsep.

§ FreeBSD turunan langsung dari UNIX, meskipun sekarang sudah tidak mengandung source code AT&T.

§ Linux adalah clone dan tidak pernah mengandung source code AT&T
FreeBSD adalah sistem operasi yang komplit/lengkap, dipelihara oleh sebuah kelompok developers yang tersentralisasi dibawah Concurent Versions System (CVS) yang memelihara secara lengkap sejarah pengembangan. Hanya ada satu distribusi FreeBSD.

§ Linux adalah kernel yang secara personal dipelihara oleh Linus Torvalds dan beberapa kawan dekat Linus. Program yang non-kernel disupply bersama Linux adalah bagian dari distribusi, dimana distribusi itu sendiri ada beberapa macam. Tiap distribusi sering kali tidak kompatibel.

§ Gaya pengembangan FreeBSD menekankan pada akuntanbilitas dan dokumentasi pada perubahan.

§ Kernel Linux dipelihara oleh beberapa orang yang tetap mengikuti tiap perubahan. Patches yang ada adalah bersifat unofficial dan banyak tersebar di internet oleh komunitas.

§ Kernel yang disediakan oleh FreeBSD pada tiap release dideskripsikan dengan jelas.

§ Distribusi linux kadang menyediakan kernel yang berbeda. Dan perbedaan tersebut sering tidak terdokumentasi dengan baik.

§ Sebagai hasil pengembangan yang tersentralisasi, FreeBSD bersifat Straightforward dan mudah di install.

§ Installasi Linux bergantung pada distribusi yang digunakan.

§ FreeBSD relatif tidak dikenal karena sebelumnya memang sempat terrestriksi oleh kasus hukum dengan source code UNIX AT&T.

§ Linux tidak mempunyai kasus hukum sehingga mejadi satu-satunya clone UNIX yang bebas/free.

§ Sebagai hasil kurang dikenalnya FreeBSD, maka relatif sedikit dukungan software komersial yang dapat berjalan diatas FreeBSD.

§ Semakin banyak dukungan software komersial untuk Linux.

§ Sebagai hasil sedikitnya pengguna, FreeBSD mempunyai dukungan yang sedikit terhadap driver hardware daripada Linux.

§ Besarnya komunitas Linux, membuat dukungan hardware dari vendor juga semakin banyak.

§ Sebagai hasil sedikitnya aplikasi komersial dan driver untuk FreeBSD, maka FreeBSD dapat menjalankan program yang ada pada Linux baik komersial maupun non komersial.

§ Linux tidak perlu menjalankan program yang ada pada FreeBSD
Lisensi FreeBSD adalah lisensi BSD.

§ Lisensi Linux adalah GNU GPL. Bila dibandingan dengan lisensi BSD lisensi GNU GPL mempunyai beberapa restriksi terhadap source code dengan kata lain lisensi BSD lebih bebas daripada lisensi GNU GPL. 7

N. FreeBSD’s Users

§ 2181 registered commercial organizations :

ü Yahoo!

ü Walnut Creek CDROM

ü Sony Corporation

ü Internet Movie Database

ü Manchester Computing

§ 949 registered non-profit organizations

§ 701 registered personal user

§ Thousands of unregistered users

O. Sumber

Berbagai Sumber di Internet.

Load Balancing Warnet dengan FreeBSD.Koneksi menggunakan 2 Link Speedy Paket Office.Jumlah komputer Client ada 18 Unit dan 1 Unit Komputer Operator.Koneksi digunakan untuk browsing dan main game Online.Contoh Confignya :

router# cat /etc/rc.conf

# Created: Sat Dec 6 11:20:32 2008
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.

sshd_enable=”YES”
fsck_y_enable=”YES”
gateway_enable=”YES”

pf_enable=”YES”
pf_rules=”/etc/pf.conf”
pf_flags=”"
pflog_enable=”YES”
pflog_logfile=”/var/log/pflog”
pflog_flags=”"

router_flags=”-q”
router=”/sbin/routed”
router_enable=”YES”

ifconfig_rl0=”inet 192.168.1.1 netmask 255.255.255.0″
ifconfig_rl1=”inet 192.168.2.2 netmask 255.255.255.0″
ifconfig_rl2=”inet 192.168.3.2 netmask 255.255.255.0″
defaultrouter=”192.168.2.1″
hostname=”router.99cybercafe.net”

router# cat /etc/pf.conf
# $FreeBSD: src/etc/pf.conf,v 1.1.2.1 2004/09/17 18:27:14 mlaier Exp $
# $OpenBSD: pf.conf,v 1.21 2003/09/02 20:38:44 david Exp $
#
# See pf.conf(5) and /usr/share/examples/pf for syntax and examples.
# Required order: options, normalization, queueing, translation, filtering.
# Macros and tables may be defined and used anywhere.
# Note that translation rules are first match while filter rules are last match.

lan_net = “192.168.1.0/24″
int_if = “rl0″
ext_if1 = “rl1″
ext_if2 = “rl2″
ext_gw1 = “192.168.2.1″
ext_gw2 = “192.168.3.1″

# nat outgoing connections on each internet interface
nat on $ext_if1 from $lan_net to any -> ($ext_if1)
nat on $ext_if2 from $lan_net to any -> ($ext_if2)

# default deny
block in from any to any
block out from any to any

# pass all outgoing packets on internal interface
pass out on $int_if from any to $lan_net
# pass in quick any packets destined for the gateway itself
pass in quick on $int_if from $lan_net to $int_if
# load balance outgoing tcp traffic from internal network.
pass in on $int_if route-to
{ ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin
proto tcp from $lan_net to any flags S/SA modulate state
# load balance outgoing udp and icmp traffic from internal network
pass in on $int_if route-to
{ ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin
proto { udp, icmp } from $lan_net to any keep state

# general “pass out” rules for external interfaces
pass out on $ext_if1 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if1 proto { udp, icmp } from any to any keep state
pass out on $ext_if2 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if2 proto { udp, icmp } from any to any keep state

# route packets from any IPs on $ext_if1 to $ext_gw1 and the same for
# $ext_if2 and $ext_gw2
pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any
pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to any

router# pfctl -sn
nat on rl1 inet from 192.168.1.0/24 to any -> (rl1) round-robin
nat on rl2 inet from 192.168.1.0/24 to any -> (rl2) round-robin
router# pfctl -sr
block drop in all
block drop out all
pass out on rl0 inet from any to 192.168.1.0/24
pass in quick on rl0 inet from 192.168.1.0/24 to 192.168.1.1
pass in on rl0 route-to { (rl1 192.168.2.1), (rl2 192.168.3.1) } round-robin inet proto tcp from 192.168.1.0/24 to any flags S/SA modulate state
pass in on rl0 route-to { (rl1 192.168.2.1), (rl2 192.168.3.1) } round-robin inet proto udp from 192.168.1.0/24 to any keep state
pass in on rl0 route-to { (rl1 192.168.2.1), (rl2 192.168.3.1) } round-robin inet proto icmp from 192.168.1.0/24 to any keep state
pass out on rl1 proto tcp all flags S/SA modulate state
pass out on rl1 proto udp all keep state
pass out on rl1 proto icmp all keep state
pass out on rl2 proto tcp all flags S/SA modulate state
pass out on rl2 proto udp all keep state
pass out on rl2 proto icmp all keep state
pass out on rl1 route-to (rl2 192.168.3.1) inet from 192.168.3.2 to any
pass out on rl2 route-to (rl1 192.168.2.1) inet from 192.168.2.2 to any

router# ifstat -b -t
Time rl0 rl1 rl2
HH:MM:SS Kbps in Kbps out Kbps in Kbps out Kbps in Kbps out
13:03:16 30.65 279.34 232.34 19.79 45.57 9.45
13:03:17 16.34 223.76 147.18 10.18 77.23 4.47
13:03:18 25.76 174.84 98.43 21.73 75.19 2.53
13:03:19 43.44 166.44 105.18 38.60 60.23 3.62
13:03:20 48.17 294.43 190.25 26.56 103.51 20.68
13:03:21 28.47 301.52 240.91 24.35 59.52 2.53
13:03:22 77.20 177.07 106.96 36.40 68.94 39.35
13:03:23 73.34 170.80 120.35 45.27 49.54 26.38
13:03:24 54.52 159.78 110.62 36.67 48.08 16.68
13:03:25 22.39 211.19 107.46 18.64 102.59 2.53
13:03:26 66.88 271.11 167.03 37.27 104.29 27.55
13:03:27 91.18 246.94 78.67 59.88 168.51 29.05
13:03:28 76.45 101.80 89.26 36.50 11.62 38.73

C:>tracert astaga.com

Tracing route to astaga.com [202.59.169.10]
over a maximum of 30 hops:

1 2 ms <1 ms <1 ms 192.168.3.1
2 40 ms 38 ms 146 ms 1.subnet125-162-88.speedy.telkom.net.id [125.162
.88.1]
3 41 ms 43 ms 43 ms 125.160.0.5
4 66 ms 192.168.3.1 reports: Destination protocol unreachable.

Trace complete.

C:>tracert yahoo.com

Tracing route to yahoo.com [68.180.206.184]
over a maximum of 30 hops:

1 <1 ms <1 ms <1 ms 192.168.2.1
2 46 ms 40 ms 39 ms 1.subnet125-162-88.speedy.telkom.net.id [125.162
.88.1]
3 40 ms 41 ms 43 ms 125.160.0.5
4 * 576 ms 615 ms 203.208.191.233
5 829 ms 619 ms 633 ms ge-0-1-7-0.sngtp-dr1.ix.singtel.com [203.208.151
.177]
6 678 ms 565 ms 605 ms xe-1-0-0-0.sngtp-cr1.ix.singtel.com [203.208.183
.61]
7 749 ms 752 ms 731 ms so-2-0-2-0.plapx-cr2.ix.singtel.com [203.208.149
.242]
8 740 ms 745 ms 858 ms ge-6-0-0-0.plapx-dr2.ix.singtel.com [203.208.183
.166]
9 761 ms 850 ms 830 ms 203.208.145.162
10 761 ms 714 ms 692 ms ae0-p151.msr2.sp1.yahoo.com [216.115.107.75]
11 765 ms 192.168.2.1 reports: Destination protocol unreachable.

Trace complete.

Selamat Mencoba,semoga Sukses
sumber: http://www.openbsd.org/faq/pf/pools.html#outgoing

Cara membuat livecd FreeBSD (hanya bisa untuk FreeBSD 4, karena untuk FreeBSD 5 ke atas, kernelnya gak support. Barangkali kalo manual bisa).

  • Persiapan :
  • Koneksi internet untuk melakukan instalasi livecd
  • CD installer FreeBSD 4
  • CDRW serta CD kosong
  • Secangkir kopi hangat dan makanan ringan
  • install program buat bikin livecd
  • #cd /usr/ports/sysutils/livecd

    #make install clean

    • mulai melakukan konfigurasi

    #cd /usr/local/livecd

    #./livecd.sh

    • Akan muncul tampilan seperti ini.

    Pertama

    Pilih bahasa yang akan digunakan, kemudian pilih OK

    • Setelah itu, akan muncul tampilan seperti berikut :

    Kedua

    Pilihan tersebut adalah pilihan lokasi file livecd.sh. OK ajah deh.

    • Selanjutnya, tampilannya adalah sebagai berikut :
    Ketiga
    Isikan lokasi dimana kita akan menyimpan binary LiveCD. Pilih partisi dengan ukuran partisi yang memiliki sisa space cukup besar. Kemudian pilih OK.
    • Kemudian, tampilannya adalah sebagai berikut.
    Keempat
    Ketikkan lokasi dimana file LiveCD.iso akan disimpan. Pilih partisi yang memiliki sisa space cukup besar. OKKKKK..
    • Tampilan selanjutnya adalah :
    Keenam
    Pilih YES ajah deh )
    • Lanjuttt… ini dia gambarnya
    Ketujuh
    Apabila memiliki CDR/DVDR, silakan pilih YES. jadinya bisa sekalian ngeburn gitu.
    • Selanjutnya adalah :
    delapan
    tampilan di atas adalah tampilan device dari CDRW kita. untuk ngecek, jalankan :
    #dmesg|grep cd
    #acd0: DVD-R at ata1-master PIO4
    #cd /dev
    #ls|grep acd0
    acd0a
    acd0c
    • Yang terakhir adalah :
    Review
    Klik YES saja karena itu adalah review dari setting kita. Apabila tidak cocok, keluar saja dari dialog livecd.sh (bisa tekan control-c), kemudian hapus file : /usr/local/livecd/config dan /usr/local/livecd/config.ok.
    • Sehingga akan masuk ke menu sebagai berikut :
    menu
    Pilih masing-masing menu daari atas ke bawah. Apabila tidak memiliki CDR, silakan lewati point ke 7. Hasilnya bisa dilihat pada file ISO.
    Berikut ini adalah penjelasan masing-masing langkah.
    1. Create Folder : membuat direktori yang sudah didefinisikan di atas. Pada contoh kali adalah /home/livecd. Apabila direktori tersebut sudah ada, maka direktori tersebut akan dihapus dan dibikin ulang.
    2. Install Binary Files :mengkopi beberapa file binary dari CD ke direktori livecd (yang didefinisikan pada point pertama) serta source kernel. Untuk melakukan point ini, jangan lupa CD FreeBSD harus masuk ke CD Drive.
    3. Create Kernel : Melakukan kompilasi kernel dengan rootdevname = CD (/dev/acd0c – tergantung kondisi)
    4. Change files : meng-kopi beberapa file dari FreeBSD kita dan melakukan perubahan pada file konfigurasi.
    5. Install Package on LiveCD : menginstall package FreeBSD. Apabila ingin membuat LiveCD dengan X-Window, konfigurasi dilakukan di sini. Demikian juga kalo ingin membuat livecd router. Apabila diperlukan konfigurasi (misal : untuk router), setelah point ini, keluar dari dialog livecd.sh, kemudian edit konfigurasi)
    6. Create ISO : membuat file ISO
    7. Burn CD : ngeburn ISO ke CD
    8. EXIT : keluar

    Jadi deh, NamaandaBSD LiveCD )

    PS : please kalo ada yang membuat livecd router, performance-nya diukur dan saya dikasih tahu. saya juga senang apabila bisa berdiskusi tentang ini. silakan hubungi saya via mail.

    ref.http://fajri.freebsd.or.id/index.php/2006/05/06/membuat-livecd-freebsd/

    Instal PHPNUKE di FreeBSD

    Asumsi, saya meletakkan source code PHP-Nuke di /var/tmp

    > pwd
    /var/tmp
    > wget http://unc.dl.sourceforge.net/sourceforge/phpnuke/PHP-Nuke-6.5.tar.gz
    > tar -zxvf PHP-Nuke-6.5.tar.gz

    Kemudian, copy-kan semua direktori dan file yg berada di bawah direktori “html” ke tempat “DocumentRoot” di tempat hosting anda, ada yg di “public_html” atau “htdocs” atau “www/htdocs” (tergantung dari tempat hosting yg telah disediakan).

    > mv /var/tmp/html/* /usr/home/tarmizi/public_html/
    > cd /usr/home/tarmizi/public_html/
    > chmod 755 *.php
    > chmod 666 ultramode.txt

    Asumsi saya membuat database dengan nama “portal”.

    > /usr/local/mysql/bin/mysqladmin -u tarmizi -p create portal
    Enter password:
    > /usr/local/mysql/bin/mysql -u tarmizi -p portal < /var/tmp/sql/nuke.sql

    catatan:
    Sebelumnya, terlebih dahulu pastikan bahwa anda telah mempunyai “account” dan “password” di database “MySQL” nya.

    Kemudian edit “config.php”

    # ee config.php

    catatan: Sesuaikan masing-masing dari baris-baris berikut:

    $dbhost = “localhost”;
    $dbuname = “tarmizi”;
    $dbpass = “123456″;
    $dbname = “portal”;
    $prefix = “nuke”;
    $user_prefix = “nuke”;
    $dbtype = “MySQL”;
    $sitekey = “SdFk*fa28367-dm56w69.3a2fDS+e9″;
    $gfx_chk = 0;
    $subscription_url = “http://www.andalasmedia.net/~tarmizi/”;

    dan save file tersebut.

    Sekarang Anda tinggal mengatur konfigurasi untuk “administrator”-nya, arahkan browser Anda ke http://www.andalasmedia.net/~tarmizi/

    Finish, Selamat Mencoba, Semoga Berhasil.

    « Previous PageNext Page »