id
Proxy Server
Proxy Server adalah sistem komputer yang berada antara client yang merequest web document
ke target server (web server )/ komputer lain. Atau secara simpelnya, proxy server menjembatani
komunikasi antar client dan target server tanpa memodifikasi pesan request dan reply.
Cara Kerja:
Dari gambar diatas kita bisa ambil contoh untuk cara kerja proxy server:
2. Proxy server akan meng hijack request tersebut, dan melihat konfigurasi yang ada pada
3. Jika diperbolehkan lewat, proxy server akan memforwardkan request dari client tersebut
ke webserver.
4. Saat pesan reply dijawab dari web server, proxy server akan memforwardkan ke client
Dengan gambaran diatas client sebenarnya komunikasi langsung dengan web server, tetapi
Aturannya dapat berdasarkan IP address client atau server, Protocol, Type content dokumen, dll.
• Menghemat bandwidth.
• Menambah user experience saat browsing menjadi lebih ceapat, karena content web
• Menambah privacy user, dengan cara tidak mengekspose client langsung ke internet.
Reverse Proxy
Reverse proxy adalah teknik yang digunakan untuk menyimpan reply dari web server, kemudian
disimpan dalam local server proxy, sehingga jika ada client lain yang harus mendapatkan reply
yang sama tidak perlu ke web server tetapi hanya ke proxy server saja.
• Mengurangi penggunaan bandwidth. Jadi jika ada static komunikasi dari client ke Web
server tentang CSS, file java script, Video, dan lain-lain dapat disimpan pada proxy server.
• Oleh ISP digunakan untuk menambah performa experience user saat browsing internet.
Squid
Squid adalah aplikasi yang dapat digunakan sebagai proxy server atau reverse proxy. Aplikasi
squid sendiri dapat berjalan pada sistem operasi Linux, UNIX, Windows.
File source code dan binary dapat didownload di official website squid http://squid-cache.org.
Ada banyak versi untuk aplikasi squid sendiri namun kita harus memilih versi yang stable dan
paling terbaru, untuk melihat list versi squid dapat ke alamat http://squid-cache.org/Versions/
Pada modul ini installasi hanya akan menggunakan cara lewat nomor 2 yaitu install lewat binary.
2. Koneksi ke internet.
menggunakan peritah:
menggunakan perintah:
# squid3 –v
SQUID DAN SARG Gulam@staff.itb.ac.id
Agar lebih mengerti tentang aplikasi squid kita harus tahu dimana saja folder/file squid yang
/usr/lib/squid3/
/etc/squid3
/usr/sbin/squid3
Ini adalah program utama dari squid, digunakan sebagai deamon aplikasi squid.
/usr/share/doc/squid3
/var/log/squid3/
Berisi informasi log tentang acces log dan cache log dari squid.
/var/cache
# cp /etc/squid3/squid.conf
/etc/squid3/squid.conf.asli
SQUID DAN SARG Gulam@staff.itb.ac.id
berikut:
# nano /etc/squid3/squid.conf
dengan perintah:
# squid3 –f /etc/squid3/squid.conf
SQUID DAN SARG Gulam@staff.itb.ac.id
menjadi squid:
# mkdir /var/squid
# mkdir /var/squid/cache
directory:
# /etc/init.d/squid3 stop
# squid3 -z
# /etc/init.d/squid3 start
SQUID DAN SARG Gulam@staff.itb.ac.id
port 3128):
SQUID DAN SARG Gulam@staff.itb.ac.id
# tail –f /var/log/squid3/access.log
SQUID DAN SARG Gulam@staff.itb.ac.id
Sebelum kita lanjut ke lab squid berikutnya, kita harus mengerti ada beberap type perintah
yang dapat dimasukan dalam file konfigurasi squid.conf, dengan mengerti hal tersebut
type perintah ini hanya dapat digunakan satu kali dalam konfigurasi squid.conf, jika ada
2 perintah yang sama maka akan direplace contohnya adalah perintah logfile_rotate:
logfile_rotate 10
logfile_rotate 5
• Perintah Boolean
Dalam konfigurasi squid juga ada perintah untuk Boolean, yaitu perintah untuk ON/OFF
sebuah fitur.
query_icmp on
log_icp_queries off
url_rewrite_bypass off
Type perintah ini dapat kita gunakan beberapa kali dalam konfigurasi squid.conf,
contohnya:
dns_nameservers proxy.example.com
dns_nameservers squid.example.com
SQUID DAN SARG Gulam@staff.itb.ac.id
Type perintah ini menggunakan nilai waktu sebagai opsinya, seperti seconds, minutes,
hours. Contoh:
request_timeout 3 hours
persistent_request_timeout 2 minutes
Type perintah ini menggunakan ukuran memory sebagai opsinya, seperti bytes, KB, MB,
GB.
contoh:
reply_body_max_size 10 MB
cache_mem 512 MB
maximum_object_in_memory 8192 KB
SQUID DAN SARG Gulam@staff.itb.ac.id
Pada bagian sebelumnya kita mengetahui type perintah apa saja yang dapat dimasukan
dalam konfigurasi squid.conf. Pada bagian ini kita akan mempelajari bagiamana aplikasi squid
Ada 2 elemen untuk mengontrol hal tersebut yaitu ACL Type dan access List. Access list
bekerja untuk meng allow atau deny yang diikuti oleh satu atau sekumpulan ACL Type.
- ACL_NAME : nama dari acl, bisa ditulis bebas seperti komputer_1, case sensitive.
- Value : nilai dari acl type tersebut bisa berupa waktu, IP address tergantung dari acl type.
3. Menggunakan acl type arp dengan value ada difile konfigurasi yang berbeda.
Access List
Saat menggunakan squid, access list bertugas untuk mengontrol akses berbagai resource,
contohnya apkah di allow/deny. Pengontrolan akses ini berdasarkan aturan dari ACL type yang
kita tulis.
http_access : memperbolehkan http clients (browser) untuk mengakses http port (80). Ini
tujuan.
Cache : mengatur website/server mana yang web documentnya harus di simpan dalam
cache.
SQUID DAN SARG Gulam@staff.itb.ac.id
- http_access : kita dapat mengontrol transaksi http lewat squid apakah di allow/deny.
- Jika tidak ada akses yang match berdasarkan access list defaultnya pada akhir baris ada
http_access deny all. Baris ini untuk mengegaskan bahwa selain aturan yang dibuat
Kasus 1 : hanya alamat IP 167.205.79.0/24 yang dapat menggunakan squid server, selain
Konfigurasi
Kasus 2 : alamat website kompas.com dan detik.com tidak boleh di cache pada server.
Kasus 3 : mencegah user untuk mengakses situs yang mengandung kata porn dan sex.
Pada modul ini tidak akan dibahas secara detail tentang squid secara detail, tetapi kita
Sebelum kita memulai scenario yang pertama dalam squid, kita buat dulu basic
konfigurasi dari squid. Jika kita buka file /etc/squid3/squid.conf dalam baris tersebut banyak
baris yang di # artinya konfigurasi tersebut tidak akan dibaca oleh daemon squid. Jika kita lihat
default konfigurasinya hanya baris konfigurasi dibawah ini yang dibaca oleh squid.
http_port 3128
coredump_dir /var/spool/squid3
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
Topology:
Transparent proxy adalah sebuah teknik untuk memaksa client (PC) menggunakan Proxy
server tanpa harus mengubah sedikitpun konfigurasi pada sisi client. Konfigurasi disini seperti
mengubah settingan proxy pada web browser dan juga system komputer.
Keuntungan :
- Zero client configuration : client tidak perlu mengkonfigurasi setting proxy, sangat
Kerugian :
- Meskipun hanya protocol HTTP yang dapat digunakan untuk pengecekan, ada beberapa
proctocol yang harus terhubung langsung tanpa melewati server proxy yaitu HTTPS,
FTP, DNS.
Cara Kerja
Dari gambar topology diatas kita akan coba jelaskan cara kerja transparent proxy.
1. PC client akan browsing website contohnya facebook.com menggunakan http dan https port
80/443.
2. Pesan tersebut akan diterima oleh Gateway karena pesan server tersebut berperan sebagai
3. Saat Gateway menerima pesan dengan port http/https port 80/443 gateway akan
4. Server Proxy kemudian akan mengidentifikasi pesan tersebut berdasarkan konfigurasi yang
5. Jika pesan tersebut diperbolehkan oleh proxy untuk dikirim, maka gateway akan
# nano
/etc/network/interfaces
# /etc/init.d/networking
restart
perintah:
# ifconfig
SQUID DAN SARG Gulam@staff.itb.ac.id
linux/unix
# netstat –nr
nano /etc/sysctl.conf
baris berikut:
SQUID DAN SARG Gulam@staff.itb.ac.id
# iptables -t nat -A
POSTROUTING -o eth0 -j
MASQUERADE
tables.
# iptables -t nat -A
port 3128
SQUID DAN SARG Gulam@staff.itb.ac.id
“Tambahkan filter ke dalam table NAT yaitu sebelum paket di routingkan yang datang pada interface eth1 dengan tujuan paket port
# iptables-save
cache_mgr admin@comlabs.itb.ac.id
visible_hostname comlabs.itb.ac.id
PC Client.
2. Testing konfigurasi yang dilakukan untuk transparent proxy menggunakan browser tanpa
harus setting proxy. Buka alamat itb.ac.id dan kaskus.com harusnya dapat dibuka.
SQUID DAN SARG Gulam@staff.itb.ac.id
# apt-get install
sarg apache2
libapache2-mod-php5
#
- File access log squid
- Output directory untuk access_log /var/log/squid3/access.log
halaman web
# TAG: output_dir
nano
# The reports will be saved # in that directory
/etc/sarg/sarg.conf
# sarg -o dir
output_dir /var/www/squid-reports
SQUID DAN SARG Gulam@staff.itb.ac.id
# sarg –x
http://IP_server_proxy/squid-
reports
SQUID DAN SARG Gulam@staff.itb.ac.id
# crontab –e
* */1 * * *
/usr/bin/sarg -x
menggenrate access.log