02 April 2008

Berinternet Ria (2) Konfigurasi Squid di atas mesin Windows

Aku pernah berjanji akan mengulas tentang squid pada blog ini. Nah kali ini akan aku sedikit bercerita seputar squid, ya sekedar yang aku tahu dan aku pahami. Squid adalah salah satu jenis proxy yang paling populer karena beberapa keunggulan, antara lain :
  • Full fitur web proxy
  • Di desain untuk system Unix dengan kehandalan dan keamanan yang terjamin
  • Dapat diinstall pada mesin Unix dan juga Windows
  • Gratis dan Open Source
Disamping itu Squid support beberapa hal berikut :
  • Proxy dan cache untuk HTTP, FTP, Gopher dan URL lain
  • Proxy untuk SSL
  • Hirarki Cache (Cache bertumpuk)
  • ICP, HTCP, CARP, Cache Digets
  • Transparent Proxy
  • WWCP ( Squid V2.3 dan versi terbaru)
  • Akselerasi HTTP server
  • SNMP
  • Cache untuk DNS Lookup
Karena aku masih pemakai Windows alias Winuser (windows user), maka ceritaku adalah tentang install dan konfigurasi squid di atas mesin Windows. Sebelumnya tentunya harus mendownload file squid, coba pada link berikut http://www.acmeconsulting.it/SquidNT/ atau cari official website-nya dengan url http://www.squid-cache.org/. Bisa juga di-search di http://sourceforge.org. Pilih squid dengan versi terbaru, akan lebih baik jika yang versi Release/Stable diabnding versi Beta ato RC (release candidate). Karena versi Release atau Stable jauh lebih stabil dan kemungkinan bug-nya kecil karena sudah di try-out oleh beberapa user dan fix bugnya sudah lebih baik. Ketika mendapatkan file download-annya biasanya file berupa bentuk compress berupa zip/rar/tar.gz. Ekstrak-lah pada folder dimana squid akan di install, misal pada drive C: folder squid.

Setelah diekstrak, kita akan menemukan beberapa folder berikut :
  • bin, merupakan folder utama yang berisi file executable squidclient
  • docs, berisikan dokumentasi squid
  • etc, file-file konfigurasi disimpan di folder ini termasuk file squid.conf
  • libexec, berisikan library executbale
  • sbin, terdapat file executable squid
  • share, berisi kode error dan icons
  • system32, terdapat file library untuk API
  • var, file log dan cache disimpan pada folder ini
Untuk melakukan instalasi dan pembuatan cache kita harus masuk dalam command prompt. Jalankan 'cmd' pada menu Run. Pastikan jendela hitam dengan kursor yang berkedip telah terbuka dengan sempurna. Kemudian masuk pada folder squid dimana ketika diekstrak, buka sampai pada folder sbin. Sebelum squid bisa digunakan tentu harus dicreate dulu file swap yang nanti digunakan untuk menyimpan cache squid. Jalankan command berikut :
squid -z
Untuk install squid sebagai Windows service ketikkan command berikut :
squid -n squid -i
Jika ingin log squid masuk pada syslog Windows jalankan command berikut :
squid -n squid -s

Nah kali ini kita sudah berhasil menginstall squid secara sederhana dengan konfigurasi file default

Untuk mengkonfigurasi squid seperti yang dikehendaki, edit file squid.conf yang terdapat pada folder etc. Beberapa bagian penting yang perlu diketahui adalah :

http_port [port]
Contoh: http_port 3128
Ini menunjukkan nomor port yang dipakai untuk menjalankan squid. Nomor port ini akan dipakai untuk berhubungan dengan client dan peer. Secara default akan berisi angka 3128. Angka 8080 adalah angka yang lazim digunakan, bisa diubah dengan nilai yang lain.

icp_port [port]
Contoh: icp_port 3130
ICP (Internet Cache Protocol) dipakai untuk berkomunikasi dengan peer. Nomor port ini default . tidak perlu diubah kecuali akan berkomunikasi dengan peer yang nomornya selain 3130

dns_namesserver [ip_address] [ip_address] ...
Contoh: dns_nameservers 202.134.0.10 202.134.0.155 203.130.196.155
Digunakan untuk menentukan dns namesserver yang akan dilookup pertama kali, secara terurut dari kiri ke kanan jika tidak ditemukan

cache_mgr [email_address]
Contoh: cache_manager zaqi.smart@gmail.com
Jika squid mati, maka email akan dikirimkan ke email yang ditentukan tersebut. Email ini juga akan nampak pada halaman user ketika terjadai error, misal webiste tidak ditemukan

visible_hostname [host]
Contoh: visible_hostname laron
Host ini akan tampil saat squid memunculkan pesan-pesannya pada browser user

hierarchy_stoplist [pola1] [pola2]
Contoh: hierarchy_stoplist cgi-bin ?
Sintaks ini menyatakan apa yang harus tidak diminta dari cache melainkan langsung dari server yang bersangkutan

cache_mem [jumlah_memory] (bytes)
Contoh: cache_mem 256 MB
Ukuran maksimal yang digunakan memori untuk menyimpan cache

maximum_object_size [jumlah_memory] (bytes)
Contoh: maximum_object_size 256 KB
menentukan ukuran maximum object cache yang dapat disimpan

minimum_object_size [jumlah_memory] (bytes)
Contoh: minimum_object_size 256 KB
menentukan ukuran minimum object cache yang dapat disimpan

coredump_dir [direktori]
Contoh: coredump_dir c:/squid/var/cache
digunakan untuk menentukan dimana cache pertama kali akan disimpan pada suatu folder

cache_dir [tipe]/cache [ukuran] [jumlah_dir_tk1] [jumlah_dir_tk2]
Contoh : cache_dir ufs/cache 512 16 256
Sintaks ini menjelaskan direktori cache yang akan dipakai. Pertama jenis file sistem pada contoh ini diisi dengan ufs (unix file sistem) yang merupakan tipe default . lalu cache adalah nama direktorinya. Ukuran /cache sebesar 512MB lalu 16 dan 256 adalah jumlah direktori yang terdapat di dalam /cache pada level 1 dan 2. Artinya di bawah direktori /cache terdapat 16 direktori dan masing-masing mengandung 256 direktori lagi. Direktori utama /cache harus dibuat manual sedangkan direktori yang terdapat di bawahnya dibuat oleh squdi. Jangan lupa untuk mengubah owner dari direktori /cache menjadi kepunyaan user dan group squid.

access_log [path_file] [tipe]
Contoh : access_log c:/squid/var/logs/access.log squid
Digunakan untuk menentukan dimana log access disimpan. Pada contoh di atas access log disimpan pada file c:/squid/var/logs/access.log dengan format squid

cache_log [path_file]
Contoh : cache_log c:/squid/var/logs/cache.log
Sintaks ini menjelaskan dimana log ketika cache dibuat akan disimpan

logfile_rotate [jumlah]
Contoh: logfile_rotate 10
Digunakan untuk menentukan jumlah file log yang akan terus menerus dipertahankan di harddisk. Artinya nanti di direktori log akan terdapat file access.log s/d access.log.10, begitu juga cache.log dan store.log

acl [nama] [opsi] [ip_address] [ip_address]
Contoh: acl localnetwork0 src 127.0.0.0/8
acl localnetwork1 src 192.168.1.0/24
acl to_localhost dst 127.0.0.1/255.255.255.255

Acl (access control list) mempunyai jenis yang beragam dan banyak kegunaannya. Jenis acl lengkapnya dapat dilihat pada squid.conf.default, yang pada contoh di atas jenis yang dipakai src dan dst. Jenis src menyatakan source dari ip address dan dst menyatakan destination tuju ip address. IP address yang ditampilkan lengkap dengan bit mask. Acl akan selalu berhubungan dengan http_access dan atau icp_access. Acl ini sebenarnya banyak sekali kegunaan untuk blocking dan filter, seperti blocking situs porno atau membatasi pemakaian pada jam-jam tertentu. Tentu akan panjang sekali jika harus diceritakan lebih detil di sini. Mungkin lain kali aku bercerita lebih detil, lebih luas dan lebih dalam.

Nah berikut ini adalah potongan dari konfigurasi squid yang ada di mesin Windows-ku semoga bermanfaat.

http_port 3128 transparent
dns_nameservers 202.134.0.10 202.134.0.155 203.130.196.155
cache_mgr zaqi.smart@gmail.com
visible_hostname laron
cache_dir ufs c:/squid/var/cache 512 16 256
coredump_dir c:/squid/var/cache
cache_mem 256 MB
maximum_object_size 256 KB
minimum_object_size 4 KB
dns_testnames localhost
logfile_rotate 10

access_log c:/squid/var/logs/access.log squid
cache_log c:/squid/var/logs/cache.log

negative_ttl 2 minutes
refresh_pattern windowsupdate.com/.*\.(cab|exe) 4320 100% 43200 reload-into-ims
refresh_pattern download.microsoft.com/.*\.(cab|exe) 4320 100% 43200 reload-into-ims
refresh_pattern au.download.windowsupdate.com/.*\.(cab|exe) 4320 100% 43200 reload-into-ims
acl Query urlpath_regex cgi-bin \?
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 PURGE method PURGE
acl to_localhost dst 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563 5050-5100 6000-7000
acl Safe_ports port 80 21 443 563 70 210 210 1025-65535 280 488 591 777 5050-5100 6000-7000 9000
acl CONNECT method CONNECT
acl GET method GET
acl POST method POST
acl localnetwork0 src 127.0.0.0/8
acl localnetwork1 src 192.168.1.0/24

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny blocking
http_access deny CONNECT blocking
http_access deny GET blocking
http_access deny POST blocking
http_access deny PURGE
http_access allow PURGE localhost
http_access allow localnetwork0
http_access allow localnetwork1
no_cache deny QUERY
http_access deny all
http_reply_access allow all
icp_access deny all

hierarchy_stoplist cgi-bin ?
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

digest_generation on
digest_bits_per_entry 10
digest_rebuild_period 30 minute
digest_rewrite_period 30 minute
digest_swapout_chunk_size 6000 bytes
client_persistent_connections on
server_persistent_connections on
pipeline_prefetch on
store_dir_select_algorithm round-robin
nonhierarchical_direct off
prefer_direct off

log_icp_queries off
buffered_logs on

1 komentar:

b-not mengatakan...

mas zaqi nanya dunk
squid pake 2.7 stable5
http_port 3128 transparent
tapi ko client tetep ga bisa conect tuh
harus isi proxy manual
please dunk apa yang salah ya//
email kesaya ya mas abarai.putra@gmai.com