bab 2 final - binus librarylibrary.binus.ac.id/ecolls/ethesisdoc/bab2/2007-2-00235-if-bab 2.pdf ·...

98
8 BAB 2 LANDASAN TEORI 2.1 Jaringan Menurut Tannenbaum, Jaringan komputer adalah sekumpulan komputer berjumlah banyak yang terpisah-pisah akan tetapi saling berhubungan dalam melaksanakan tugasnya. Tujuan dari jaringan komputer adalah: Membagi sumber daya: contohnya berbagai pemakaian printer, CPU, memori, harddisk Komunikasi: contohnya email, instant messaging, chatting Akses informasi: contohnya web browsing Komputer tersebut saling berhubungan dengan media kabel, saluran telepon, gelombang radio, satelit, atau sinar infra merah. Berdasarkan luas jangkauannya (Tanenbaum, 2005, p 9-11), jaringan dapat dibagi menjadi 3 bagian, yaitu Local Area Network (LAN), Metropolitan Area Network (MAN), dan Wide Area Network (WAN). LAN merupakan jaringan milik pribadi di dalam sebuah gedung atau kampus yang berukuran sampai beberapa kilometer. LAN seringkali digunakan untuk menghubungkan komputer-komputer pribadi dan workstation dalam kantor perusahaan atau pabrik-pabrik untuk memakai bersama suatu resource (misalnya, printer) dan saling bertukar informasi. MAN pada dasarnya merupakan versi LAN yang berukuruan lebih besar dan biasanya memakai teknologi yang sama dengan LAN. MAN dapat mencakup kantor- kantor perusahaan yang berdekatan atau juga sebuah kota dan dapat dimanfaatkan untuk

Upload: others

Post on 20-Feb-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

8

BAB 2

LANDASAN TEORI

2.1 Jaringan

Menurut Tannenbaum, Jaringan komputer adalah sekumpulan komputer

berjumlah banyak yang terpisah-pisah akan tetapi saling berhubungan dalam

melaksanakan tugasnya. Tujuan dari jaringan komputer adalah:

• Membagi sumber daya: contohnya berbagai pemakaian printer, CPU, memori,

harddisk

• Komunikasi: contohnya email, instant messaging, chatting

• Akses informasi: contohnya web browsing

Komputer tersebut saling berhubungan dengan media kabel, saluran telepon,

gelombang radio, satelit, atau sinar infra merah.

Berdasarkan luas jangkauannya (Tanenbaum, 2005, p 9-11), jaringan dapat

dibagi menjadi 3 bagian, yaitu Local Area Network (LAN), Metropolitan Area Network

(MAN), dan Wide Area Network (WAN). LAN merupakan jaringan milik pribadi di dalam

sebuah gedung atau kampus yang berukuran sampai beberapa kilometer. LAN seringkali

digunakan untuk menghubungkan komputer-komputer pribadi dan workstation dalam

kantor perusahaan atau pabrik-pabrik untuk memakai bersama suatu resource (misalnya,

printer) dan saling bertukar informasi.

MAN pada dasarnya merupakan versi LAN yang berukuruan lebih besar dan

biasanya memakai teknologi yang sama dengan LAN. MAN dapat mencakup kantor-

kantor perusahaan yang berdekatan atau juga sebuah kota dan dapat dimanfaatkan untuk

Page 2: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

9

keperluan pribadi (swasta) atau umum. Sedangkan WAN adalah jaringan dengan skala

yang sangat besar yang mencakup daerah geografis yang luas, seringkali mencakup

sebuah negara atau benua.

2.2 Sistem Operasi Jaringan

Untuk mengelola suatu jaringan diperlukan adanya sistem operasi jaringan.

Sistem operasi jaringan dibedakan menjadi dua berdasarkan tipe jaringannya, yaitu

sistem operasi client-server dan sistem operasi jaringan peer to peer

(http://noc.kimpraswil.go.id/artikel/lan.pdf, 2006).

2.2.1 Jaringan Client-Server

Server adalah komputer yang menyediakan fasilitas bagi komputer-komputer

lain di dalam jaringan dan client adalah komputer-komputer yang menerima atau

menggunakan fasilitas yang disediakan oleh server. Server di jaringan tipe client-

server disebut dengan Dedicated Server karena murni berperan sebagai server yang

menyediakan fasilitas kepada workstation dan server tersebut tidak dapat berperan

sebagai workstation.

Keunggulan dari jaringan client-server:

• Kecepatan akses lebih tinggi karena penyediaan fasilitas jaringan dan

pengelolaannya dilakukan secara khusus oleh satu komputer (server) yang

tidak dibebani dengan tugas lain sebagai workstation.

• Sistem keamanan dan administrasi jaringan lebih baik, karena terdapat seorang

pemakai yang bertugas sebagai administrator jaringan, yang mengelola

administrasi dan sistem keamanan jaringan.

Page 3: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

10

• Sistem backup data lebih baik, karena pada jaringan client-server backup

dilakukan terpusat di server, yang akan membackup seluruh data yang

digunakan di dalam jaringan.

Kelemahan dari jaringan client-server:

• Biaya operasional relatif lebih mahal.

• Diperlukan adanya satu komputer khusus yang berkemampuan lebih untuk

ditugaskan sebagai server.

• Kelangsungan jaringan sangat tergantung pada server. Bila server mengalami

gangguan maka secara keseluruhan jaringan akan terganggu.

2.2.2 Jaringan Peer to Peer

Bila ditinjau dari peran server di kedua tipe jaringan tersebut, maka server di

jaringan tipe peer to peer diistilahkan non-dedicated server, karena server tidak

berperan sebagai server murni melainkan sekaligus dapat berperan sebagai

workstation.

Keunggulan dari jaringan peer to peer:

• Antar komputer dalam jaringan dapat saling berbagi-pakai fasilitas yang

dimilikinya seperti harddisk, drive, fax/modem, printer.

• Biaya operasional relatif lebih murah dibandingkan dengan tipe jaringan client-

server, salah satunya karena tidak memerlukan adanya server yang memiliki

kemampuan khusus untuk mengorganisasikan dan menyediakan fasilitas

jaringan.

Page 4: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

11

• Kelangsungan kerja jaringan tidak tergantung pada satu server. Sehingga bila

salah satu komputer/peer mati atau rusak, jaringan secara keseluruhan tidak

akan mengalami gangguan.

Kelemahan dari jaringan peer to peer:

• Troubleshooting jaringan relatif lebih sulit, karena pada jaringan peer to peer

setiap komputer dimungkinkan untuk terlibat dalam komunikasi yang ada. Di

jaringan client-server, komunikasi adalah antara server dengan workstation.

• Unjuk kerja lebih rendah dibandingkan dengan jaringan client-server, karena

setiap komputer/peer disamping harus mengelola pemakaian fasilitas jaringan

juga harus mengelola pekerjaan atau aplikasi sendiri.

• Sistem keamanan jaringan ditentukan oleh masing-masing user dengan

mengatur keamanan masing-masing fasilitas yang dimiliki

• Karena data jaringan tersebar di masing-masing komputer dalam jaringan,

maka backup harus dilakukan oleh masing-masing komputer tersebut.

2.3 OSI

Halsall (1995. p13) mengatakan di awal tahun 1985 terjadi peningkatan jaringan

yang sangat besar dalam segi kuantitas dan di pertengahan tahun 1980 kesulitan

berkomunikasi terjadi pada jaringan-jaringan komputer dengan spesifikasi dan

implementasi hardware dan software yang berbeda.Untuk dapat meningkatkan kinerja di

antara perangkat vendor dan untuk meningkatkan skala ekonomiknya maka diperlukan

ketentuan baku. Karena tugas komunikasi sangat kompleks, standar tunggal tidaklah

mencukupi. Lebih dari itu, fungsi-fungsi dipecah menjadi bagian-bagian yang dapat

Page 5: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

12

ditangani dan disusun sebagai arsitektur komunikasi. Arsitektur ini kemudian akan

membentuk kerangka kerja bagi standarisasi. Berdasarkan hal ini ISO pada tahun 1977

membentuk suatu subkomite untuk mengembangkan semacam arsitektur. Hasilnya

adalah model referensi OSI (Open System Interconnection). Meskipun unsur-unsur

model yang penting berada pada tempatnya, stardar ISO terakhir, ISO 7498, tidak

dipublikasikan sampai tahun 1984. Suatu versi yang compatible secara teknis

dikeluarkan oleh CCITT (sekarang ITU-T) sebagai X-200.

Teknik penyusunan yang sudah diterima secara luas, dan salah satunya yang

dipilih oleh ISO, adalah layering. Fungsi-fungsi komunikasi dibagi menjadi suatu

rangkaian lapisan yang hierarkis. Masing-masing lapisan menampilkan subrangkaian

fungsi-fungsi yang masih berkaitan yang diperlukan untuk berkomunikasi dengan sistem

yang lain. Hal itu tergantung pada lapisan yang lebih rendah berikutnya untuk

menampilkan fungsi-fungsi yang lebih primitif serta untuk menyembunyikan detail-

detail fungsi tersebut. Hal itu juga menyediakan layanan untuk lapisan yang lebih tinggi

berikutnya.

Tugas ISO adalah untuk menentukan suatu rangkaian lapisan dan layanan-

layanan yang ditampilkan oleh setiap lapisan. Pembagiannya harus dengan

mengelompokkan fungsi-fungsi secara logis dan harus memiliki cukup lapisan untuk

membuat setiap lapisan menjadi manajemen kecil, tetapi tidak seharusnya mempunyai

begitu banyak lapisan yang memproses, memaksa kumpulan lapisan adalah

memperberat sistem.

Page 6: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

13

Gambar 2.1 OSI Model

2.4 Suite Protocol TCP/IP

TCP/IP merupakan protokol yang paling sering digunakan dalam operasi jaringan,

protokol lainnya merupakan pelengkap yang membantu jaringan ini bekerja

(http://onno.vlsm.org/v09/onno-ind-1/network/jaringan-komputer-menggunakan-

protokol-tcpip-01-1992.rtf, 2005). Perlu dicatat bahwa pada jaringan komputer

menggunakan TCP/IP umumnya tiga lapisan teratas dilakukan oleh sistem operasi dari

komputer yang digunakan. Khususnya untuk komputer yang menggunakan UNIX telah

tersedia library untuk network programming sehingga dapat dikembangkan program

sendiri dengan mengakses langsung ke soket-soket TCP yang tersedia.

Page 7: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

14

2.4.1 Prinsip Kerja Internet Protocol (IP)

Menurut Gilbert (1995), IP adalah suatu metoda atau protokol yang mengatur

bagaimana suatu data dikirim dari satu komputer ke komputer lain dalam suatu jaringan

komputer. Fungsi dari Internet Protocol secara sederhana dapat diterangkan seperti

cara kerja kantor pos pada proses pengiriman surat. Surat dimasukan ke kotak pos akan

diambil oleh petugas pos dan kemudian akan dikirim melalui rute yang acak, tanpa si

pengirim maupun si penerima surat mengetahui jalur perjalanan surat tersebut. Juga

jika dikirimkan dua surat yang ditujukan pada alamat yang sama pada hari yang sama,

belum tentu akan sampai bersamaan karena mungkin surat yang satu akan mengambil

rute yang berbeda dengan surat yang lain. Di samping itu, tidak ada jaminan bahwa

surat akan sampai ditangan tujuan, kecuali jika dikirimkan menggunakan surat tercatat.

Prinsip di atas digunakan oleh Internet Protocol, "surat" diatas dikenal dengan

sebutan datagram. Internet protocol (IP) berfungsi menyampaikan datagram dari satu

komputer ke komputer lain tanpa tergantung pada media kompunikasi yang digunakan.

Data transport layer dipotong menjadi datagram-datagram yang dapat dibawa oleh IP.

Tiap datagram dilepas dalam jaringan komputer dan akan mencari sendiri secara

otomatis rute yang harus ditempuh ke komputer tujuan. Hal ini dikenal sebagai

transmisi connectionless. Dengan kata lain, komputer pengirim datagram sama sekali

tidak mengetahui apakah datagram akan sampai atau tidak.

Untuk membantu mencapai komputer tujuan, setiap komputer dalam jaringan

TCP/IP harus diberikan IP address. IP address harus unik untuk setiap komputer,

tetapi tidak menjadi halangan bila sebuah komputer mempunyai beberapa IP address.

IP address terdiri atas 8 byte data yang mempunyai nilai dari 0-255 yang sering ditulis

dalam bentuk [xx.xx.xx.xx] (xx mempunyai nilai dari 0-255).

Pada header Internet Protocol selain IP address dari komputer tujuan dan

komputer pengirim datagram juga terdapat beberapa informasi lainnya. Informasi ini

mencakup jenis dari protokol transport layer yang ditumpangkan diatas IP. Tampak

pada gambar 2.2 ada dua jenis protokol pada transport layer yaitu TCP dan UDP.

Page 8: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

15

Gambar 2.2 Protokol-protokol pada transport layer

Informasi penting lainnya adalah Time-To-Live (TTL) yang menentukan

berapa lama IP dapat hidup didalam jaringan. Nilai TTL akan dikurangi satu jika IP

melalui sebuah komputer. Hal ini penting artinya terutama karena IP dilepas di

jaringan komputer. Jika karena satu dan lain hal IP tidak berhasil menemukan alamat

tujuan maka dengan adanya TTL, IP akan mati dengan sendirinya pada saat TTL

bernilai nol. Disamping itu juga tiap IP yang dikirimkan diberikan identifikasi

sehingga bersama-sama dengan IP address komputer pengirim data dan komputer

tujuan, tiap IP dalam jaringan adalah unik.

Khususnya untuk pemakai jaringan komputer hal yang terpenting untuk

dipahami secara benar-benar adalah konsep IP address. IP address ditulis

berdasarkan standar yang dikeluarkan oleh InterNIC yaitu suatu organisasi yang

bertanggung jawab dalam administrasi pengalamatan IP internet sedangkan untuk

alamat lokal ditentukan berdasarkan otoritas penomoran internet yaitu Internet

Assigned Numbers Authority (IANA). Pengaturan IP address penting, terutama pada

saat mengatur routing secara otomatis. Dengan konsep IP address, route perjalanan

IP dalam jaringan komputer dapat dilakukan secara otomatis. Tentunya sukar bagi

Page 9: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

16

manusia untuk mengingat sedemikian banyak IP address. Untuk memudahkan,

dikembangkan Domain Name System (DNS).

Menurut Miller (1996, p35), Pengalamatan IP Address dibagi ke dalam 5

kelas, yaitu:

1. Kelas A

Pengalamatan IP kelas A diberikan untuk jaringan dengan jumlah host yang

sangat besar. Bit pertama dari pengalamatan IP kelas A selalu diset 0 (nol)

sehingga byte terdepan dari IP address selalu bernilai antara 0-127. 8 bit pertama

digunakan sebagai network number sedangkan 24 bit terakhir untuk host number.

Misal IP address kelas A adalah 113.46.5.6 maka network numbernya adalah

113 dan host numbernya adalah 46.5.6.

2. Kelas B

Pengalamatan IP kelas B biasanya dialokasikan untuk jaringan berukuran sedang

dan besar. Dua bit pertama dari pengalamatan IP kelas B selalu di set 10 (satu

nol) sehingga byte terdepan dari pengalamatan IP selalu bernilai antara 128-191.

16 bit pertama digunakan sebagai network number, sedangkan 16 bit berikutnya

digunakan sebagai host number. Misal pengalamatan IP kelas B 132.92.121.1

maka network numbernya dalah 132.92 dan host numbernya adalah 121.1

Dengan panjang host number yang 16 bit, maka network dengan pengalamatan

IP kelas B dapat menampung sekitar 65000 host.

3. Kelas C

Pengalamatan IP kelas C awalnya digunakan untuk jaringan berukuran kecil

misalnya LAN. 3 bit awal dari pengalamatan IP kelas C selalu diset 111.21 bit

berikutnya membentuk network number sedangkan 8 bit terakhir untuk host

Page 10: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

17

number. Dengan konfigurasi ini sekitar dua juga network dapat dibentuk dengan

memiliki 256 pengalamatan IP untuk masing-masing network.

4. Kelas D

Pengalamatan IP kelas D digunakan untuk keperluan IP multicasting. 4 bit awal

di set 1110. Bit-bit berikutnya diatur sesuai dengan keperluan multicast group

yang menggunakan pengalamatan IP ini. Dalam multicast tidak dikenal network

number dan host number.

5. Kelas E

Pengalamatan IP kelas E tidak digunakan untuk umum. 4 bit awal di set 1111.

Selain network number, digunakan network prefix dengan tanda garis miring ‘/’

diikuti angka yang menunjukkan panjang network prefix dalam bit) untuk

menyebut bagian pengalamatan IP yang menunjukkan jaringan. Contohnya,

untuk alamat IP kelas B 132.92.121.1 maka dapat ditulis dengan 132.92/16

2.4.2 Subnetting

Subnetting memungkinkan untuk menciptakan multiple logical network yang

terdapat dalam sebuah jaringan kelas A, B, atau C. Jika subnetting tidak dilakukan,

maka hanya akan dapat digunakan satu jaringan dari sebuah jaringan kelas A, B, atau

C.

Setiap data link pada sebuah jaringan harus memiliki sebuah network ID

yang unik, dengan setiap node pada link tersebut merupakan anggota dari jaringan

yang sama. Jika sebuah jaringan besar (jaringan dengan kelas A, B, atau C) dibagi

menjadi sub jaringan yang lebih kecil, maka akan memungkinkan terciptanya sebuah

jaringan yang di dalamnya terdapat interkoneksi antara subjaringan yang ada. Setiap

Page 11: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

18

data link pada jaringan ini kemudian akan memiliki sebuah unique network ID atau

subnetwork ID. Sebuah alat maupun gateway yang menghubungkan jaringan atau

subjaringan sejumlah n memiliki IP address sejumlah n, masing-masing untuk setiap

jaringan / subjaringan yang saling berinterkoneksi.

Untuk melakukan subnetting pada sebuah jaringan dapat dilakukan dengan

cara memperluas natural mask menggunakan beberapa bit dari bagian host ID pada

IP address untuk menciptakan sebuah subnetwork ID.

Jika terdapat sebuah jaringan kelas C dengan network address 204.15.5.0

yang memiliki sebuah natural mask 255.255.255.0, maka dapat dibuat subjaringan

seperti di bawah ini:

204.15.5.0 - 11001100.00001111.00000101.00000000

255.255.255.224 - 11111111.11111111.11111111.11100000

----------------------------------------|sub|-------

Dengan memperluas subnet mask menjadi 255.255.255.224, telah diambil 3

bit (yang diindikasikan oleh kata sub) dari bagian host pada IP address dan

menggunakannya untuk membuat subjaringan-subjaringan baru.

Dengan 3 bit ini, terdapat kemungkinan untuk menciptakan subjaringan baru

sebanyak 8 subjaringan. Dengan sisa 5 bit host ID, masing-masing subjaringan dapat

memiliki host address hingga 32 host address, dengan jumlah host address efektif

adalah 30. Hal ini disebabkan karena host ID yang seluruhnya bernilai 0 dan 1 tidak

digunakan (http://www.cisco.com/warp/public/701/3.html#ustand_subnet, 2006).

Page 12: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

19

Maka, subjaringan yang terbentuk adalah:

IP address subnet mask range host address 204.15.5.0 255.255.255.224 dari 1 hingga 30 204.15.5.32 255.255.255.224 dari 33 hingga 62 204.15.5.64 255.255.255.224 dari 65 hingga 94 204.15.5.96 255.255.255.224 dari 97 hingga 126 204.15.5.128 255.255.255.224 dari 129 hingga 158 204.15.5.160 255.255.255.224 dari 161 hingga 190 204.15.5.192 255.255.255.224 dari 193 hingga 222 204.15.5.224 255.255.255.224 dari 225 hingga 254

Table 2.1 Dengan 3 bit terbentuk 8 subjaringan

2.4.3 CIDR

CIDR (Classless Interdomain Routing) diperkenalkan untuk meningkatkan

ruang pengalamatan dan skalabilitas routing di internet. CIDR diperlukan karena

perkembangan internet yang sangat cepat dan pertumbuhan IP routing tables yang

terdapat pada internet router.

Dalam CIDR sebuah IP address dari sebuah jaringan direpresentasikan

dengan sebuah prefiks, yang terdiri dari sebuah IP address dan indikasi mengenai

panjang netmask yang merupakan jumlah banyaknya bit yang bernilai 1 pada

netmask. Sehingga sebuah jaringan dengan network address 172.16.0.0 dengan

netmask 255.255.0.0 dapat direpresentasikan sebagai 172.16.0.0 /16. Angka 16

didapat dari 2 octet bernilai 255 yang diubah ke dalam bilangan binary yang akan

menghasilkan angka 1 sebanyak 16 buah.

CIDR juga menggambarkan sebuah arsitektur internet yang lebih tersusun,

karena setiap domain mendapatkan IP address dari tingkat yang lebih tinggi. Hal ini

Page 13: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

20

memungkinkan penyederhanaan domain dapat dilakukan pada tingkat yang lebih

tinggi (http://public.pacbell.net/dedicated/cidr.html, 2006)

2.4.4 Prinsip kerja Transmission Control Protocol (TCP)

(http://onno.vlsm.org/v09/onno-ind-1/network/jaringan-komputer-

menggunakan-protokol-tcpip-01-1992.rtf, 2005), Berbeda dengan Internet Protocol

(IP), TCP mempunyai prinsip kerja seperti virtual circuit pada jaringan telepon. TCP

lebih mementingkan kehandalan dalam pengiriman data antara dua komputer dalam

jaringan. TCP tidak berkaitan dengan segala sesuatu yang dikerjakan oleh IP, yang

penting adalah hubungan komunikasi antara dua komputer berjalan dengan baik.

Dalam hal ini, TCP mengatur bagaimana cara membuka hubungan komunikasi, jenis

aplikasi apa yang akan dilakukan dalam komunikasi tersebut (misalnya mengirim e-

mail, transfer file, dan sebagainya.) Di samping itu, juga mendeteksi dan mengoreksi

jika ada kesalahan data. TCP mengatur seluruh proses koneksi antara satu komputer

dengan komputer yang lain dalam sebuah jaringan komputer.

Berbeda dengan IP yang mengandalkan mekanisme connectionless pada TCP

mekanisme hubungan adalah connection oriented. Dalam waktu yang ditentukan

komputer yang sedang berhubungan harus mengirimkan data atau acknowledge agar

hubungan tetap berlangsung. Jika hal ini tidak dapat dilakukan maka dapat diasumsikan

bahwa komputer yang sedang berhubungan mengalami gangguan dan hubungan secara

logis dapat diputus.

TCP mengatur multiplexing dari data yang dikirim/diterima oleh sebuah

komputer. Adanya identifikasi pada TCP header memungkinkan multiplexing

dilakukan. Hal ini memungkinkan sebuah komputer melakukan beberapa hubungan

Page 14: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

21

TCP secara logis. Bentuk hubungan adalah full duplex, hal ini memungkinkan dua buah

komputer saling berkomunikasi dalam waktu bersamaan tanpa harus bergantian

menggunakan kanal komunikasi. Untuk mengatasi saturasi (congestion) pada kanal

komunikasi, pada header TCP dilengkapi informasi tentang flow control.

Hal yang cukup penting untuk dipahami pada TCP adalah port number. Port

number menentukan layanan yang dilakukan oleh program aplikasi diatas TCP.

Nomor-nomor ini telah ditentukan oleh Network Information Center dalam Request

For Comment (RFC) 1010 [10]. Sebagai contoh untuk aplikasi File Transfer Protocol

(FTP) diatas transport layer TCP digunakan port number 20.

Prinsip kerja dari TCP berdasarkan prinsip client-server. Server adalah program

pada komputer yang secara pasif akan mendengarkan (listen) port number yang telah

ditentukan pada TCP. Sedang client adalah program yang secara aktif akan membuka

hubungan TCP ke komputer server untuk meminta layanan yang dibutuhkan.

State diagram kerja TCP diperlihatkan pada gambar 2.3. Pada state diagram

gambar 2.3, client akan secara aktif membuka hubungan (active open) dengan

mengirimkan sinyal SYN (state SYN SENT) ke komputer server tujuan. Jika server

menerima sinyal SYN maka server yang saat itu berada pada state LISTEN akan

mengirimkan sinyal SYN dan kedua komputer (client dan server) akan mengalami

perubahan state menjadi ESTAB. Jika tidak ada tanggapan dari komputer yang dituju,

maka program akan kembali pada state CLOSE. Setelah layanan yang dilakukan telah

selesai maka salah client akan mengirimkan sinyal FIN dan komputer client akan

berada pada state FIN WAIT sampai sinyal FIN dari server diterima. Pada saat

menerima sinyal FIN, server akan ke state CLOSE WAIT hingga hubungan diputus.

Akhirnya kedua komputer akan kembali pada state CLOSE.

Page 15: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

22

Gambar 2.3 State diagram kerja TCP

2.4.5 Komponen Fisik dalam Jaringan TCP/IP

Berdasarkan Tanenbaum (2002), komputer dengan protokol TCP/IP dapat

terhubung ke komputer lain dan jaringan lain karena bantuan peralatan jaringan

komputer. Pada komputer itu sendiri, ditambahkan yang disebut network interface.

Network interface dapat berupa ethernet card atau modem. Ethernet card terhubung

ke komputer lain lewat kabel RG-585 atau ke ethernet hub lewat kabel UTP. Modem

terhubung ke jaringan melalui kabel telepon. Disamping itu masih diperlukan

peralatan lain untuk membentuk jaringan komputer. Peralatan ini disebut sebagai

device penghubung jaringan.

Device penghubung jaringan ini secara umum dibagi ke dalam beberapa

kategori, yaitu repeater, bridge, dan router. Repeater merupakan fasilitas paling

sederhana dalam jaringan komputer yang berfungsi menerima sinyal dari satu

segmen kabel LAN dan mengirimkannya kembali dengan kekuatan yang sama

dengan sinyal asli pada satu atau lebih segmen kabel LAN yang lain. Dengan adanya

repeater, jarak antar dua jaringan komputer bisa diperjauh. Bridge dapat

Page 16: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

23

menghubungkan jaringan menggunakan metode transmisi berbeda atau medium

access control yang berbeda. Router memiliki kemampuan melewatkan IP dari satu

jaringan ke jaringan lain yang mungkin memiliki banyak jalur di antara keduanya.

Router-router yang saling terhubung ke dalam jaringan internet turut serta dalam

sebuah algoritma routing terdistribusi untuk menentukan jalur terbaik yang dilalui

paket IP dari satu sistem ke sistem lain.

2.5 Proxy Server

Proxy server merupakan suatu komputer/hardware yang menghubungkan dua

jaringan (http://www.infokomputer.com/arsip/internet/0797/tutor/tutorial.shtml, 1997).

Umumnya proxy server digunakan untuk menghubungkan jaringan internal (Private IP)

dengan jaringan eksternal (Public IP), hubungan antara proxy server, jaringan internal,

dan jaringan eksternal bisa digambarkan secara kasar seperti berikut ini:

[ jaringan internal ] - eth0-<proxy>-eth1 - [ jaringan eksternal ]

Private IP tidak bisa mengakses data pada Public IP, sehingga diperlukan proxy

server untuk menghubungkan keduanya. Data yang dikirimkan dari komputer internal

akan diubah IP asalnya menjadi IP proxy server, dan tanggapan yang didapat akan

dikembalikan pada komputer pada jaringan internal yang melakukan request.

Pada awalnya, proxy server dikembangkan untuk menyimpan halaman web yang

sering diakses. Saat pertama kali munculnya internet, koneksi sangat lambat, ruang

lingkupnya masih relatif kecil, dan halaman web masih statis. Pada waktu itu internet

hanya terdiri dari beberapa ribu situs yang sebagian besar untuk para ilmuwan dan

akademis. Setiap kali ada berita penting pada suatu situs web maka banyak ilmuwan dari

organisasi yang sama akan mengunjungi situs tersebut.

Page 17: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

24

2.5.1 Fungsi Proxy Server

Proxy Server memiliki banyak manfaat antara lain melakukan blocking URL

(Uniform Resource Locator), memfilter content, mengecek konsistensi, memblokir

routing, logging dan alerting, caching, dan Reverse Proxy Load Balancing.

2.5.1.1 Pemblokiran URL

Pemblokiran URL memungkinkan administrator untuk menolak situs

tertentu berdasarkan URL. Proxy server mengecek setiap request dengan daftar

halaman yang ditolak sebelum ia memperbarui request tersebut. Jika URL

diblokir, proxy server tidak akan meminta atau memberikan halaman tersebut.

Namun, pemblokiran URL mudah diatasi, karena situs web bisa ditulis

dengan menggunakan IP address atau bahkan dengan keseluruhan nomor

alamat. User dapat mengetik apa saja dalam web browser untuk mengakses

halaman yang sama, namun URL blocker mungkin hanya akan mengecek

alamat lengkap URL.

Masalah lain dengan pemblokiran URL adalah memperbarui situs yang

diblokir. Situs seperti hacking, pornografi, dan situs game mempunyai masa

hidup yang singkat, dapat muncul dan hilang dengan cepat. Terdapat kesulitan

untuk memblokir dengan database pemblokiran URL. Kebanyakan orang akan

menggunakan search engine atau berita Usenet untuk mengetahui keberadaan

sebuah situs.

2.5.1.2 Pemfilteran Content

Karena proxy server memperbarui semua muatan protokol dan protokol

spesifik, proxy server dapat digunakan untuk mencari muatan content yang

Page 18: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

25

mencurigakan. Ini berarti layanan HTTP proxy dapat dikonfigurasi untuk

menguraikan ActiveX control, Java applet, atau bahkan gambar berukuran

besar jika dirasa hal-hal tersebut bisa menyebabkan masalah keamanan. SMTP

Proxy juga dapat digunakan untuk menguraikan attachment yang berupa

executable file dan file arsip zip jika file tersebut dirasa dapat menyebabkan

masalah.

Pemfilteran content juga dapat digunakan untuk mengecek halaman

web akan adanya kata atau kalimat tertentu, seperti merk dagang kompetitor

atau sejumlah berita hangat. ActiveX control, Java applet, dan executable file

dalam e-mail harus difilter karena dapat digunakan untuk melakukan instalasi

Trojan horse. Jika ada user yang perlu mentransfer executable file, dapat

diminta untuk mentransfernya dalam file zip atau gunakan BinHex atau

encoder yang lain untuk mentransfernya dalam format teks. File akan perlu di-

decode, sehingga mencegah pengiriman virus atau Trojan horse.

2.5.1.3 Pengecekan Konsistensi

Pengecekan konsistensi merupakan pengecekan content protocol untuk

memastikan bahwa content tersebut dapat dimengerti oleh protokol.

Pengecekan konsistensi memastikan bahwa jenis content tertentu tidak dapat

digunakan untuk mengeksploitasi kelemahan sistem keamanan dalam jaringan

internal. Sebagai contoh, SMTP daemon Sendmail Unix dulunya terkenal peka

terhadap masalah buffer overflow. Ini terjadi pada waktu email dikirim dan

membutuhkan waktu lebih lama dari yang ditentukan. Sendmail akan

mengalokasikan bagian memory sebesar yang diminta oleh email tersebut, lalu

Page 19: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

26

kemudian memeriksa email sampai akhirnya tiba di bagian akhir. Jika di antara

bagian yang diminta dan bagian akhir berisi kode executable, hacker bisa

mendapatkan akses root ke email server.

Pengecekan konsistensi dengan proxy server dapat memastikan bahwa

eksploitasi buffer overflow dengan menggunakan URL yang lebih panjang

dapat dihilangkan pada proxy server sehingga eksploitasi tersebut tidak akan

mempengaruhi mesin internal. Namun masalah yang harus dicek biasanya

tidak dapat diketahui sampai hacker mengeksploitasi terlebih dahulu, jadi

kebanyakan pengecekan konsistensi hanya dilakukan setelah ditemukan adanya

eksploitasi.

2.5.1.4 Pemblokiran Routing

Paket Transport layer perlu diarahkan karena request semuanya akan

diperbarui. Hal ini menghilangkan eksploitasi Transport layer seperti routing,

fragmentasi, dan beragam serangan Denial of Service. Dengan menghilangkan

routing, juga dapat dipastikan bahwa semua protokol yang belum ditentukan

tidak akan dilewatkan ke jaringan publik. Pemblokiran routing mungkin

merupakan keuntungan proxy server yang paling penting. Karena paket

TCP/IP sebenarnya lewat antara jaringan internal dan eksternal, banyak

serangan Denial of Service dan eksploitasi yang dapat dicegah.

2.5.1.5 Logging dan Alerting

Proxy server juga menyediakan fasilitas logging dan alerting. Proxy

server memastikan bahwa semua content mengalir melalui satu tempat, yang

Page 20: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

27

bisa

menjadi tempat pemeriksaan data jaringan. Kebanyakan proxy server akan

mencatat penggunaan proxy server oleh user dan dapat dikonfigurasi untuk

mencatat situs yang dikunjungi. Ini akan memungkinkan untuk mengatur ulang

cara browsing user jika dicurigai adanya aktivitas yang ilegal atau tidak

semestinya.

Fasilitas alert disediakan oleh beberapa proxy server untuk memberi

peringatan atas serangan yang terjadi, meskipun proxy server umumnya bukan

sasaran penyerangan. Namun, fasilitas ini bisa digunakan untuk meningkatkan

kewaspadaan pada interface eksternal, yang sering kali dicoba untuk

dieksploitasi oleh hacker.

2.5.1.6 Caching

Selain fasilitas-fasilitas diatas, proxy server juga dapat memberikan

peningkatan kinerja yang penting. Pertama, proxy server dapat menyimpan

data yang sering direquest untuk meningkatkan kinerja dengan menghilangkan

akses berlebih ke jaringan eksternal (yang kecepatannya lebih lambat). Kedua,

proxy server dapat menyeimbangkan beban layanan ke sejumlah server

internal.

Seperti telah disinggung diatas, proxy server mula-mula dikembangkan

sebagai peningkat kinerja, bukan sebagai perangkat pengaman. Dan pada awal

munculnya Internet, hanya terdapat ribuan situs web yang kkebanyakan

bersifat ilmiah dan tidak sering berubah. Karena koneksi ke Internet lambat,

proxy server dapat digunakan untuk menyimpan sebagian besar Internet secara

Page 21: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

28

lokal, sehingga pengguna internal cukup browsing ke proxy server lokal.

Content tidak berubah dengan sangat cepat, jadi ini masih masuk akal.

Sekarang caching hanya masuk akal jika ada user dalam jumlah besar

yang mengakses halaman web yang sama berulang-ulang. Pola penggunaan

seperti ini sekarang sudah jarang, jadi segi caching, proxy server sudah mulai

usang.

Dengan e-commerce yang semakin umum, caching akan kembali

menjadi fungsi yang penting karena banyak orang akan melakukan

pekerjaannya dengan menghadapi beberapa situs yang sering diakses. Sebagai

contoh, ambil agen perjalanan yang menggunakan Expedia.com dan

Travelocity.com untuk melakukan pekerjaannya. Banyak agen akan mengakses

dua situs yang sama berulang-ulang, sehingga menyimpan elemen situs utama,

gambar, dan applet adalah masuk akal.

2.5.1.7 Reverse Proxy Load Balancing

Proxy server dapat digunakan untuk melakukan reverse proxy, atau

menyediakan layanan proxy server ke client eksternal untuk server internal.

Fungsi ini digunakan untuk menyeimbangkan beban client ke sejumlah web

server. Banyak situs web yang fungsionalitasnya tinggi menggunakan aplikasi

kompleks seperti ISAPI, Active Server Pages, Java servlet, atau CGI. Aplikasi

ini dijalankan pada server, sehingga sangat mengurangi banyaknya client yang

mampu ditangani oleh satu server. Sebagai contoh, Windows 2000 server yang

menjalankan IIS (Internet Information Service) yang bisa menangani sampai

100.000 browser untuk halaman HTML standar hanya bisa menangani 5000

Page 22: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

29

browser halaman ASP (Active Server Page). Ini berarti bahwa kebanyakan

fungsi e-commerce sebenarnya tidak bisa ditangani oleh satu server, jadi situs

tersebut harus dijalankan secara paralel ke sejumlah mesin. Sebagai contoh,

http://www.microsoft.com/ dijalankan pada 30 server DNS yang identik. DNS

menyediakan skema dasar load-sharing di mana akses kemana DNS akan

mendapatkan salah satu IP address, tetapi ini belum benar-benar

menyeimbangkan beban.

Proxy server dapat digunakan untuk merespon ke satu IP address dan

kemudian mengarahkan koneksi client ke salah satu server di belakangnya.

Proxy server dapat menggunakan beberapa tolok ukur yang disediakan oleh

semua web server untuk mengetahui server mana yang mempunyai sisa

kapasitas paling banyak. Setiap client yang terhubung kemudian dapat

diarahkan ke web server mana pun yang mempunyai kapasitas yang cukup

untuk menanganinya.

2.5.2 Kelemahan Proxy Server

Selain fungsi-fungsi yang telah disebutkan di atas, ternyata proxy server juga

mempunyai kelemahan, antara lain proxy dapat membuat single point of failure,

sehingga software client sering kali harus dapat bekerja dengan proxy server (hanya

sistem firewall dan proxy server tingkat lanjut yang dapat bekerja transparan pada

jaringan), proxy server harus ada untuk semua layanan, proxy server tidak

melindungi inti sistem operasi, dan masalah proxy server terhadap kinerja.

Page 23: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

30

2.5.2.1 Single Point of Failure

Bersamaan dengan kontrol terpusat, maka ada kesalahan terpusat

(single point of failure). Jika hacker dapat mematikan proxy server, seluruh

organisasi dapat terputus dari Internet. Proxy server, router, dan firewall

semua mengalami hal ini. Pada router, masalah mudah diatasi dengan

menggunakan lebih dari satu rute ke Internet. Firewall jauh lebih aman

dibanding proxy server karena menyediakan filtering paket untuk

menghilangkan masalah yang disebabkan oleh Denial of Service. Namun,

proxy server murni tidak menyertakan fungsi untuk melindungi diri dari

serangan sehingga sangat rentan baik terhadap penyusupan dan Denial of

Service.

Proxy server modern biasanya menyertakan fitur hot-failover, di mana

proxy server kedua dengan koneksi jaringan yang sama secara berkelanjutan

melakukan query pada proxy server yang aktif dan mengambil IP addressnya

jika proxy server tersebut tidak aktif. Yang lain menggunakan fitur load-

balancing untuk menyediakan beberapa proxy server yang seluruhnya

digunakan pada saat bersamaan. Fitur Load Balancing pada operating system

dapat dikonfigurasi bersama software proxy server untuk membuat proxy

server yang bersifat faulttolerant semacam ini.

2.5.2.2 Persyaratan Client

Web browser yang digunakan untuk melakukan browsing di internet

harus mendukung koneksi ke proxy server dengan cara mengonfigurasi ke

proxy server mana semua request harus dikirimkan. Jika software client tidak

Page 24: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

31

dapat dikonfigurasi untuk menggunakan proxy server, layanan proxy server

tidak dapat digunakan kecuali dengan Network Address Translator. Ini bisa

menjadi masalah besar untuk layanan seperti FTP di mana software client yang

disertakan bersama kebanyakan operating system tidak mendukung koneksi ke

proxy server.

Layanan proxy server yang mempunyai address translating firewall

dapat mengatasi mengatasi ini karena dapat memodifikasi alamat jaringan

inbound dan outbound. Ini berarti client tidak perlu tahu atau dikonfigurasi

untuk menggunakan proxy server yang ada sebagai bagian dari address

translating firewall.

2.5.2.3 Persyaratan Layanan

Layanan proxy server yang berbeda dibutuhkan untuk setiap protokol

layanan. Network Address Translation bersifat universal dan dapat bekerja

dengan semua protokol kecuali protokol-protokol yang mengandalkan IP

address atau membutuhkan kemampuan untuk membuka back channel untuk

client. Protokol yang tidak memiliki layanan proxy server tidak dapat

dihubungkan melalui proxy server, kecuali dengan menggunakan layanan

proxy server TCP generic (seperti proxy server SOCKS generic) yang bekerja

mirip dengan Network Address Translator. Namun, layanan seperti ini tidak

dapat melakukan content filtering.

Adanya banyak layanan membuat pemfilteran content yang tidak

efektif. Layanan streaming seperti RealAudio atau RealVideo sangat sulit untuk

difilter kerena isinya harus dikirimkan secara real time, dan interupsi pada

Page 25: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

32

aliran data akan membuat sisa data tidak dapat dibaca. Karena content seperti

ini tidak dapat difilter, maka harus diblokir jika dianggap membahayakan

keamanan.

2.5.2.4 Kerentanan Inti Sistem Operasi

Seperti web server, proxy server juga beroperasi pada Application

Layer, di atas Network dan Transport Layer. Ini berarti proxy server tidak

melakukan apa-apa selain memfilter paket TCP/IP yang tiba di server, dan

tidak mencampuri layanan Application Layer yang lain seperti file sharing atau

remote procedure call. Hal ini membuat komputer terbuka terhadap hacking.

Walaupun hampir semua operating system modern mendukung pemilteran

paket, namun filter yang terdapat tidak sekuat firewall. Port-port yang tidak

digunakan sebaiknya diblok untuk dapat meningkatkan keamanan pada proxy

server.

Eksploitasi dapat muncul pada berbagai level, maka itu sebaiknya

hanya menjalankan sedikit layanan pada firewall dan memisahkan fungsi proxy

server pada mesin yang terpisah. Jika proxy server dibuat di belakang filter,

maka hacker dapat berada di belakang filter untuk mengeksploitasi proxy

server. Dengan menggunakan firewall yang terintegrasi dengan proxy server,

filter masih dapat melindungi jaringan bahkan jika layanan proxy server

dieksploitasi.

Page 26: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

33

2.5.2.5 Dampak Terhadap Kinerja

Proxy server memiliki kekurangan pada kinerja, yaitu terdapat

kemungkinan terjadinya bottleneck. Seperti firewall atau router, satu koneksi

proxy server ke internet dapat membuat bottleneck jika tidak di-upgrade ketika

jumlah user jaringan bertambah. Walaupun proxy server awalnya

meningkatkan kinerja melalui mekanisme caching, namun proxy server dapat

membuat semua semua user yang menggunakannya menunggu jika jumlah

user lebih banyak dari yang dapat didukung oleh server. Bottleneck proxy

server hanya dapat terjadi bila koneksi jaringan lebih cepat dari 1,5 MB/s atau

pada waktu ada yang salah dengan proxy server. Untuk dapat mengatasi hal ini

adalah dengan menambah lebih banyak proxy server.

2.6 Squid Proxy Server

Menurut Dodi Maryanto (2001), Squid Proxy Server digunakan untuk

melakukan efisiensi bandwidth internet pada sebuah organisasi yang terhubung ke

jaringan internet. Hal ini diperlukan mengingat antara lain kecenderungan

pengguna/sekelompok pengguna internet yang mengakses halaman web tertentu

secara terus-menerus pada suatu kurun waktu.

Hal tesebut tidak hanya terjadi di perusahaan yang menggunakan internet,

tetapi juga termasuk di warnet-warnet. Hal ini akan membebani bandwidth karena

setiap permintaan halaman web akan diperlakukan dengan cara yang sama, yaitu web

server yang diminta akan memberikan halaman web yang diminta secara utuh,

terlepas dari apakah halaman tersebut pernah diminta sebelumnya, dalam waktu

yang relatif singkat.

Page 27: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

34

2.6.1 Cara Kerja Squid Proxy Server

Squid proxy server melakukan tugasnya dengan menyimpan halaman-

halaman web (selanjutnya disebut object) yang pernah menjadi request oleh

client pada suatu jaringan internal, sehingga apabila ada permintaan terhadap

object yang sama dan pernah diakses sebelumnya dalam perbedaan waktu yang

singkat atau jika ada object yang tadinya disimpan itu belum kadaluarsa, maka

squid proxy server tidak akan meneruskan permintaan itu ke web server di

jaringan internet, melainkan akan memberikan object yang disimpannya kepada

client yang membutuhkan. Object/Internet Object adalah file, dokumen atau

respon terhadap sebuah permintaan terhadap berbagai layanan seperti FTP atau

HTTP.

Hal ini tentunya akan memberikan penghematan bandwidth karena object

yang sama tidak perlu secara diambil berulang-ulang dari jaringan internet.

Penghematan ini bervariasi tergantung dari beberapa faktor misalnya: jumlah

pengguna yang terhubung ke jaringan internet melalui squid proxy server,

perilaku pengguna dalam mengakses halaman web, kesamaan/kemiripan tugas

dan hobi dari masing-masing pengguna. Secara umum, penghematan dapat

berkisar antara 30-70%. Dengan pertimbangan bahwa harga bandwidth dihitung

dalam dollar Amerika, maka secara ekonomik penghematan itu akan sangat

besar artinya bagi organisasi tersebut.

Dalam dokumentasinya, Squid proxy server tidak hanya melayani akses

HTTP, tetapi juga gopher dan FTP. Dari sisi keamanan, Squid proxy server

mengakomodasi SSL (Secure Socket Layer), access control yang dapat

dikonfigurasi dan pencatatan akses (logging) secara penuh. Untuk

Page 28: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

35

mengakomodasi jaringan serta permintaan yang semakin besar, Squid proxy

server juga dapat disusun membentuk hirarki atau hubungan tertentu untuk

memaksimalkan penghematan bandwidth.

2.6.2 Hubungan dan Hirarki antar Squid Proxy Server

Dalam penggunaannya, dimungkinkan untuk menggunakan lebih dari

satu proxy server untuk melayani permintaan. Hal ini mungkin terjadi jika cache

server melayani permintaan (request) dalam jumlah yang besar pada satu satuan

waktu. Misalnya pada sebuah institusi pendidikan seperti universitas, perusahaan

dengan cabang yang tersebar di berbagai daerah, atau mungkin ISP (Internet

Service Provider) yang melayani ribuan client setiap harinya. Dengan

menggabungkan beberapa cache server dalam suatu hierarki, maka setiap

permintaan akan dapat dilayani dengan baik tanpa penundaan (delay) yang

terlalu lama.

Hubungan antar Squid proxy server terdiri dari 2 jenis, yaitu:

• Sibling

Merupakan hubungan setingkat secara struktural satu sama lain. Jika

sebuah cache server melakukan request terhadap cache server sibling

lainnya, maka object yang diminta akan diberikan jika memang dimiliki,

jika tidak, proxy server sibling tidak perlu melakukan request ke internet.

Page 29: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

36

• Parent/Child

Merupakan hubungan bertingkat secara struktural satu sama lain. Artinya,

sebuah cache server dapat mempunyai parent berupa cache server lain,

sedangkan cache server lain tersebut otomatis mempunyai child cache

server asalnya.Jika sebuah cache server melakukan request terhadap cache

server parent lainnya, maka object yang diminta akan diberikan jika

memang dimiliki dan cache server parent wajib melakukan request ke

internet jika object tersebut tidak dimilikinya.

Pada struktur yang lebih kompleks, dimungkinkan penyusunan cache

server secara sibling maupun parent/child secara bersamaan. Hal ini tentu saja

dilakukan dengan pertimbangan banyaknya permintaan terhadap object internet,

dan dengan saling terhubungnya proxy server, diharapkan respon yang lebih

cepat.

Proxy server yang ada dalam suatu hirarki dalam berkomunikasi dengan

cache server lain dalam hirarki yang sama menggunakan Internet Cache

Protocol (ICP). Komunikasi ini dapat berupa pertanyaan tentang ketersediaan

suatu object atau jawaban atas pertanyaan tersebut.

ICP menggunakan default port 3130 dan protokol UDP untuk saling

berkomunikasi. Fungsi ini dapat dimatikan jika sibling/parent tidak menyalakan

fungsi ICP dengan cara memberikan option no-query pada daftar cache_peer.

Page 30: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

37

2.6.3 Manajemen Objek

Manajemen objek merupakan salah satu hal yang sangat penting pada

operasional Squid. Metadata disimpan dalam memory dan merujuk ke objek tertentu

di dalam harddisk. Hal ini dilakukan untuk mempercepat proses pencarian objek

tertentu hanya dengan melihat metadata-nya saja.

Dalam proses ini juga diatur objek mana yang harus dihapus berdasarkan

umur object yang bersangkutan. Penghapusan objek perlu dilakukan mengingat

banyak objek yang sudah kadaluarsa/tidak digunakan lagi dalam waktu tertentu.

Umur objek dibatasi oleh hal-hal sebagai berikut:

• Metode penghapusan objek

Objek dihapus menurut algoritma tertentu yang sebelumnya sudah disebutkan

pada konfigurasi squid proxy server.

• Kapasitas harddisk dari proxy server

Kapasitas harddisk yang terbatas akan turut membatasi jumlah keseluruhan

object yang dapat ditampung oleh squid proxy server. Jika penggunaan

harddisk sudah mencapai batas tertentu (cache_swap_high pada squid.conf),

maka penghapusan objek akan lebih banyak dilakukan

• Jumlah permintaan client

Permintaan client yang tinggi otomatis akan menambah jumlah objek yang

disimpan dalam harddisk. Semakin banyak objek yang disimpan berarti ada

objek dengan ‘umur paling tua’ – misalnya – akan dihapus terlebih dahulu.

Page 31: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

38

Algoritma yang digunakan dalam penghapusan objek menentukan objek

mana yang akan terlebih dahulu dihapus dan pada akhirnya menentukan kinerja dari

proxy server yang bersangkutan. Algoritma yang umum digunakan antara lain:

Algoritma Keterangan Logistic Regression (LR)

Menghapus object dengan nilai LR terkecil. Nilai LR dapat diartikan sebagai besarnya kemungkinan object tersebut akan diakses di waktu yang akan datang

Least Recently Used (LRU)

Menghapus object berdasarkan waktu terakhir kali object tersebut diakses. Object dengan waktu paling lama akan dihapus terlebih dahulu.

Least Frequently Used (LFU)

Menghapus object yang paling jarang diakses

First In First Out (FIFO)

Menghapus object secara urut berdasarkan waktu mulai disimpan ke dalam harddisk.

Random Menghapus object secara acak Table 2.2 Algoritma penghapusan object

2.6.4 Pencatatan Aktivitas/Log

Berbagai aktivitas Squid proxy server dapat dilihat pada tiga log utama yang

dihasilkan yaitu access.log, cache.log, dan store.log. Dari file tersebut, bisa

didapatkan berbagai macam informasi seperti seberapa berat beban kerja server,

berapa presentase object yang miss dan masih banyak lagi informasi lainnya.

Berikut adalah deskripsi singkat tentang isi dari masing-masing log yang

digunakan oleh squid proxy server:

Nama Log Keterangan access.log Catatan akses yang dilakukan oleh client seperti IP client,

waktu yang dibutuhkan, metode, URL tujuan, dsb

store.log Catatan penyimpanan object ke dalam hard disk

cache.log Pesan yang dibuat squid proxy server sewaktu beroperasi, biasanya berupa pesan error.

Table 2.3 Deskripsi macam-macam log

Page 32: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

39

access.log banyak digunakan sebagai dasar monitoring dan evaluasi terhadap

kinerja squid proxy server. Hal ini masuk akal karena di dalam access.log banyak

terdapat informasi penting yang dapat diolah lebih lanjut menjadi statistik berbentuk

grafis sehingga mudah untuk dibaca. Informasi penting tersebut mengacu kepada

format umum yang digunakan pada penulisan sebuah access.log. Format umum

tersebut adalah sebagai berikut:

Time elapsed remotehost code/status bytes method URL rfc931 peerstatus/peerhost

type

Masing-masing field pada format tersebut dapat dijelaskan sebagai berikut:

• Time: Mencatat waktu pada saat request client diterima oleh squid proxy

server. Catatan waktu ini berupa UNIX timestamp dalam format UTC sampai

pembulatan milidetik.

• Elapsed: Menyatakan satu waktu dalam milidetik yang dibutuhkan squid proxy

server untuk memenuhi permintaan client

• Remotehost: IP address dari client yang melakukan request

• Code/status: Menyatakan kode keberhasilan dan status http yang akan

dijelaskan lebih lanjut

• Bytes: Menyatakan besarnya object yang dikirim ke client termasuk header dan

pesan error jika permintaan gagal dipenuhi

• Method: Menyatakan metode permintaan untuk mendapatkan object yang akan

dijelaskan lebih lanjut

• URL: Menyatakan alamat object yang diminta oleh client

Page 33: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

40

• RFC931: Menyatakan pencarian identitas dari client. Secara default di set off

karena akan mempengaruhi kinerja squid proxy server. Kolom ini diisi ‘-‘ jika

di set off.

• Peerstatus/peerhost: Menyatakan kode hirarki yang mendefinisikan dari mana

object tersebut diambil

• Type: Menyatakan tipe object yang diminta, dalam contoh berupa text/html.

Tipe lainnya seperti images/gif. Pada pertukaran ICP tipe yang dicantumkan

berupa tanda titik dua (:)

2.6.5 Manajemen dan Monitoring Log

Pada squid proxy server yang sudah beroperasional, bisa ditemukan berbagai

informasi penting seputar squid proxy server tersebut hanya melalui log-log yang

dihasilkan. Dari tiga log utama yang disebutkan diatas, dapat dilakukan analisis

mengenai berbagai macam hal seperti kinerja sistem, utilisasi memory dan harddisk,

dan masih banyak lagi.

Hasil analisis tersebut berguna untuk berbagai keperluan dari yang sifatnya

perawatan, update terhadap sistem keamanan, sampai kepada kecenderungan akses

pengguna dilihat dari segi sosial dan latar belakang pendidikan. Melihat manfaat

yang bisa diambil dari analisis log ini, maka perlu dibuat suatu analisis untuk melihat

berbagai kecenderungan informasi yang dihasilkan. Informasi ini dapat

dipergunakan sebagai dasar pengambilan keputusan berkenaan dengan proxy server

tersebut atau hanya menjalankan fungsinya sebagai sistem monitoring yang tentunya

akan banyak berguna di kemudian hari.

Page 34: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

41

Masalah timbul ketika log yang jumlah barisnya mencapai ribuan pada squid

proxy server yang sangat aktif tersebut tadinya harus dibaca secara manual untuk

menemukan informasi seperti disebutkan di atas. Beberapa administrator jaringan

berusaha mengatasi masalah ini dengan berbagai cara diantaranya menyalin log

tersebut ke worksheet software seperti Microsoft excel untuk kemudian diteliti. Cara

lainnya adalah dengan melakukan backup terhadap log-log tersebut untuk kemudian

dikirim secara remote untuk diteliti lebih lanjut. Cara tersebut tentu saja mempunyai

beberapa kekurangan diantaranya adalah tetap harus melihat log-log tersebut secara

manual, baris-perbaris untuk melihat kecenderungan informasi dan error yang

terjadi.

Squid proxy server sebetulnya menyertakan paket monitoringnya yang

dikenal dengan cachemanager berbasis CGI. Beberapa paket monitoring lainnya

adalah prostat dan calamaris. Dengan berbagai macam perangkat lunak tersebut,

administrator sistem tidak perlu repot untuk memantau proxy server.

2.6.6 Penggunaan Squid Proxy Server Secara Colocation dan Coresident

Squid Proxy Server dapat digunakan secara colocation maupun coresident.

Adapun penggunaan Squid Proxy Server secara colocation sama prinsipnya dengan

penerapan dedicated server yang hanya digunakan untuk keperluan sebuah server

dan tidak dapat berfungsi sebagai sebuah workstation. Jadi squid proxy server di

install pada sebuah server yang akan berfungsi sebagai sebuah proxy server saja.

Sedangkan penggunaan Squid Proxy Server secara coresident adalah sebuah

metode penggunaan server yang memiliki fungsi lebih dari satu. Jadi server tersebut

dapat memiliki fungsi lain, seperti web server, worstation, dan sebagainya.

Page 35: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

42

Adapun penggunaan Squid Proxy Server secara coresident perlu didukung

oleh penggunaan IPTables yang akan melakukan redirection untuk sebuah request

dari server yang akan diarahkan ke Squid Proxy Server, karena server tersebut tidak

berfungsi sebagai proxy server, sehingga tidak dapat melayani request dari client.

2.6.7 Tag-tag Squid

Tag-tag yang dapat digunakan untuk menkonfigurasi Squid proxy server

terdapat pada file squid.conf. Berikut ini merupakan rangkuman dari tag-tag yang

ada di file squid.conf:

2.6.7.1 Network options

• http_port

Format: http_port port

http_port hostname:port

http_port ip_address:port

Adalah socket address dimana squid proxy server mendengar permintaan

HTTP dari client. Jika menuliskan hostname atau IP address, Squid proxy

server akan mengikat socket ke alamat tersebut. Ini akan menggantikan

pilihan ‘tcp_incoming_address’ yang sebelumnya digunakan. Jika Squid

proxy server dijalankan di mode accelerator, client dapat mendengar dari

port 80 juga. Jika Squid proxy server dijalankan di mesin dual-homed

dengan interface internal dan eksternal, sebaiknya masukkan alamat

internal:port pada tag http_port. Dengan cara ini Squid proxy server hanya

akan terlihat alamat internalnya. Nilai default untuk tag ini: http_port 3128

Page 36: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

43

• https_port

Format: [ip:]port cert=certificate.pem [key=key.pem] [options...]

https_port adalah socket address dimana squid proxy server akan

mendengar request HTTPS dari client. Tag sangat berguna jika squid proxy

server dijalankan di mode accelerator dan untuk menjalankan SSL di

acclerator level. Option yang dapat digunakan adalah:

Cert= directory path ke SSL certificate (format file: PEM)

Key= jalur untuk ke file SSL private key (format file: PEM). Jika tidak

disertakan, file certificate yang akan dianggap sebagai file hasil

kombinasi dari certificate dan file key

Version= Versi dari SSL/TLS

1 automatic (default)

2 SSLv2 only

3 SSLv3 only

4 TLSv1 only

Cipher= daftar pemisahan titik dua dari cipher

Options= berbagai pilihan SSL engine. Yang paling penting adalah:

NO_SSLv2 tidak memperbolehkan penggunaan SSLv2

NO_SSLv3 tidak memperbolehkan penggunaan SSLv3

NO_TLSv1 tidak memperbolehkan penggunaan TLSv1

Untuk lebih lengkapnya lihat src/ssl_support.c atau OpenSSL

documentation

Page 37: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

44

• ssl_unclean_shutdown

Beberapa browser (terutama Microsoft Internet Explorer) mengalami error

ketika pesan SSL shutdown muncul

• icp_port

Nomor port dimana squid proxy server mengirim dan menerima ICP query

untuk dan dari neighbor caches. Nilai defaultnya adalah 3130, dan untuk

menonaktifkannya dapat digunakan angka nol (0).

• htcp_port

Tag ini hanya tersedia jika squid proxy server di built dengan option --

enable-htcp. Nomor port squid proxy server mengirim dan menerima

HTCP query ke dan dari neighbor caches. Nilai defaultnya adalah 4827,

dan untuk menonaktifkannya dapat digunakan angka nol (0).

• mcast_groups

Format: mcast_groups 239.128.16.128 224.0.1.20

Tag ini menampilkan daftar dari multicast group yang harus dihubungkan

dengan server untuk menerima multicasted ICP queries. Disarankan untuk

tidak menggunakan multicast address yang sudah digunakan oleh

kelompok cache lain.

• udp_incoming_address

Digunakan untuk ICP socket dalam menerima paket dari cache lain. Nilai

default untuk tag ini: udp_incoming_address 0.0.0.0, yang berarti Squid

proxy server mendengar pesan UDP pada segala interface yang tersedia

Page 38: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

45

• udp_outgoing_address

Digunakan untuk paket ICP yang dikirim ke cache lain. Default:

udp_outgoing_address 255.255.255.255, berarti menggunakan socket yang

sama dengan udp_incoming_address.

2.6.7.2 Options Which Affect the Neighbor Selection Algorithm

• cache_peer

Format: cache_peer hostname type http_port icp_port

Contoh:

Hostname Type Proxy_port Icp_port options

Cache_peer parent.foo.net parent 3128 3130 [proxy only]

Cache_peer sib1.foo.net sibling 3128 3130 [proxy only]

Cache_peer sib2.foo.net sibling 3128 3130 [proxy only]

Type: ‘parent’, ‘sibling’, atau ‘multicast’

Proxy_port: nomor port dimana cache mendengarkan proxy request

Icp_port: digunakan untuk melakukan query neighbor cache tentang

object. Untuk non-ICP neighbor dapat dituliskan angka ‘7’ pada

icp_port dan pastikan bahwa neighbor machine memiliki UDP

echo port yang aktif di file /etc/inetd.conf-nya.

Options: proxy-only, weight=n, ttl=n, no-query, default, round-robin,

multicast-responder, closest-only, no-digest, no-netdb-exchange,

no-delay, login=user:password | PASS | *:password, connect-

Page 39: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

46

timeout=nn, digest-url=url, allow-miss, max-conn, htcp, carp-

load-factor

• cache_peer_domain

Digunakan untuk membatasi domain di neighbor cache yang akan di query.

Format: cache_peer_domain cache-host domain [domain...]

cache_peer_domain cache-host !domain

Contoh: cache_peer_domain parent.foo.net .edu

• neighbor_type_domain

Format:

neighbor_type_domain neighbor parent|sibling domain domain .....

Contoh: cache_peer parent cache.foo.org 3128 3130

neighbor_type_domain cache.foo.org sibling .com .net

neighbor_type_domain cache.foo.org sibling .au .de

neighbor_type_domain dapat memodifikasi neighbor type ke domain

tertentu. Beberapa domain dapat diperlakukan berbeda dengan neighbor

type default yang ada pada cache_peer.

• icp_query_timeout (msec)

Normalnya, secara otomatis Squid proxy server menyediakan nilai optimal

dari ICP query timeout berdasarkan round-trip-time dari query ICP

terakhir. Untuk mengubah nilai yang telah di set Squid proxy server, ubah

nilai ‘icp_query_timeout’ ke nilai yang bukan nol.

Page 40: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

47

• maximum_icp_query_timeout (msec)

Option ini digunakan untuk menentukan batasan teratas dari nilai dynamic

timeout. Nilai default untuk tag ini: maximum_icp_query_timeout 2000

• mcast_icp_query_timeout (msec)

Untuk multicast peers, Squid Proxy Server secara teratur mengirim ICP

“probes” untuk menghitung berapa banyak peer yg mendengarkan ke

multicast address yang diberikan. Nilai pada option ini menunjukkan

berapa lama Squid Proxy Server harus menunggu untuk menghitung semua

reply. Nilai default untuk tag ini: mcast_icp_query_timeout 2000

• dead_peer_timeout (seconds)

Tag ini mengontrol berapa lama Squid Proxy Server menunggu untuk

mengumumkan sebuah peer cache “mati” (dead). Jika tidak ada ICP reply

yang diterima dalam waktu ini, maka Squid Proxy Server akan

mengumumkan bahwa peer sudah mati dan tidak menerima ICP reply lagi.

Namun, Squid Proxy Sever akan terus mengirimkan ICP query dan akan

mengumumkan bahwa peer hidup setelah menerima ICP reply secara

berurutan. Timeout ini juga berpengaruh ketika Squid Proxy Server

berharap untuk menerima ICP reply dari peer. Nilai default untuk tag ini:

cache_peer_timeout 10 seconds

• hierarchy_stoplist

Gunakan tag ini agar tidak squid proxy server tidak melakukan query

neighbor caches untuk objek tertentu.

Page 41: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

48

• no_cache

Gunakan option ini untuk memaksa agar objek tertentu tidak pernah di

cache. Gunakan kata ‘DENY’ untuk mengindikasikan nama ACL yang tidak

akan di cache.

2.6.7.3 Options Which Affect the Cache Size

• cache_mem (bytes)

‘cache_mem’ menunjukkan jumlah memory yang digunakan untuk in-

transit object, hot objects, negative-cached objects. Data untuk objek-objek

ini disimpan dalam blok-blok berukuran 4 KB. Parameter ini menunjukkan

batasan teratas pada ukuran total dari blok berukuran 4 KB yang

dialokasikan. Objek in-transit menempati prioritas tertinggi. Jika incoming

request rate membutuhkan lebih banyak memori ‘cache_mem’ untuk

menggenggam objek in-transit, Squid Proxy Server akan melewati batas

untuk memuaskan permintaan yang baru. Ketika beban berkurang, blok

akan dibebaskan hingga mencapai high-water mark. Setelah itu blok akan

digunakan untuk menyimpan hot object. Nilai default untuk tag ini:

cache_mem 8 MB

• cache_swap_low (percent, 0-100)

cache_swap_high (percent, 0-100)

Merupakan low dan high-water mark untuk cache object replacement.

Pergantian dimulai saat penggunaan swap (disk) diatas low-water mark dan

mencoba untuk memelihara penggunaan dekat low-water mark. Ketika

Page 42: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

49

penggunaan swap semakin dekat ke high-water mark, penyingkiran objek

menjadi semakin agresif. Jika penggunaan dekat dengan low-water mark,

hanya sedikit pergantian yang dilakukan setiap kalinya. Nilai default untuk

tag ini:

cache_swap_low 90

cache_swap_high 95

• maximum_object_size (bytes)

Objek yang ukurannya lebih besar dari ukuran ini tidak akan disimpan ke

dalam disk. Jika ingin mendapatkan perbandingan BYTES hit yang tinggi,

nilai option ini harus ditingkatkan. Untuk meningkatkan kecepatan dari

menyimpan bandwidth sebaiknya digunakan nilai yang rendah. Jika

menggunakan LFUDA replacement policy, nilai dari tag ini sebaiknya

ditingkatkan untuk memaksimalkan peningkatan dari LFUDA byte hit rate.

Nilai default untuk tag ini: maximum_object_size 4096 MB

• minimum_object_size (bytes)

Objek yang ukurannya lebih kecil dari ukuran ini tidak akan disimpan ke

dalam disk. Default: minimum_object_size 0 KB, yang berarti tidak ada

nilai minimum.

• maximum_object_size_in_memory (bytes)

Objek yang ukurannya lebih besar dari ukuran ini tidak akan disimpan di

dalam cache memory. Nilai dari tag ini harus di set cukup tinggi untuk

menjaga objek yang sering diakses di memori untuk meningkatkan kinerja

Page 43: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

50

sedangkan (whilst) cukup rendah untuk menjaga objek yang lebih besar

dari timbunan cache_mem.

Nilai default untuk tag ini: maximum_object_size_in_memory 8 KB

• ipcache_size (number of entries)

ipcache_low (percent)

ipcache_high (percent)

Merupakan ukuran, low, dan high-water mark untuk IP cache. Nilai default

untuk tag ini:

ipcache_size 1024

ipcache_low 90

ipcache_high 95

• fqdncache_size (number of entries)

Jumlah maksimum dari FQDN cache yang masuk. Nilai default untuk tag

ini: fqdncache_size 1024

• cache_replacement_policy

Tag ini menentukan objek yang akan ditukarkan ketika disk space

dibutuhkan.

Lru: Sederetan dari Squid Proxy Server yang original berdasarkan pada

kebijaksanaan LRU

Heap GDFS: Greedy-Dual Size Frequency

Heap LFUDA: Least Frequently Used with Dynamic Aging

Heap LRU: kebijaksanaan LRU yang diimplementasikan menggunakan

heap

Page 44: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

51

Nilai default untuk tag ini: cache_replacement_policy lru

• memory_replacement_policy

Menentukan objek yang akan disingkirkan saat space memori dibutuhkan.

Nilai default untuk tag ini: memory_replacement_policy lru

2.6.7.4 Logfile Pathnames and Cache Directories

• cache_dir

Format: cache_dir Type Directory-Name Mbytes L1 L2 [options]

Type: menunjukan sistem penyimpanan yang digunakan. Nilai Defaultnya

adalah ‘ufs’.

Directory: merupakan direktori di level yang teratas dimana file cache

swap akan disimpan. Direktori harus sudah ada dan dapat

ditulisi oleh proses Squid Proxy Server.

Mbytes: jumlah disk space (MB) untuk digunakan dibawah direktori ini.

Level-1: adalah jumlah level pertama dari subdirektori yang akan dibuat

dibawah ‘Directory’.

Level-2: adalah jumlah level kedua dari subdirektori yang akan dibuat

dibawah setiap level pertama subdirektori

Nilai default untuk tag ini: cache_dir ufs /var/spool/squid 100 16 256

• cache_access_log

Tag ini mencatat aktivitas permintaan client. Tag ini berisi masukkan untuk

setiap query permintaan HTTP dan ICP yang diterima. Untuk

menonaktifkan, masukkan “none”.

Page 45: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

52

Nilai default untuk tag ini: cache_access_log /var/log/squid/access.log

• cache_log

File pencatatan cache. File dimana informasi umum tentang cache

behavior. Nilai default untuk tag ini: cache_log /var/log/squid/cache.log

• cache_store_log

Mencatat aktivitas dari manajer penyimpanan. Menunjukkan objek mana

yang ditolak dari cache, dan objek mana yang disimpan dan untuk berapa

lama disimpannya. Untuk menonaktifkannya, masukkan “none”. Nilai

default untuk tag ini: cache_store_log /var/log/squid/store.log

• cache_swap_log

Lokasi untuk file cache “swap.state”. File log ini memegang metadata dari

objek yang di simpan di disk. Biasanya digunakan untuk membangun

kembali cache selama startup.

• emulate_httpd_log on|off

Cache dapat melakukan emulasi format file log yang digunakan oleh

banyak program ‘httpd’. Nilai default untuk tag ini: emulate_httpd_log off

• log_ip_on_direct

Mencatat alamat IP tujuan pada hierarchy log tag ketika keluar secara

langsung. Versi awal Squid Proxy Server mencatat hostname-nya disini.

Untuk menggunakan cara lama, set menjadi off.

• mime_table

Jalur ke tabel MIME squid.

Nilai default untuk tag ini: mime_table /etc/squid/mime.conf

Page 46: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

53

• log_mime_hdrs on|off

Cache dapat merecord request dan response MIME headers untuk tiap

transaksi HTTP. Nilai default untuk tag ini: log_mime_hdrs off

• Useragent_log

Squid Proxy Server akan menulis kolom User-Agent dari permintaan HTTP

hingga ke nama file yang disertakan disini.

• Referer_log

Squid Proxy Server akan menulis kolom referer dari permintaan HTTP

hingga ke nama file yang disertakan disini.

• Pid_filename

Nama file untuk menuliskan process-id. Nilai default untuk tag ini:

pid_filename /var/run/squid.pid

• Debug_options

Option Logging di set sebagai section, suatu tingkatan dimana tiap file

sumber ditetapkan bagian yang unik. Nilai default untuk tag ini:

debug_options ALL,1

• Log_fqdn on|off

Set menjadi on jika menginginkan pencatatan nama domain yang

berkualitas ke dalam access.log. Untuk melakukan ini Squid Proxy Server

melakukan DNS lookup untuk semua IP yang terhubung dengannya. Untuk

beberapa situasi, ini dapat meningkatkan latency yang dapat membuat

cache terlihat lebih lambat saat browsing. Nilai default untuk tag ini:

log_fqdn off

Page 47: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

54

• Client_netmask

Suatu netmask untuk alamat client di logfiles dan cachemgr output. Ubah

option ini untuk menjaga privacy dari cache client. Netmask 255.255.255.0

akan mencatat semua IP pada jangkauan tersebut dengan digit terakhirnya

di set menjadi ‘0’.

Nilai default untuk tag ini: client_netmask 255.255.255.255

2.6.7.5 Options for External Support Programs

• ftp_user

Agar password login yang anonymous menjadi lebih informatif, set option

ini menjadi sesuatu yang memiliki arti untuk domain.

Nilai default untuk tag ini: ftp_user Squid@

• ftp_list_width

Set lebar dari daftar ftp. Ini harus di set agar sesuai dengan lebar dari

browser standar. Jika di set terlalu kecil dapat memotong nama file yang

panjang saat melihat site ftp. Nilai default untuk tag ini: ftp_list_width 32

• ftp_passive

Jika firewall tidak mengijinkan Squid Proxy Server untuk menggunakan

koneksi pasif, sebaiknya option ini di set off. Nilai default untuk tag ini:

ftp_passive on

• ftp_sanitycheck

Untuk alasan keamanan dan integritas data, secara default Squid Proxy

Server melakukan pemeriksaan sanity (sanity check) terhadap alamat dari

Page 48: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

55

koneksi data FTP untuk memastikan koneksi data ke server yang diminta.

Jika ingin memperbolehkan koneksi FTP ke server menggunakan IP

lainnya untuk koneksi data maka set option ini menjadi off.

Nilai default untuk tag ini: ftp_sanitycheck on

• ftp_telnet_protocol

Protokol FTP secara resmi didefinisikan untuk menggunakan protokol

telnet sebagai transport channel untuk control connection. Nilai default

untuk tag ini: ftp_telnet_protocol on

• cache_dns_program

Option ini hanya dapat digunakan jika Squid Proxy Server di built dengan

–disable-internal-dns. Option ini menunjukkan lokasi dari pengeksekusian

untuk proses dnslookup.

Nilai default untuk tag ini: cache_dns_program /usr/lib/squid/dnsserver

• dns_children

Option ini hanya dapat digunakan jika Squid Proxy Server di built dengan

–disable-internal-dns. Sejumlah proses lahir untuk melayani dns name

lookup. Untuk cache yang bermuatan berat pada server yang besar, nilai

option ini harus ditambah sedikitnya 10 dan maksimumnya adalah 32.

Sedikitnya harus memiliki satu proses dnsserver. Nilai default untuk tag

ini: dns_children 5

• dns_retransmit_interval

Permulaan dalam mengantarkan interval untuk DNS query. Interval

digandakan setiap kali semua konfigurasi DNS server selesai dicoba.

Page 49: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

56

Nilai default untuk tag ini: dns_retransmit_interval 5 seconds

• dns_timeout

Merupakan timeout dari DNS query. Jika tidak ada respon yang diterima ke

DNS query selama waktu ini, maka semua DNS server untuk domain yang

diquery dianggap tidak ada.

Nilai default untuk tag ini: dns_timeout 2 minutes

• dns_defnames on|off

Option ini hanya dapat digunakan jika Squid Proxy Server di built dengan

–disable-internal-dns. Untuk menjaga cache dalam sebuah hirarki dari

penerjemahan single-component hostname secara lokal. Untuk mengijinkan

dnsserver agar menangani single-component name, set option ini menjadi

on. Nilai default untuk tag ini: dns_defnames off

• dns_nameservers

Daftar dari dns server yang digunakan selain yang ada di file

/etc/resolv.conf. contoh: dns_nameservers 10.0.0.1 192.172.0.4

• hosts_file

Lokasi dari asosiasi database host-local IP name-address. File ini di cek

saat starup dan saat konfigurasi. Jika di set ‘none’ maka tidak akan di cek.

Jika append-domain digunakan, maka domain tersebut akan ditambahkan

ke domain-local. Nilai default untuk tag ini: hosts_file /etc/hosts

• diskd_program

Menunjukkan lokasi dari diskd yang dapat dieksekusi. Ini hanya berguna

jika diskd dicompile sebagai salah satu dari modul penyimpanan I/O.

Page 50: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

57

Nilai default untuk tag ini: diskd_program /usr/lib/squid/diskd

• unlinkd_program

Menunjukkan lokasi dari proses penghapusan file yang dapat dieksekusi.

Nilai default untuk tag ini: unlinkd_program /usr/lib/squid/unlinkd

• pinger_program

Option ini hanya dapat digunakan jika Squid Proxy Server di built dengan

–enable-icmp. Option ini menunjukkan lokasi dari proses pinger yang

dapat dieksekusi.

Nilai default untuk tag ini: pinger_program /usr/lib/squid/pinger

• redirect_program

Menunjukkan lokasi dari URL redirector yang dapat dieksekusi.

• Redirect_children

Jumlah proses redirector yang dilahirkan. Jika dimulai dengan sangat

sedikit, Squid Proxy Server akan menunggu untuk memproses backlog dari

URL, sedangkan jika dimulai dengan sangat banyak maka Squid Proxy

Server akan menggunakan RAM dan sistem lain.

Nilai default untuk tag ini: redirect_children 5

• redirect_rewrites_host_header

Secara default Squid Proxy Server menuliskan berbagai Host: header pada

permintaan yang dialihkan.

Nilai default untuk tag ini: redirect_rewrites_host_header on

Page 51: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

58

• redirector_access

Jika didefinisikan, daftar akses ini menunjukkan permintaan mana yang

dikirim ke proses redirector.

• Auth_param

Digunakan untuk mendefinisikan parameter untuk berbagai susunan

authentikasi yang didukung oleh Squid Proxy Server.

Format: auth_param scheme parameter [setting]

Konfigurasi minimum yang disarankan:

#auth_param digest program

#auth_param digest children 5

#auth_param digest realm Squid proxy-caching web server

#auth_param digest nonce_garbage_interval 5 minutes

#auth_param digest nonce_max_duration 30 minutes

#auth_param digest nonce_max_count 50

#auth_param ntlm program

#auth_param ntlm children 5

#auth_param ntlm max_challenge_reuses 0

#auth_param ntlm max_challenge_lifetime 2 minutes

#auth_param ntlm use_ntlm_negotiate off

#auth_param basic program

auth_param basic children 5

auth_param basic realm Squid proxy-caching web server

auth_param basic credentialsttl 2 hours

auth_param basic casesensitive off

Page 52: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

59

• authenticate_cache_garbage_interval

Periode waktu antara koleksi garbage berseberangan dengan username

cache. Ini merupakan pertukaran antara utilisasi memori dengan CPU.

Nilai default untuk tag ini: authenticate_cache_garbage_interval 1 hour

• authenticate_ttl

Waktu saat user dan kepercayaannya tinggal di dalam logged pada user

cache sejak request terakhirnya.

Nilai default untuk tag ini: authenticate_ttl 1 hour

• authenticate_ip_ttl

Jika menggunakan proxy authentication dan ‘max_user_ip’ ACL, ini

mengarahkan pengawasan berapa lama Squid Proxy Server mengingat

alamat IP yang diasosiasikan dengan tiap user. Nilai default untuk tag ini:

authenticate_ip_ttl 0 seconds

• external_acl_type

Option ini mendefinisikan external acl classes dengan menggunakan

program helper untuk melihat status.

Format: external_acl_type name [options] FORMAT.. /path/to/helper

[helper arguments...]

Options: ttl=n TTL dalam detik untuk hasil cache

Negative_ttl=n TTL untuk cached negative lookup, dalam detik

Children=n Sejumlah proses dilahirkan untuk melayani

external acl lookup dari tipe ini

Cache=n Ukuran hasil cache, default=0

Page 53: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

60

Protocol=3.0 Menggunakan URL-escaped strings sebagai ganti

dari kutip

Format: %LOGIN nama user login diauthentikasi

%IDENT ident username

%SRC IP client

%DST Host yang di request

%PROTO Protokol yang di request

%PORT Port yang di request

%METHOD cara yang di request

%{header} HTTP Request Header

%{Hdr:member} Daftar anggota dari HTTP Request Header

%{Hdr:;member} Daftar HTTP Request Header yang

menggunakan ; (titik koma) sebagai pemisah

2.6.7.6 Options for Tuning the Cache

• wais_relay_host

wais_relay_port

Relay wais meminta ke host (argumen 1) pada port (argumen 2).

Nilai default untuk tag ini: wais_relay_port 0

• request_header_max_size (KB)

Menunjukkan ukuran maksimum untuk HTTP headers dalam sebuah

request. Nilai default untuk tag ini: request_header_max_size 20 KB

Page 54: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

61

• request_body_max_size (KB)

Menunjukkan ukuran maksimum untuk HTTP request body. Dengan kata

lain, ukuran maksimum dari PUT/POST request. Jika parameter ini di set

nol, berarti tidak terbatas.

Nilai default untuk tag ini: request_body_max_size 0 KB

• refresh_pattern

Format: refresh_pattern [-i] regex min percent max [options]

Secara default, regular expression-nya adalah case-sensitive. Untuk

membuatnya menjadi case-insensitive, gunakan –i.

Min: waktu dalam menit suatu objek tanpa waktu habis yang tegas dapat

dianggap baru.

Percent: persentase dari umur objek sejak modifikasi terakhir.

Max: batas teratas dari berapa lama objek tanpa waktu habis yg tegas dapat

dianggap baru

Options: override-expire, override-lastmode, reload-into-ims, ignore-

reload

Default: refresh_pattern ^ftp: 1440 20% 10080

refresh_pattern ^gopher: 1440 0% 1440

refresh_pattern . 0 20% 4320

Page 55: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

62

• quick_abort_min (KB)

quick_abort_max (KB)

quick_abort_pct (percent)

Secara default, cache terus mendownload request yang digugurkan tetapi

yang hampir selesai (sisanya kurang dari 16 KB). Jika tidak ingin

melanjutkan download setelah permintaan client digugurkan, set

‘quick_abort_min’ dan ‘quick_abort_max” menjadi ‘0 KB’.

Nilai default untuk tag ini:

quick_abort_min 16 KB

quick_abort_max 16 KB

quick_abort_pct 95

• negative_ttl time-units

Time-to-live (TTL) untuk permintaan yang gagal. Nilai default untuk tag

ini: negative_ttl 5 minutes

• positive_dns_ttl time-units

Batas teratas dari berapa lama Squid Proxy Server akan men-cache respon

dari positive DNS. Option ini harus di set lebih besar dari negative_dns_ttl.

Nilai default untuk tag ini: positive_dns_ttl 6 hours

• negative_dns_ttl time-units

TTL untuk DNSlookups yang gagal dari negative caching. Nilai

maksimumnya 1 detik dan disarankan agar tidak mengisinya dibawah 10

detik. Nilai default untuk tag ini: negative_dns_ttl 1 minute

Page 56: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

63

• range_offset_limit (bytes)

Menetapkan batas teratas seberapa jauh jangkauan permintaan ke file yang

mungkin dapat menyebabkan Squid Proxy Server untuk melakukan

prefetch semua file. Nilai –1 dapat menyebabkan Squid Proxy Server selalu

mengambil objek dari awal jadi itu dapat men-cache hasilnya. Nilai 0 dapat

menyebabkan Squid Proxy Server tidak pernah mengambil lebih dari yang

diminta oleh client. Nilai default untuk tag ini: range_offset_limit 0 KB

2.6.7.7 Timeouts

• forward_timeout time-units

Parameter ini menunjukkan berapa lama Squid Proxy Server harus

mencoba untuk menemukan jalur ke depan untuk request sebelum berhenti.

Nilai default untuk tag ini: forward_timeout 4 minutes

• connect_timeout time-units

Parameter ini menunjukkan berapa lama untuk menunggu TCP terhubung

ke server yang diminta atau peer hingga selesai sebelum Squid Proxy

Server mencoba untuk menemukan jalur lain untuk mem-forward request.

Nilai default untuk tag ini: connect_timeout 1 minute

• peer_connect_timeout time-units

Parameter ini menunjukkan berapa lama untuk menunggu koneksi TCP

yang pending ke peer cache.

Nilai default untuk tag ini: peer_connect_timeout 30 seconds

Page 57: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

64

• read_timeout time-units

read_timeout diaplikasikan di koneksi server-side. Setelah berhasil read(),

timeout akan diperpanjang oleh jumlah ini. Jika tidak ada data yang dibaca

lagi setelah waktu ini, permintaan akan digugurkan dan dicatat dengan

ERR_READ_TIMEOUT. Nilai default untuk tag ini: read_timeout 15

minutes

• request_timeout

Berapa lama waktu untuk menunggu permintaan HTTP selanjutnya pada

koneksi yang persistent setelah permintaan sebelumnya selesai.

Nilai default untuk tag ini: persistent_request_timeout 1 minutes

• persistent_request_timeout

Berapa lama waktu yang dibutuhkan untuk menunggu permintaan HTTP

selanjutnya pada sebuah koneksi persistent setelah permintaan sebelumnya

selesai. Default: persistent_request_timeout 1 minute

• client_lifetime time-units

Waktu maksimum dari client (browser) yang diijinkan untuk terhubung ke

proses cache. Ini menjaga cache dari banyak socket (dan selanjutnya file

descriptor) diikat dalam status CLOSE_WAIT dari remote client yang pergi

tanpa shutting down yang benar.

Nilai default untuk tag ini: client_lifetime 1 day

• half_closed_clients

Beberapa client mungkin men-shutdown sisi pengiriman dari koneksi TCP,

ketika meninggalkan sisi penerimanya dengan terbuka. Secara default,

Page 58: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

65

koneksi half-closed client tetap dibuka hingga read(2) atau write(2) pada

socket mengembalikan pesan kesalahan.

Nilai default untuk tag ini: half_closed_clients on

• pconn_timeout

Timeout untuk koneksi persintent ke server dan proxy lainnya saat tidak

melakukan apa-apa dalam suatu waktu.

Nilai default untuk tag ini: pconn_timeout 120 seconds

• ident_timeout

Waktu maksimum yang dibutuhkan untuk menunggu IDENT lookups

hingga selesai. Nilai default untuk tag ini: ident_timeout 10 seconds

• shutdown_lifetime time-units

Ketika SIGTERM atau SIGHUP diterima, cache diletakkan ke mode

“shutdown pending” hingga semua soket yang aktif ditutup.

Nilai default untuk tag ini: shutdown_lifetime 30 seconds

2.6.7.8 Access Control

• acl

Mendefinisikan access list

Format: acl aclname acltype string1 ....

acl aclname acltype “file” ....

acl aclname time [day-abbrevs] [h1:m1-h2:m2]

day-abbrevs: S – Minggu

M – Senin

Page 59: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

66

T – Selasa

W – Rabu

H – Kamis

F – Jumat

A – Sabtu

H1:m1 harus lebih kecil dari h2:m2

Konfigurasi minimum yang disarankan:

acl all src 0.0.0.0/0.0.0.0

acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255

acl to_localhost dst 127.0.0.0/8

acl SSL_ports port 443 563

acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 563 # https, snews

acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais

acl Safe_ports port 1025-65535# unregistered ports

acl Safe_ports port 280 # http-mgmt

acl Safe_ports port 488 # gss-http

acl Safe_ports port 591 # filemaker

acl Safe_ports port 777 # multiling http

acl CONNECT method CONNECT

Page 60: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

67

• follow_x_forwarded_for

Mengijinkan atau melarang header X-Forwarded-For disertakan untuk

menemukan sumber yang asli dari request.

Contoh: acl localhost src 127.0.0.1

acl my_other_proxy srcdomain .proxy.example.com

follow_x_forwarded_for allow localhost

follow_x_forwarded_for allow my_other_proxy

Nilai default untuk tag ini: follow_x_forwarded_for deny all

• acl_uses_indirect_client

Mengontrol alamat indirect client digunakan sebagai ganti dari alamat

direct client pada penyesuaian acl.

Nilai default untuk tag ini: acl_uses_indirect_client on

• delay_pool_uses_indirect_client on|off

Mengontrol alamat indirect client digunakan sebagai ganti dari alamat

direct client pada delay pools. Nilai default untuk tag ini:

delay_pool_uses_indirect_client on

• log_uses_indirect_client on

Mengontrol alamat indirect client digunakan sebagai ganti dari alamat

direct client pada access log.

Nilai default untuk tag ini: log_uses_indirect_client on

• http_access

Mengijinkan atau melarang akses yang berdasarkan pada yang

didefinisikan pada access list.

Page 61: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

68

Format: http_access allow|deny [!]aclname ...

Konfigurasi minimum yang disarankan:

http_access allow manager localhost

http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost

http_access deny all

• http_reply_access

Mengijinkan reply ke client requests. Ini melengkapi http_access.

Format: http_reply_access allow|deny [!] aclname ...

Nilai default untuk tag ini: http_reply_access allow all

• icp_access

Mengijinkan atau melarang akses ke port ICP yang berbasiskan pada yang

didefinisikan dalam access list.

Format: icp_access allow|deny [!] aclname ....

Nilai default untuk tag ini: icp_access allow all

• miss_access

Digunakan untuk memaksa neighbor agar menggunakan server sebagai

sibling daripada parent.

Contoh: acl localclients src 172.16.0.0/16

Miss_access allow localclients

Miss_access deny !localclients

Page 62: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

69

Ini berarti hanya client lokal yang diperbolehkan untuk fetch MISSES dan

client lainnya hanya dapat fetch HITS.

Nilai default untuk tag ini: miss_access allow all

• cache_peer_access

Mirip dengan ‘cache_peer_domain’ tetapi lebih fleksibel dengan

menggunakan element ACL.

Format: cache_peer_access cache_host allow|deny [!]aclname ...

• ident_lookup_access

Sederetan dari elemen acl, dimana jika sesuai, dapat menyebabkan ident

(RFC031) lookup dilakukan untuk request ini. Contoh untuk mengaktifkan

ident lookup untuk alamat client tertentu:

acl ident_aware_hosts src 198.168.1.0/255.255.255.0

ident_lookup_access allow ident_aware_hosts

ident_lookup_access deny all

• tcp_outgoing_tos

Parameter ini memberi akses untuk memilih nilas TOS/Diffserv untuk

menandai koneksi yang keluar berdasarkan username atau alamat sumber

yang membuat permintaan.

Format: tcp_outgoing_tos ds-field [!]aclname ...

Contoh dimana normal_service_net menggunakan TOS dengan nilai 0x00

dan good_service_net menggunakan 0x20:

acl normal_service_net src 10.0.0.0/255.255.255.0

acl good_service_net src 10.0.1.0/255.255.255.0

Page 63: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

70

tcp_outgoing_tos 0x00 normal_service_net 0x00

tcp_outgoing_tos 0x20 good_service_net

• tcp_outgoing_address

Memungkinkan untuk memetakan request menggunakan alamat ip yang

keluar berdasarkan username atau alamat sumber dari user yang membuat

request tersebut. Format: tcp_outgoing_address ipaddr [[!]aclname] ...

• reply_header_max_size (KB)

Menunjukkan ukuran minimum dari header HTTP dalam sebuah reply.

Nilai default untuk tag ini: reply_header_max_size 20 KB

• reply_body_max_size bytes allow|deny acl acl ...

Parameter ini menunjukan ukuran maksimum dari reply body dalam byte.

Jika parameter ini di set nol berarti ukurannya tidak terbatas.

Nilai default untuk tag ini: reply_body_max_size 0 allow all

2.6.7.9 Administrative Parameters

• cache_mgr

Alamat email dari manajer cache lokal yang akan menerima mail jika

cache mati. Nilai default untuk tag ini: cache_mgr root

• mail_from

Tujuan dari alamat email untuk pengiriman email saat cache mati.

• mail_program

Parameter ini digunakan untuk mengirim email jika cache mati.

Nilai default untuk tag ini: mail_program mail

Page 64: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

71

• cache_effective_user

Jika cache_effective_user didefinisikan sedangkan cache_effective_group

tidak, maka Squid Proxy Server akan mengubah GID menjadi GID default

yang diambil dari file password dan list group tambahan dari group

membership cache_effective_user. Nilai default untuk tag ini:

cache_effective_user squid

• cache_effective_group

Set parameter ini untuk menjalankan Squid Proxy Server menggunakan

GID yang diinginkan.

Nilai default untuk tag ini: cache_effective_group squid

• visible_hostname

Parameter ini digunakan untuk menampilkan hostname khusus pada pesan

kesalahan, dan lain-lain.

• unique_hostname

Jika memiliki banyak mesin dengan ‘visible_hostname’ yang sama, setiap

mesin harus diberikan ‘unique_hostname’ yang berbeda agar forwarding

loop dapat dideteksi.

• hostname_aliases

Sekumpulan dari nama DNS lainnya yang dimiliki oleh cache.

Page 65: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

72

2.6.7.10 Options for the Cache Registration Service

• announce_period

Parameter ini menunjukkan berapa kali mengirimkan cache announcement.

Nilai defaultnya adalah 0 yang berarti tidak mengirimkan pesan

pemberitahuan.

• announce_host

announce_file

announce_port

Announce_host dan announce_port men-set hostname dan nomor port

kemana pesan pendaftaran akan dikirimkan.

Nilai default untuk tag ini:

announce_host tracker.ircache.net

announce_port 3131

2.6.7.11 HTTPD-Accelerator Options

• httpd_accel_host

httpd_accel_port

Jika ingin menjalankan Squid Proxy Server sebagai httpd accelerator, set

nama host dan nomor port sesuai dengan yang ada pada server HTTP. Jika

menginginkan IP berdasarkan virtual host support, set hostname “virtual”

dan port “0”. Nilai default untuk tag ini: httpd_accel_port 80

Page 66: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

73

• httpd_accell_single_host on|off

Jika menjalankan Squid Proxy Server sebagai accelerator dan memiliki

server yang single backend, set parameter ini menjadi on. Set menjadi off

jika memiliki banyak backend server dan gunakan redirector untuk

memetakan request ke backend server yang sesuai.

Nilai default untuk tag ini: httpd_accel_single_host off

• httpd_accel_with_proxy on|off

Jika ingin menggunakan Squid Proxy Server sebagai local httpd

accelerator sekaligus sebagai proxy, set parameter ini menjadi on.

Nilai default untuk tag ini: httpd_accel_with_proxy off

• httpd_accel_uses_host_header on|off

Jika accelerator harus menyediakan domain yang didasarkan pada virtual

host pada alamat IP yang sama, parameter ini harus di set on. Jika tidak

tahu apa yang harus dilakukan terhadap tag ini, sebaiknya di set off. Tetapi

jika ingin menjalankan Squid Proxy Server sebagai transparent proxy,

maka lebih baik di set on.

• httpd_accel_no_pmtu_disc on|off

Nilai default untuk tag ini: httpd_accel_no_pmtu_disc off

2.6.7.12 Miscellaneous

• dns_testnames

DNS test keluar setelah situs pertama berhasil dilihat. Test ini dapat di

disable dengan option command line –D.

Page 67: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

74

Nilai default untuk tag ini:

dns_testnames netscape.com internic.net nlanr.net microsoft.com

• logfile_rotate

Menunjukan angka dari rotasi logfile yang akan dibuat ketika mengetik

‘squid –k rotate’. Nilai default untuk tag ini: logfile_rotate 0

• append_domain

Melampirkan nama domain lokal ke dalam bentuk hostname tanpa adanya

titik didalamnya. Contoh: append_domain .yourdomain.com

• tcp_recv_bufsize (bytes)

Ukuran dari buffer penerima untuk di set pada soket TCP.

Nilai default untuk tag ini: tcp_recv_bufsize 0 bytes

• err_html_text

Teks HTML untuk dimasukkan ke dalam pesan kesalahan.Buat ini sebagai

URL “mailto” ke alamat admin, atau mungkin hanya link ke website

organisasi.

• deny_info

Digunakan untuk mengembalikan halaman ERR_ untuk request yang tidak

memenuhi aturan ‘http_access’.

Format: deny_info err_page_name acl

deny_info http://..... acl

Contoh: deny_info ERR_CUSTOM_ACCESS_DENIED bad_guys

Page 68: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

75

• memory_pools on|off

Jika di set on maka Squid Proxy Server akan menjaga kumpulan dari

memori yang dialokasikan tersedia untuk digunakan nantinya.

Nilai default untuk tag ini: memory_pools on

• Memory_pools_limit (bytes)

Jika nilai yang dimasukkan bukan nol maka Squid Proxy Server akan

menyimpan pada batasan tertentu dari memori yang dialokasikan di

memory pools. Jika di set nol, Squid Proxy Server akan menyimpan semua

memori semampunya. Untuk men-disable memory allocation optimization,

jangan set memory_pools_limit menjadi 0.

Nilai default untuk tag ini: memory_pools_limit 5 MB

• forwarded_for on|off

Jika di set on, Squid Proxy Server akan memasukkan nama atau alamat IP

sistem pada HTTP request yang di forward.

Contoh: secara default akan tampil seperti ini:

X-Forwarded-For: 192.1.2.3

Tetapi jika di set off, maka akan tampil seperti berikut:

X-Forwarded-For: unknown

• log_icp_queries on|off

Jika di set on, ICP queries akan dicatat di access.log.

Nilai default untuk tag ini: log_icp_queries on

Page 69: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

76

• icp_hit_stale on|off

Jika ingin mengembalikan ICP_HIT untuk objek cache yang kadarluarsa,

set option ini menjadi on. Jika hubungannya dengan cache di

administrative domain lainnya adalah sibling, maka sebaiknya di set off.

Nilai default untuk tag ini: icp_hit_stale off

• minimum_direct_hops

Jika menggunakan alat untuk ping ICMP, lakukan fetch secara langsung

untuk situs yang lompatannya tidak lebih banyak dari ini.

Nilai default untuk tag ini: minimum_direct_hops 4

• minimum_direct_rtt

Jika menggunakan alat untuk ping ICMP, lakukan fetch secara langsung

untuk situs yang rtt-nya tidak lebih banyak dari ini.

Nilai default untuk tag ini: minimum_direct_rtt 400

• cachemgr_passwd

Menunjukkan password untuk operasi cachemgr.

Format: cachemgr_passwd password action action ...

Set disable, untuk men-disable action. Untuk mengijinkan kinerja dari

suatu action tanpa menggunakan password, set menjadi “none”. Gunakan

kata “all” untuk men-set password yang sama untuk semua aksi.

Contoh: cachemgr_passwd secret shutdown

cachemgr_passwd lesssssssecret info stats/objects

cachemgr_passwd disable all

Page 70: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

77

• store_avg_object_size (kbytes)

Ukuran rata-rata objek yang digunakan untuk memperkirakan jumlah objek

yang dapat ditampung oleh cache.

Nilai default untuk tag ini: store_avg_object_size 13 KB

• store_objects_per_bucket

Jumlah target dari objek tiap bucket yang ada di dalam penyimpanan tabel

hash. Nilai default untuk tag ini: store_objects_per_bucket 20

• client_db on|off

Jika ingin men-disable koleksi statistik per-client, matikan client_db disini

Nilai default untuk tag ini: client_db on

• netdb_low

netdb_high

Low dan high water marks untuk pengukuran database ICMP.

Nilai default untuk tag ini:

netdb_low 900

netdb_high 1000

• netdb_ping_period

Periode mimimum untuk mengukur suatu situs.

Nilai default untuk tag ini: netdb_ping_period 5 minutes

• query_icmp on|off

Jika ingin peer agar menyertakan data ICMP pada ICP reply, maka set

parameter ini menjadi on. Nilai default untuk tag ini: query_icmp off

Page 71: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

78

• test_reachability on|off

Jika di set on, ICP MISS reply akan menjadi ICP_MISS_NOFETCH

sebagai ganti dari ICP_MISS jika host target tidak ada di dalam database

ICMP atau memiliki nol RTT.

Nilai default untuk tag ini: test_reachability off

• buffered_logs on|off

File cache.log ditulis dengan menggunakan fungsi stdio, dan dapat berupa

buffered atau unbuffered. Defaultnya adalah unbuffered.

Nilai default untuk tag ini: buffered_logs off

• reload_into_ims on|off

Jika option ini di enable, client no-cache atau “relaod” request akan diubah

menjadi If-Modified-Since request. Default: reload_into_ims off

• always_direct

Format: always_direct allow|deny [!]aclname ...

Disini dapat digunakan elemen ACL untuk menunjukkan request yang

harus selalu di forward oleh Squid Proxy Server ke server asal tanpa

menggunakan peer. Untuk selalu mem-forward ftp request secara langsung,

gunakan:

acl FTP proto FTP

always_direct allow FTP

Page 72: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

79

• never_direct

Format: never_direct allow|deny [!]aclname ...

Dengan ‘never_direct’ dapat digunakan elemen ACL untuk menunjukkan

request yang tidak akan pernah di forward secara langsung ke server asal.

• header_access

Format: header_access header_name allow|deny [!]aclname ...

Option ini mengganti ‘anonymize_headers’ dan ‘http_anonymizer’ yang

lama dengan sesuatu yang lebih dapat dikonfigurasi. Cara baru ini

membuat daftar ACL untuk setiap header. Contoh, untuk mencapai

behavior yang sama dengan ‘http_anonymizer standard’ yang lama,

gunakan:

header_access From deny all

header_access Referer deny all

header_access Server deny all

header_access User-Agent deny all

header_access WWW-Authenticate deny all

header_access Link deny all

• header_replace

Format: header_replace header_name message

Option ini memungkinkan untuk mengubah isi dari header yang ditolak

dengan header_access diatasnya dengan cara menggantinya dengan

beberapa fixed string. Ini akan menggantikan fake_user_agent yang lama.

Contoh: header_replace User_Agent Nutscrape/1.0 (CP/M; 8-bit)

Page 73: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

80

• icon_directory

Tempat dimana icon disimpan. Normalnya disimpan di

/use/share/squid/icons.

Nilai default untuk tag ini: icon_directory /usr/share/squid/icons

• global_internal_static

Pengendalian yang direktif ini adalah Squid Proxy Server perlu

menginterupsi semua permintaan untuk /squid-internal-static/ tidak peduli

host mana yang URL-nya melakukan request (parameter di set on) atau jika

tidak ada yang spesial yang harus diselesaikan untuk URL seperti itu

(parameter di set off). Nilai default untuk tag ini: global_internal_static on

• short_icon_urls

Jika di set on maka Squid Proxy Server akan menggunakan URL yang

pendek sebagai icon. Tetapi jika di set off, URL sebagai icon akan selalu

menjadi URL yang absolut termasuk nama proxy dan portnya.

Nilai default untuk tag ini: short_icon_urls off

• error_directory

Suatu direktori dimana file-file kesalahan (error) dibaca.

Nilai default untuk tag ini: error_directory /usr/share/squid/errors/English

• maximum_single_addr_tries

Parameter ini men-set jumlah maksimum dari koneksi yang dicoba pada

sebuah host yang hanya memiliki satu alamat (untuk host yang memiliki

banyak alamat, tiap alamat dicoba sekali).

Nilai default untuk tag ini: maximum_single_addr_tries 1

Page 74: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

81

• retry_on_error

Jika di set on, Squid Proxy Server akan secara otomatis mencoba

mengirimkan permintaan saat menerima respon error. Ini terutama berguna

jika sedang berada di cache hierarchy yang kompleks untuk bekerja pada

kesalahan access control. Nilai default untuk tag ini: retry_on_error off

• snmp_port

Sekarang Squid Proxy Server menyajikan informasi status dan statistik

melalui SNMP. Nilai “0” men-disable SNMP support. Jika ingin

menggunakan SNMP, set parameter ini menjadi “3401” untuk

menggunakan SNMP support yang normal.

• snmp_access

Mengijinkan atau melarang akses ke port SNMP.

Format: snmp_access allow|deny [!]aclname ...

Contoh: snmp_access allow snmppublic localhost

snmp_access deny all

• snmp_incoming_address

Digunakan untuk menerima pesan SNMP socket dari agen SNMP.

Nilai default untuk tag ini: snmp_incoming_address 0.0.0.0

• snmp_outgoing_address

Digunakan untuk pengembalian paket SNMP ke agen SNMP.

Nilai default untuk tag ini: snmp_outgoing_address 255.255.255.255

Page 75: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

82

• as_whois_server

Server WHOIS digunakan sebagai query untuk nomor AS.

Nilai default untuk tag ini: as_whois_server whois.ra.net

• wccp_router

Gunakan option ini untuk mendefinisikan router WCCP untuk Squid Proxy

Server. Jika di set ‘0.0.0.0’ maka WCCP akan disable.

Nilai default untuk tag ini: wccp_router 0.0.0.0

• wccp_version

Berdasarkan beberapa user, Cisco IOS 11.2 hanya mendukung WCCP versi

3. Jika digunakan IOS versi tersebut, nilai parameter ini dapat diubah

menjadi 3. Nilai default untuk tag ini: wccp_version 4

• wccp_incoming_address

Gunakan option ini jika membutuhkan pesan WCCP agar diterima hanya

pada satu interface. Jangan menggunakan option ini jika tidak yakin berapa

interface yang dimiliki, atau jika hanya memiliki satu interface.

Nilai default untuk tag ini: wccp_incoming_address 0.0.0.0

• wccp_outgoing_address

Gunakan option ini jika membutuhkan pesan WCCP agar dikirim hanya

pada satu interface. Jangan menggunakan option ini jika tidak yakin berapa

interface yang dimiliki, atau jika hanya memiliki satu interface.

Nilai default untuk tag ini: wccp_outgoing_address 255.255.255.255

Page 76: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

83

2.6.7.13 Delay Pool Parameters

• delay_pools

Parameter ini mewakili jumlah dari delay pool yang akan digunakan.

Nilai default untuk tag ini: delay_pools 0

• delay_class

Parameter ini mendefinisikan kelas dari tiap delay pool. Harus ada tepat

satu baris delay_class untuk tiap delay pool. Kelas-kelas dalam delay pool:

Kelas 1 Semua dibatasi oleh satu bucket yang agregat

Kelas 2 Semua dibatasi oleh satu bucket yang agregat seperti

halnya bucket “individual” yang dipilih dari bit 25 hingga

bit 32 dari alamat IP

Kelas 3 Semua dibatasi oleh satu bucket yang agregat seperti

halnya bucket “network” yang dipilih dari bit 17 hingga bit

24 dari alamat IP dan bucket “individual” yang dipilih dari

bit 17 hingga bit 32 dari alamat IP

Jika alamat IP adalah a.b.c.d

Bit 25 hingga 32 adalah “d”

Bit 17 hingga 24 adalah “c”

Bit 17 hingga 32 adalah “c * 256 + d”

• delay_access

Parameter ini digunakan untuk menentukan request masuk ke delay pool

mana.

Page 77: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

84

Contoh: delay_access 1 allow some_big_clients

delay_access 1 deny all

delay_access 2 allow lotsa_little_clients

delay_access 2 deny all

• delay_parameters

Mendefinisikan parameter untuk delay pool. Tiap delay pool memiliki

jumlah “bucket” yang diasosiasikan dengannya seperti yang telah

dijelaskan dalam delay_class.

Format: Untuk delay pool kelas 1:

Delay_parameters pool aggregate

Untuk delay pool kelas 2:

Delay_parameters pool aggregrate individual

Untuk delay pool kelas 3:

Delay_parameters pool aggregate network individual

Keterangan: pool : jumlah pool

Aggregrate: “delay parameters” untuk bucket yang agregat

(kelas 1,2,3)

Individual: “delay parameters” untuk individual bucket (kelas

2,3)

Network: “delay parameters” untuk network bucket (kelas 3)

Contoh: delay_parameters 1 -1/-1 8000/8000

delay_parameters 2 32000/32000 8000/8000 600/8000

Page 78: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

85

• delay_initial_bucket_level (percent, 0-100)

Persentase dari initial bucket digunakan untuk menentukan berapa banyak

yang ditaruh di tiap bucket ketika Squid Proxy Server di start, di konfigur

ulang, atau pertama mengenali host yang mengaksesnya.

Nilai default untuk tag ini: delay_initial_bucket_level 50

• incoming_icp_average

incoming_http_average

incoming_dns_average

min_icp_poll_cnt

min_dns_poll_cnt

min_http_poll_cnt

Jika tidak mengerti algoritma yang berada di comm_select.c sebaiknya

tidak mengubah value yang ada di parameter ini

Nilai default untuk tag ini:

incoming_icp_average 6

incoming_http_average 4

incoming_dns_average 4

min_icp_poll_cnt 8

min_dns_poll_cnt 8

min_http_poll_cnt 8

Page 79: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

86

• max_open_disk_fds

Untuk mencegah memiliki disk sebagai I/O bottleneck Squid Proxy Server

dapat memilih melewatkan on-disk cache jika jumlah disk file descriptor

yang terbuka melebihi jumlah ini.

Nilai default untuk tag ini: max_open_disk_fds

• offline_mode

Jika parameter ini di set on maka Squid Proxy Server tidak akan pernah

memvalidasi objek yang di cache.

Nilai default untuk tag ini: offline_mode off

• uri_whitespace

Parameter ini menjelaskan tentang apa yang harus dilakukan dengan

request yang memiliki karakter whitespace (spasi) pada URI. Pilihan yang

dapat digunakan: ‘strip’, ‘deny’, ‘allow’, ‘encode’, dan ‘chop’.

Nilai default untuk tag ini: uri_whitespace strip

• broken_posts

Sekumpulan elemen ACL yang jika cocok dapat menyebabkan Squid Proxy

Server mengirimkan CRLF pair tambahan setelah body dari PUT?POST

request. Beberapa HTTP server memiliki implementasi yang rusak dari

PUT/POST, dan mempercayakan pada CRLF pair tambahan yang dikirim

oleh beberapa client WWW.

Contoh: acl buggy_server url_regex ^http:// ....

broken_posts allow buggy_server

Page 80: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

87

• mcast_miss_addr

Option ini hanya tersedia jika Squid Proxy Server dibangun dengan

–DMULTICAST_MISS_STREAM. Jika option ini di enable, setiap URL

“cache miss” akan dikirim pada alamat multicast tertentu.

Nilai default untuk tag ini: mcast_miss_addr 255.255.255.255

• mcast_miss_ttl

Option ini hanya tersedia jika Squid Proxy Server dibangun dengan

–DMULTICAST_MISS_STREAM. Ini merupakan nilai time-to-live untuk

paket yang di multicast saat multicasting off cache miss URL diaktifkan.

Nilai default untuk tag ini: mcast_miss_ttl 16

• mcast_miss_port

Option ini hanya tersedia jika Squid Proxy Server dibangun dengan

–DMULTICAST_MISS_STREAM. Ini merupakan nomor port yang

digunakan dalam berhubungan dengan ‘mcast_miss_addr’

Nilai default untuk tag ini: mcast_miss_port 3135

• mcast_miss_encode_key

Option ini hanya tersedia jika Squid Proxy Server dibangun dengan

–DMULTICAST_MISS_STREAM. URL yang dikirim dalam multicast miss

stream telah di enkripsi. Ini adalah kunci enkripsi-nya.

Nilai default untuk tag ini:

mcast_miss_encode_key XXXXXXXXXXXXXXX

Page 81: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

88

• nonhierarchical_direct

Secara default, Squid Proxy Server akan mengirimkan berbagai non-

hierarchical request langsung ke server asal. Jika di set off, Squid Proxy

Server lebih memilih untuk mengirimkan request-nya ke parent.

Nilai default untuk tag ini: nonhierarchical_direct on

• prefer_direct

Jika di set on, Squid Proxy Server akan menggunakan parent pada hampir

semua request. Dengan menkombinasikan nonhierarchical_direct off dan

prefer_direct on, Squid Proxy Server dikonfigurasi untuk menggunakan

parent sebagai backup jika going direct gagal.

Nilai default untuk tag ini: prefer_direct off

• strip_query_terms

Secara default, Squid Proxy Server memotong batas query dari URL yang

diminta sebelum mencatat. Ini menjaga privacy user.

Nilai default untuk tag ini: strip_query_terms on

• coredump_dir

Secara default, Squid Proxy Server meninggalkan file core di dalam

direktori dari tempat dimulainya.

Nilai default untuk tag ini: coredump_dir /var/spool/squid

• redirector_bypass

Jika di set on, request tidak akan melewati redirector jika semua redirector

sibuk. Jika di set off dan antrian redirector semakin lama semakin banyak,

Squid Proxy Server akan keluar dengan kesalahan yang FATAL dan

Page 82: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

89

meminta untuk menaikkan jumlah redirector. Nilai default untuk tag ini:

redirector_bypass off

• ignore_unknown_nameservers

Secara default, Squid memeriksa bahwa DNS response telah diterima dari

alamat IP yang sama dengan alamat IP yang dikirimkan. Jika tidak cocok,

Squid Proxy Server akan mengabaikan respon dan menuliskan pesan

peringatan ke cache.log. Jika ingin mengijinkan respon dari nameserver

yang tidak diketahui, set parameter ini menjadi ‘off’.

Nilai default untuk tag ini: ignore_unknown_nameservers on

• digest_generation

Parameter ini mengontrol apakah server akan menghasilkan isi dari cache

digest. Secara default, hasil cache digest akan ada jika Squid Proxy Server

di compile dengan USE_CACHE_DIGEST.

Nilai default untuk tag ini: digest_generation on

• digest_bits_per_entry

Ini merupakan jumlah bit dari cache digest server yang akan diasosiasikan

dengan digest entry untuk kombinasi URL (public key) dan HTTP method

yang diberikan. Nilai default untuk tag ini: digest_bits_per_entry 5

• digest_rebuilt_period (seconds)

Jumlah detik antara Cache Digest rebuilds.

Nilai default untuk tag ini: digest_rebuilt_period 1 hour

Page 83: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

90

• digest_rewrite_period (seconds)

Waktu yang dibutuhkan Cache Digest untuk menulis ke disk.

Nilai default untuk tag ini: digest_rewrite_period 1 hour

• digest_swapout_chunk_size (bytes)

Jumlah byte dari Cache Digest untuk menulis ke disk dalam suatu waktu.

Nilai default untuk tag ini: digest_swapout_chunk_size 4096 bytes

• digest_rebuild_chunk_percentage (percent, 0-100)

Persentase dari Cache Digest yang di scan pada suatu waktu.

Nilai default untuk tag ini: digest_rebuild_chunk_percentage 10

• chroot

Gunakan ini agar Squid Proxy Server melakukan chroot() pada saat

inisialisasi. Ini juga dapat menyebabkan Squid Proxy Server menurunkan

hak istimewa root secara penuh setelah inisialisasi.

• client_persistent_connections

server_persistent_connections

Koneksi persistent mendukung client dan server. Secara default, Squid

Proxy Server menggunakan koneksi persistent pada client dan server-nya.

Nilai default untuk tag ini:

client_persistent_connections on

Server_persistent_connections on

Page 84: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

91

• detect_broken_pconn

Jika di set on, Squid Proxy Server akan mendeteksi reply yang rusak

(broken) dan secara otomatis menduga bahwa reply akan selesai setelah

timeout selama 10 detik.

Nilai default untuk tag ini: detect_broken_pconn off

• balance_on_multiple_ip

Secara default, Squid Proxy Server merotasi IP untuk tiap request. Jika

parameter ini di set off, petunjuk ini hanya connection failure triggers

rotation. Nilai default untuk tag ini: balance_on_multiple_ip on

• pipeline_prefetch

Untuk meningkatkan kinerja dari aliran request ke yang paling sesuai dari

lingkungan yang tidak menggunakan Squid Proxy Server dapat mencoba

untuk melakukan fetch hingga 2 request dalam aliran yang paralel.

Nilai defaultnya off dimaksudkan untuk bandwidth management dan access

logging.

• extension_methods

Squid Proxy Server hanya mengetahui tentang cara HTTP request yang

standard. Dengan parameter ini dapat ditambah 20 cara “extension”.

• request_entities

Set parameter ini menjadi on jika memiliki client yang menuntut untuk

mengirimkan request entities dalam GET atau HEAD.

Nilai default untuk tag ini: request_entities off

Page 85: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

92

• high_response_time_warning (msec)

Jika median dari waktu respon dalam 1 menit berlebihan, Squid Proxy

Server akan mencetak peringatan dengan debug level 0 untuk menarik

perhatian administrator.

Nilai default untuk tag ini: high_response_time_warning 0

• high_page_fault_warning

Jika rata-rata tingkat kesalahan halaman dalam 1 menit terlalu berlebihan,

Squid Proxy Server akan mencetak peringatan dengan debug level 0 untuk

menarik perhatian administrator. Nilai default untuk tag ini:

high_page_fault_warning 0

• high_memory_warning

Jika penggunaan memori berlebihan, Squid Proxy Server akan mencetak

peringatan dengan debug level 0 untuk menarik perhatian administrator.

Nilai default untuk tag ini: high_memory_warning 0

• store_dir_select_algorithm

Set parameter ini menjadi ‘round-robin’ sebagai alternatif.

Nilai default untuk tag ini: store_dir_select_algorithm least-load

• forward_log

Option ini hanya tersedia jika Squid Proxy Server di built dengan

menggunakan –DWIP_FWD_LOG. Parameter ini digunakan untuk

mencatat server-side request.

Page 86: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

93

• ie_refresh on|off

Microsoft Internet Explorer hingga versi 5.5 Sevice Pack 1 memiliki

masalah dengan transparent proxy, dimana sangat tidak mungkin untuk

me-refresh. Dengan mengubah parameter ini menjadi on dapat

menyelesaikan masalah ini dengan menyebabkan semua permintaan IMS-

REFRESH dari versi IE yang lebih lama untuk memeriksa server asal

mencari isi yang masih segar. Nilai default untuk tag ini: ie_refresh off

• vary_ignore_expire on|off

Banyak server HTTP yang mendukung vary memberikan suatu objek

waktu berakhirnya dengan segera dengan no cache-control header ketika

diminta oleh client HTTP/1.0. Parameter ini membuat Squid Proxy Server

mengabaikan waktu yang sudah berakhir tersebut hingga HTTP/1.1

diimplementasikan secara penuh.

Nilai default untuk tag ini: vary_ignore_expire off

• sleep_after_fork (microseconds)

Ketika parameter ini di set ke nilai yang bukan nol, proses utama Squid

Proxy Server menidurkan sejumlah mikrodetik setelah fork() system call.

Tidur ini dapat membantu situasi dimana sistem melaporkan kegagalan

fork() yang berkaitan dengan kekurangan (virtual) memori.

Nilai default untuk tag ini: sleep_after_fork 0

• relaxed_header_parser on|off|warn

Jika di set “on”, Squid Proxy Server menerima format tertentu dari non-

compliant HTTP message yang unambigu tentang maksud dari mengirim

Page 87: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

94

aplikasi bahkan jika pesan tidak dalam bentuk format yang benar. Pesan ini

kemudian dinormalisasi ke dalam format yang benar ketika di forward oleh

Squid Proxy Server. Jika di set “warn”, peringatan akan diedarkan ke

dalam cache.log setiap kali kesalahan seperti HTTP error ditemui. Jika di

set “off”, HTTP error tersebut akan menyebabkan request atau response di

tolak. Nilai default untuk tag ini: relaxed_header_parser on

• max_filedesc

Jumlah maksimum dari pembukaan file descriptor.

Nilai default untuk tag ini: max_filedesc 1024

2.8 NAT vs Proxy Server

2.8.1 Network Address Translation (NAT)

(http://id.wikipedia.org/wiki/Network_Address_Translation, 2006) Network

Address Translation atau yang lebih biasa disebut dengan NAT adalah suatu metode

untuk menghubungkan lebih dari satu komputer ke jaringan internet dengan

menggunakan satu alamat IP. Banyaknya penggunaan metode ini disebabkan karena

ketersediaan alamat IP yang terbatas, kebutuhan akan keamanan (security), dan

kemudahan serta fleksibilitas dalam administrasi jaringan.

Kapanpun jaringan internal menginginkan untuk terhubung ke internet, NAT

akan menghubungkan alamat IP yang valid dari internet dengan alamat IP private

yang melakukan request. Setelah itu semua traffic akan ditulis kembali dari NAT

public IP address ke NAT private address. Jika alamat IP public yang dihubungkan

menjadi idle untuk beberapa waktu yang ditentukan, alamat IP public tersebut akan

dikembalikan ke kumpulan public NAT. Masalah utama pada NAT adalah jika semua

Page 88: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

95

alamat IP public yang bebas sudah digunakan, berbagai user private tambahan tidak

dapat melakukan request ke layanan internet hingga public NAT address menjadi

bebas kembali.

Kelebihan NAT:

• Mudah dikonfigurasi

• Didukung oleh aplikasi yang umum digunakan

• Dapat didukung oleh server internal

• User akan menerima pesan kesalahan jika koneksi gagal dan user juga dapat

melakukan beberapa diagnosa

Kekurangan dari NAT:

• Tidak seaman proxy server

• Tidak ada memiliki fitur caching

2.8.2 Proxy Server

(http://www.cablemodemhelp.com/proxy_vs_nat.htm, 2006) Proxy server

hanya menggunakan satu alamat IP public, seperti IP MASQ, dan bersikap sebagai

penerjemah kepada client yang berada dalam LAN. Proxy server dapat menerima

request seperti TELNET, FTP, WWW, dan lain-lain dari private network dalam satu

interface. Kemudian pada gilirannya, proxy server akan membuat request tersebut

seolah-olah berasal dari seseorang yang berada dalam sebuah kotak yang lokal.

Sekali remote internet server mengirimkan kembali informasi dari suatu request,

server tersebut akan menerjemahkan kembali alamat TCP/IP ke client MASQ

internal dan mengirimkan traffic ke host internal yang di request.

Page 89: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

96

Kelebihan proxy server:

• Dapat lebih cepat jika cache digunakan dan ukuran dari cache cukup besar

• Merupakan cara yang aman untuk menghubungkan LAN

Kekurangan proxy server:

• Cache tidak mengetahui jika halaman web yang dihasilkan sudah tidak up to

date

• Tidak semua aplikasi didukung oleh proxy server

• Mesin yang berada di belakang proxy server tidak dapat digunakan sebagai

server eksternal

2.9 HTML

HyperText Markup Language (HTML) adalah sebuah bahasa markup yang

digunakan untuk membuat sebuah halaman web dan menampilkan berbagai informasi di

dalam sebuah browser Internet (http://id.wikipedia.org/wiki/HTML, 2006). Bermula

dari sebuah bahasa yang sebelumnya banyak digunakan di dunia penerbitan dan

percetakan yang disebut dengan SGML, HTML adalah sebuah standar yang digunakan

secara luas untuk menampilkan halaman web dan HTML kini merupakan standar

Internet yang saat ini dikendalikan oleh World Wide Web Consortium (W3C).

HTML berupa kode-kode tag yang menginstruksikan browser untuk

menghasilkan tampilan sesuai dengan yang diinginkan. Sebuah file yang merupakan file

HTML dapat dibuka dengan menggunakan browser web seperti Mozilla Firefox atau

Microsoft Internet Explorer. HTML juga dapat dikenali oleh aplikasi pembuka email

ataupun dari PDA dan program lain yang memiliki kemampuan browser.

Page 90: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

97

Secara garis besar, terdapat 4 jenis elemen dari HTML:

• structural. tanda yang menentukan level atau tingkatan dari sebuah teks (contoh,

<h1>Golf</h1> akan memerintahkan browser untuk menampilkan "Golf"

sebagai teks tebal besar yang menunjukkan sebagai Heading 1

• presentational. tanda yang menentukan tampilan dari sebuah teks tidak peduli

dengan level dari teks tersebut (contoh, <b>boldface</b> akan menampilkan

bold. Tanda presentational saat ini sudah mulai digantikan oleh CSS dan tidak

direkomendasikan untuk mengatur tampilan teks,

• hypertext. tanda yang menunjukkan link ke bagian dari dokumen tersebut atau

link ke dokumen lain (contoh, <a href="http://binusmaya.binus.ac.id/">Bina

Nusantara</a> akan menampilkan ‘Bina Nusantara’ sebagai sebuah hyperlink ke

URL tertentu),

• Elemen widget yang membuat objek-objek lain seperti tombol (<button>), list

(<li>), dan garis horizontal (<hr>).

Selain markup presentational , markup yang lain tidak menentukan bagaimana

tampilan dari sebuah teks. Namun untuk saat ini, penggunaan tag HTML untuk

menentukan tampilan telah dianjurkan untuk mulai ditinggalkan dan sebagai gantinya

digunakan Cascading Style Sheets.

Page 91: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

98

2.10 Apache HTTP Server

Server HTTP Apache atau Server Web/WWW Apache adalah server web yang

dapat dijalankan di banyak sistem operasi (Unix, BSD, Linux, Microsoft Windows dan

Novell Netware serta platform lainnya) yang berguna untuk melayani dan

memfungsikan situs web. Protokol yang digunakan untuk melayani fasilitas web/www

ini mengunakan HTTP.

Apache memiliki fitur-fitur canggih seperti pesan kesalahan yang dapat

dikonfigurasi, autentikasi berbasis basis data dan lain-lain. Apache juga didukung oleh

sejumlah antarmuka pengguna berbasis grafik (GUI) yang memungkinkan penanganan

server menjadi mudah.

Apache merupakan perangkat lunak sumber terbuka dikembangkan oleh

komunitas terbuka yang terdiri dari pengembang-pengembang dibawah naungan Apache

Software Foundation.

Pada awal mulanya, Apache merupakan perangkat lunak sumber terbuka yang

menjadi alternatif dari server web Netscape (sekarang dikenal sebagai Sun Java System

Web Server). Sejak April 1996 Apache menjadi server web terpopuler di internet. Pada

Mei 1999, Apache digunakan di 57% dari semua web server di dunia. Pada November

2005 persentase ini naik menjadi 71%. (sumber: Netcraft Web Server Survey, November

2005).

Asal mula nama Apache berasal ketika sebuah server web populer yang

dikembangkan pada awal 1995 yang bernama NCSA HTTPd 1.3 memiliki sejumlah

perubahan besar terhadap kode sumbernya (patch). Saking banyaknya patch pada

perangkat lunak tersebut sehingga disebut sebuah server yang memiliki banyak patch

("a patchy" server). Tetapi pada halaman FAQ situs web resminya, disebutkan bahwa

Page 92: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

99

"Apache" dipilih untuk menghormati suku asli Indian Amerika Apache (Indé), yang

dikenal karena keahlian dan strategi perangnya. Versi 2 dari Apache ditulis dari awal

tanpa mengandung kode sumber dari NCSA.

2.11 PHP

Menurut Tim Converse and Joyce Park with Clark Morgan (2001), PHP adalah

bahasa pemrograman web yang ditulis oleh dan untuk web developer. PHP adalah

singkatan dari PHP: Hypertext Preprocessor, yang awalnya bernama Personal Home

Page Tools, dan banyak orang hingga saat ini masih menganggap bahwa itulah

kepanjangan dari PHP. Tetapi dengan semakin meluasnya ruang lingkup PHP, sebuah

nama yang baru dan lebih tepat akhirnya dipilih berdasarkan voting yang dilakukan oleh

komunitas.

PHP adalah sebuah server-side scripting language, yang dapat di-embedded ke

dalam HTML atau digunakan sebagai standalone binary. PHP pertama kali dibuat oleh

Rasmus Lerdorf pada tahun 1994. Saat itu, aplikasi yang dibuatnya hanyalah sebuah

CGI wrapper yang membantunya untuk mendapatkan informasi mengenai orang-orang

yang mengunjungi situs pribadinya. Tahun berikutnya, ia menciptakan sebuah paket

yang disebut sebagai Personal Home Page Tools (alias PHP Construction Kit) untuk

menanggapi permintaan dari user-user. Versi kedua dirilis dengan nama PHP/FI dan

disertakan Form Interpreter, sebuah tool untuk melakukan parsing SQL query.

Pada pertengahan tahun 1997, PHP digunakan oleh hampir 50.000 situs di dunia.

Hal ini menandakan bahwa PHP saat itu sudah terlalu besar untuk ditangani oleh satu

orang saja. Hingga terbentuklah sebuah tim pengembangan yang menjalankan proyek

PHP dengan model open source “benevolent junta”, dengan kontribusi dari berbagai

Page 93: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

100

developer dan user dari berbagai tempat di dunia. Zeev Suraski dan Andi Gutmans, dua

orang programmer Israel yang mengembangkan PHP3 dan PHP4 parsers, juga

melakukan generalisasi dan memperluas pekerjaan mereka dalam rubrik zend.com (Zeev,

Andi, Zend, get it?).

Pada kuarter keempat tahun 1998 menandai periode meledaknya pertumbuhan

PHP, seiring dengan teknologi open source yang mendapat publisitas luar biasa. Pada

Oktober 1998, terdapat lebih dari 100.000 unique domain yang menggunakan PHP.

Hanya dalam waktu satu tahun kemudian, PHP melewati angka 1 juta domain. Pada

versi terbarunya, PHP5 menunjukkan sesuatu kepada para user, yaitu fungsionalitas

object-oriented programming (OOP) yang lebih baik dari sebelumnya.

Kelebihan PHP dibanding bahasa pemrograman lain:

• Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan

sebuah kompilasi dalam penggunaanya.

• Web Server yang mendukung PHP dapat ditemukan dimana-mana dari mulai IIS

sampai dengan apache, dengan configurasi yang relatif mudah.

• Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis dan

developer yang siap membantu dalam pengembangan.

• Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah

karena referensi yang banyak.

• PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (linux,

unix, windows) dan dapat dijalankan secara runtime melalui console serta juga

dapat menjalankan perintah-perintah system.

Page 94: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

101

2.12 MYSQL

Menurut Tim Converse and Joyce Park with Clark Morgan (2001), MySQL

seringkali digunakan untuk merujuk kepada MySQL database management system dan

kerapkali digunakan untuk merujuk pada perusahaan yang ada di balik aplikasi MySQL.

Perusahaan ini lebih dikenal dengan nama MySQL AB. Sedangkan aplikasi MySQL

adalah sebuah produk DBMS yang dimiliki, dikembangkan dan dijual oleh MySQL AB,

yang merupakan sebuah aplikasi database server (dan produk terkait, seperti program

client untuk berkomunikasi dengan server dan programming interface untuk

mengembangkan client baru).

Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak

dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh

penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan

komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode

sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB

adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.

Terdapat beberapa API tersedia yang memungkinkan aplikasi-aplikasi komputer

yang ditulis dalam berbagai bahasa pemrograman untuk dapat mengakses basis data

MySQL antara lain: bahasa pemrograman C, C++, C#, bahasa pemrograman Eiffel,

bahasa pemrograman Smalltalk, bahasa pemrograman Java, bahasa pemrograman Lisp,

Perl, PHP, bahasa pemrograman Python, Ruby, REALbasic dan Tcl. Sebuah antarmuka

ODBC memanggil MyODBC yang memungkinkan setiap bahasa pemrograman yang

mendukung ODBC untuk berkomunikasi dengan basis data MySQL.

MySQL sangat populer dalam aplikasi web seperti MediaWiki (perangkat lunak

yang dipakai Wikipedia dan proyek-proyek sejenis) dan PHP-Nuke dan berfungsi

Page 95: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

102

sebagai komponen basis data dalam LAMP. Popularitas sebagai aplikasi web

dikarenakan kedekatannya dengan popularitas PHP, sehingga seringkali disebut sebagai

Dynamic Duo.

Untuk melakukan administrasi dalam basis data MySQL, dapat menggunakan

modul yang sudah termasuk yaitu command-line (perintah: mysql dan mysqladmin). Juga

dapat diunduh dari situs MySQL yaitu sebuah modul berbasis grafik (GUI): MySQL

Administrator dan MySQL Query Browser. Selain itu terdapat juga sebuah perangkat

lunak gratis untuk administrasi basis data MySQL berbasis web yang sangat populer

yaitu phpMyAdmin. Untuk perangkat lunak untuk administrasi basis data MySQL yang

dijual secara komersial antara lain: MySQL front, Navicat dan EMS SQL Manager for

MySQL.

2.13 Javascript

Javascript diperkenalkan pertama kali oleh Netscape pada tahun 1995. Pada

awalnya bahasa yang sekarang disebut JavaScript ini dulunya dinamai “LiveScript”

yang berfungsi sebagai bahasa sederhana untuk browser Netscape Navigator 2 yang

sangat populer pada saat itu. Kemudian sejalan dengan sedang giatnya kerjasama antara

Netscape dan Sun (pengembang bahasa pemrograman “Java”) pada masa itu, maka

Netscape memberikan nama “JavaScript” kepada bahasa tersebut pada tanggal 4

desember 1995. Pada saat yang bersamaan Microsoft sendiri mencoba untuk

mengadaptasikan teknologi ini yang disebut sebagai “Jscript” di browser milik

Microsoft yaitu Internet Explorer 3. JavaScript sendiri merupakan modifikasi dari

bahasa pemrograman C++ dengan pola penulisan yang lebih sederhana dari bahasa

pemrograman C++.

Page 96: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

103

JavaScript adalah bahasa pemrograman yang khusus untuk halaman web agar halaman

web menjadi lebih hidup (http://supono.wordpress.com/tag/javascript/, 2005). Kalau

dilihat dari suku katanya terdiri dari dua suku kata, yaitu Java dan Script. Java adalah

Bahasa pemrograman berorientasi objek, sedangkan Script adalah serangkaian instruksi

program.

Ada beberapa hal yang harus diperhatikan dalam pengelolaan pemrograman

JavaScript, diantaranya JavaScript adalah “case sensitive”, yang artinya JavaScript

membedakan huruf besar dan huruf kecil. Dalam bahasa pemrograman JavaScript juga,

sebagai contoh fungsi perintah var tidak boleh ditulis Var dan juga tidak boleh ditulis

VAR (huruf besar semua), yang benar adalah var (huruf kecil semua). Perintah lain

adalah new Date tidak boleh ditulis new date (huruf kecil semua), dan banyak yang

lainnya.

2.14 Webmin

Webmin merupakan suatu interface berbasiskan web yang dapat digunakan untuk

administrasi sistem pada Unix. Dengan menggunakan browser apa saja yang

mendukung tabel, dan form (dan Java untuk modul file manager), dapat dibuat user

account, Apache, DNS, file sharing, dan sebagainya

(http://www.webmin.com/intro.html, 2006).

Webmin terdiri dari web server yang sederhana dan sejumlah program CGI yang

secara langsung dapat meng-update sistem file seperti /etc/inetd.conf dan /etc/passwd.

Web server dan semua program CGI ditulis menggunakan bahasa pemrograman Perl

versi 5 dan tidak menggunakan modul Perl yang non-standart.

Page 97: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

104

Hampir semua pengembangan Webmin dilakukan oleh Jamie Cameron.

Meskipun begitu banyak orang yang melakukan konstribusi patches dan

menerjemahkannya ke bahasa-bahasa lain. Terdapat juga third-party modules yang

dikembangkan oleh orang lain secara terpisah.

2.15 Web (World Wide Web)

Web (yang merupakan penyederhanaan dari World Wide Web) adalah sebuah

sistem informasi yang mengelola jaringan internet dengan menggunakan suatu set

protocol tertentu. Web adalah sistem client/ server yang dirancang untuk menggunakan

dokumen hypertext dan hypermedia via internet. Perlu diketahui bahwa pengertian

internet dan web berbeda, namun keduanya memiliki keterkaitan satu sama lain. Internet

adalah suatu jaringan global, sedangkan web bukanlah sekedar jaringan tetapi

merupakan suatu set aplikasi komunikasi dan sistem perangkat lunak yang memiliki

karakterstik sebagai berikut:

• Umumnya terletak pada internet host dan client

• Umumnya menggunakan protocol TCP/IP

• Mengerti HTML

• Mengikuti model client/ server untuk komunikasi data dua arah

• Memungkinkan client untuk mengakses informasi dalam berbagai media

(seperti teks, audio, video)

• Menggunakan model alamat Uniform Resource Locator (URL)

(Kurniawan, 2001, p 2-3)

Page 98: BAB 2 FINAL - Binus Librarylibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00235-IF-Bab 2.pdf · IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila

105

2.16 Wizard

Sebuah wizard adalah sebuah program komputer interaktif yang bertindak

sebagai sebuah interface yang membimbing user melalui serangkaian tugas yang

kompleks, menggunakan dialog langkah demi langkah (step-by-step dialogs). Pertama

kali diperkenalkan pada sistem operasi Microsoft Windows 95, yaitu Internet Connection

Wizard.

Aplikasi web juga menggunakan paradigma wizard untuk menyelesaikan proses-

proses interaktif yang relatif panjang (misalnya, situs booking tiket pada sebuah

maskapai penerbangan). (http://en.wikipedia.org/wiki/Wizard_%28programming%29,

2007)