Install Squid 3 di Windows

Mungkin beberapa netizen sudah tidak asing lagi dengan program squid dan kemampuannya, namun bagi yang masih baru mengenal squid silakan di lihat lihat terlebih dahulu melalui link berikut http://www.squid-cache.org/

Tutorial ini dibuat untuk keperluan pribadi dengan seadanya saja jadi mohon di maafkan jika ada kesalahan dalam pembuatan. Untuk di windows sendiri saya menggunakan squid 3 yang di developed oleh pihak lain yaitu diladele dan squid yang dipakai saat tutorial ini di kerjakan adalah Squid 3.5.6

Langkah – langkahnya adalah :

  1. Download squid 3 dari link berikut http://squid.diladele.com/ (saat ini yang disupport oleh mereka adalah 64bit)
  2. Download file ssl dan sertifikat yang nantinya akan di gunakan di squid melalui link berikut https://db.tt/6dZ3Oy65
  3. Install seperti biasa msi file squid tadi dengan pemilihan pathnya adalah C:\squid. cara install ada di link berikut http://docs.diladele.com/tutorials/installing_squid_windows/index.html (kalau sudah terinstall nanti akan muncul shortcut squid tray di desktop)
  4. extract file zip ssl dan sertifikat yang telah di download sebelumnya maka akan ada 2 file yaitu myCA.der dan myCA.pem dan ada di dalam folder ssl_cert.
  5. Kopi folder tersebut ke dalam C:\squid\etc sehingga menjadi C:\squid\etc\ssl_cert
  6. kopi dan paste squid.conf di bawah ini
#####################################################
###       CORE AND COMMON SQUID CONFIG            ###
###         Created in August 10 2015             ###
###             techshoot.org                     ###
##################################################### 

##################################
###       ACL DEFINITION       ###
##################################

acl localnet src 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 fc00::/7 fe80::/10 

acl SSL_ports port 443
acl Safe_ports port 21 70 80 210 280 443 488 591 777 1025-65535

acl CONNECT method CONNECT

acl chrome url_regex -i ^http:\/\/.*\.pack.google.com\/edgedl\/chrome\/win\/.*
acl chrome url_regex -i ^http:\/\/cache.pack.google.com\/edgedl\/.*
acl chrome url_regex -i ^http:\/\/www.google.com\/dl\/chrome\/win\/.*
acl chrome url_regex -i ^http:\/\/.*.gvt1.com\/edgedl\/chrome\/win\/.*\/.*
acl chrome url_regex -i ^https:\/\/dl.google.com\/chrome\/win\/.*\/.*.exe

acl bypast dstdomain .gmail.com
acl bypast dstdomain \.(mail.yahoo.com|bri.co.id|bankmandiri.co.id|klikbca.com|bni.com)

##############################
#    STOREID ACCESS LIST     #
##############################
acl urlrewrite dstdomain .fbcdn.net .akamaihd.net .fbsbx.com
acl storeid-helper url_regex -i ^https?:\/\/attachment\.fbsbx\.com\/.*\?(id=[0-9]*).*
acl storeid-helper url_regex -i \.fbsbx\.com\/.*\/(.*\.(unity3d|pak|zip|exe|dll|jpg|png|gif|swf)/)$
acl storeid-helper url_regex -i ^https?:\/\/.*\.ytimg\.com(.*\.(webp|jpg|gif))
acl storeid-helper url_regex -i ^https?:\/\/([^\.]*)\.yimg\.com\/(.*)
acl storeid-helper url_regex -i ^https?:\/\/.*\.gstatic\.com\/images\?q=tbn\:(.*)
acl storeid-helper url_regex -i ^https?:\/\/.*\.reverbnation\.com\/.*\/(ec_stream_song|download_song_direct|stream_song)\/([0-9]*).*
acl storeid-helper url_regex -i ^https?:\/\/([a-z0-9.]*)(\.doubleclick\.net|\.quantserve\.com|.exoclick\.com|interclick.\com|\.googlesyndication\.com|\.auditude\.com|.visiblemeasures\.com|yieldmanager|cpxinteractive)(.*)
acl storeid-helper url_regex -i ^https?:\/\/.*\/(ads)\/.*
acl storeid-helper url_regex -i ^https?:\/\/.*steampowered\.com\/.*\/([0-9]+\/(.*))
acl speedtest url_regex -i ^https?:\/\/.*speedtest\/.*\.(jpg|txt|png|gif|swf)\?.*
acl speedtest url_regex -i speedtest\/.*\.(jpg|txt|png|gif|swf)\?.*
acl reverbnation url_regex -i reverbnation.*audio_player.*ec_stream_song.*$
acl utmgif url_regex -i utm.gif.*
acl playstoreandroid url_regex -i c.android.clients.google.com.market.GetBinary.GetBinary.*
acl youtube url_regex -i youtube.*(ptracking|stream_204|player_204|gen_204).*$
acl youtube url_regex -i \.c\.(youtube|google)\.com\/(get_video|videoplayback|videoplay).*$
acl youtube url_regex -i (youtube|google).*\/videoplayback\?.*
acl loop_302 http_status 302
acl getmethod method GET

#########################
###     ACL RULEZ     ###
######################### 

http_access deny chrome
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all

########################
#   SSL BUMP OPTION    #
########################
always_direct allow all
ssl_bump splice bypast
ssl_bump peek bypast
ssl_bump server-first all
sslproxy_cert_error deny all
sslproxy_flags DONT_VERIFY_PEER
sslcrtd_program /cygdrive/c/squid/lib/squid/ssl_crtd -s /cygdrive/c/squid/var/ssl_db/certs -M 4MB
sslcrtd_children 8 startup=1 idle=1

############################
##  Port Configuration    ##
############################ 

http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/cygdrive/c/squid/etc/ssl_cert/myCA.pem

#######################################
# caching option (memory, directory,) #
####################################### 
cache_dir aufs /cygdrive/d/squidcache 5000 12 256 max-size=128000
coredump_dir /cygdrive/d/squid3cache

cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
cache_mem 8 MB
minimum_object_size 0 KB
maximum_object_size 1 GB
maximum_object_size_in_memory 512 KB
cache_swap_low 90
cache_swap_high 95

#############################
###       LOG OPTION      ###
############################# 
logformat combined %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
cache_store_log none
access_log /cygdrive/d/squid3cache/access.log
cache_log /cygdrive/d/squid3cache/cache.log

#######################
#   STORE-ID OPTION   #
#######################
store_id_access deny !getmethod
store_id_access allow urlrewrite
store_id_access allow storeid-helper
store_id_access allow speedtest
store_id_access allow reverbnation
store_id_access allow utmgif
store_id_access allow playstoreandroid
store_id_access allow youtube
store_id_access deny all
store_miss deny youtube loop_302
send_hit deny youtube loop_302

#######################################
###    REFRESH PATTERN OPTION       ###
####################################### 

refresh_pattern -i ^http.*squid\.internal.* 10080 100% 43800 override-expire override-lastmod ignore-reload ignore-no-store ignore-private

#common refresh pattern
refresh_pattern -i \.(gif|png|jp(e?g|e|2|g|eg)|ico|bmp|tif|tiff?)(\?.*|$) 10080 90% 43200 override-expire override-lastmod ignore-no-store 
refresh_pattern -i \.(7z|arj|bin|bz2|cab|deb|dll|exe|gz|inc|iso|jar|lha|ms(i|p|u)|rar|rpm|tar|tgz|zip|rtp|rpz|nui|kom|stg|pak|sup|nzp|npz|iop|nth|psd|sis|apk)(\?.*|$) 43200 95% 432000 override-expire ignore-private override-lastmod ignore-no-store
refresh_pattern -i \.(class|doc|docx|pdf|pps|ppt|ppsx|pptx|ps|rtx|txt|wpl|xls|xlsx)(\?.*|$) 10080 95% 43200 override-expire override-lastmod ignore-no-store 
refresh_pattern -i \.(3gp|ac4|agx|au|avi|axd|cbr|cbt|cbz|dat|divx|flv|hqx|mid|mk(a|v)|mov|mp(1|2|3|4|e|eg|g)|og(a|g|v)|qt|ra|ram|rm|swf|wa(v|x)|wm(a|v|x)|x-flv|webm)(\?.*|$) 43200 95% 432000 override-expire override-lastmod ignore-no-store
refresh_pattern -i \.(html|htm|css|js)(\?.*|$) 1440 40% 40320

refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern ^ftp: 10080 95% 129600 override-lastmod store-stale
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern . 0 0% 4320

#######################
###   DNS OPTION    ###
####################### 
dns_nameservers 180.131.144.144 180.131.145.145
hosts_file /cygdrive/c/windows/system32/drivers/etc/hosts

########################
# name of squid server #
######################## 
visible_hostname techshoot.org
cache_mgr techshoot

##########################
##    Cache Options     ##
########################## 
ipcache_size 2048
ipcache_low 98
ipcache_high 99
quick_abort_min 1 KB
quick_abort_max 1 KB
quick_abort_pct 99
memory_pools off
reload_into_ims on
vary_ignore_expire on
fqdncache_size 1024
client_db off
range_offset_limit 1 KB
negative_ttl 1 seconds
positive_dns_ttl 24 hours
negative_dns_ttl 1 minutes
forward_timeout 2 minutes
minimum_expiry_time 1 seconds
retry_on_error on
via on
max_filedescriptors 2048


di konfigurasi squid diatas ada beberapa hal yang harus di perhatikan

  • karena squid ini dicompile via cygwin maka penulisannya sedikit berbeda. seharusnya D:/squid3cache menjadi /cygdrive/d/squid3cache
  • jika ingin diubah drivenya silakan cek cache squid, coredump, serta log. (silakan sesuaikan)
  • 5000 di bagian cache maksudnya adalah 5Gb silakan jika ingin disesuaikan dan mungkin link cache dir di squid dapat membantu
  • dns yang dipakai dalam tutorial ini adalah DNS NAWALA disarankan jika ingin mengubah bisa memakai dns resolver seperti acrylic dns atau unbound dns lalu ubah konfig dns_nameservers nawala menjadi dns_nameservers 127.0.0.1
  • konfigurasi diatas tidak mengikut sertakan store-id.pl karena ketika dicoba squidnya crash, mungkin ada yang salah. mungkin kalau ada yang berhasil bisa share caranya disini.

jika sudah edit environment variables anda untuk memasukkan path nya squid (cara ini sangat penting untuk dilakukan karena akan mempengaruhi langkah selanjutnya). caranya klik kanan my computer atau computer di start menu lalu klik properties klik advanced system settings dan klik environment variablesdan pada system variables cari variable path lalu isi seperti berikut

;C:\squid\bin;C:\Squid\lib\squid

langkah selanjutnya membuat data base untuk SSL

buat folder baru di C:\squid\var dengan nama folder ssl_db

buka CMD dan ketik perintah berikut untuk

C:\Squid\lib\squid\ssl_crtd.exe -c -s C:\Squid\var\ssl_db\certs

 

Klik kanan – properties folder instalasi squid dan pastikan permission seluruh user di bagian security untuk folder tersebut read write atau full control.

buat folder squid3cache di drive yang anda inginkan(opsional) lalu ketik command berikut

squid -z

cek dengan perintah berikut dan nanti akan di beri cluenya yang error dimana

squid -k parse

restart service squid dengan cara klik kanan icon tray squid lalu klik top dan lakukan start kembali.

edit proxy browser agar bisa berjalan di HTTPS silakan import sertifikat file myCA.der yang ada di folder  C:\Squid\etc\ssl_cert