Transparent Proxy

Sempat suatu hari saya dibikin penasaran oleh user yang browsing di lingkungan jaringan. Karena IP komputer miliknya tidak tercatat dalam log squid, jadi tidak bisa diamati ia browsing kemana saja. Setelah saya cek ternyata ia set browsernya agar saat ia browsing tidak melalui proxy. Kalau cuma 1 orang saja sih nggak masalah untuk merubah ulang settingannya, tapi kalau berpuluh-puluh komputer seperti itu kan rumit juga. Akhirnya dapat solusi juga dari milis, yaitu menggunakan transparent proxy. Konsepnya sih sederhana, yaitu memaksa koneksi internet user agar selalu melalui mesin proxy kita -dengan atau tanpa setting di menu browser-. Caranya adalah dengan menerapkan rule (baca aturan) pada firewall agar tiap kali ada permintaan membuka http atau https dari client akan langsung di arahkan ke mesin proxy.
Berikut setting firewall yang saya terapkan, kebetulan saya orang yang masih males dan belum sempat upgrade linux box saya, jadinya firewall yang digunakan masih ipchains (untuk kernel linux terbaru menggunakan iptables):

Seperti biasa, loginlah sebagai root terlebih dahulu. Saya asumsikan nomor ip proxy adalah 192.168.1.1

$ su

Ketikkan perintah berikut untuk menambahkan rule ke firewall agar user yang browsing ke internet di arahkan ke mesin proxy

# /sbin/ipchains –A input -s ! 192.168.1.1 -d ! 192.168.1.1 http -p TCP -j REDIRECT 3128
# /sbin/ipchains -A input -s ! 192.168.1.1 -d ! 192.168.1.1 https -p TCP -j REDIRECT 3128

Sedangkan rule berikut gunanya adalah untuk memastikan agar mesin proxy kita tidak dipakai orang luar

# /sbin/ipchains -A input -s ! 192.168.1.1 -d ! 192.168.1.1 8080 -p TCP -j REJECT
# /sbin/ipchains -A input -s ! 192.168.1.1 -d ! 192.168.1.1 3128 -p TCP -j REJECT

Set ulang konfigurasi squid agar mendukung transparent proxy

$ su
# vi /etc/squid/squid.conf

Tambahkanlah baris berikut kedalam konfigurasi squid (file squid.conf)

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

6 Comments to “Transparent Proxy”

  1. Tafta 6 June 2006 at 8:11 pm #

    saya mau pasang proxy yg ga transparan dan tidak mendukung https tapi masih bisa koneksi https keluar.
    saya pake aturan begini:
    untuk ipchain, aturan yang saya pake cm:

    # ipchains -A forward -s 192.168.3.0/24 –destination-port 443 -p tcp -j MASQ

    pada routing saya tambahkan agar semua paket yang tujuannya tidak ada dalam tabel routing saya kasih default gateway yang konek ke internet

    # route add default gw 192.168.4.1

    kira-kira menurut mas gmana, mohon petunjuknya :)

  2. bagong 12 March 2007 at 7:29 am #

    Mas…
    mau nanya dong.

    Saya punya konfigurasi seperti dalam gambar yang saya lampirkan.
    Trus proses instalasi squid 2.6 sudah sampai pada tahap:

    swet:/usr/local/squid/sbin # mkdir /usr/local/squid/var/cache
    swet:/usr/local/squid/sbin # chmod 777 /usr/local/squid/var/*
    swet:/usr/local/squid/sbin # ./squid -z
    2007/03/10 14:58:05| Creating Swap Directories

    swet:/usr/local/squid/sbin # /usr/local/squid/sbin/squid
    swet:/usr/local/squid/sbin # netstat -pln | grep squid
    tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 8900/(squid)
    udp 0 0 0.0.0.0:2478 0.0.0.0:* 8900/(squid)
    udp 0 0 0.0.0.0:3130 0.0.0.0:* 8900/(squid)
    udp 0 0 0.0.0.0:3401 0.0.0.0:* 8900/(squid)
    sampai sini..apakah sudah dianggap berhasil..? karena sesuai saran anda, bagian our_network saya ganti dengan 10.10.0.0/25..itu saja.
    lalu bagaimana membuatnya menjadi transparant proxy (bentuk perintahnya)..? dan bagaimana menjadi alat ukur keberhasilan transparant proxy ini ?

    [IMG]http://i17.tinypic.com/2r7yhp2.jpg[/IMG]

    2. Bagaimana membuat transparant proxy itu? karena saya bener2 ga ngerti. Umumnya dijelaskan tentang perintah “iptables -t nat -A PREROUTING -p tcp -s 192.168.2.0/24 –dport 80 -j DNAT –to-destination 192.168.2.1:3128″
    itu nulisnya dimana Mas..?
    saya pakai linux suse 10.0 dengan 1 ethernet card

  3. weedodo 13 March 2007 at 1:51 am #

    @bagong
    “sampai sini..apakah sudah dianggap berhasil..?”
    Sudah, maksudnya squid sudah jalan.

    “bagaimana membuatnya menjadi transparant proxy (bentuk perintahnya)..?”
    Agar squid mendukung transparent proxy:
    1. Ubah konfigurasi di squid.conf tambahkan 4 baris yg sudah saya tulis diatas.
    2. Set firewall agar setiap koneksi ke web diarahkan ke mesin proxy kita. Perintahnya sudah saya tulis diatas.

    “bagaimana menjadi alat ukur keberhasilan transparant proxy ini ?”
    Kita nggak perlu setting proxy di setiap browser.

    “Bagaimana membuat transparant proxy itu?”
    Sudah saya jawab diatas.

    “nulisnya dimana Mas..?”
    Di router. Pastikan iptables sudah terinstall, buka console, terus ketik perintah itu.

  4. pemula 30 August 2007 at 6:06 am #

    Saya ngk sengaja lewat mbah google sreach dan saya mendapat web site ini dan saya tertarik unutk belajar squid.
    Yang saya tanyakan ada ngk referensi atau panduan untuk pemula Mas?

    Terimakasih banyak

    Pemula

  5. mencari jati diri 16 March 2010 at 2:05 am #

    kalau di ubuntu bisa tidak diberikan configurasinya

  6. weedodo 19 June 2010 at 2:02 pm #

    @pemula: Squid untuk pemula ? banyak kok, tinggal di search di mbah Google. Semoga berhasil.

    @mencari jati diri: Petunjuk diatas juga bisa diterapkan di ubuntu juga kok.


Leave a Reply