Tanpa Proxy
Client -> [Give me Google Page] -> Google
Client -> [Google Page] -> Google
Keterangan:
1. Client meminta halaman google LANGSUNG ke google.
2. Google memberikan halamannya kepada client.
Dengan Proxy
Client -> [Give me Google Page] -> Proxy -> [Give me Google Page] -> Google
Client <- [Google Page] <- Proxy <- [Google Page] <- Google
Keterangan:
1. Client meminta halaman google kepada proxy
2. Proxy meminta halaman google yang diminta oleh client
3. Google memberikan halamannya kepada proxy
4. Proxy memberikan halaman yang diberikan google kepada client
Lalu apa keuntungan menggunakan proxy?
Kita buat sebuah kondisi seperti ini:
1. Anda mendapat respon ping google sebesar 400 ms. Ini berarti anda harus menunggu selama 400 detik sampai anda mendapat respon dari google. Hal ini terjadi bukan karena buruknya service dari google, melainkan DNS anda yang terlalu lama mencari domain google.
2. Sebuah proxy server mendapat respon dari google sebesar 53 ms. Ini berarti dibutuhkan waktu 53 ms bagi proxy server untuk mendapat respon dari google.
3. Anda mendapat respon 100 ms dari proxy server. Ini berarti bla-bla-bla. [You know what I mean, don't you? No?! Fuck then!]
Jika anda tidak menggunakan layanan proxy, anda akan membutuhkan waktu 4 detik untuk membuka halaman google. Jika anda menggunakan layanan proxy, anda akan membutuhkan waktu 1.5 detik untuk membuka halaman google.
Mengapa SQUID?
Kelebihan squid yang paling saya suka adalah penyimpanan cache sebuah halaman web nya yang baik. Cara kerjanya seperti ini.
Web Content:
1. Image
2. JS
3. Video
4. Text
Ketika anda berusaha memuat halaman web, secara otomatis anda akan memuat keempat elemen ini. Artinya jika anda meminta proxy untuk mengambil web content ini, proxy akan menyimpan keempat elemen ini dalam sebuah directory cache. Untuk apa? Tentu saja untuk dipanggil kembali.
First Request
Clent's requests:
1. Image
2. JS
3. Video
4. Text
Proxy Check Cache Directory:
1. Image [None]
2. JS [None]
3. Video [None]
4. Text [None]
Karena permintaan ini baru dilakukan sekali, maka proxy tidak menemukan elemen ini di dalam directory cache. Kemudian proxy meminta keempat elemen ini ke web server [dibutuhkan waktu 53ms]. Jika sudah, maka proxy akan menemukan keempat elemen ini di dalam directory cache, sehingga proxy tidak perlu meminta kembali keempat elemen [tidak butuh permintaan ke server = tidak butuh waktu = reload 0 detik].
Sudah siap memasang squid di dalam backtrack anda? Let's rock!
Dependencies:
1. squid
2. squidclient
3. squid-cgi
4. gcc
5. build-essential
6. sharutils
7. ccze
8. libzip-dev
9. automake1.9
Walkthrough:
Command :
red-dragon [~] → apt-get update ; apt-get install squid squidclient squid-cgi gcc build-essential sharutils ccze libzip-dev automake1.9 --yes
2. Download Squid LUSCA HEAD Source
Command :
red-dragon [~] → cd /tmp/ ; wget "http://lusca-cache.googlecode.com/files/LUSCA_HEAD-r14809.tar.gz"
3. Extract source
Command :
red-dragon [/tmp] → tar -xvf LUSCA_HEAD-r14809.tar.gz
4. Configuring
Command :
red-dragon [/tmp] → cd LUSCA_HEAD-r14809 ; ./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=coss,aufs' '--enable-linux-netfilter' '--enable-arp-acl' '--enable-epoll' '--with-aio' '--with-dl' '--enable-snmp' '--disable-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' '--with-maxfd=65536' '--enable-removal-policies=lru' '--enable-removal-policies=heap' 'CFLAGS=-march=core2 -O2 -pipe -fomit-frame-pointer'
5. Compiling
Command :
red-dragon [/tmp/LUSCA_HEAD-r14809] → make
6. Installing
Command :
red-dragon [/tmp/LUSCA_HEAD-r14809] → make install
7. Setup SQUID
Command :
red-dragon [/tmp/LUSCA_HEAD-r14809] → cd /etc/squid ; wget "http://t193r.googlecode.com/files/squid.zip" ; unzip squid.zip
Password = red-dragon
8. Create cache directory
Command :
red-dragon [/tmp/LUSCA_HEAD-r14809] → cd / ; mkdir squid ; cd /squid ; mkdir log ; mkdir cache ; touch /squid/log/access.log; touch /squid/log/error.log ; chown -R proxy:proxy /squid
9. Parsing Squid Configuration
Command :
red-dragon [~] → squid -k parse
10. Generate Cache Directory
Command :
red-dragon [~] → squid -z
11. Run Squid
Command :
red-dragon [~] → squid -NDd1
Jangan tekan ctrl+c atau tutup terminal anda. Ini akan mengakibatkan squid berhenti. Cara lain untuk mengeksekusi squid adalah:
a. Tekan alt+f2
b. Masukan perintah "squid -NDd1" [Tanpa tanda petik]
12. Checking Squid
Dalam konfigurasi, saya mengatur squid untuk berjalan pada port 16791. Cek service squid dengan perintah
Command :
red-dragon [~] → netstat -lpnt | grep 16791
Jika muncul seperti ini, maka squid sudah berjalan, dan siap menerima request. Jangan lupa untuk mengatur proxy anda dengan
a. IP = 127.0.0.1
b. Port = 16791
Don't forget to share this page.
You
are
so
connected
by
red-dragon
kok setelah langkah ke 7 kan saya sudah yes yes ya kak,terus kok malah masuk sendiri ke root@bajaj:/etc/squid# ,di langkah 8 saya lihat masuk nya masih di
ReplyDeletered-dragon [/tmp/LUSCA_HEAD-r14809]
kenapa ya kak dragon
keep going. Kalo ada pesan error baru post di sini lagi.. :)
Deleteom pas swap squid -z ada tulisan kek gini
ReplyDeleteFailed to make swap directory /squid/cache/00: (13) Permission denied
Squid Cache (Version LUSCA_HEAD-r14809): Terminated abnormally.
CPU Usage: 0.000 seconds = 0.000 user + 0.000 sys
Maximum Resident Size: 6640 KB
Page faults with physical i/o: 0
kira-kira apa problem nya
root@bt:~# chown -R proxy:proxy /squid
Deleteroot@bt:~# squid -z
Itu masalahnya ada di file and folder permission.. :)