SQUID SEBAGAI ALTERNATIF PROXY SERVER

Luthfi Kisbiono Arif dan Onno W. Purbo*

Pada saat ini banyak organisasi, baik edukasi, pemerintahan, privat maupun komersial berusaha membatasi akses para penggunanya ke internet (terutama web) dengan alasan bandwith yang dimiliki mulai terasa lambat ketika para penggunanya mulai “nge-Web”.
	Salah satu solusi untuk pembatasan akses di atas adalah dengan menggunakan Proxy Server. Di sini proxy server berguna sebagai mediator antara pengguna dan dunia luar (Web), semua request HTTP dari pengguna akan diarahkan ke Proxy Server (dengan mengkonfigurasi semua browser pengguna) dan data berupa tujuan (misal http://www.itb.ac.id) yang di minta oleh user akan diteruskan oleh Proxy server ke tujuan yang diminta. Data yang telah didapat oleh Proxy server tidak dibuang begitu saja, data ini selain akan dikembalikan ke arah pengguna yang meminta juga akan di simpan (di-Cache) sehingga apabila data yang sama diminta oleh pengguna yang lain, proxy tidak usah meminta data tersebut ke server yang diminta, tapi cukup mengirimkan data yang telah ada di cachenya ke pengguna yang meminta. 
	Pada beberapa jenis Proxy server tertentu kita mempunyai aturan-aturan yang bisa membatasi akses pengguna ke web, sebagai misal pengguna dari suatu workgroup bisa mengakses web pada selang waktu tertentu. Hal di atas bisa berjalan apabila semua request HTTP dari pengguna harus melewati proxy server terlebih dahulu, sehingga kita dapat menjamin semua request dari pengguna selalu melewati Proxy server terlebih dahulu.

INSTALASI SQUID UNTUK PROXY SERVER

	Pada artikel ini, kita akan membuat sebuah proxy server dengan software Squid, Squid adalah software public domain berbasis UNIX, berfungsi meng-‘cache’ data yang diminta oleh pengguna (biasanya berupa web pages dan ftp). Platform UNIX yang di support oleh Squid adalah FreeBSD, BSDI, Digital Unix, Irix, Linux, Solaris dan SunOs. Tidak semua data bisa di cache oleh Squid, data-data yang bersifat dinamik seperti CGI-BIN tidak di cache oleh Squid, jadi tiap kali ada permintaan CGI-BIN, maka Squid akan menghubungi langsung server tujuan. Saat ini protokol yang bisa dilayani oleh Squid adalah “http”, “ftp”, “gopher” dan “wais”. Versi dari Squid yang paling baru (pada saat artikel ini ditulis) adalah versi 1.1.10 dan bisa didapat melalui anonymous FTP ke ftp://squid.nlanr.net/pub/squid-1.1. 

Hardware yang anda butuhkan untuk dapat membuat Proxy server dengan Squid adalah (konfigurasi tipikal) :
•	Pentium 133 atau lebih tinggi (Pentium Pro lebih baik)
•	RAM 32 MB atau lebih tinggi (Squid menyimpan sementara data yang sedang diminta oleh pengguna ke RAM sebelum disimpan di hard disk, data ini disebut juga hot object)
•	Hard Disk 1.7 GB untuk instalasi FreeBSD (memakan space kurang lebih 300 MB) dan Squid (executable files tidak  memakan space tetapi cache membutuhkan space yang cukup besar).
	
Setelah anda memiliki source file dari Squid, kita uncompress dahulu source file dari Squid dengan mengetikkan :
	
% tar xvpfz squid-1.1.10.tar.gz

setelah selesai, akan tampak satu sub direktori squid-1.1.10 di tempat anda meng-uncompress file di atas. Langkah selanjutnya adalah masuk ke subdirektori tersebut lalu jalankan perintah berikut :

	% ./configure –prefix=/usr/local/squid

Maksud dari prefix di atas adalah, kita menunjukkan letak direktori tempat executable files dan konfigurasi disimpan setelah instalasi selesai. Jadi bisa juga prefix yang diberikan bukan /usr/local/squid tapi bisa juga /usr/squid misalnya. Sedangkan perintah configure sendiri berguna untuk mengektraksi parameter-parameter dari Operating System yang kita gunakan. Langkah selanjutnya adalah jalankan perintah berikut :

	% make all

lalu setelah perintah selesai dijalankan ketik perintah :

	% make install

yang akan menginstall executable files dari Squid ke direktori /usr/local/squid (sesuai dengan prefix yang kita berikan). Setelah perintah ini selesai direktori kerja kita pindah ke /usr/local/squid. Di direktori ini akan kita lihat ada 3 buah direktori yaitu : bin. etc, dan log. Direktori bin berisi executable files dari Squid dan direktori etc berisi file konfigurasi dari Squid, yaitu file Squid.conf.

KONFIGURASI DASAR PROXY SERVER

	File yang dibaca ketika Squid pertama kali dieksekusi adalah file squid.conf (terletak di direktori /usr/local/squid/etc). File ini berisi directive-directive, option dan rules yang akan kita terapkan ketika kita menjalankan proxy server. Bebeberapa directive dan option penting yang harus kita isi adalah (konfigurasi minimum) :

1. http_port

directive ini berguna untuk menunjukkan ke port berapa proxy server harus mendengarkan permintaan dari pengguna, isi http_port dengan bilangan integer sesuai dengan keinginan anda (misal 8080) asalkan tidak bentrok dengan well known ports dari server anda atau gunakan default yang ada (3128). Kegunaan directive ini dapat ditunjukkan oleh contoh sebagai berikut : pada browser pengguna kita set option proxy server untuk http adalah 167.205.154.22 port 8080, ini berarti request http akan dialamatkan ke proxy server 167.205.154.22 pada port 8080, apabila proxy server tersebut telah diset untuk mendengarkan permintaan pengguna pada port 8080 maka permintaan dari pengguna tersebut akan dilayani.

2. icp_port

directive ini berguna untuk menunjukkan port bahwa proxy server yang anda buat harus mendengar (listen) pada permintaan dari proxy server (apabila dalam network anda telah dibuat suatu hirarki caching) yang menyampaikan permintaannya melalui protokol ICP (Internet Cache Protocol).  Di sini anda dapat menggunakan default yang sudah ada (3130) atau bilangan integer sesuai dengan keinginan anda asalkan tidak bentrok dengan well known ports yang sudah ada. Apabila hanya ada satu server cache saja dalam network anda maka option ini dapat tidak digunakan.

3. local_domain

isi directive ini dengan domain dari network anda, misal EE.ITB.ac.id, sehingga apabila ada permintaan data dimana tujuan masih terletak satu domain dengan proxy server anda, maka data akan diminta langsung ke server tujuan.

4. 	Beberapa directive untuk menunjukkan direktori tempat Squid menyimpan data yang didapat (untuk cache)  dan log files (access.log, hierarchy.log, store.log). Harap diingat directive ini wajib diisi karena Squid tidak akan bisa dieksekusi tanpa adanya directive ini. Saran dalam pembuatan direktori tempat squid menyimpan data cache adalah buat direktori khusus tempat squid menyimpan data dan log files (satu direktori khusus dengan 2 subdirektori untuk cache dan log file) serta letakkan direktori tersebut pada partisi yang berukuran cukup besar (dengan trafik HTTP medium data yang di cache bisa mencapai 500MB) .
5. 	pid_filename

Directive ini berguna untuk menunjukkan file tempat squid menulis nomer proses yang dijalankan, file ini penting untuk merestart Squid ataupun untuk mematikan proses Squid. Dalam FreeBSD, sebaiknya anda letakkan pada /var/run/squid.pid

6. 	cache_ftp_program

Secara default directive ini di comment (berarti di-ignore oleh Squid ketika pertama kali dieksekusi). Sebaiknya directive ini digunakan (di-uncomment).. Directive ini digunakan untuk menjukkan letak program ftpget, yang digunakan sebagai proxy untuk protokol FTP. Ubah letak sesuai dengan letak ftpget di server anda.

7. 	cache_dns_program

Secara default directive ini di comment. Sebaiknya directive ini digunakan karena program dnsserver yang ditunjuk lokasinya oleh directive ini berguna untuk mengubah nama server ke nomer IP.

8. 	visible_hostname

Directive ini berguna untuk menunjukkan nama proxy server anda kepada pengguna. Isi dengan nama yang anda sukai (nama ini tidak perlu sama dengan nama yang ada pada record DNS).

Dengan mengisi direktive-direktive di atas maka anda sudah dapat menjalankan Squid. Untuk menjalankan Squid ketik perintah :

	% ./RunCache            -- Pada direktori /usr/local/squid/bin

Untuk mencoba jalannya proxy server, coba jalankan perintah di bawah ini :

	% telnet mesin-proxyku.ITB.ac.id 8080
	  connected to mesin-proxyku.ITB.ac.id
	  escape character is “]
	  GET http://nic.itb.ac.id      HTTP/1.0

apabila display mengeluarkan beberapa tag HTML dan bukan berupa pesan error berarti proxy server anda sudah bisa digunakan. Proxy server anda juga bisa dites melalui browser, caranya : set option proxy server pada browser anda dengan IP atau nama dari proxy-server yang anda buat, sedangkan port diisi dengan HTTP_port dari file konfigurasi squid.conf. 

	Apabila anda ingin melakukan perubahan pada file konfigurasi squid.conf dan ingin merestart Squid (file konfigurasi squid.conf hanya dibaca satu kali oleh Squid yaitu pada saat program di start), anda tidak perlu mematikan semua proses yang telah di-launch oleh Squid tapi cukup mengetikkan perintah :

	% kill -HUP (Squid Parent ID)

Squid Parent ID dapat dilihat pada file /var/run/squid.pid atau pada file lain di yang ditunjukkan pada directive pada squid.conf. Apabila anda ingin mematikan semua proses dari Squid, perintah yang anda jalankan adalah :

	% kill -9 (Squid Parent ID)

 Demikian sekilas cara instalasi dari Squid untuk Proxy server. Keterangan lebih lengkap mengenai Squid dapat dibaca di http://www.nlanr.net/Squid.

*)Penulis adalah anggota CNRG-ITB, pertanyaan lebih lanjut dapat dialamatkan ke cnrg@itb.ac.id