Cara Install dan Konfigurasi Lusca HEAD r14942 di ubuntu 12.04

Kali ini saya ingin berbagi tentang cara install squid LUSCA HEAD di Ubuntu, untuk percobaan ini saya menggunakan Ubuntu 12.04 dan di bawah ini configurasi partisi ubuntu yang akan saya jadikan Proxy dengan Squid LUSCA.
TypeSizeLocationFileSystemMount
Primary30 GBBeginningext4/
Primary500 MBBeginningext4/boot
Primary8192 MBBeginningswapswap
Logical25 GBEndbtrfs/cache-1
Logical25 GBEndbtrfs/cache-2
Logical25 GBEndbtrfs/cache-3
Logical25 GBEndbtrfs/cache-4
Logical25 GBEndbtrfs/cache-5
Logical46 GBEndext4/home
Logical5 GBEndext4/opt
Logical5 GBEndext4/srv
Logical5 GBEndext4/tmp
Logical5 GBEndext4/usr
Logical5 GBEndext4/usr/local

CATATAN :
Ukuran Partisi swap 2x besar RAM pada PC yang akan di Jadikan Proxy Server.
btrFs untuk 64bit
Reinfers untuk 32bit
pada partisi  /cache-1 - /cache-5 mount option pilih[*] noatime dan realtime
yang lain pilih notaime

Selanjutnya setelah selesai mengoptimalkan partisi kita mulai untuk menginstall pendukung LUSCA HEAD. Remote ubuntu dengan putty dan winscp, jika sobat belum punya bisa download di sini :
PuTTy
WinSCP

Login Ubuntu dengan Putty
kemudian copykan perintah berikut :
apt-get update && 
apt-get upgrade -y  &&
apt-get dist-upgrade -y &&
apt-get install squidclient squid-cgi -y &&
apt-get install gcc -y &&
apt-get install build-essential -y &&
apt-get install sharutils -y &&
apt-get install ccze -y &&
apt-get install libzip-dev -y &&
apt-get install automake1.9 -y &&
apt-get install perl -y &&
apt-get install apache2 -y && 
apt-get install libapache2-mod-perl2 -y && 
apt-get install libfile-readbackwards-perl -y
Tunggu hingga prosses instalasi selesai.
jika sedah selesai lanjut dengan mendownload LUSCA-HEAD r14942 ketikan perintah berikut :
cd /tmp &&
wget  https://bandi-shippuden.googlecode.com/svn/Squid%20Configuration/LUSCA-HEAD/LUSCA_HEAD-r14942.tar.gz &&
tar -xvzf LUSCA_HEAD-r14942.tar.gz &&
cd LUSCA_HEAD-r14942/
download patch LUSCA HEAD
wget  https://bandi-shippuden.googlecode.com/svn/Squid%20Configuration/LUSCA-HEAD/LUSCA_HEAD-patch.tar.gz &&
tar -xvzf LUSCA_HEAD-patch.tar.gz
kemudian pach lusca dengan perintah berikut :
patch -p0 <3xx-loop.diff &&
patch -p0 < async-issue.diff &&
patch -p0 < http-gzip.diff &&
patch -p0 < ignore-must-revalidate.diff &&
patch -p0 < improve-nn-parser.diff &&
patch -p0 < lusca-vary.diff &&
patch -p0 < segmentation-fault.diff
Setelah selesai kita lanjut ke tahap compile sebelum melakuakn compail harap di sesuaikan dengan kondisi ubuntu sobat :
./configure \
--prefix=/usr \
--exec_prefix=/usr \
--bindir=/usr/sbin \
--sbindir=/usr/sbin \
--libexecdir=/usr/lib/squid \
--sysconfdir=/etc/squid \
--localstatedir=/var/spool/squid \
--datadir=/usr/share/squid \
--enable-async-io=24 \
--with-aufs-threads=24 \
--with-pthreads \
--enable-storeio=aufs,null \
--enable-linux-netfilter \
--enable-arp-acl \
--enable-epoll \
--enable-external-acl-helpers=ip_user \
--disable-ident-lookups \
--enable-removal-policies=heap,lru \
--with-aio \
--with-dl \
--enable-snmp \
--enable-delay-pools \
--enable-htcp \
--enable-cache-digests \
--disable-unlinkd \
--enable-large-cache-files \
--with-large-files \
--enable-err-languages=English \
--enable-default-err-language=English \
--enable-http-violations \
--enable-gnuregex \
--enable-referer-log \
--enable-stacktraces \
--enable-truncate \
--enable-follow-x-forwarded-for \
--disable-linux-tproxy \
--disable-ssl \
--disable-select \
--disable-poll \
--disable-dependency-tracking \
--disable-auth \
--disable-ident-lookups \
--disable-wccp \
--disable-wccpv2 \
--with-maxfd=65536 &&
make && make install
Cek versi squid dan status squid :
squid -v
service --status-all
/etc/init.d/squid status
Menambahkan user dan group, biasanya user group sudah tersedia,ini hanya untuk berjaga2 mana tau user group belum tersedia :
adduser proxy
addgroup proxy
Konfigurasi file squid.conf
Ketikan perintah berikut :
>mv /etc/squid/squid.conf /etc/squid/squid.conf.ori
cd /etc/squid/
touch squid.conf
Copy configurasi berikut dan jangan lupa sesaikan dengan kondisi di tempat sobat, gunakan WinSCP untuk lebih mudahnya :
#-----------------------------------------------------#
#       LUSCA - High Performance Configuration        #
#   BANDI SHIPPUDEN        #
#-----------------------------------------------------#
http_port 3128 transparent
cache_mem 32 MB
server_http11 on
icp_port 0

#============================================================
# TAG: File Squid
#============================================================
pid_filename /var/run/squid.pid
coredump_dir /var/spool/squid/
error_directory /usr/share/squid/errors/English
icon_directory /usr/share/squid/icons
mime_table /usr/share/squid/mime.conf

#============================================================
# OPTIONS WHICH AFFECT THE CACHE SIZE / zaib
#============================================================
# If you have 4GB memory in Squid box, we will use formula of 1/3
# You can adjust it according to your need. IF squid is taking too much of RAM
# Then decrease it to 128 MB or even less.
# -----------------------------------------------------------
maximum_object_size_in_memory 512 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
maximum_object_size 10 GB
cache_swap_low 98%
cache_swap_high 99%

# TAG: Cache Directory
# -----------------------------------------------------------
cache_dir aufs /cache-1 23000 207 256 max-size=40200000
cache_dir aufs /cache-2 23000 207 256 max-size=40200000
cache_dir aufs /cache-3 23000 207 256 max-size=40200000
cache_dir aufs /cache-4 23000 207 256 max-size=40200000
cache_dir aufs /cache-5 23000 207 256 max-size=40200000

# TAG: Log Squid
# ----------------------------------------------------------- 
# referer_log /var/log/squid/referer.log
access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_log /dev/null
cache_store_log /dev/null
redirect_rewrites_host_header off

# ===========================================================
# ACL Section
# ===========================================================
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255

acl SSL_ports port 443 563 873 443 # https snews rsync
acl SSL_ports port 2082
acl SSL_ports port 2083
acl SSL_ports port 2086
acl SSL_ports port 2087
acl SSL_ports port 2093
acl SSL_ports port 2095
acl SSL_ports port 2096

acl Safe_ports port 80   # http
acl Safe_ports port 20 21  # ftp
acl Safe_ports port 70   # gopher
acl Safe_ports port 210   # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 631   # cups
acl Safe_ports port 10000  # webmin
acl Safe_ports port 901   # SWAT
acl Safe_ports port 280   # http-mgmt
acl Safe_ports port 488   # gss-http
acl Safe_ports port 591   # filemaker
acl Safe_ports port 777   # multiling http
acl Safe_ports port 873   # rsync
acl Safe_ports port 110   # POP3
acl Safe_ports port 25   # SMTP
acl Safe_ports port 2095 2096  # webmail from cpanel
acl Safe_ports port 2082 2083  # cpanel
acl Safe_ports port 5000-5200   # yahoomessenger
acl Safe_ports port 6666-6669   # mirc
acl Safe_ports port 2086
acl Safe_ports port 2087
acl Safe_ports port 8080

acl CONNECT method CONNECT
acl dynamic urlpath_regex cgi-bin \?

# acl porn.block url_regex -i "/etc/squid/porn.block.txt"
# acl waktu_siang time 04:30-21:00
# acl ads.block url_regex -i "/etc/squid/ads.block"
acl network src 192.168.10.0/24 192.168.16.0/24 # Sesuaikan dengan ip Local Kalian

# DNS Name_Server
# -----------------------------------------------------------#
dns_nameservers 127.0.0.1

# TAG: Access
# -----------------------------------------------------------#
http_access allow manager localhost
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
# http_access deny ads.block
# http_access deny porn.block waktu_siang
http_access allow network
http_access deny all

#============================================================
# SNMP , if you want to generate graphs for SQUID via MRTG
#============================================================
snmp_port 3401
acl snmppublic snmp_community public
snmp_access allow snmppublic all
snmp_access deny all

# TAG : New Youtube Cache Config
# ----------------------------------------------------------#
acl yutub dstdomain .youtube.com .youtu.be
logformat squid1 %{Referer}>h %ru
access_log /var/log/squid/yt.log squid1 yutub 
acl redirec urlpath_regex -i &redirect_counter=1&cms_redirect=yes &ir=1&rr=12
cache deny redirec 
storeurl_access deny redirec

include /etc/squid/refresh.conf

#============================================================
# TAG : Tuning
#============================================================
header_access X-Forwarded-For deny all
strip_query_terms off
fqdncache_size 4096
ipcache_low 98
ipcache_high 99
quick_abort_min -1 KB
quick_abort_max 0
quick_abort_pct 100
shutdown_lifetime 10 seconds
memory_pools off
buffered_logs off
log_icp_queries off
logfile_rotate 1
log_fqdn off
forwarded_for off
icp_hit_stale on
query_icmp on
reload_into_ims on
emulate_httpd_log off
negative_ttl 2 minutes
pipeline_prefetch on
vary_ignore_expire on
half_closed_clients off
high_page_fault_warning 2
nonhierarchical_direct on
prefer_direct off
cache_mgr bandi.shippuden@gmail.com
cache_effective_user proxy
cache_effective_group proxy
visible_hostname bandi
unique_hostname bandi
cachemgr_passwd none all
client_db on
max_filedescriptors 8192
n_aiops_threads 24
load_check_stopen on
load_check_stcreate on
download_fastest_client_speed on

#============================================================
# ZPH , To enable cache content to be delivered at full lan speed,
# To bypass the queue at MT.
#============================================================
tcp_outgoing_tos 0x30 all
zph_mode tos
zph_local 0x30
zph_parent 0
zph_option 136

# ===========================================================
# Delay Pools
# ===========================================================
#acl  file-file url_regex -i ftp \.ppt \.tar.gz \.tar.bz \.tar.bz2 \.gz \.rpm \.zip \.gzip \.bin \.rar \.qt \.iso \.raw \.tar \.doc \.z \.arj \.lzh \.vqf \.exe
#acl  audio-audio url_regex -i \.mp3 \.mp2 \.aac \.wav \.mid \.wmv \.wma \.ogg
#acl  striming url_regex -i \.mov \.avi \.mpeg \.mpe \.mpg \.ram \.rm \.flv \.flv-x \.mp4 \.3gp \.mkv
#acl  striming url_regex -i get_video? video_id? videodownload? videoplayback? .c.youtube.com

#delay_pools 3

#delay_class 1 1
#delay_access 1 allow file-file
#delay_parameters 1 51200/51200

#delay_class 2 1
#delay_access 2 allow audio-audio
#delay_parameters 2 51200/51200

#delay_class 3 1
#delay_access 3 allow striming
#delay_parameters 3 51200/51200
CATATAN :
Hal-hal yang perlu di perhatikan
cache_dir aufs /cache-1 23000 207 256 max-size=40200000
cache_dir aufs /cache-2 23000 207 256 max-size=40200000
cache_dir aufs /cache-3 23000 207 256 max-size=40200000
cache_dir aufs /cache-4 23000 207 256 max-size=40200000
cache_dir aufs /cache-5 23000 207 256 max-size=40200000
sesuaikan dengan direktory cache yang anda buat.
acl network src 192.168.10.0/24 192.168.16.0/24
sesuaikan dengan network local sobat.

Kemudian buat file dengan nama refresh.conf, ketikan perintah berikut :
touch refresh.conf
setelah itu edit menggunakan WinSCP agar lebih mudah, setelah itu isi dengan configurasi berikut :
# $Rev$
# FPUI
# refresh_pattern.conf
# r25

#------------------------------------------------------------#
# GAME ERROR / URL ERROR
#------------------------------------------------------------#
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex -i cgi-bin
acl QUERY urlpath_regex -i \.(captcha|reset.css|gamenotice|ickernew.css|Launcher|autoup.exe)
acl DENYCACHE urlpath_regex \.(ini|ui|lst|inf|ver|cfg|lst|list|rsc|log|conf|dbd|db)$
acl FIX-GAME-DST dst 122.102.49.132/32
acl FIX-GAME_DOM dstdomain .r2games.com
cache deny QUERY
cache deny DENYCACHE FIX-GAME_DOM

always_direct allow FIX-GAME-DST FIX-GAME_DOM
always_direct deny all

# ===========================================================$
# Caching Dinamic Container
# ===========================================================$
# Caching Youtube
acl videocache_allow_url url_regex -i \.youtube\.com\/get_video\?
acl videocache_allow_url url_regex -i \.youtube\.com\/videoplayback \.youtube\.com\/videoplay \.youtube\.com\/get_video\?
acl videocache_allow_url url_regex -i \.youtube\.[a-z][a-z]\/videoplayback \.youtube\.[a-z][a-z]\/videoplay \.youtube\.[a-z][a-z]\/get_video\?
acl videocache_allow_url url_regex -i \.googlevideo\.com\/videoplayback \.googlevideo\.com\/videoplay \.googlevideo\.com\/get_video\?
acl videocache_allow_url url_regex -i \.google\.com\/videoplayback \.google\.com\/videoplay \.google\.com\/get_video\?
acl videocache_allow_url url_regex -i \.google\.[a-z][a-z]\/videoplayback \.google\.[a-z][a-z]\/videoplay \.google\.[a-z][a-z]\/get_video\?
acl videocache_allow_url url_regex -i proxy[a-z0-9\-][a-z0-9][a-z0-9][a-z0-9]?\.dailymotion\.com\/
acl videocache_allow_url url_regex -i vid\.akm\.dailymotion\.com\/
acl videocache_allow_url url_regex -i [a-z0-9][0-9a-z][0-9a-z]?[0-9a-z]?[0-9a-z]?\.xtube\.com\/(.*)flv
acl videocache_allow_url url_regex -i \.vimeo\.com\/(.*)\.(flv|mp4)
acl videocache_allow_url url_regex -i va\.wrzuta\.pl\/wa[0-9][0-9][0-9][0-9]?
acl videocache_allow_url url_regex -i \.youporn\.com\/(.*)\.flv
acl videocache_allow_url url_regex -i \.msn\.com\.edgesuite\.net\/(.*)\.flv
acl videocache_allow_url url_regex -i \.tube8\.com\/(.*)\.(flv|3gp)
acl videocache_allow_url url_regex -i \.mais\.uol\.com\.br\/(.*)\.flv
acl videocache_allow_url url_regex -i \.blip\.tv\/(.*)\.(flv|avi|mov|mp3|m4v|mp4|wmv|rm|ram|m4v)
acl videocache_allow_url url_regex -i \.apniisp\.com\/(.*)\.(flv|avi|mov|mp3|m4v|mp4|wmv|rm|ram|m4v)
acl videocache_allow_url url_regex -i \.break\.com\/(.*)\.(flv|mp4)
acl videocache_allow_url url_regex -i redtube\.com\/(.*)\.flv
acl videocache_allow_url url_regex -i \.xhamster\.com\/(.*)\.(flv|avi|mov|mp3|m4v|mp4|wmv|rm|ram|m4v)

acl speedtest dstdom_regex -i speedtest.*\.
acl store_rewrite_list urlpath_regex .*\/speedtest\/.*\.(jpg|txt)
acl store_rewrite_list urlpath_regex .*\.ak\.fbcdn\.net\/
acl store_rewrite_list urlpath_regex -i http:\/\/199\.91\.15\d\.\d*\/\w{12}\/(\w*)\/(.*)
acl store_rewrite_list urlpath_regex -i s[0-9]*\.filesonic\.com\/download\/.*
acl store_rewrite_list urlpath_regex -i [a-zA-Z]{2}[0-9]*\.4shared\.com\/download\/
acl store_rewrite_list urlpath_regex -i ^http://dc[0-9]*\.4shared\.com/.*
acl store_rewrite_list urlpath_regex -i ^http://cdn[1-3][a-z]{0,1}.*\.phncdn\.com/.*
acl store_rewrite_list urlpath_regex -i \/(watch\?|get_video\?|videodownload\?|videoplayback\?|videoplayback.*id)
acl store_rewrite_list urlpath_regex -i \.(jp(e?g|e|2)|gif|png|tiff?|bmp|ico|flv|wmv|3gp|mp(4|3)|exe|msi|zip|on2|mar|rar|cab)\?
acl store_rewrite_list_domain url_regex -i ^http:\/\/([a-zA-Z-]+[0-9-]+)\.[A-Za-z]*\.[A-Za-z]*
acl store_rewrite_list_domain url_regex -i (([a-z]{1,2}[0-9]{1,3})|([0-9]{1,3}[a-z]{1,2}))\.[a-z]*[0-9]?\.[a-z]{3}
acl store_rewrite_list_path urlpath_regex -i \.(jp(e?g|e|2)|gif|png|tiff?|bmp|ico|flv|avc|zip|mp3|3gp|rar|on2|mar|exe|cab)$
acl store_rewrite_list_domain_CDN url_regex -i \.rapidshare\.com.*\/[0-9]*\/.*\/[^\/]* ^http:\/\/(www\.ziddu\.com.*\.[^\/]{3,4})\/(.*) \.doubleclick\.net.*
acl store_rewrite_list_domain_CDN url_regex -i ^http:\/\/i[1-9]{4}(.photobucket.com.*)/)
acl store_rewrite_list_domain_CDN url_regex -i ^http:\/\/[a-z]+[0-9]\.google\.co(m|\.id)
acl store_rewrite_list_domain_CDN url_regex -i ^http:\/\/\.www[0-9][0-9]\.indowebster\.com\/(.*)(rar|zip|flv|wm(a|v)|3gp|mp(4|3)|exe|msi|avi|(mp(e?g|a|e|1|2|3|4))|cab|exe)
acl store_rewrite_list urlpath_regex -i \/(get_video|videoplayback\?id|videoplayback.*id) \.(jp(e?g|e|2)|gif|png|tiff?|bmp|ico|flv|wmv|3gp|mp(4|3)|exe|msi|zip|on2|mar|swf)\?
acl store_rewrite_list_domain_CDN url_regex -i (khm|mt)[0-9]?.google.co(m|\.id)  streamate.doublepimp.com.*\.js\? photos-[a-z].ak.fbcdn.net \.rapidshare\.com.*\/[0-9]*\/.*\/[^\/]* ^http:\/\/(www\.ziddu\.com.*\.[^\/]{3,4})\/(.*) \.doubleclick\.net.* yieldmanager cpxinteractive ^http:\/\/[.a-z0-9]*\.photobucket\.com.*\.[a-z]{3}$ quantserve\.com
acl dontrewrite url_regex redbot\.org (get_video|videoplayback\?id|videoplayback.*id).*begin\=[1-9][0-9]* \.php\?
acl getmethod method GET

storeurl_access allow speedtest
storeurl_access deny dontrewrite
storeurl_access deny !getmethod
storeurl_access allow videocache_allow_url
storeurl_access allow store_rewrite_list_domain_CDN
storeurl_access allow store_rewrite_list
storeurl_access allow store_rewrite_list_domain
storeurl_access allow store_rewrite_list_path
storeurl_access deny all

storeurl_rewrite_program /etc/squid/storeurl.pl
storeurl_rewrite_children 15
storeurl_rewrite_concurrency 100

# =============================================================================================#
# RFRESH PETEREN
# --------------------------------------------------------#
# 1 year = 525600 mins, 1 month = 10080 mins, 1 day = 1440
# =============================================================================================#
refresh_pattern -i \.(sc-|dl-|ex-|mh-|mst|dll)$ 0 20% 0
refresh_pattern -i (main.exe|notice.html)$ 0 20% 0
refresh_pattern -i (livescore.com|UpdaterModifier.exe|FreeStyle.exe|FSLauncher.exe) 0 20% 0
refresh_pattern (get_video|videoplayback|videodownload|\.flv).*(begin|start)\=[1-9][0-9]* 0 0% 0
refresh_pattern imeem.*\.flv 0 0% 0 override-lastmod override-expire

# YOUTUBE
# ------------------------------------------------------------------------#
refresh_pattern (watch\?|get_video\?|videoplayback\?id|videoplayback.*id|videodownload\?|videoplayback\?) 10080 100% 525600 ignore-no-cache ignore-no-store ignore-private override-expire override-lastmod reload-into-ims store-stale
refresh_pattern (watch\?|get_video\?|videoplayback\?|videodownload\?|\.flv?|mp4?) 129600 100% 129600 ignore-no-cache ignore-no-store ignore-private override-expire override-lastmod reload-into-ims store-stale negative-ttl=0
refresh_pattern \.(ico|video-stats) 129600 100% 129600 override-expire override-lastmod ignore-reload ignore-no-cache ignore-private ignore-auth ignore-no-store negative-ttl=10080 store-stale
refresh_pattern (youtube|googlevideo).com/(get_video|videoplayback|videodownload)\? 259100 100% 259100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache
refresh_pattern catalog.video.msn.com 259100 100% 259100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache

# ANTI VIRUS
# ------------------------------------------------------------------------#
refresh_pattern -i \.(vps|vpx) 10080 100% 10080 ignore-no-cache ignore-no-store ignore-reload reload-into-ims store-stale
refresh_pattern guru.avg.com/.*\.(bin) 10080 100% 10080 ignore-no-cache ignore-no-store ignore-reload reload-into-ims store-stale
refresh_pattern (avgate|avira).*(idx|gz)$ 10080 100% 10080 ignore-no-cache ignore-no-store ignore-reload reload-into-ims store-stale
refresh_pattern kaspersky.*\.avc$ 43100 100% 43100 ignore-no-cache ignore-no-store ignore-reload reload-into-ims store-stale
refresh_pattern kaspersky 10080 100% 10080 ignore-no-cache ignore-no-store ignore-reload reload-into-ims store-stale
refresh_pattern update.nai.com/.*\.(gem|zip|mcs) 10080 100% 10080 ignore-no-cache ignore-no-store ignore-reload reload-into-ims store-stale
refresh_pattern guru.avg.com/.*\.(bin) 10080 100% 10080 reload-into-ims
refresh_pattern bguru.avg.com/.*\.(bin) 10080 100% 10080 reload-into-ims
refresh_pattern af.avg.com/.*\.(bin) 10080 100% 10080 reload-into-ims

refresh_pattern ^.*safebrowsing.*google 129600 100% 129600 override-expire ignore-reload ignore-no-cache ignore-private ignore-auth ignore-no-store negative-ttl=10080 store-stale
refresh_pattern (yimg|ytimg|twimg)\.com.*\/ 129600 100% 129600 override-expire ignore-reload ignore-no-cache ignore-private ignore-auth ignore-no-store store-stale
refresh_pattern (photobucket|overclockersclub)\.com.*\/ 129600 100% 129600 override-expire ignore-reload ignore-no-cache ignore-private ignore-auth ignore-no-store store-stale

refresh_pattern \.rapidshare.*\/[0-9]*\/.*\/[^\/]* 129600 90% 129600 ignore-reload ignore-no-cache store-stale
refresh_pattern \.adtology\? 129600 100% 129600 override-expire ignore-reload ignore-no-cache store-stale
refresh_pattern \.etology\? 129600 100% 129600 override-expire ignore-reload ignore-no-cache store-stale

refresh_pattern galleries\.video(\?|sz) 129600 100% 129600 override-expire ignore-reload ignore-no-cache store-stale
refresh_pattern brazzers\? 129600 100% 129600 override-expire ignore-reload ignore-no-cache store-stale
refresh_pattern vid\.akm\.dailymotion\.com.*\.on2\? 129600 100% 129600 override-expire override-lastmod ignore-no-cache store-stale
refresh_pattern garena\.com 129600 100% 129600 override-expire reload-into-ims store-stale
refresh_pattern mediafire.com\/images.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png) 129600 100% 129600 reload-into-ims override-expire ignore-private store-stale
refresh_pattern speedtest.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png|swf|txt|js) 129600 100% 129600 store-stale negative-ttl=0
refresh_pattern code.google.com.*(svn|download) 86400 50% 129600 reload-into-ims

refresh_pattern ^http://lh.\.ggpht\.com/.*\.(bmp|gif|jpg|png) 259100 100% 259100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache
refresh_pattern ^http://.{1,2}\.media\.tumblr\.com/.*\.(bmp|gif|jpg|png) 259100 100% 259100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache
refresh_pattern ^http://av\.vimeo\.com/.*\.(mp4|flv) 259100 100% 259100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache
refresh_pattern ^http://.{1,3}\.video.\.blip\.tv.*\.(m4v|flv|mp4|wmv|rm|ram|mov|avi|mp3) 259100 100% 259100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache
refresh_pattern ^http://flashvideo.globo.com/.*mp4 259100 100% 259100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache
refresh_pattern ^http://(video.{1,2}|thumb|storage)\.mais\.uol\.com.br/ 259100 100% 259100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache
refresh_pattern ^http://v.mccont.com/ 259100 100% 259100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache
refresh_pattern ^http://(img..|videos\.flv.{0,1})\.redtubefiles\.com/ 259100 100% 259100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache
refresh_pattern ^http://wpc.porntube.com/ 259100 100% 259100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache
refresh_pattern ^http://porn.{1,3}\.xvideos\.com/.*\.flv 259100 100% 259100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache
refresh_pattern ^http://s[0-9]{0,3}\.videobb\.com/ 259100 100% 259100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache
refresh_pattern ^http:\/\/liveupdate.symantecliveupdate.com.*\(zip) 10080 100% 10080 ignore-no-cache ignore-no-store ignore-reload reload-into-ims store-stale
refresh_pattern ^http\:\/\/((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\/(iavs.*)/.*\.(vps|vpx)$ 10080 100% 10080 ignore-no-cache ignore-no-store ignore-reload reload-into-ims store-stale
refresh_pattern ^http\:\/\/download([0-9]{3})\.avast.com\/.*\.(vps|vpx)$ 10080 100% 10080 ignore-no-cache ignore-no-store ignore-reload reload-into-ims store-stale
refresh_pattern ^http://(cbk|mt|khm|mlt)[0-9]?)\.google\.co(m|\.id) 129600 100% 129600 override-expire ignore-reload ignore-private negative-ttl=10080 store-stale
refresh_pattern ^http://(kh|khmdb|mw1)\.google\.com 129600 100% 129600 override-expire ignore-reload ignore-private negative-ttl=10080 store-stale
refresh_pattern ^http:\/\/[a-z]+[0-9]\.google\.co(m|\.id) 129600 100% 129600 override-expire ignore-reload ignore-private negative-ttl=10080 store-stale
refresh_pattern ^http:\/\/199\.91\.15\d\.\d*\/\w{12}\/(\w*)\/(.*) 129600 100% 129600 ignore-no-cache ignore-no-store ignore-private override-expire override-lastmod reload-into-ims store-stale negative-ttl=0
refresh_pattern ^http:\/\/s[0-9]*\.filesonic\.com\/download\/([0-9]*)\/(.*) 129600 100% 129600 ignore-no-cache ignore-no-store ignore-private override-expire override-lastmod reload-into-ims store-stale negative-ttl=0
refresh_pattern ^http:\/\/[a-zA-Z]{2}\d*\.4shared\.com(:10080|)\/download\/(.*)\/(.*\..*)\?.* 129600 100% 129600 ignore-no-cache ignore-no-store ignore-private override-expire override-lastmod reload-into-ims store-stale
refresh_pattern ^http:\/\/image|images|pics|thumbs[0-9]\. 129600 100% 129600 override-expire ignore-reload ignore-no-cache ignore-private ignore-auth ignore-no-store store-stale
refresh_pattern ^http:\/\/www.onemanga.com.*\/ 129600 100% 129600 reload-into-ims ignore-no-cache ignore-no-store ignore-reload override-expire store-stale
refresh_pattern ^http://v\.okezone\.com/get_video\/([a-zA-Z0-9]) 129600 100% 129600 override-expire ignore-reload ignore-no-cache ignore-no-store ignore-private ignore-auth override-lastmod negative-ttl=10080 store-stale
refresh_pattern ^http://*.jobstreet.com.*/.* 720 100% 10080 override-expire override-lastmod ignore-no-cache store-stale ignore-must-revalidate
refresh_pattern ^http://*.indowebster.com.*/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.21cineplex.*/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.kompas.*/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.blogspot.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.wordpress.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache store-stale ignore-must-revalidate
refresh_pattern ^http://*.photobucket.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.tinypic.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.imageshack.us/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.kaskus.*/.* 720 100% 281000 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.detik.*/.* 720 50% 28100 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.detiknews.*/*.* 720 50% 281000 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://video.liputan6.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://static.liputan6.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.friendster.com/.* 720 100% 10080 override-expire override-lastmod ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.yahoo.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.google.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.forummikrotik.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://*.linux.or.id/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth store-stale ignore-must-revalidate
refresh_pattern ^http://(.*?)/get_video\? 10080 90% 1009 override-expire ignore-no-cache ignore-private store-stale ignore-must-revalidate
refresh_pattern ^http://(.*?)/videoplayback\? 10080 90% 1009 override-expire ignore-no-cache ignore-private store-stale ignore-must-revalidate
refresh_pattern ^http://(.*?)/videodownload\? 10080 90% 1009 override-expire ignore-no-cache ignore-private store-stale ignore-must-revalidate
refresh_pattern ^http://*.docstoc.com/.* 10080 90% 1009 override-expire ignore-no-cache ignore-private store-stale ignore-must-revalidate
refresh_pattern ^http://*.xhamster.com/.* 10080 100% 43100 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache store-stale ignore-must-revalidate
refresh_pattern .*\.yahoo.com\? 10080 100% 43100 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache store-stale ignore-must-revalidate ignore-private

# IMAGE FACEBOOK
# ----------------------------------------------------------------------------#
refresh_pattern -i .*\.((facebook.com)|(85.131.151.39))\.(jpg|png|gif) 129600 100% 129600 ignore-reload override-expire ignore-no-cache ignore-no-store store-stale
refresh_pattern -i .*\.fbcdn\.net\/.*\.((jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|mp3|mp4|flv|ico|swf|css|js)|(jp(e?g|e|2)|mp3|mp4|avi|flv|gif|pn[pg]|bm?|tiff?|ico|swf|css|js)\?) 129600 100% 129600 override-expire
refresh_pattern -i static\.ak\.fbcdn\.net*\.(jpg|gif|png) 129600 100% 129600 ignore-reload override-expire ignore-no-cache ignore-no-store store-stale
refresh_pattern -i ^http:\/\/profile\.ak\.fbcdn.net*\.(jpg|gif|png) 129600 100% 129600 ignore-reload override-expire ignore-no-cache ignore-no-store store-stale

# GAME FACEBOOK
refresh_pattern ^http:\/\/apps.facebook.com.*\/ 10080 100% 43100 ignore-reload override-expire ignore-no-cache ignore-no-store store-stale
refresh_pattern ^http://apps.facebook.com\/pool-live\? 10080 100% 43100 ignore-reload override-expire ignore-no-cache ignore-no-store store-stale
refresh_pattern -i \.zynga.com.*\/ 10080 100% 43100 ignore-reload override-expire ignore-no-cache ignore-no-store ignore-must-revalidate store-stale
refresh_pattern -i \.farmville.com.*\/ 10080 100% 43100 ignore-reload override-expire ignore-no-cache ignore-no-store ignore-must-revalidate store-stale
refresh_pattern -i \.ninjasaga.com.*\/ 10080 100% 43100 ignore-reload override-expire ignore-no-cache ignore-no-store ignore-must-revalidate store-stale
refresh_pattern -i \.mafiawars.com.*\/ 10080 100% 43100 ignore-reload override-expire ignore-no-cache ignore-no-store ignore-must-revalidate store-stale
refresh_pattern -i \.crowdstar.com.*\/ 10080 100% 43100 ignore-reload override-expire ignore-no-cache ignore-no-store ignore-must-revalidate store-stale
refresh_pattern -i \.popcap.com.*\/ 10080 100% 43100 ignore-reload override-expire ignore-no-cache ignore-no-store ignore-must-revalidate store-stale
refresh_pattern -i \.nordeus.com.*\/ 10080 100% 43100 ignore-reload override-expire ignore-no-cache ignore-no-store ignore-must-revalidate store-stale
refresh_pattern -i \.sponsorpay.com.*\/ 10080 100% 43100 ignore-reload override-expire ignore-no-cache ignore-no-store ignore-must-revalidate store-stale
refresh_pattern -i \.miniclip.com.*\/ 10080 100% 43100 ignore-reload override-expire ignore-no-cache ignore-no-store ignore-must-revalidate store-stale

# GAME ONLINE
# ---------------------------------------------------------------------------#
refresh_pattern ^http://file.pb.gemscool.com/hackshield/.* 60 100% 120 override-expire override-lastmod reload-into-ims store-stale
refresh_pattern ^http://file\.atlantica\.gemscool\.com/.*\.* 1440 100% 10080 override-expire override-lastmod reload-into-ims ignore-auth store-stale
refresh_pattern ^http://file\.pb\.gemscool\.com/gamepatch/.*\.(exe|dll|cab|zip) 1440 100% 10080 override-expire override-lastmod reload-into-ims ignore-auth store-stale
refresh_pattern ^http://file\.fs\.gemscool\.com/JCE/.*\.(exe|dll|cab|zip) 1440 100% 10080 override-expire override-lastmod reload-into-ims ignore-auth store-stale
refresh_pattern -i ((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2}).*\.(exe|zip|kom|stg|npz|swf)$ 1440 100% 10080 override-expire override-lastmod reload-into-ims ignore-auth ignore-no-store store-stale
refresh_pattern ^http://.*\.cabalonline\.co\.id/.*\.(cab|zip|exe|rar|dat) 1440 100% 10080 override-expire override-lastmod reload-into-ims ignore-auth store-stale
refresh_pattern ^http://.*\.gemscool\.com/.*\.(cab|zip|exe|rar|dat) 1440 100% 10080 override-expire override-lastmod reload-into-ims ignore-auth store-stale
refresh_pattern ^http://patch\.crossfire\.web\.id/.*\.(cab|zip|exe|rar|dat) 1440 100% 10080 override-expire override-lastmod reload-into-ims ignore-auth store-stale
refresh_pattern ^http://patch\.gfo\.web\.id/.*\.(bz2|ini|txt|dds) 10080 90% 43100 override-expire reload-into-ims stale-while-revalidate=2591000 ignore-private ignore-no-cache
refresh_pattern ^http:\/\/patch.gfo.*\/ 43100 100% 43100 ignore-reload override-lastmod reload-into-ims override-expire ignore-no-cache ignore-private
refresh_pattern -i \.gemscool.com.*\.(exe|dll|cab|zip|iop|npz|swf)$ 1440 100% 10080 override-expire override-lastmod reload-into-ims ignore-auth store-stale
refresh_pattern -i \.crossfire.web.id.*\.(cab|zip|exe|rar|dat|swf)$ 1440 100% 10080 override-expire override-lastmod reload-into-ims ignore-auth store-stale
refresh_pattern -i \.cabalonline.co.id.*\.(cab|zip|exe|rar|dat|swf)$ 1440 100% 10080 override-expire override-lastmod reload-into-ims ignore-auth store-stale
refresh_pattern ^http://*.r2games.com/.* 1440 100% 10080 override-expire ignore-no-cache reload-into-ims ignore-no-store store-stale negative-ttl=0
refresh_pattern -i \.r2games.com.*\. 1440 100% 10080 override-expire ignore-no-cache reload-into-ims ignore-no-store store-stale negative-ttl=0

# WINDOWS UPDATE
# ---------------------------------------------------------------------------#
refresh_pattern windowsupdate.com/.*\.(cab|exe) 43100 100% 129600 ignore-no-cache ignore-no-store ignore-reload reload-into-ims store-stale
refresh_pattern update.microsoft.com/.*\.(cab|exe) 43100 100% 129600 ignore-no-cache ignore-no-store ignore-reload reload-into-ims store-stale
refresh_pattern download.microsoft.com/.*\.(cab|exe) 43100 100% 129600 ignore-no-cache ignore-no-store ignore-reload reload-into-ims store-stale
refresh_pattern mbam-cdn.malwarebytes.org/.*\.(exe) 4320 100% 43100 reload-into-ims
refresh_pattern data-cdn.mbamupdates.com/.*\.(ref) 4320 100% 43100 reload-into-ims

# EXTENTION
# ---------------------------------------------------------------------------#
refresh_pattern -i \.(3gp|7z|ace|asx|bin|deb|divx|dvr-ms|ram|rpm|exe|inc|cab|qt) 10080 100% 525600 ignore-no-cache override-expire override-lastmod reload-into-ims
refresh_pattern -i \.(rar|jar|gz|tgz|bz2|iso|m1v|m2(v|p)|mo(d|v)|arj|lha|lzh|zip|tar) 10080 100% 525600 ignore-no-cache override-expire override-lastmod reload-into-ims
refresh_pattern -i \.(jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|dat|ad|txt|dll) 10080 100% 525600 ignore-no-cache override-expire override-lastmod reload-into-ims
refresh_pattern -i \.(avi|ac4|mp(e?g|a|e|1|2|3|4)|mk(a|v)|ms(i|u|p)|og(x|v|a|g)|rm|r(a|p)m|snd|vob) 10080 100% 525600 ignore-no-cache override-expire override-lastmod reload-into-ims
refresh_pattern -i \.(pp(t?x)|s|t)|pdf|rtf|wax|wm(a|v)|wmx|wpl|cb(r|z|t)|xl(s?x)|do(c?x)|flv|x-flv) 10080 100% 525600 ignore-no-cache override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(3gp|mp(3|4)|flv|(m|f)1v|(m|f)4v|on2|fid)$ 101000 99% 525600 override-expire ignore-reload ignore-no-cache ignore-private ignore-must-revalidate store-stale
refresh_pattern -i \.(aac|asf|flac|mpc|nsv|og(g|m|a))$ 101000 90% 525600 override-expire ignore-reload ignore-no-cache ignore-private ignore-must-revalidate store-stale
refresh_pattern -i \.(avi|mov|wm(a|v)|mp(e?g|a|e|v)|mk(a|v))$ 101000 99% 525600 override-expire ignore-reload ignore-no-cache ignore-private ignore-must-revalidate store-stale
refresh_pattern -i \.(jp(e?g|e|2)|gif|png|tiff?|bmp|tga|svg|ico|swf)$ 101000 90% 525600 override-expire ignore-reload ignore-no-cache ignore-private ignore-must-revalidate store-stale
refresh_pattern -i \.(exe|ms(i|u|p)|cab|bin|mar|xpi|psf)$ 10080 90% 525600 reload-into-ims ignore-no-cache ignore-must-revalidate
refresh_pattern -i \.(z(ip|[0-9]{2})|r(ar|[0-9]{2})|7z|bz2|gz|tar|rpm|deb|xz|phpgz)$ 10080 99% 525600 override-expire reload-into-ims ignore-no-cache ignore-must-revalidate
refresh_pattern -i \.(htm|html|js|css|xml)$ 10080 90% 525600 override-expire reload-into-ims ignore-no-cache store-stale

# DOWNLOAD dari IIX
# ---------------------------------------------------------------------------#
refresh_pattern ^http:\/\/\.www[0-9][0-9]\.indowebster\.com\/(.*)(mp3|rar|zip|flv|wmv|3gp|mp(4|3)|exe|msi|zip) 43100 100% 129600 reload-into-ims ignore-reload override-expire ignore-no-cache ignore-no-store store-stale

# DEFAULT REFRESH PETTERN
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern ^ftp: 10080 95% 241920 override-lastmod reload-into-ims store-stale
refresh_pattern . 0 50% 2629742 store-stale
setelah selesai mengkonfigurasi squid.conf dan refresh.conf sekarang tinggal menambahkan file storeurl.pl
ketikan perintah berikut :
touch /etc/squid/storeurl.pl
dan isi file tersebut dengan ini :
#!/usr/bin/perl
# ISI DARI STOREURL DIBAWAH INI GADO GADO.
# ADA YG DARI CHUDY DAN ADA YG DARI SHUDY
# SHUDYLAH BERBAGI ILMU :3
# ucok_karnadi(at)yahoo.com or https://twitter.com/syaifuddin_jw
    
$|=1;
while (<>) {
    @X = split;
       $x = $X[0] . " ";
       $_ = $X[1];
       $u = $X[1];

        #facebook
if (m/^http\:\/\/.*(profile|photo).*\.ak\.fbcdn\.net(\/h(profile|photos)-ak-)(snc|ash|prn)[0-9]?(.*)/) {
        print $x . "http://facebook.SQUIDINTERNAL" . $2  . "fb" .  $5  . "\n";

        #Speedtest
} elsif (m/^http\:\/\/.*\/speedtest\/(.*)\?.*/) {
        print $x . "http://speedtest.SQUIDINTERNAL/speedtest/" . $1 . "\n";
       
        #reverbnation
} elsif (m/^http:\/\/[a-z0-9]{4}\.reverbnation\.com\/.*\/([0-9]*).*/) {
        print $x . "http://reverbnation.com.SQUIDINTERNAL/" . "$1" . "\n";

        #BLOGSPOT
} elsif (m/^http:\/\/[1-4].bp.(blogspot.com.*)/) {
        print $x . "http://blog-cdn." . $1  . "\n";

        #ytimg
} elsif (m/^http:\/\/i[1-4]\.ytimg\.com(.*)/) {
        print $x . "http://cdn.ytimg.com" . $1  . "\n";

        #AVAST
} elsif (m/^http:\/\/download[0-9]{3}.(avast.com.*)/) {
        print $x . "http://avast-cdn." . $1  .  "\n";

        #AVAST
} elsif (m/^http:\/\/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\/(iavs.*)/) {
        print $x . "http://avast-cdn.avast.com/" . $1  .  "\n";

        #KAV
} elsif (m/^http:\/\/dnl-[0-9]{2}.(geo.kaspersky.com.*)/) {
        print $x . "http://kav-cdn." . $1  .  "\n";

        #AVG
} elsif (m/^http:\/\/update.avg.com/) {
        print $x . "http://avg-cdn." . $1  .  "\n";

        #maps.google.com
} elsif (m/^http:\/\/(cbk|mt|khm|mlt|tbn)[0-9]?(.google\.co(m|\.uk|\.id).*)/) {
        print $x . "http://" . $1  . $2 . "\n";

        #gstatic and/or wikimapia
} elsif (m/^http:\/\/([a-z])[0-9]?(\.gstatic\.com.*|\.wikimapia\.org.*)/) {
        print $x . "http://" . $1  . $2 . "\n";

        #maps.google.com
} elsif (m/^http:\/\/(khm|mt)[0-9]?(.google.com.*)/) {
        print $x . "http://" . $1  . $2 . "\n";

 # FOR NEW YOUTUBE CACHE
} elsif ($X[1] =~ m/^http\:\/\/.*(youtube|google).*(videoplayback|liveplay).*/){
        @itag = m/[&?](itag=[0-9]*)/;
   @CPN = m/[&?]cpn\=([a-zA-Z0-9\-\_]*)/;
        @IDS = m/[&?]id\=([a-zA-Z0-9\-\_]*)/;
        $id = &GetID($CPN[0], $IDS[0]);
  @begin = m/[&?](begin=[^\&\s]*)/;
        @range = m/[&?](range=[^\&\s]*)/;
        print $x . "http://video-srv.youtube.com.SQUIDINTERNAL/id=" . $id . "&@begin@itag@range\n";

} elsif (m/^http:\/\/([0-9.]{4}|.*\.youtube\.com|.*\.googlevideo\.com|.*\.video\.google\.com).*?(videoplayback\?id=.*?|video_id=.*?)\&(.*?)/) {
   $z = $2; $z =~ s/video_id=/get_video?video_id=/;
   print $x . "http://video-srv.youtube.com.SQUIDINTERNAL/" . $z . "\n";

        #Google
} elsif (m/^http:\/\/www\.google-analytics\.com\/__utm\.gif\?.*/) {
        print $x . "http://www.google-analytics.com/__utm.gif\n";

        #Cache High Latency Ads
} elsif (m/^http:\/\/([a-z0-9.]*)(\.doubleclick\.net|\.quantserve\.com|\.googlesyndication\.com|yieldmanager|cpxinteractive)(.*)/) {
        $y = $3;$z = $2;
        for ($y) {
        s/pixel;.*/pixel/;
        s/activity;.*/activity/;
        s/(imgad[^&]*).*/\1/;
        s/;ord=[?0-9]*//;
        s/;&timestamp=[0-9]*//;
        s/[&?]correlator=[0-9]*//;
        s/&cookie=[^&]*//;
        s/&ga_hid=[^&]*//;
        s/&ga_vid=[^&]*//;
        s/&ga_sid=[^&]*//;
        # s/&prev_slotnames=[^&]*//
        # s/&u_his=[^&]*//;
        s/&dt=[^&]*//;
        s/&dtd=[^&]*//;
        s/&lmt=[^&]*//;
        s/(&alternate_ad_url=http%3A%2F%2F[^(%2F)]*)[^&]*/\1/;
        s/(&url=http%3A%2F%2F[^(%2F)]*)[^&]*/\1/;
        s/(&ref=http%3A%2F%2F[^(%2F)]*)[^&]*/\1/;
        s/(&cookie=http%3A%2F%2F[^(%2F)]*)[^&]*/\1/;
        s/[;&?]ord=[?0-9]*//;
        s/[;&]mpvid=[^&;]*//;
        s/&xpc=[^&]*//;
        # yieldmanager
        s/\?clickTag=[^&]*//;
        s/&u=[^&]*//;
        s/&slotname=[^&]*//;
        s/&page_slots=[^&]*//;
        }
        print $x . "http://" . $1 . $2 . $y . "\n";

                        #cache high latency ads
} elsif (m/^http:\/\/(.*?)\/(ads)\?(.*?)/) {
        print $x . "http://" . $1 . "/" . $2  . "\n";

} elsif (m/^http:\/\/(www\.ziddu\.com.*\.[^\/]{3,4})\/(.*?)/) {
        print $x . "http://" . $1 . "\n";

                        #cdn, varialble 1st path
} elsif (($X[1] =~ /filehippo/) && (m/^http:\/\/(.*?)\.(.*?)\/(.*?)\/(.*)\.([a-z0-9]{3,4})(\?.*)?/)) {
        @y = ($1,$2,$4,$5);
        $y[0] =~ s/[a-z0-9]{2,5}/cdn./;
        print $x . "http://" . $y[0] . $y[1] . "/" . $y[2] . "." . $y[3] . "\n";

                        #rapidshare
} elsif (($X[1] =~ /rapidshare/) && (m/^http:\/\/(([A-Za-z]+[0-9-.]+)*?)([a-z]*\.[^\/]{3}\/[a-z]*\/[0-9]*)\/(.*?)\/([^\/\?\&]{4,})$/)) {
        print $x . "http://cdn." . $3 . "/SQUIDINTERNAL/" . $5 . "\n";

} elsif (($X[1] =~ /maxporn/) && (m/^http:\/\/([^\/]*?)\/(.*?)\/([^\/]*?)(\?.*)?$/)) {
        print $x . "http://" . $1 . "/SQUIDINTERNAL/" . $3 . "\n";
       
                        #domain/path/.*/path/filename
} elsif (($X[1] =~ /fucktube/) && (m/^http:\/\/(.*?)(\.[^\.\-]*?[^\/]*\/[^\/]*)\/(.*)\/([^\/]*)\/([^\/\?\&]*)\.([^\/\?\&]{3,4})(\?.*?)$/)) {
        @y = ($1,$2,$4,$5,$6);
        $y[0] =~ s/(([a-zA-A]+[0-9]+(-[a-zA-Z])?$)|([^\.]*cdn[^\.]*)|([^\.]*cache[^\.]*))/cdn/;
        print $x . "http://" . $y[0] . $y[1] . "/" . $y[2] . "/" . $y[3] . "." . $y[4] . "\n";

                        #like porn hub variables url and center part of the path, filename etention 3 or 4 with or without ? at the end
} elsif (($X[1] =~ /tube8|pornhub|xvideos/) && (m/^http:\/\/(([A-Za-z]+[0-9-.]+)*?(\.[a-z]*)?)\.([a-z]*[0-9]?\.[^\/]{3}\/[a-z]*)(.*?)((\/[a-z]*)?(\/[^\/]*){4}\.[^\/\?]{3,4})(\?.*)?$/)) {
        print $x . "http://cdn." . $4 . $6 . "\n";

                        #for yimg.com video
} elsif (m/^http:\/\/(.*yimg.com)\/\/(.*)\/([^\/\?\&]*\/[^\/\?\&]*\.[^\/\?\&]{3,4})(\?.*)?$/) {
        print $x . "http://cdn.yimg.com/" . $3 . "\n";
       
                        #for yimg.com doubled
} elsif (m/^http:\/\/(.*?)\.yimg\.com\/(.*?)\.yimg\.com\/(.*?)\?(.*)/) {
        print $x . "http://cdn.yimg.com/"  . $3 . "\n";

                        #for yimg.com with &sig=
} elsif (m/^http:\/\/([^\.]*)\.yimg\.com\/(.*)/) {
        @y = ($1,$2);
        $y[0] =~ s/[a-z]+([0-9]+)?/cdn/;
        $y[1] =~ s/&sig=.*//;
        print $x . "http://" . $y[0] . ".yimg.com/"  . $y[1] . "\n";
                       
                        #youjizz. We use only domain and filename
} elsif (($X[1] =~ /media[0-9]{1,5}\.youjizz/) && (m/^http:\/\/(.*?)(\.[^\.\-]*?\.[^\/]*)\/(.*)\/([^\/\?\&]*)\.([^\/\?\&]{3,4})(\?.*?)$/)) {
        @y = ($1,$2,$4,$5);
        $y[0] =~ s/(([a-zA-A]+[0-9]+(-[a-zA-Z])?$)|([^\.]*cdn[^\.]*)|([^\.]*cache[^\.]*))/cdn/;
        print $x . "http://" . $y[0] . $y[1] . "/" . $y[2] . "." . $y[3] . "\n";

                        #general purpose for cdn servers. add above your specific servers.
} elsif (m/^http:\/\/([0-9.]*?)\/\/(.*?)\.(.*)\?(.*?)/) {
        print $x . "http://squid-cdn-url/" . $2  . "." . $3 . "\n";

                        # spicific extention
} elsif (m/^http:\/\/(.*?)\.(jp(e?g|e|2)|gif|png|tiff?|bmp|ico|flv|wmv|3gp|mp(4|3)|exe|msi|zip|on2|mar|swf).*?/) {
        @y = ($1,$2);
        $y[0] =~ s/((cache|cdn)[-\d]*)|([a-zA-A]+-?[0-9]+(-[a-zA-Z]*)?)/cdn/;
        print $x . "http://" . $y[0] . "." . $y[1] . "\n";

                        #generic http://variable.domain.com/path/filename."ex", "ext" or "exte"
                        #http://cdn1-28.projectplaylist.com
                        #http://s1sdlod041.bcst.cdn.s1s.yimg.com
} elsif (m/^http:\/\/(.*?)(\.[^\.\-]*?\..*?)\/([^\?\&\=]*)\.([\w\d]{2,4})\??.*$/) {
        @y = ($1,$2,$3,$4);
        $y[0] =~ s/([a-z][0-9][a-z]dlod[\d]{3})|((cache|cdn)[-\d]*)|([a-zA-A]+-?[0-9]+(-[a-zA-Z]*)?)/cdn/;
        print $x . "storeurl://" . $y[0] . $y[1] . "/" . $y[2] . "." . $y[3] . "\n";

} elsif ($X[1] =~ /youtube.*videoplayback\?/){
 @itag = m/[&?](itag=[^\&\s]*)/;
 @range = m/[&?](range=[^\&\s]*)/;
 @cpn = m/[&?](cpn=[^\&\s]*)/;
 @id = m/[&?](cpn=[^\&\s]*)/;
 if (-e "/var/log/squid/@cpn"){
 open FILE, "/var/log/squid/@cpn";
 @id = ;
 close FILE;}
 print $x . "http://youtube.video.cache/@id&@itag&@range\n";

} elsif ($X[1] =~ /youtube.*(stream_204|player_204)\?/){
 @v = m/[&?](v=[^\&\s]*)/;
 @cpn = m/[&?](cpn=[^\&\s]*)/;
 open FILE, ">/var/log/squid/@cpn";
 print FILE @v;
 close FILE;
 print $x . $X[1] . "\n";

} elsif ($X[1] =~ /youtube.*ptracking\?/){
 @video_id = m/[&?](video_id=[^\&\s]*)/;
 @cpn = m/[&?](cpn=[^\&\s]*)/;
 @v = substr join("", @video_id), 9;
 open FILE, ">/var/log/squid/@cpn";
 print FILE "v=@v";
 close FILE;
 print $x . $X[1] . "\n";

                        # all that ends with ;
} elsif (m/^http:\/\/(.*?)\/(.*?)\;(.*)/) {
        print $x . "http://" . $1 . "/" . $2  . "\n";

} else {
        print $x . $X[1] . "\n";
}
}


sub GetID
{
$id = "";
use File::ReadBackwards;
my $lim = 200 ;
my $ref_log = File::ReadBackwards->new('/var/log/squid/yt.log');
while (defined($line = $ref_log->readline))
{
if ($line =~ m/.*youtube.*\/watch\?.*v=([a-zA-Z0-9\-\_]*).*\s.*id=$IDS[0].*/){
$id = $1;
last;
}
if ($line =~ m/.*youtube.*\/.*cpn=$CPN[0].*[&](video_id|docid|v)=([a-zA-Z0-9\-\_]*).*/){
$id = $2;
last;
}
if ($line =~ m/.*youtube.*\/.*[&?](video_id|docid|v)=([a-zA-Z0-9\-\_]*).*cpn=$CPN[0].*/){
$id = $2;
last;
}
last if --$lim <= 0;
}
if ($id eq ""){
$id = $IDS[0];
}
$ref_log->close();
return $id;
}
Lanjut dengan mengetikan perintah berikut :
chmod 777 /etc/squid/storeurl.pl
chown proxy:proxy /etc/squid/storeurl.pl
tujuanya adalah agar proxy mengenali file storeurl.pl.
kemudian ketikan perintah yang sama pada direktori cache :
chmod 777 /cache1
chmod 777 /cache2
chmod 777 /cache3
chmod 777 /cache4
chmod 777 /cache5
chown proxy:proxy /cache1
chown proxy:proxy /cache2
chown proxy:proxy /cache3
chown proxy:proxy /cache4
chown proxy:proxy /cache5
lakukan pada setiap direktory cache yang anda buat.
Membuat file access.log ketikan perintah berikut :
mkdir /var/log/squid
touch /var/log/squid/access.log
touch /var/log/squid/yt.log
touch /var/log/squid/referer.log
chown proxy:proxy /var/log/squid/access.log
chown proxy:proxy /var/log/squid/yt.log
chown proxy:proxy /var/log/squid/referer.log
Selanjutnya cek configurasi squid.conf
squid -f /etc/squid/squid.conf -k parse
jika tidak ada yang error lanjut dengan mengetikan perintah berikut :
squid -f /etc/squid/squid.conf -z

tujuanya ada untuk membuat direktory cache
kemudian kita masuk ke direktory /etc/init.d/
cd /etc/init.d/
nano squid
Pastekan script berikut :
#! /bin/sh
#
# squid    Startup script for the SQUID HTTP proxy-cache.
#
# Version:  @(#)squid.rc  2.20  01-Oct-2001  miquels@cistron.nl
#
### BEGIN INIT INFO
# Provides:          squid
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs $network
# Should-Start:      $named
# Should-Stop:       $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Squid HTTP Proxy
### END INIT INFO

NAME=squid
DAEMON=/usr/sbin/squid
LIB=/usr/lib/squid
PIDFILE=/var/run/$NAME.pid
SQUID_ARGS="-D -YC"

[ ! -f /etc/default/squid ] || . /etc/default/squid

. /lib/lsb/init-functions

PATH=/bin:/usr/bin:/sbin:/usr/sbin

[ -x $DAEMON ] || exit 0

grepconf () {
  w="   " # space tab
  sq=/etc/squid/squid.conf
  # sed is cool.
  res=`sed -ne '
    s/^'$1'['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
    t end;
    d;
    :end q' < $sq`
  [ -n "$res" ] || res=$2
  echo "$res"
}

grepconf2 () {
  w="   " # space tab
  sq=/etc/squid/$NAME.conf
  # sed is cool.
  res=`sed -ne '
    s/^'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
    t end;
    d;
    :end q' < $sq`
  [ -n "$res" ] || res=$2
  echo "$res"
}

#
#  Try to increase the # of filedescriptors we can open.
#
maxfds () {
  [ -n "$SQUID_MAXFD" ] || return
  [ -f /proc/sys/fs/file-max ] || return 0
  global_file_max=`cat /proc/sys/fs/file-max`
  minimal_file_max=$(($SQUID_MAXFD + 4096))
  if [ "$global_file_max" -lt $minimal_file_max ]
  then
    echo $minimal_file_max > /proc/sys/fs/file-max
  fi
  ulimit -n $SQUID_MAXFD
}

start () {
  cdr=`grepconf2 cache_dir /var/spool/$NAME`
  ctp=`grepconf cache_dir ufs`

  case "$cdr" in
    [0-9]*)
      log_failure_msg "squid: squid.conf contains 2.2.5 syntax - not starting!"
      log_end_msg 1
      exit 1
      ;;
  esac
  
  #
    # Create spool dirs if they don't exist.
    #
  if [ -d "$cdr" -a ! -d "$cdr/00" ] || [ "$ctp" = "coss" -a ! -w "$cdr" ]
  then
    log_warning_msg "Creating squid cache structure"
    $DAEMON $SQUID_ARGS -z
  fi

  if [ "$CHUID" = "" ]; then
    CHUID=root
  fi

  maxfds
  umask 027
  start-stop-daemon --quiet --start \
    --pidfile $PIDFILE \
    --chuid $CHUID \
    --exec $DAEMON -- $SQUID_ARGS < /dev/null
  return $?
}

stop () {
  PID=`cat $PIDFILE 2>/dev/null`
  start-stop-daemon --stop --quiet --pidfile $PIDFILE --name squid
  #
  #  Now we have to wait until squid has _really_ stopped.
  #
  sleep 2
  if test -n "$PID" && kill -0 $PID 2>/dev/null
  then
    log_action_begin_msg " Waiting"
    cnt=0
    while kill -0 $PID 2>/dev/null
    do
      cnt=`expr $cnt + 1`
      if [ $cnt -gt 24 ]
      then
        log_action_end_msg 1
        return 1
      fi
      sleep 5
      log_action_cont_msg ""
    done
    log_action_end_msg 0
    return 0
  else
    return 0
  fi
}

case "$1" in
    start)
  log_daemon_msg "Starting Squid HTTP proxy" "squid"
  if start ; then
    log_end_msg $?
  else
    log_end_msg $?
  fi
  ;;
    stop)
  log_daemon_msg "Stopping Squid HTTP proxy" "squid"
  if stop ; then
    log_end_msg $?
  else
    log_end_msg $?
  fi
  ;;
    reload|force-reload)
  log_action_msg "Reloading Squid configuration files"
  $DAEMON -k reconfigure
  log_action_end_msg 0
  ;;
    restart)
  log_daemon_msg "Restarting Squid HTTP proxy" "squid"
  stop
  if start ; then
    log_end_msg $?
  else
    log_end_msg $?
  fi
  ;;
    status)
  status_of_proc -p "$PIDFILE" "$DAEMON" squid && exit 0 || exit $?
  ;;
    *)
  echo "Usage: /etc/init.d/$NAME {start|stop|reload|force-reload|restart|status}"
  exit 3
  ;;
esac

exit 0
kemudian tekan CTRL+X kemudian tekan Y lalu ENTER setelah itu rubah mode file tadi dengan perintah berikut :
chmod +x /etc/init.d/squid
/etc/init.d/squid stop
lanjut dengan menjalankan squid LUSCA :
/etc/init.d/squid restart
Agar proses shutdown dapat langsung dijalankan dengan menekan tombol Power gunakan perintah berikut :
apt-get install acpid
reboot
Setting iptables untuk ubuntu :
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -jREDIRECT --to-port 3128
iptables -A INPUT -m state --state NEW -p tcp --dport 3128 -j LOG --log-prefix "PROXY_CONN: "
Itulah tadi sekilas tentang Cara Install dan Configurasi Proxy Lusca di ubuntu semoga dapat membatu sobat sedang membutuhkan. jika ada kesalahan dalam penulisan harap memberitahu saya agar saya perbaiki.

Comments

  1. mau tanya mas, bagaimana cara membuat partisi /cache1, /cache2, /cache3 dst. apakah pada saat pertama install ubuntu? soalnya aku hanya bisa membuat satu partisi saja /cache. tq

    ReplyDelete
    Replies
    1. ada dua metode pertama dengan menggunakan aplikasi dari ubuntu
      kedua yang sering di gunakan orang pada saat penginstalan ...
      kalo menurut saya lebih bagus pada saat penginstalan kita membuat partisi cache tersebut ...

      Delete
  2. Mas, tutorial diatas bisa tercache game online gak ya, semacam point blank.

    ReplyDelete
    Replies
    1. Bisa mas ... ini versi lamanya, yg kemaren itu versi updatenya ...

      Delete
  3. mas pas saya ketik squid -f /etc/squid/squid.conf -z

    FATAL: MIME Config Table /usr/share/squid/mime.conf: (2) No such file or directo ry
    Squid Cache (Version LUSCA_HEAD-r14942): Terminated abnormally.
    CPU Usage: 0.012 seconds = 0.012 user + 0.000 sys
    Maximum Resident Size: 8720 KB
    Page faults with physical i/o: 0
    squid[0x80b63fd]
    squid[0x80b6d50]
    squid[0x80b6dc3]
    squid[0x80b6de7]
    squid[0x8062afd]
    squid[0x8063561]
    squid[0x804c9d2]
    /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xb756fa83]
    squid[0x804d322]
    Aborted (core dumped)

    gimana mas??

    ReplyDelete
  4. file mime.conf yg berada di /usr/share/squid/mime.conf tidak di temukan,
    coba cek bagian ini
    mime_table /usr/share/squid/mime.conf
    rubah menjadi
    mime_table /etc/squid/mime.conf
    cek dengan mengetikan perintah squid -NDd1

    ReplyDelete
  5. selanjutnya setting di mikrotiknya gimana gan....
    saya ikuti di atas berhsil gak ada kendala

    ReplyDelete
  6. mas pas saya root@milano:~#squid -f /etc/squid/squid.conf -k parse

    No command 'squid' found, did you mean:
    Command 'squid3' from package 'squid3' (main)
    squid: command not found

    mohon pencerahannya mas...

    ReplyDelete
  7. izin nyimpen di klien ane gan, biar gampang nemuinya http://edenwifi.com/cara-install-dan-konfigurasi-lusca-head-r14942-di-ubuntu-12-04/ kl tak berkenan bisa dihapus. Thanks

    ReplyDelete
    Replies
    1. kwkwkwk ssilahkan gan ... semoga bermanfaat ... :)

      Delete
  8. Bang link lusca nya kog ndak bisa di download apa ada yang baru

    ReplyDelete
  9. root@pnyserver:/etc/init.d# /etc/init.d/squid stop
    /etc/init.d/squid: 94: /etc/init.d/squid: Syntax error: "then" unexpected (expecting "}")
    ada script yang lain ndak mas

    ReplyDelete
    Replies
    1. linknya udah di pindah ...
      nanti ane update ...

      Delete
    2. nanti scrip saya update ... ada kesallahan syntax pas di copy paste makanya bermasalah ...

      Delete

Post a Comment

Peraturan Berkomentar atau Bertanya :
1. Berikan Komentar dengan sopan dan bijak sesuai dengan isi konten.
2. Komentar yang tidak diperlukan oleh pembaca lain [ SPAM ] akan segera di hapus.
3. Jika Artikel ini bermanfaat silahkan bantu share ke jaringan sosial.

Info :
1. Untuk Menyisipkan Kode Panjang Gunakan <i rel="pre">Kode Disini</i>
2. Untuk Menyisipkan Kode Pendek Gunakan <i rel="code">Kode Disini</i>
3. Untuk Menyisipkan Quote Gunakan <b rel="quote">Catatan Anda</b>
4. Untuk Menyisipkan Gambar Gunakan <i rel="image">URL Gambar</i>
5. Untuk Menyisipkan Video Gunakan <i rel="youtube">URL Video Youtube</i>