04 March 2006

Membuat Transparent Proxy Dengan Squid

Dalam sebuah jaringan, keberadaan gateway saja dirasa kurang memadai. Server proxy akan banyak membantu mengontrol client saat melakukan koneksi ke internet. Pembatasan bandwith, akses terhadap situs tertentu, maupun web caching.

Saat client melakukan browsing ke suatu situs, squid akan menyimpannya dalam cache. Apabila client me-request situs yang sama untuk kesekian kalinya, data yang diambil cukup dari cache squid. Cara tersebut, otomatis menghemat bandwith dan mempercepat browsing. Inilah cara kerja web caching, fungsi yang paling dominan dipakai dari squid.


  1. Install Squid



Debian sarge menggunakan squid2.4 STABLE 9.
# apt-get update
# apt-get install squid

Ada 3 file utama yang terdapat dalam squid.
  • /etc/squid/squid.conf (file konfigurasi squid)
  • /var/log/squid/access.log (file log squid)
  • /var/spool/squid/ (direktori cache squid)

Setelah squid terinstall, edit konfirugrasi squid (squid.conf), yang ada pada /etc/squid/squid.conf
# nano /etc/squid/squid.conf

maximum_object_size 8192 KB
cache_mem 16 MB
cache_dir ufs /var/spool/squid 2048 22 256
cache_store_log none

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 lan_network src 192.168.0.0/255.255.255.0
acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 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 lan_network
http_access deny all

icp_access allow all
miss_access allow all
cache_mgr email_anda@hostname
visible_hostname hostname
unique_hostname hostname

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
http_port 3128

Jangan lupa, mengaktifkan ip forwarding.
# nano /etc/sysctl.conf

net.ipv4.ip-forward = 1

Pada konfigurasi diatas, squid belum bekerja secara transparent. Anda harus melakukan konfigurasi secara manual pada semua browser client (internet explorer, firefox) agar koneksi dilakukan melalui proxy server

ip proxy server = 192.168.0.100
port proxy = 3128


2. Transparent Proxy

Agar proxy bekerja secara transparent, anda perlu mensetting iptables.

# nano /etc/init.d/iptables.sh

iptables -t nat -A PREROUTING
-i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


Tambahkan file script tersebut pada rc.local, sehingga saat komputer hidup script iptables akan dieksekusi (start up).
# nano /etc/rc.local

/etc/init.d/iptables.sh

Iptables akan memaksa setiap request client untuk melewati "hanya" pada komputer proxy server port 3128. Dengan memiliki transparent proxy, anda tidak perlu mensetting manual browser client.


3. Blocking Situs

Buat file yang berisi daftar situs-situs yang diblok
#nano /etc/squid/site_terlarang

www.playboy.com

Tambahkan entri dibawah ini pada file konfigurasi squid (squid.conf)

acl site_terlarang dst domain "/etc/squid/site_terlarang"
http_access deny site_terlarang

No comments: