Wednesday, 26 August 2015


Mencoba memahami Cache-Control: public , max-age pada response header

Mencoba memahami Cache-Control: public , max-age pada response header

jalankan command dibawah ini pada mesin Proxy :
curl -I http://192.168.7.2/squid.txt
Response Header
HTTP/1.1 200 OK
Cache-Control: max-age=300, public
Content-Type: text/plain
Accept-Ranges: bytes
ETag: “3497351881”
Last-Modified: Thu, 05 Sep 2013 08:10:44 GMT
Content-Length: 1354
Date: Mon, 16 Jun 2014 01:33:49 GMT
Server: WEB-SERVER-KU-SENDIRI
diskusi kali ini tentang Cache-Control: max-age=300, public (CMIIW)
public
response cache-control “public” meng-informasikan bahwa objek squid.txt ini boleh disimpan didalam cache
max-age
response cache-control “max-age=300” meng-informasikan bahwa umur objek squid.txt didalam “cache” tdk boleh lebih dari angka 300 detik atau 5 menit atau dengan kata lain objek ini dianggap FRESH jika kurang dari 300 detik didalam “cache”
max-age ini di set oleh Web Developer untuk mengontrol “Freshness/kesegaran” dari objek tadi, Supaya user tidak menerima konten yang basi/stale dari “cache”. Setelah umur objek didalam “cache” melewati max-age, “cache” akan melakukan pengecekan ke Web Server asal (validasi), apakah objek sudah berubah atau belum.
Sekarang kita lihat bagaimana SQUID bekerja, jika response max-age sudah lebih dari 300 detik
1. SQUID mendengar ada permintaan file squid.txt
———-
2014/06/16 08:39:13.453 kid1| client_side.cc(2407) parseHttpRequest: HTTP Client local=192.168.7.2:80 remote=192.168.6.2:1080 FD 24 flags=33
2014/06/16 08:39:13.453 kid1| client_side.cc(2408) parseHttpRequest: HTTP Client REQUEST:
———
GET /squid.txt HTTP/1.1
Host: 192.168.7.2
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:29.0) Gecko/20100101 Firefox/29.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
2. Karena file squid.txt , sudah ada didalam “cache” maka dicek Freshness nya dengan directive refresh_pattern di file squid.conf
———-
2014/06/16 08:39:13.453 kid1| refresh.cc(247) refreshCheck: refreshCheck: ‘http://192.168.7.2/squid.txt
2014/06/16 08:39:13.453 kid1| refresh.cc(262) refreshCheck: refreshCheck: Matched ‘. 0 0%% 259200’
2014/06/16 08:39:13.453 kid1| refresh.cc(264) refreshCheck: age: 324
2014/06/16 08:39:13.454 kid1| refresh.cc(266) refreshCheck: check_time: Mon, 16 Jun 2014 01:39:13 GMT
2014/06/16 08:39:13.454 kid1| refresh.cc(268) refreshCheck: entry->timestamp: Mon, 16 Jun 2014 01:33:49 GMT
2014/06/16 08:39:13.454 kid1| refresh.cc(176) refreshStaleness: STALE: expires 1402882729 < check_time 1402882753
2014/06/16 08:39:13.454 kid1| refresh.cc(288) refreshCheck: Staleness = 24
2014/06/16 08:39:13.458 kid1| refresh.cc(540) getMaxAge: getMaxAge: ‘http://192.168.7.2/squid.txt
2014/06/16 08:39:13.459 kid1| http.cc(2219) sendRequest: HTTP Server local=192.168.5.2:52722 remote=192.168.7.2:80 FD 25 flags=1
2014/06/16 08:39:13.459 kid1| http.cc(2220) sendRequest: HTTP Server REQUEST:
———
ternyata umur objek didalam “cache” sdh lebih dari 300 detik
age: 324
squid.txt ini dianggap stale/basi, harus dicek ulang ke Web Server asalnya 192.168.7.2
3. SQUID bilang ke Om Web Server
“Om Web Server minta file squid.txt  yang tanggal modifikasinya Thu, 05 Sep 2013 08:10:44 GMT atau Etag nya bukan “3497351881”
GET /squid.txt HTTP/1.1
If-Modified-Since: Thu, 05 Sep 2013 08:10:44 GMT
If-None-Match: “3497351881”
Host: 192.168.7.2
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:29.0) Gecko/20100101 Firefox/29.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
X-Forwarded-For: 192.168.6.2
Cache-Control: max-age=259200
Connection: keep-alive
4. diresponse sama om Web Server
“Om SQUID, squid.txt belum ada perubahan (304 Not Modified), tanggal modifikasi terakhir masih Thu, 05 Sep 2013 08:10:44 GMT dan Etagnya jg msh sama “3497351881”
———-
2014/06/16 08:39:13.465 kid1| ctx: enter level  0: ‘http://192.168.7.2/squid.txt
2014/06/16 08:39:13.465 kid1| http.cc(749) processReplyHeader: HTTP Server local=192.168.5.2:52722 remote=192.168.7.2:80 FD 25 flags=1
2014/06/16 08:39:13.465 kid1| http.cc(750) processReplyHeader: HTTP Server REPLY:
———
HTTP/1.1 304 Not Modified
Cache-Control: max-age=300, public
Vary: Accept-Encoding
Content-Type: text/plain
Last-Modified: Thu, 05 Sep 2013 08:10:44 GMT
ETag: “3497351881”
Date: Mon, 16 Jun 2014 01:39:13 GMT
Server: WEB-SERVER-KU-SENDIRI
5. OK, kalo gitu gue kasi yg ada di “cache” aja karena masih sama
———-
2014/06/16 08:39:13.465 kid1| ctx: exit level  0
2014/06/16 08:39:13.465 kid1| ctx: enter level  0: ‘http://192.168.7.2/squid.txt
2014/06/16 08:39:13.465 kid1| http.cc(568) cacheableReply: NO because HTTP status 304
2014/06/16 08:39:13.466 kid1| ctx: exit level  0
2014/06/16 08:39:13.466 kid1| client_side.cc(1459) sendStartOfMessage: HTTP Client local=192.168.7.2:80 remote=192.168.6.2:1080 FD 24 flags=33
2014/06/16 08:39:13.466 kid1| client_side.cc(1460) sendStartOfMessage: HTTP Client REPLY:
———
HTTP/1.1 200 OK
Content-Encoding: gzip
Last-Modified: Thu, 05 Sep 2013 08:10:44 GMT
Content-Type: text/plain
Accept-Ranges: bytes
Content-Length: 1354
Cache-Control: max-age=300, public
Vary: Accept-Encoding
ETag: “3497351881”
Date: Mon, 16 Jun 2014 01:39:13 GMT
Server: WEB-SERVER-KU-SENDIRI
Age: 0
X-Cache: HIT from SQUIDLOVERS
Connection: keep-alive
di access.log , akan terlihat :
1402882753.468     15 192.168.6.2 TCP_REFRESH_UNMODIFIED/200 1717 GET http://192.168.7.2/squid.txt – ORIGINAL_DST/192.168.7.2 text/plain
file squid.txt masih diambil dari “cache” tapi dengan memvalidasi dulu ke Web Server asal makanya muncul TCP_REFRESH_UNMODIFIED/200 dan X-Cache: HIT from SQUIDLOVERS
Bagaimana response yang diterima jika ternyata file squid.txt sudah ada perubahan ?
1. SQUID mendengar ada permintaan file squid.txt
2014/06/16 14:55:51.722 kid1| client_side.cc(2407) parseHttpRequest: HTTP Client local=192.168.7.2:80 remote=192.168.6.2:1184 FD 22 flags=33
2014/06/16 14:55:51.722 kid1| client_side.cc(2408) parseHttpRequest: HTTP Client REQUEST:
———
GET /squid.txt HTTP/1.1
Host: 192.168.7.2
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:29.0) Gecko/20100101 Firefox/29.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
2. Karena file squid.txt , sudah ada didalam “cache” maka dicek Freshness nya dengan directive refresh_pattern di file squid.conf
———-
2014/06/16 14:55:51.723 kid1| refresh.cc(247) refreshCheck: refreshCheck: ‘http://192.168.7.2/squid.txt
2014/06/16 14:55:51.723 kid1| refresh.cc(262) refreshCheck: refreshCheck: Matched ‘. 0 0%% 604800
2014/06/16 14:55:51.723 kid1| refresh.cc(264) refreshCheck:     age:    5712
2014/06/16 14:55:51.723 kid1| refresh.cc(266) refreshCheck:     check_time:    Mon, 16 Jun 2014 07:55:51 GMT
2014/06/16 14:55:51.723 kid1| refresh.cc(268) refreshCheck:     entry->timestamp:    Mon, 16 Jun 2014 06:20:39 GMT
2014/06/16 14:55:51.723 kid1| refresh.cc(176) refreshStaleness: STALE: expires 1402899939 < check_time 1402905351
2014/06/16 14:55:51.723 kid1| refresh.cc(288) refreshCheck: Staleness = 5412
2014/06/16 14:55:51.724 kid1| refresh.cc(540) getMaxAge: getMaxAge: ‘http://192.168.7.2/squid.txt
2014/06/16 14:55:51.724 kid1| http.cc(2219) sendRequest: HTTP Server local=192.168.5.2:52789 remote=192.168.7.2:80 FD 23 flags=1
2014/06/16 14:55:51.724 kid1| http.cc(2220) sendRequest: HTTP Server REQUEST:
———
ternyata umur objek didalam “cache” sdh lebih dari 300 detik
age:    5712
3. SQUID bilang ke Om Web Server
“Om Web Server minta file squid.txt  yang tanggal modifikasinya Thu, 05 Sep 2013 08:10:44 GMT atau Etag nya bukan “3497351881”
GET /squid.txt HTTP/1.1
If-Modified-Since: Thu, 05 Sep 2013 08:10:44 GMT
If-None-Match: “3497351881”
Host: 192.168.7.2
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:29.0) Gecko/20100101 Firefox/29.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
X-Forwarded-For: 192.168.6.2
Cache-Control: max-age=604800
Connection: keep-alive
4. diresponse sama om Web Server
“Om SQUID, file squid.txt sudah ada perubahan , tanggal modifikasi terakhir Mon, 16 Jun 2014 07:52:29 GMT dan Etag baru 3148978175″
———-
2014/06/16 14:55:51.747 kid1| ctx: enter level  0: ‘http://192.168.7.2/squid.txt
2014/06/16 14:55:51.747 kid1| http.cc(749) processReplyHeader: HTTP Server local=192.168.5.2:52789 remote=192.168.7.2:80 FD 23 flags=1
2014/06/16 14:55:51.747 kid1| http.cc(750) processReplyHeader: HTTP Server REPLY:
———
HTTP/1.1 200 OK
Cache-Control: max-age=300, public
Vary: Accept-Encoding
Content-Encoding: gzip
Last-Modified: Mon, 16 Jun 2014 07:52:29 GMT
ETag: “3148978175”
Content-Type: text/plain
Accept-Ranges: bytes
Content-Length: 1388
Date: Mon, 16 Jun 2014 07:55:52 GMT
Server: WEB-SERVER-KU-SENDIRI
5. OK, Om Web Server. Response baru saya simpan kedalam cache
2014/06/16 14:55:51.747 kid1| ctx: exit level  0
2014/06/16 14:55:51.747 kid1| ctx: enter level  0: ‘http://192.168.7.2/squid.txt
2014/06/16 14:55:51.747 kid1| refresh.cc(247) refreshCheck: refreshCheck: ‘http://192.168.7.2/squid.txt
2014/06/16 14:55:51.747 kid1| refresh.cc(262) refreshCheck: refreshCheck: Matched ‘. 0 0%% 604800’
2014/06/16 14:55:51.747 kid1| refresh.cc(264) refreshCheck:     age:    60
2014/06/16 14:55:51.747 kid1| refresh.cc(266) refreshCheck:     check_time:    Mon, 16 Jun 2014 07:56:51 GMT
2014/06/16 14:55:51.747 kid1| refresh.cc(268) refreshCheck:     entry->timestamp:    Mon, 16 Jun 2014 07:55:51 GMT
2014/06/16 14:55:51.747 kid1| refresh.cc(171) refreshStaleness: FRESH: expires 1402905651 >= check_time 1402905411
2014/06/16 14:55:51.747 kid1| refresh.cc(288) refreshCheck: Staleness = -1
2014/06/16 14:55:51.747 kid1| refresh.cc(373) refreshCheck: refreshCheck: object isn’t stale..
2014/06/16 14:55:51.747 kid1| refresh.cc(375) refreshCheck: refreshCheck: returning FRESH_EXPIRES
2014/06/16 14:55:51.747 kid1| http.cc(482) cacheableReply: YES because HTTP status 200
2014/06/16 14:55:51.748 kid1| ctx: exit level  0
5. File squid.txt yang baru dikasi ke klien
2014/06/16 14:55:51.748 kid1| client_side.cc(1459) sendStartOfMessage: HTTP Client local=192.168.7.2:80 remote=192.168.6.2:1184 FD 22 flags=33
2014/06/16 14:55:51.748 kid1| client_side.cc(1460) sendStartOfMessage: HTTP Client REPLY:
———
HTTP/1.1 200 OK
Cache-Control: max-age=300, public
Vary: Accept-Encoding
Content-Encoding: gzip
Last-Modified: Mon, 16 Jun 2014 07:52:29 GMT
ETag: “3148978175”
Content-Type: text/plain
Accept-Ranges: bytes
Content-Length: 1388
Date: Mon, 16 Jun 2014 07:55:52 GMT
Server: WEB-SERVER-KU-SENDIRI
X-Cache: MISS from SQUIDLOVERS
Connection: keep-alive
setelah di validasi ke Web Server asal ternyata file squid.txt sudah mengalami perubahan, maka
di access.log terlihat :
1402905351.749     26 192.168.6.2 TCP_REFRESH_MODIFIED/200 1744 GET http://192.168.7.2/squid.txt – ORIGINAL_DST/192.168.7.2 text/plain
di store.log terlihat
1402905351.748 SWAPOUT 00 0000119F 3C0D8CC25DB1A1A59C926301BA3B6319  200 1402905352 1402905149 1402905652 text/plain 1388/1388 GET http://192.168.7.2/squid.txt
SWAPOUT berarti file squid.txt yang baru disimpan ke dalam cache.
lalu bagaimana memaksa agar objek tersebut bisa lebih dari max-age -nya tp dianggap FRESH ?
mainkan refresh_pattern dengan opsi override-expire
opsi override-expire akan memaksa menggunakan angka min yang kita buat pada refresh_pattern di squid.conf meskipun Web Server memberikan cache-control max-age atau expire header
Format penulisan refresh_pattern
refresh_pattern [-i] regex              min percent max [options]
contoh :
refresh_pattern -i ^http://192.168.7.2/ 3600 10% 1 override-expire
jadi yg perlu di set adalah nilai min saja, nilai max terserah :-D, selamat menikmati HIT WARNING : 
Doing this VIOLATES the HTTP standard.  Enabling this feature could make you liable for problems which it causes.

Tuesday, 4 August 2015

MENGATASI MASALAH XIGNCODE ERORRR 0xE0191009

Nih gan caranya, smoga membantu MENGATASI MASALAH XIGNCODE ERORRR 0xE0191009 dan 0xE019100B
1. Full scan menggunakan antivirus dan reboot
2. Non-Aktifkan antivirus

3. Run - > Buka regedit , pilih HKEY_LOCAL_MACHINE > PILIH           SYSTEM>CONTROLSET001>Services, Cari Folder xhunter jika ada, hapus folder tersebut, jika tidak ada pilih HKEY_LOCAL_MACHINE > PILIH SYSTEM>CONTROLSET002>Services, , Cari Folder xhunter jika ada, hapus folder tersebut, jika tidak ada pilih HKEY_LOCAL_MACHINE > PILIH SYSTEM>CONTROLSET003 >Services, dan cari folder xhunter kembali.
4. Hapus file xmag.xem di file XIGNCODE PB GARENA, sebelum start pb


  xmag.xem

10+ Error dan Jawaban Mengenai PB Garena Indonesia Yang Harus Kamu Ketahui

#1 Installer GarenaPBID Terdeteksi Sebagai Virus/Malware

Solusi
Scan komputer karena kemungkinan terkena virus pada file installernya.
Masukkan file atau folder PointBlank Garena Indonesia di exclusion/whitelist.

#2 Terjadi Error Saat Install Visual C++

Solusi
  1. Uninstall Microsoft Visual C++ dengan cara masuk ke Control Panel - Add/Remove Program
  2. Download dan install secara berurutan (2008 terus 2010):
Sebelum download Microsoft Visual C++, pastikan kamu sudah mengetahui versi sistem windows yang kamu gunakan. Jika windows 32bit, download dan install yang 32bit, begitupun dengan 64bit.

#3 Port Game PB Garena Indonesia

TCP  (80,443,39190)
UDP (40000-40009)

#4 Masih Muncul "Coming Soon" Saat Klik Ikon PB di Messenger Garena+

Apabila kamu bermain di Warnet, non-aktifkan proxynya lalu coba login ulang ke Garena+. Selengkapnya dapat kamu baca di artikel yang sudag saya posting sebelumnya disini.

#5 Tidak Dapat Bermain Untuk Waktu Yang Lama

Apakah kamu masih Beta Tester? Uninstall Point Blank yang terinstall lalu install ualng dari Launcher Garena (Garena+)

#6 Aset Permainan Yang Penting Tidak Ditemukan

Aset Permainan Yang Penting Tidak Ditemukan
Hal ini disebabkan karena file corrupt pada saat kamu download. Silahkan Uninstall GarenaPBID lalu install ulang dari Garena Messenger. (Pastikan Antivirus dan Firewall dinon-aktifkan terlebih dahulu pada saat download dan install).

#7 Error Security Alert - Suspicious Program Detected

Pesan error PB Garena Indonesia ini muncul dikarenakan beberapa faktor antara lain Cheat Engine, VPN atau Antivirus. Ikuti langkah dibawah ini:
  • Non-aktifkan program cheat engine atau VPN atau tools pengubah IP lainnya
  • Non-aktifkan Antivirus atau setting exclusion/whitelist Antivirus untuk file PB.exe
  • Scan secara menyeluruh komputer kamu.

#8 Stuck/Black Screen Saat Log Out GarenaPBID

Jika kamu mengalami hal ini, coba gunakan window mode ketika bermain.

#9 Error XIGNCode Saat Memulai Game dan Saat In-Game, Terdeteksi Menggunakan Program Illegal

Error XIGNCode Saat Memulai Game dan Saat In-Game, Terdeteksi Menggunakan Program Illegal
1. Jika kamu menggunakan AMD Gaming Evolved, disable fitur in-game overlay pada AMD Gaming evolved.
2. Update antivirus anda hingga versi terbaru. Sebaiknya gunakan ESET NOD32 ANTIVIRUS.
  • Lakukan Update database virus AV/ESET kamu
  • Lakukan Scan PC (Kemungkinan tertinggi PC anda terinfeksi virus RAMNIT
  • Akan diminta reboot, reboot kemudian smart scan pastikan tidak ada virus yang tertinggal
  • Delete folder PB lama
  • Install PB baru dari Garena+
  • Apabila masih bermasalah, hubungi tim PB Garena Indonesia.

#10 Could not intialize the Program ... (viewerwindow) Termination

Pesan error ini muncul karena adanya virus RAMNIT di komputer kamu, baca selengkpanya disini.

#11 i3Engine error atau _Pinterface Error

  • Coba cek folder instalasi Point Blank Garena Indonesia, folder GarenaPBID\gamedata\Apps\PBID Error diatas disebabkan karena ada subfolder atau file yang hilang.
  • Ada kemungkinan driver VGA atau Sound Card bermasalah, pastikan driver VGA/Sound Card uptodate.
Jika kamu mendapati error PB Garena Indonesia yang lain selain diatas, silahkan hubungi CS PB Garena Indonesia disini.

Friday, 3 July 2015

Ubuntu 14.04 + Squid 3.5.5 Untuk Proxy HTTP Dan HTTPS

Ada banyak sekali tutorial dengan berbagai pendekatan berbeda sesuai selera pribadi masing-masing "tukang masak" server proxy squid. Tutorial yang beragam tentu bisa anda dapat cari di google. Sama seperti yang saya racik dengan resep yang saya comot sana-sini. Karena tutorial berikut ini merupakan catatan saya agar tidak lupa, saya tidak berharap anda yang membaca bisa mengerti dengan cepat.

Belajar sendiri, trial dan error alias otodidak tentu lebih memperoleh kepuasan jika berhasil.
Saya juga demikian.

Banyak kombinasi sebetulnya antara OS Server dengan Squid sebagai proxy cache, namun saya lebih suka dengan Ubuntu.

Anda bisa mengunakan tutorial menginstall Ubuntu Server yang menurut anda lebih anda fahami. Videonya juga banyak di Youtube. Kalau saya belajarnya dari : Install Ubuntu Untuk Server Squid.

Sebenarnya pentingkah mencache HTTPS?
Bagi saya : Ya!, sangat penting.
Alasannya : Koneksi ADSL yang masih di bawah 10 Mb dan banyak web saat ini menggunakan port 443 alias SSL untuk transaksi data, termasuk media sosial seperti Facebook dan Twitter. Pada jam-jam sibuk Warnet yang saya kelola akan sangat lemot. Facebook loadingnya lama karena tiap PC mengaksesnya. Padahal jika dipikir-pikir orang yang sama akan mengakses halaman yang sama berulang kali tiap hari dan komputer client meminta data yang sama ke internet tiap hari. Menyia-nyakan bandwidth saja.

Lalu bukankah HTTPS itu diciptakan untuk keamanan?
Pada dasarnya Squid melakukan SSL bump sebagai tindakan pembajakan. Sertifikat asli milik (misalnya) facebook ditimpa dengan milik Squid agar Squid bisa mencache file-file grafis yang menguras bandwith itu ke dalam hardisk server. Terpaksa. Kalau mode HTTP biasa sih normal saja.

Spesifikasi Komputer yang saya gunakan:
Core2Duo 2,0 GHz, RAM 2 GB DDR2, HDD SATA 500 GB
Pembagian Hardisk yang saya gunakan sbb :

Harddisk 500GB (saya pakai kapasitas segini)

 Primary Root (/) 100 GB EXT4  
 Logical Swap 4 GB (2X Jumlah RAM)  
 Logical mount point : /Cache1 50 GB btrfs journaling, mount option noatime+nodiratime  
 Logical mount point : /Cache2 50 GB  btrfs journaling, mount option noatime+nodiratime
 Logical mount point : /Cache3 50 GB  btrfs journaling, mount option noatime+nodiratime
 Logical mount point : /Cache4 50 GB  btrfs journaling, mount option noatime+nodiratime
 Logical mount point : /Cache5 50 GB  btrfs journaling, mount option noatime+nodiratime
Untuk masalah pemasangan Ubuntu di PC Server, diluar pembahasan atau sudah dianggap selesai.

Setelah kita menyelesaikan instalasi Ubuntu, ada beberapa hal yang perlu di seting. Pertama adalah mengeset SSH di Ubuntu agar Putty (Remote Command) bisa login sebagai root (Karena saya capek sudo su mulu).

Kita bekerja selalu di modus Terminal, karena ini server bung! Bukan Desktop dengan GUI.
Langkahnya :

 #nano /etc/ssh/sshd_config [enter]
Carilah baris :

 # Authentication:  
 LoginGraceTime 120  
 PermitRootLogin without-password  
 StrictModes yes  
Ubahlah menjadi :

 # Authentication:  
 LoginGraceTime 120  
 #PermitRootLogin without-password  
 PermitRootLogin yes  
 StrictModes yes  
Simpan dengan tombol ctrl+x lalu y [enter]

 #service ssh restart  [enter]
 #ssh stop/waiting
 #ssh start/running, process 1588
Lalu buat password root yang baru

 #passwd [enter]  
 #masukkanpassword [enter]
 #masukkansekalilagi [enter]  
Selesai.

Kita akan pindah ke PC Windows (Kita tidak lagi main langsung di PC Server)
Download aplikasi Putty dari : Putty download untuk akses remote terminal dan WinSCP di WinSCP download untuk Remote File Managernya. Silahkan rujuk masing-masing program bagaimana cara pakainya.

Saya anggap anda sudah faham menggunakan kedua program tersebut dan sudah berada di terminal Putty dan login sebagai root.
Update dulu Ubuntunya

 #apt-get update [enter]  
Lalu Install Aplikasi pendukung Squidnya

 # apt-get install devscripts build-essential openssl libssl-dev fakeroot libcppunit-dev libsasl2-dev cdbs ccze libfile-readbackwards-perl libcap2 libcap-dev libcap2-dev -y [enter]  

  # apt-get install sysv-rc-conf -y [enter]  
Setelah selesai, kita masuk ke proses download master source Squidnya.

# cd [enter]  
# wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.5.tar.gz [enter]  

 # tar xzvf squid-3.5.5.tar.gz  [enter]

 # cd squid-3.5.5  [enter]
Copas kode di bawah ke terminal tanpa kurang atau lebih

./configure \
--prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libexecdir=/usr/lib/squid \
--sysconfdir=/etc/squid \
--localstatedir=/var \
--libdir=/usr/lib \
--includedir=/usr/include \
--datadir=/usr/share/squid \
--infodir=/usr/share/info \
--mandir=/usr/share/man \
--disable-dependency-tracking \
--disable-strict-error-checking \
--enable-async-io=32 \
--with-aufs-threads=32 \
--with-pthreads \
--enable-storeio=ufs,aufs,diskd \
--enable-removal-policies=lru,heap \
--with-aio \
--with-dl \
--enable-icmp \
--enable-esi \
--enable-icap-client \
--disable-wccp \
--disable-wccpv2 \
--enable-kill-parent-hack \
--enable-cache-digests \
--disable-select \
--enable-http-violations \
--enable-linux-netfilter \
--enable-follow-x-forwarded-for \
--disable-ident-lookups \
--enable-x-accelerator-vary \
--enable-zph-qos \
--with-default-user=proxy \
--with-logdir=/var/log/squid \
--with-pidfile=/var/run/squid.pid \
--with-swapdir=/var/spool/squid \
--with-large-files \
--with-openssl \
--enable-ltdl-convenience \
--with-filedescriptors=65536 \
--enable-ssl \
--enable-ssl-crtd \
--disable-auth

Lalu tekan Enter.

Kemudian kita mulai compile...

 #make && make install && make install-pinger [enter]  
Proses ini mungkin akan memakan waktu 10 sampai 30 menit, santai saja.
Setelah proses ini selesai, silahkan download file squid.zip lalu ekstrak ke folder komputer anda.
Akan ada 3 file yang diperlukan : squid, squid.conf dan store-id.pl
Jalankan WinSCP dan login sebagai root

Copy file squid ke direktori /etc/init.d/
Copy file squid.conf dan store-id.pl ke /etc/squid/

Kembali ke Terminal Putty dan ketikkan perintah berikut

 #chmod 755 /etc/init.d/squid [enter]  
 #update-rc.d squid defaults [enter]  
 #/etc/init.d/squid stop [enter]  
Pastikan direktori-direktori yang diperlukan sudah ada
Misalnya direktori /var/log/squid.
Jika belum ada, buat dengan perintah : md nama_direktori

Ubah owner direktori /var/log/squid

 # chown -R proxy:proxy /var/log/squid [enter]  
Masuk ke direktori /var/log/squid

 # cd /var/log/squid [enter]  
Ciptakan dua buah file baru untuk log

 # touch access.log [enter]  
 # touch cache.log [enter]  
Kembali ke direktori root

 # cd [enter]  
Ubah owner dua file yang diciptakan tadi

 Ketik # chown -R proxy:proxy /var/log/squid/access.log [enter]  
 Ketik # chown -R proxy:proxy /var/log/squid/cache.log [enter]  
Ubah owner partisi mount point cache yang kita buat saat install server Ubuntu

 # chown -R proxy:proxy /cache1 [enter]
 # chown -R proxy:proxy /cache2 [enter]
 # chown -R proxy:proxy /cache3 [enter]
 # chown -R proxy:proxy /cache4 [enter]
 # chown -R proxy:proxy /cache5 [enter]
Ubah owner file store-id.pl

 # chown -R proxy:proxy /etc/squid/store-id.pl [enter]  
Ubah mode direktori cache

 # chmod 777 /cache1 [enter]
 # chmod 777 /cache2 [enter]
 # chmod 777 /cache3 [enter]
 # chmod 777 /cache4 [enter]
 # chmod 777 /cache5 [enter]
Ubah mode file store-id.pl

 # chmod 777 /etc/squid/store-id.pl [enter]  
Masuk direktori squid

 # cd /etc/squid [enter]  
Buat direktori sertificate

 # mkdir ssl_cert [enter]  

 # cd ssl_cert [enter]  
Di sinilah rahasia mengapa Squid 3.5 bisa mencache file terenkripsi alias mode port https.

 # openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout myCA.pem -out myCA.pem [enter]  
File hasil generate ini nantinya akan kita import ke dalam browser misalnya Mozilla Firefox atau Chrome. Squid https tidak akan bisa berkomunikasi dengan browser menggunakan port https jika sertifikat keamanan milik squid tidak dikenali.
Cara import sertifikat ke dalam browser boleh ikuti langkah di Youtube ini

 # openssl x509 -in myCA.pem -outform DER -out myCA.der [enter]  

  # cd [enter]  

  # mkdir /var/squid [enter]  

 # cd /var/squid [enter]  

 # mkdir ssl_db [enter]  

 # cd [enter]  

 # chown -R nobody /var/squid/ssl_db/ [enter]  
Mengaitkan library ke sertifikat database

 # /usr/lib/squid/ssl_crtd -c -s /var/squid/ssl_db/certs [enter]  

 # chown -R proxy:proxy /var/squid/ssl_db/ [enter]  
Selanjutnya kita periksa apakah semua proses di atas sudah benar, lalu kita parsing konfigurasi squid

 # squid -k parse [enter]  
Jika semua aman maka kita lanjut membuat direktori squid dalam partisi cache (yang lima buah tadi),
mengikuti pengaturan konfigurasi squid.conf

 # squid -z [enter]  
Kemudian restart service squidnya

 # /etc/init.d/squid restart [enter]  
Terakhir adalah mengatur mangle di IP Table milik Ubuntu, untuk mengarahkan permintaan client ke port yang benar.

Buka WinSCP lalu buka file /etc/rc.local
Copy lalu paste semua script di bawah ini di atas baris "exit.0" dalam file rc.local

 modprobe xt_TPROXY  
 modprobe xt_socket  
 modprobe nf_tproxy_core  
 modprobe xt_mark  
 modprobe nf_nat  
 modprobe nf_conntrack_ipv4  
 modprobe nf_conntrack  
 modprobe nf_defrag_ipv4  
 modprobe ipt_REDIRECT  
 modprobe iptable_nat  
 iptables -t mangle -F  
 iptables -t mangle -X  
 iptables -t mangle -N DIVERT  
 iptables -t mangle -A DIVERT -j MARK --set-mark 1  
 iptables -t mangle -A DIVERT -j ACCEPT  
 iptables -t mangle -A INPUT -j ACCEPT  
 iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT  
 iptables -t mangle -A PREROUTING ! -d 192.168.0.50/24 -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129  
 iptables -t mangle -A PREROUTING ! -d 192.168.0.50/24 -p tcp --dport 443 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3127  
 /sbin/ip rule add fwmark 1 lookup 100  
 /sbin/ip route add local 0.0.0.0/0 dev lo table 100  
 echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter  
 echo 1 > /proc/sys/net/ipv4/ip_forward  

Informasi : alamat IP yang berwarna merah, sesuaikan dengan IP PC Server Ubuntu+Squid anda.

Restart PC Server

 # reboot [enter]  
Lalu coba uji apakah ada muncul kesalahan

 # squid –k reconfigure [enter]  
Error yang mungkin muncul terkait dengan store-id.pl
Coba atasi dengan menghapus atau menimpa store-id.pl yang ada di /etc/squid/ dengan yang baru (hasil download). Lakukan lagi chown seperti proses di atas khusus untuk file store-id.pl saja.
Dan lakukan perintah di bawah kembali

 # squid –k reconfigure [enter]  

Sumber utama tutorial : Cara-instalasi-squid-3x