1 BAB 2 LANDASAN TEORI 2.1 Jaringan Menurut Tannenbaum, Jaringan komputer adalah sekumpulan komputer berjumlah banyak yang terpisah-pisah akan tetapi ...
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
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 kantorkantor perusahaan yang berdekatan atau juga sebuah kota dan dapat dimanfaatkan untuk
8
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
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 clientserver 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.
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 clientserver, salah satunya karena tidak memerlukan adanya server yang memiliki kemampuan khusus untuk mengorganisasikan dan menyediakan fasilitas jaringan.
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
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 detaildetail fungsi tersebut. Hal itu juga menyediakan layanan untuk lapisan yang lebih tinggi berikutnya. Tugas ISO adalah untuk menentukan suatu rangkaian lapisan dan layananlayanan 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.
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-menggunakanprotokol-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.
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.
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
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
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
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).
19 Maka, subjaringan yang terbentuk adalah: IP address 204.15.5.0 204.15.5.32
subnet mask range host address 255.255.255.224 dari 1 hingga 30 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
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-komputermenggunakan-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 email, 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
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.
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
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.
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
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 didecode, 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
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
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
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
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.
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 loadbalancing 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
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
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.
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.
34 2.6.1 Cara Kerja Squid Proxy Server Squid proxy server melakukan tugasnya dengan menyimpan halamanhalaman 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
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.
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.
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.
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 Logistic Regression (LR)
Least Recently Used (LRU)
Keterangan Menghapus object dengan nilai LR terkecil. Nilai LR dapat diartikan sebagai besarnya kemungkinan object tersebut akan diakses di waktu yang akan datang Menghapus object berdasarkan waktu terakhir kali object tersebut diakses. Object dengan waktu paling lama akan dihapus terlebih dahulu. Menghapus object yang paling jarang diakses
Least Frequently Used (LFU) Menghapus object secara urut berdasarkan First In First Out waktu mulai disimpan ke dalam harddisk. (FIFO) 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 access.log
Keterangan 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
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
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.
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.
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
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
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
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-
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
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.
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.
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 intransit 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 cache_swap_high
(percent, 0-100) (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
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
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
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”.
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
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
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
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.
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.
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
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
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
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
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, ignorereload Default: refresh_pattern ^ftp: 1440 20%
10080
refresh_pattern ^gopher:
1440
0%
1440
refresh_pattern .
0
20%
4320
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
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
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,
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
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
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_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
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
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
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.
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
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.
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
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
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
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
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
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)
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
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”
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
untuk
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
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.
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
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
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
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
88 •
nonhierarchical_direct Secara default, Squid Proxy Server akan mengirimkan berbagai nonhierarchical 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
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
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
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
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.
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 IMSREFRESH 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 noncompliant HTTP message yang unambigu tentang maksud dari mengirim
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
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.
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.
97 Secara garis besar, terdapat 4 jenis elemen dari HTML: •
structural. tanda yang menentukan level atau tingkatan dari sebuah teks (contoh,
Golf
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, boldface 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, Bina Nusantara akan menampilkan ‘Bina Nusantara’ sebagai sebuah hyperlink ke URL tertentu),
•
Elemen widget yang membuat objek-objek lain seperti tombol (