Transparent Proxy…

Yow yow yow.. ketemu lagi dengan ningnong, blum bosen kan? Hihihi.. Pada topik kali ini ingin membahas mengenai transparent proxy. Berhubung ningnong masih newbie, maka yang akan ningnong 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..

1. 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.

2. 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, ningnong 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, ningnong 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 dipake ningnong itu Ubuntu Desktop 9.04 (jadul lagi yah :mrgreen:)
  • Browser : ningnong pake Mozilla Firefox bawaan Ubuntu-nya
  • Ethernet : mode Custom, ningnong 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 :

– Menghidukan 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

 

c.Buat direktori cache

8 comments

  1. Pingback: Transparent Proxy… Edisi ACL dan Reporting « senenkliwon

  2. Pingback: Web Proxy dengan MikroTik… « jhoena cyber

  3. firman - Reply

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

  4. Pingback: Squid Proxy | apangs

  5. Pingback: Web Proxy dengan MikroTik… | jhoena cyber

Leave a Reply to ningnong Cancel reply

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