Transparent Proxy

Yow yow yow.. ketemu lagi dengan saya, blum bosen kan? Hihihi.. Pada topik kali ini ingin membahas mengenai transparent proxy. Berhubung saya masih newbie, maka yang akan saya tulis kali ini tentunya yang basic2 ajah.. Hehehe :mrgreen:

Tapi sebelumnya, temen2 udah pada tau kan ttg proxy itu sendiri? Oke, kenalan dulu yuk sama makhluk bernama proxy ini (mengutip dari modul praktikum Jaringan Komputer Teknik Informatika UII Yogyakarta *rada promo dikit*).

1. Pengertian Proxy

Secara terminologi istilah proxy dapat diartikan sebagai seseorang/lembaga yang bertindak sebagai perantara atau atas nama dari orang lain/lembaga dalam suatu hal. Namun dalam dunia jaringan komputer, istilah proxy berarti komputer yang berfungsi sebagai perantara antara client dan server dalam jaringan komputer.

2. Fungsi Proxy

Proxy memiliki 3 fungsi utama, yaitu:

a. Firewall

Proxy bekerja pada layer aplikasi (dalam OSI Layer), maka filtering yang dilakukan oleh proxy lebih “cerdas” daripada firewall biasa. Proxy web server dapat mengecek URL dari outgoing request (permintaan akses keluar) untuk halaman web. Dengan kemampuan ini, administrator dapat melarang atau mengizinkan akses ke domain tertentu. Firewall biasa tidak dapat melihat nama domain di dalam pesan tersebut, karena firewall hanya memeriksa header paket data.

b. Gateway

Untuk dapat mengakses internet, sebuah komputer harus memiliki sebuah IP public. Untuk dapat mengakses internet secara bersama-sama dengan menggunakan satu IP public, dibutuhkan sebuah komputer yang memiliki IP public, yang digunakan sebagai gateway komputer-komputer lain. Dalam hal ini, proxy server juga berfungsi sebagai gateway. Server ini mempunyai dua interface, untuk koneksi ke internet dan untuk koneksi ke jaringan lokal.

c. Cache

Fungsi proxy server yang lain adalah untuk web caching. Caching di sini diartikan sebagai penyimpanan internet object (gambar/halaman web) dari suatu website yang sudah pernah diakses, sehingga bila akan mengakses objek yang sama di internet, tidak perlu mengambil dari internet, tetapi cukup dari proxy karena sudah disimpan. Bandwidth yang dipakai pun akan lebih hemat, dan dapat mempercepat akses ke website.

Nah, sampe di sini temen2 udah tau kan kegunaannya makhluk bernama proxy itu.. Sekarang kita kenalan sama aplikasinya yuuuk..


SQUID PROXY

Squid adalah aplikasi untuk proxy yang berjalan di lingkungan sistem operasi *.nix. Namun, dalam perkembangannya ada pula squid yang berjalan di lingkungan sistem operasi Windows.


Konfigurasi Squid

File konfigurasi untuk squid adalah squid.conf yang terletak pada direktori /etc/squid/squid.conf. Beberapa konfigurasi penting dari squid.conf adalah:

  • http_port : Mendefinisikan port yang digunakan untuk koneksi dengan client. Defaultnya adalah 3128.
  • icp_port : Mendefinisikan port yang digunakan untuk koneksi dengan proxy lain.
  • cache_mem : Menentukan besar memori yang digunakan untuk menyimpan objek yang pernah di-download.
  • cache_dir : Menentukan direktori penyimpanan objek yang disimpan.
  • http_access : Menunjuk alamat-alamat yang diperbolehkan atau tidak untuk mengakses proxy.
  • cache_mgr : Alamat Email yang di tampilkan bila proxy tidak dapat menampilkan halaman web yang diminta.
  • visible_hostname : Informasi di footer bila proxy tidak dapat menampilkan halaman web yang diminta.

Oke, sekarang gimana to caranya bikin proxy pake squid?? Yuuuk, mari kita sama-sama belajar…

1. Spesifikasi Sistem

Untuk percobaan, saya menggunakan laptop yang selanjutnya kita sebut sbg host karena dlm percobaan ini juga dipakai VMWare yang berisi 2 mesin (guest) di dalamnya.

Host (laptop) :

  • Sudah konek ke internet, so pasti IP DNS nya juga udah ada πŸ˜€
  • OS : Windows XP
  • IP : 10.10.10.2/24
  • Gateway : 10.10.10.1

Proxy server :

  • OS : Ubuntu Server 8.04 (jadul bet yah.. wkwkwk.. maklum pake CD yang ada ajah, maap2..)
  • Squid versi 2.6.18-1ubuntu3.2 (install dari repo)
  • Ethernet 1 : mode Bridged (1 jaringan dengan IP ke internet, IP = 10.10.10.3/24; Gateway = 10.10.10.1)
  • Ethernet 2 : mode Custom, saya pilih VMNet7 (1 jaringan dengan client lokal, IP = 192.168.231.2/24)
  • IP DNS mengikuti IP DNS-nya si host yah…

Client Proxy :

  • OS : apa ajah terserah yang penting ada browsernya, klo yg saya pake itu Ubuntu Desktop 9.04 (jadul lagi yah :mrgreen:)
  • Browser : saya pake Mozilla Firefox bawaan Ubuntu-nya
  • Ethernet : mode Custom, saya pilih VMNet7 biar samaan kayak si Proxy Server (1 jaringan dengan IP lokal-nya proxy server, IP = 192.168.231.3/24; Gateway = 192.168.231.2 –> IP nya si Proxy Server)
  • IP DNS-nya jangan lupa diisi mengikuti IP DNS-nya si host.

2. Konfigurasi IP Proxy Server

– Setting IP untuk Proxy server :

# vim /etc/network/interfaces

– Isikan dengan parameter berikut, kemudian simpan.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 10.10.10.2
netmask 255.255.255.0
gateway 10.10.10.1

# The secondary network interface
auto eth1
iface eth1 inet static
address 192.168.231.2
netmask 255.255.255.0

– Setting IP DNS di file /etc/resolv.conf

# vim /etc/resolv.conf

Isikan dengan format berikut, kemudian simpan.

nameserver<spasi>ip_dns_anda

– Restart konfigurasi IP network dengan cara :

# /etc/init.d/networking restart

3. Instalasi Squid

Jangan lupa login menjadi root. Berikut merupakan langkah-langkah instalasi squid di Ubuntu :

– Periksa apakah squid sudah terinstal atau belum.

# dpkg -l | grep squid

– Jika belum, install squid melalui apt-get.

# apt-get install squid

4. Konfigurasi squid.conf untuk Transparent Proxy

Kelemahan dari proxy yang konvensional adalah masih harus men-setting di browser yang digunakan oleh user. Apabila user yang ada di jaringan sangat banyak, maka hal ini akan menjadi sesuatu yang merepotkan. Oleh karena itu, maka digunakanlah suatu metode di mana user dipaksa menggunakan proxy tanpa tahu kalau user tersebut mengakses halaman web melalui proxy. Metode ini disebut Transparent Proxy.

Berikut merupakan langkah-langkah konfigurasi squid di Ubuntu :

– Buka file squid.conf dengan teks editor.

# vim /etc/squid/squid.conf

– Lakukan konfigurasi berikut dan simpan.

http_port 3128 transparent
icp_port 3130
udp_incoming_address 0.0.0.0
udp_outgoing_address 255.255.255.255
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin ?
no_cache deny QUERY
cache_mem 8 MB
maximum_object_size 4096 KB
cache_dir ufs /var/spool/squid 100 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443 563
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow all
http_reply_access allow all
icp_access allow all
cache_mgr webmaster
cache_effective_user proxy
cache_effective_group proxy
visible_hostname ningnong's squid
memory_pools on
log_icp_queries on
coredump_dir /var/spool/squid

– Buat direktori cache

# /usr/sbin/squid -z

– Menjalankan squid agar aktif.

# /etc/init.d/squid start

– Untuk administrasi service dari Squid, berikut cara-caranya :

  • Menghidupkan service squid : /etc/init.d/squid start
  • Mematikan service squid : /etc/init.d/squid stop
  • Apabila ada perubahan konfigurasi, restart service squid dengan cara : /etc/init.d/squid restart, atau dapat dengan perintah : squid -k reconfigure

5. Buat script untuk Transparent Proxy

Berikut langkah-langkah yang dilakukan untuk setting transparent proxy.

– Buat aturan di firewall dengan script berikut. Gunakan teks editor

# vim /etc/squid/script.sh

Isinya adalah sbb :

#!/bin/sh
# Squid server IP
# Isikan IP Lokal Proxy Server
SQUID_SERVER=”192.168.231.2”
# Interface connected to Internet
# Isikan interface IP yang ke arah internet
INTERNET=”eth0”
# Address connected to LAN
# Isikan network IP Lokal Proxy Server
LOCAL=”192.168.231.0/24”
# Squid port
SQUID_PORT=”3128”
# Clean old firewall
iptables –F
iptables –X
iptables –t nat –F
iptables –t nat –X
iptables –t mangle –F
iptables –t mangle –X
# Enable forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# Setting default filter policy
iptables –P INPUT DROP
iptables –P OUTPUT ACCEPT
# Unlimited access to loop back
iptables –A INPUT –i lo –j ACCEPT
iptables –A OUTPUT –o lo –j ACCEPT
# Allow UDP, DNS, and Passive FTP
iptables –A INPUT –i $INTERNET –m state --state ESTABLISHED,RELATED –j ACCEPT
# Set this system as a router for Rest of LAN
iptables –t nat –A POSTROUTING –o $INTERNET –j MASQUERADE
iptables –A FORWARD –s $LOCAL –j ACCEPT
# Unlimited access to LAN
iptables –A INPUT –s $LOCAL –j ACCEPT
iptables –A FORWARD –s $LOCAL –j ACCEPT
# DNAT port 80 request coming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy
iptables –t nat –A PREROUTING –s $LOCAL –p tcp --dport 80 –j DNAT --to $SQUID_SERVER:$SQUID_PORT
# If it is same system
iptables –t nat –A PREROUTING –i $INTERNET –p tcp --dport 80 –j REDIRECT --to-port $SQUID_PORT
# DROP everything and log it
iptables –A INPUT –j LOG
iptables –A INPUT –j DROP

– Jalankan script firewall tsb.

# chmod +x /etc/squid/script.sh
# /etc/squid/script.sh

– Restart service squid dengan perintah :

# /etc/init.d/squid restart

6. Konfigurasi di client

Setting terlebih dahulu IP client dengan cara :

– Setting IP untuk client (bisa menggunakan wizard versi GUI ataupun edit file-nya :D)

# vim /etc/network/interfaces

– Isikan dengan parameter berikut, kemudian simpan.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.231.3
netmask 255.255.255.0
gateway 192.168.231.2

– Setting IP DNS di file /etc/resolv.conf

# vim /etc/resolv.conf

Isikan dengan format berikut, kemudian simpan.

nameserver<spasi>ip_dns_anda

– Restart konfigurasi IP network dengan cara :

# /etc/init.d/networking restart

– Saatnya browsing… Hohoho…

7. Untuk melihat aktivitas client, pada Proxy server jalankan perintah berikut :

# tail -f /var/log/squid/access.log

Sekian dulu yah.. mohon maaf skali klo banyak kekurangannya.. CMIIW.. Ayooo sinauuuu!!! πŸ˜€

Thanks to sumber berikut :

http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html

9 thoughts on “Transparent Proxy”

  1. Mau tanya nih, kalau kita di warnet mau ngelihat gateway komputer lain bagaimana ya?apa anda tahu bro?
    thank ya

Leave a Reply

Your email address will not be published. Required fields are marked *