Kemudian kita akan
mengatur besarnya memory dengan keyword cache_mem. Keyword ini
mendefinisikan besarnya memory yang digunakan squid untuk menangani objek-objek
di dalam memory. Objek-objek tersebut berupa bagian-bagian data seperti grafik,
sound atau web page. Karena semua bagian-bagian data tersebut disimpan dalam
blok-blok sebesar 4 Kb, kita harus mendefinisikan cache_mem ini kelipatan dari 4
Kb. Secara default cache memory yang digunakan squid adalah 8 Mb. Nilai ini
rasanya cukup aman. Perlu diperhatikan bahwa nilai ini bukanlah jumlah total
memory yang squid gunakan. Nilai ini hanya untuk cachenya saja. Sedangkan
prosesnya membutuhkan beberapa megabytes memory lagi. Pada saat squid server
bekerja pada load yang berat, keseluruhan memory yang digunakan bisa 2 kali atau
3 kali lipat dari memory yang didefiniskan di sini. Dengan kata lain kalau kita
mendefinisikan memory untuk cache di squid sebesar 8 Mb, maka bersiap-siaplah
squid kita akan menggunakan total memory sebesar 24 Mb pada saat load squid
sedang berat. Di bawah ini adalah contoh option yang mendefinisikan jumlah
memory untuk cache di squid.conf.
cache_mem 8 MB
Bagian berikutnya yang perlu di-configure adalah maximun_object_size.
Keyword ini mendefinisikan ukuran maksimum objek yang akan disimpan oleh squid.
Objek yang ukurannya lebih besar dari ukuran yang didefinisikan di sini tidak
akan disimpan ke dalam harddisk. Nilainya di definisikan dalam satuan KB,
defaultnya adalah 4096 Kb atau sebesar 4 Mb.
maximum_object_size 4096 KB
Squid juga menyimpan Full Qualified Domain Names (FQDNs). Artinya Squid
melakukan DNS lookup ke site yang dituju kemudian menyimpan IP address-nya.
Sehingga saat berikutnya ada request ke host tersebut, Squid akan mengambil dari
cache. Hal ini sangat membantu bila kita tidak mempunyai DNS server sendiri atau
DNS server kita sangat lambat terutama bila sitenya sering diakses dari network
kita. Nilai defaultnya adalah 1024, tetapi kita dapat saja merubahnya sesuai
kebutuhan.
fqdncache_size 1024
Keyword berikutnya yang sangat penting adalah cache_dir. Keyword ini
mendefinisikan lokasi direktori cache squid kita, ukurannya dan jumlah direktory
yang berada di dalamnya. Kita dapat mendefinisikan dalam beberapa direktory jika
kita ingin menggunakan multiple harddisk. Direktori yang didefinisikan dibawah
ini harus dimiliki oleh user dan group squid berjalan dan squid mempunyai akses
untuk menulis di direktori tersebut.
cache_dir ufs /var/spool/squid 100 16 256
Di atas adalah default dari konfigurasi squid. Di sana didefinisikan type
direktorinya, ufs. parameter berikutnya adalah lokasi direktorinya yaitu /var/spool/squid.
Parameter berikutnya adalah jumlah disk space maksimum dalam MB di direktori
tersebut. Dalam contoh di atas kita gunakan 100 MB maksimum tapi kita dapat
merubah sesuai dengan kebutuhan kita.Parameter berikutnya adalah adalah
parameter subdirektori level-1 yang mendefinisikan jumlah subdirektori yang
berada di bawah direktori /var/spool/squid tersebut. Nilai defaultnya adalah 16
direktori. Parameter berikutnya adalah parameter subdirektori level-2 yang
mendefinisikan jumlah subdirektori di bawah subdirektori yang pertama. Nilai
defaultnya adalah 256. Berarti kita punya 4096 direktori di bawah /var/spool/squid.
Keyword berikutnya adalah cache_access_log yang mendefinisikan file log
setiap ada request dari client. Masih ingat kita membuat direktori /var/log/squid
pada artikel sebelumnya? Kita medefinisikan file lognya sebagai berikut:
cache_access_log /var/log/squid/access.log
Log berikutnya adalah file log untuk cachenya yang digunakan untuk menyimpan
informasi log secara general.
cache_log /var/spool/squid/cache.log
Ada log yang lain yang tidak begitu penting yaitu tentang storage manager yang
mendefinisikan informasi-informasi tidak begitu penting seperti objek yang telah
ditolak oleh squid, yang di simpan dan lamanya objek itu disimpan. Karena
kebanyakan orang tidak begitu memperdulikan hal ini maka kita disable option ini
dengan:
cache_store_log none
Keyword yang penting berikutnya mendefinisikan lokasi tabel MIME. File table
MIME ini harus terletak pada direktori yang sama dengan file squid.conf, jadi
keyword mime_table tersebut didefinisikan sebagai berikut:
mime_table /etc/squid/mime.conf
Selanjutnya kita akan mendefinisikan lokasi file untuk PID (Process ID) squid.
Kebanyakan system file ini berada pada direktori /var/run. Jadi kita
mendefinisikan keword pid_filename seperti berikut:
pid_filename /var/run/squid.pid
Kita juga dapat mendefinisikan debug_option untuk log file squid. Nilai
defaultnya (dan direkomendasikan) adalah ALL, 1, yang membuat level debug
untuk semua section dan menggunakan log dengan level terendah (1). Nilai level
debug tertinggi adalah 9 tetapi jika kita menggunakan nilai ini bersiap-siaplah
untuk menghadapi file log yang sangat besar.
debug_options ALL, 1
Kita juga dapat menambahkan FQDNs ke dalam log cache_access_log dengan
mendefinisikan keyword log_fqdn. Keyword ini mempunyai dua nilai yaitu
off dan on. Sebaiknya jangan kita buat on untuk keyword yang
satu ini karena squid akan melakukan DNS lookup pada setiap IP yang diakses.
Karena kita tidak ingin browser berjalan lebih lambat dan kita tidak terlalu
butuh informasi ini maka kita definisikan sesuai defaultnya, off.
log_fqdn off
Option lain yang mungkin perlu diperhatikan adalah setting password untuk
anonymous login ke ftp server. Kita bisa mengganti squid@ dengan sesuatu yang
lebih bermakna seperti mailto:?
ftp_user mailto:someone@mydomain.com
Secara default squid melakukan DNS lookup menggunakan DNS server yang sudah
didefinisikan di system (/etc/resolv.conf). Kita dapat mengganti DNS server
khusus bagi squid untuk melakukan DNS lookup dengan mendefinisikan keyword
dns_nameservers dan menambahkan lebih dari satu DNS server di sini.
dns_nameserver 10.0.0.1 192.168.0.1
Supaya Squid berjalan dengan baik dan aman kita harus menjalankan squid sebagai
user biasa yang unprivileged (tidak punya akses istimewa seperti root). Seperti
sebelumnya dibahas, kita akan menjalankan squid sebagai user squid dan group
squid. Oleh karena itu perlu kita definisikan pada keyword berikut:
cache_effective_user squid
cache_effective_group squid
Saat kita
menjalankan squid pertama kali (start), kita harus menjalankannya dari
privileged user seperti root. Setelah program squid ini berjalan, squid secara
otomatis akan merubah user id dan group id (uid dan gid) ke user dan group yang
di definisikan di cache_effective_user dan cache_effective_group
tersebut. Cara seperti ini mirip dengan beberapa server lainnya (misal seperti
apache). Yang mesti diingat adalah user dan group yang didefinisikan tadi harus
sudah ada saat akan menjalankan squid untuk pertama kali.
Nah.. sekarang kita sudah menyelesaikan tahap pengisian keyword-keyword utama.
Tahap selanjutnya adalah mengkonfigurasi access control. Mari kita baca artikel
berikutnya tentang access control pada file squid.conf ini..
Access Control pada Squid
Squid menyediakan web access control yang powerfull. Dengan mengkonfigurasi bagian ini kita dapat mengkontrol siapa saja yang dapat mengunjungi site tertentu dan site-site apa saja yang tidak boleh dikunjungi, jam berapa saja mereka boleh mengakses web site tersebut, port berapa saja yang dapat digunakan dan lain sebagainya. Pada artikel ini saya akan membahas mengenai konfigurasi access control tersebut sebagai lanjutan artikel sebelumnya.
Pertama yang perlu kita
lakukan untuk mengkonfigurasi access control ini adalah dengan memberikan nama
untuk setiap acl dan mendefinisikan type access controlnya. Syntax yang
digunakan untuk acl tersebut adalah:
acl [aclname] [acltype] [string1] [string2] ...
aclname adalah nama access control yang akan didefinisikan.
acltype adalah type access control yang isinya salah satu dari yang berikut:
src (source), dst