# tar zxvf squid-2.5.STABLE14.tar.gz -C /squid/local/src
# groupadd squid
# useradd -m -d /cache -g squid -s /dev/null squid
Edit squid
# cd /usr/local/src/squid-2.5.STABLE14
# nano -w icons/Makefile.in
Ganti dari icondir=$(datadir)/icons
Menjadi icondir=$(libexecdir)/icons
# ee src/Makefile.in
Ganti dari DEFAULT_LOG_PREFIX=$(localstatedir)/logs
Menjadi DEFAULT_LOG_PREFIX=$(localstatedir)/log/squid
Ganti dari DEFAULT_PID_FILE=$(DEFAULT_LOG_PREFIX)/squid.pid
Menjadi DEFAULT_PID_FILE=$(localstatedir)/run/squid.pid
Ganti dari DEFAULT_SWAP_DIR=$(localstatedir)/cache
Menjadi DEFAULT_SWAP_DIR=/cache
Ganti dari DEFAULT_ICON_DIR=$(datadir)/icons
Menjadi DEFAULT_ICON_DIR=$(libexecdir)/icons
kompile squidnya
# cd /usr/local/src/squid-2.5.STABLE14
# ./configure –prefix=/squid –exec-prefix=/squid –bindir=/squid/sbin –libexecdir=/squid/lib
–localstatedir=/var –sysconfdir=/squid/etc –enable-pf-transparent –enable-snmp –enable-ssl –enable-removal-policies=heap –enable-default-languages=English
–enable-err-languages=English –enable-delay-pools –enable-cache-digests –enable-poll –disable-ident-lookups –disable-hostname-checks –enable-storeio=diskd,ufs
install squidnya
# make
# make install
# mkdir -p /var/squid/log
# chown squid:squid /var/squid/log
# chmod 750 /var/squid/log
# chmod 750 /cache
Edit squid.conf
#nano -w /squid/etc/squid.conf
http_port 9200 # rubhlah ports defaultnya
icp_port 0
cache_mem 6 MB
cache_dir diskd /cache 12000 28 256 Q1=72 Q2=88
cache_store_log none
negative_ttl 2 minutes
cache_effective_user squid
cache_effective_group squid
maximum_object_size 32 KB
minimum_object_size 0 KB
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
ftp_user anonymous@
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl SSL_ports port 443 8443 563 777
acl local src 192.168.1.0/24 # asumsi ip local anda 192.168.1.0 dengan prefix /24
http_access allow local
http_access deny all
cache_mgr NOC@kamarhitam.web.id
visible_hostname kamarhitam.web.id
half_closed_clients off
cache_swap_high 100
cache_swap_low 80
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Buat direktori cache
# /usr/sbin/squid -z
Jalankan dengan
# /squid/sbin/squid -D untuk start
# /squid/sbin/squid -k shutdown untuk stop
# /squid/sbin/squid -k reconfigure untuk restart
Supaya autorun edit
# nano -w /etc/rc.local
if [ -x /squid/sbin/squid ]; then
echo -n ’squid’; /squid/sbin/squid -sYD
fi
Settingan di atas adalah merupakan sebuah setingan default, di bawah ini gua akan menjelaskan bagaimana cara mebagi bandwith dengan delay_pools dan memblok link yang kita anggap sebagai virus,
Tekhnik Delay_pools ( di ambil dari Adilinux )
1. delay_pools
menyatakan berapa banyak bagian/pool yang akan dibuat
misal delay_pools 2
2.delay_class
menentukan klas/tipe pembagian bandwith dari setiap pool. 1 pool hanya boleh memiliki 1 clas, tidak lebih atau kurang.
bagian merupakan nomer urut dari jumlah pool didelay pool, jadi ada 1 s/d n bagian dimana n merupakan angka jumlah pada delay_pools
tipe merupakan tipe class delay yang dipakai.
Secara umum tipe menyatakan bagaimana cara membagi bandwidth, ada 3 tipe:
tipe/class 1. dimana semua bandwidth yang ada akan dibagi sama rata untuk semua user squid,
example: ada bandwidth 128 dan semua bandwith dipakai untuk browsing
tipe/class 2. membatasi pemakaian bandwith dari total bandwidth yang ada, dan bandwith yang diperuntukan squid akan dibagi semua user dengan sama rata.
example: kita mengansumsikan ada bandwidth 128 dimana 28 kbit dipakai untuk email dan sisanya (128 – 28 = 100 ) 100 kbit dipakai untuk browsing
tipe/class 3, membatasi pemakaian bandwidth dari total bandwidth yang ada, setiap network ( node ) class C akan mendapat bandwidth sama rata, setiap user per-node akan mendapat bandwidth yang sama besar dari total bandwidth per-network
example: bandwidth tersedia 128 kb, untuk browsing disediakan bandwidth 64 kb, sisanya untuk aktifitas lain .
Contoh Kasus:
Tomy membagi network menjadi dua bagian untuk kamar dia dan kamar bimo, kamar toMy menggunakan pool 1 dan kamar bimo menggunakan pool 2
delay_class 1 2 # pool 1 memakai clas tipe 2 ( kamar ToMy )
delay_class 2 3 # pool 2 memakai clas tipe 3 ( kamar BiMo )
Untuk Di kamar ToMy hanya di pakai untuk 1 komp saja, sedangkan untuk kamar BiMo di gunakan untuk 2 komp yang berbeda network ( 192.168.0.0/24) dan ( 192.168.1.0/24)
delay_access
Memberi batasan siapa saja yang boleh mempergunakan delay pools ini.
Penting untuk diingat sebaiknya setelah menetukan batasan jangan lupa di akhiri dengan deny all.
misal:
delay_access 1 allow ToMy
delay_access 1 deny all
delay_access 2 allow BiMo
delay_access 2 deny all
delay_parameters
Ini adalah bagian terpenting dari delay pools memberikan aturan main setiap delay pools yang dibentuk.
delay parameter mempunyai format yang disesuaikan dengan tipe/class yang dipakai.
Tapi disetiap tipe yang dipakai ada 1 format baku yaitu restore/max.
restore menunjukkan maksimum kecepatan data yang dapat dilewatkan bila harga max sudah terlampaui, dalam satuan bytes/second
max menunjukkan besar-nya file atau bucket yang dapat dilewatkan tanpa melalui proses delay. dalam satuan bytes.
Yang perlu diperhatikan dari satuan diatas adalah harga restore dimana kita sering menerima/menyewa/membeli bandwidth dari provider dalam satuan bits/second bukan bytes/second. Sedangkan satuan kecepatan yang ditunjukkan oleh Microsoft pada saat mendonlot file adalah bytes/sec.
Sedangkan satuan dari harga max sudah sesuai dengan kebiasaan sehari-hari, dimana kita memberi besaran bytes pada file-file.
1 byte = 8 bit.
SpesialCase: -1/-1 berarti unlimited atau tidak dibatasi pada nilai restore/max
example : 1000/64000 harga restore sama dengan 8000 bits/sec atau 8 kbits/sec.
Yang artinya user akan mendapat download brustable selama file yang akan dibuka lebih kecil dari 64 kbytes, jadi kecepatan bisa diatas 8 kbit/sec.
Bila ternyata file yang dibuka melebihi 64 bytes, maka proses limitasi akan segera dimulai dengan membatasi kecepatan maksimal 8 kbits/s.
class 1
delay_parameters <#pool individual>
ex: delay_parameters 1 1000/64000
Berarti semua network akan mendapat bandwidth yang sama di pool no 1.
Sebesar 1 kbytes/sec (8 kbits/sec), dengan burstable file 64 kb.
class 2
delay_parameters <#pool agregate individual>
ex: delay_parameters 1 32000/32000 1000/64000
Berarti squid akan memakai bandwidth maksimum (32000*8) 256kbits dari semua bandwidth.
Bila terdapat lebih dari 1 network class C, maka total yang dihabiskan tetap 256 kbit/sec
dan tiap user akan mendapat bandwidth maksimum 1 kbytes/sec (8 kbits/sec), dengan
burstable file 64 kb.
class 3
delay_parameters <#pool agregate network individual>
ex: delay_parameters 1 32000/32000 8000/8000 1000/64000
Berarti squid akan memakai bandwidth maksimum (32000*8) 256kbits dari semua bandwidth.
Bila terdapat lebih dari 1 network class C, maka setiap network akan dipaksa maksimum sebesar (8000*8) 64 kbits/sec
dan tiap user pada satu network akan mendapat bandwidth maksimum 1 kbytes/sec (8 kbits/sec), dengan burstable file 64 kb.
Dalam sebuah Contoh Kasus:
dalam 1 network dengan penggunaan bandwidth total tidak dibatasi terdapat beberapa komputer dengan klasifikasi sebagai berikut,
* admin, server dengan bandwidth unlimited
* BiMo dengan bandwidth 1,5 kbytes/sec, bila file yang diakses melebihi maka maks 64 Kbyte
* ToMy dengan bandwidth 1 kbytes/sec, bila file yang diakses melebihi maka maks 32 Kbyte
acl all src 0.0.0.0/0.0.0.0
acl admin src 192.168.1.250/255.255.255.255
acl server src 192.168.1.251/255.255.255.255
acl BiMo src 192.168.1.0/255.255.255.0
acl ToMy src 192.168.1.1 192.168.1.111 192.168.1.2 192.168.1.4 192.168.1.71
delay_pools 3
delay_class 1 1
delay_parameters 1 -1/-1
delay_access 1 allow admin
delay_access 1 allow server
delay_access 1 deny all
delay_class 2 1
delay_parameters 2 1500/64000
delay_access 2 allow BiMo
delay_access 2 deny all
delay_class 3 1
delay_parameters 3 1000/32000
delay_access 3 allow ToMy
delay_access 3 deny all
Delay pools juga dapat digunakan untuk membatasi download file untuk extensi tertentu.
Gunakan ACL url_regex untuk mengatasi hal ini.
Contoh dibawah digunakan untuk membatasi download file hingga 1 kByte/sec.
acl download url_regex -i ftp .exe$ .mp3$ .vqf$ .tar.gz$ .wmv$ .tar.bz$ .tar.bz2$ .gz$ .rpm$ .zip$
acl download url_regex -i .rar$ .avi$ .mpeg$ .mpe$ .mpg$ .qt$ .ram$ .rm$ .iso$ .raw$ .wav$ .tar$
acl download url_regex -i .z$ .wmf$ .mov$ .arj$ .lzh$ .gzip$ .bin$ .wma$ .3gp$
delay_pools 1
delay_class 1 1
delay_parameters 1 1000/16000
delay_access 1 allow download
delay_access 1 deny ALL
bagaimana caranya membuat delay pools untuk membatasi download di siang hari untuk 15 klient sedangkan malam harinya lost asumsi jamnya ( 10:00 – 21:00)
acl XTIME time SMTWHFA 10:00-21:00
acl download url_regex -i ftp .exe$ .mp3$ .mp4$ .tar.gz$ .gz$ .tar.bz2$ .rpm$ .zip$ .rar$
acl download url_regex -i .avi$ .mpg$ .mpeg$ .rm$ .iso$ .wav$ .mov$ .dat$ .mpe$ .mid$
acl download url_regex -i .midi$ .rmi$ .wma$ .wmv$ .ogg$ .ogm$ .m1v$ .mp2$ .mpa$ .wax$
acl download url_regex -i .m3u$ .asx$ .wpl$ .wmx$ .dvr-ms$ .snd$ .au$ .aif$ .asf$ .m2v$
acl download url_regex -i .m2p$ .ts$ .tp$ .trp$ .div$ .divx$ .mod$ .vob$ .aob$ .dts$
acl download url_regex -i .ac3$ .cda$ .vro$ .deb$
delay_pools 1
delay_class 1 1
delay_parameters 1 3000/3000
delay_access 1 allow download XTIME
delay_access 1 deny all
0 komentar:
Posting Komentar