Sabtu, 22 Januari 2011

Konfirgurasi SQUID

beberapa hari kemarin salah seorang teman bertanya tentang konfigurasi squid, tapi di sini gua akan menulis lengkap mulai pertama kali penyetingan konfigurasi squid di mesin openbsd,extraklah squid pada direktory yang telah kita buat ( sembarang )

# 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:

Ipod Qu