Hari gini masih pake Windows buat server? Wah…ketinggalan jaman lu coy!

Beberapa saat yang lalu aku mendapat panggilan dari 3 warnet untuk membuat proxy server dengan Linux. Bukan berarti aku dapet banyak duit nih, sekali lagi bukan coz warnet-warnet ini milik teman sendiri. =))

Kebetulan, temen-temen di warnet ini pada kreatif semua. Mereka nggak nunggu aku, coz mereka maklum kalo selalu sibuk. Jadi mereka menginstall dahulu linux tersebut walau harus berkali-kali install karena dianggap gagal. Mereka dapet referensi dari Mbah Google, emang Google is the best deh. Jadi aku semakin ringan deh kerjanya.

Instalasi yang dilakukan temen-temen ternyata mereka sudah memasukkan squid dan iptables di dalamnya. Untung 2x nih…

So..kalo pengen tau cara intall squid di masing-masing distro, kunjungin aja squid-cache.org atau ke Mbah Google, gak usah bawa kembang tujuh rupa sama kemenyan kalo mo ketemu mbah Google. :terbahak:

Jadi aku mulai konfigurasi ya…edit file /etc/squid/squid.conf
Pada kasusku, IP internal adalah 192.168.1, memberikan akses ke localhost merupakan ide yang bagus. Aku kurang tau apa sebabnya, tapi itulah yang kubaca dari referensi yang kudapat dari Mbah Google. Yang udah pada tau, pasti bertanya-tanya, kok port 3124? Yach…suka-suka gw donk…yang penting bukan port yang dipakai aplikasi-aplikasi lain seperti port 5000-5004 yang dipake Yahoo! Messenger Voice.

http_port 127.0.0.1:3124
http_port 192.168.1.1:3124

Kita deklarasikan hostname untuk proxy server ini, serta email yang ketika menampilkan pesan error.

visible_hostname gateway.view.lok
cache_mgr rystiono@mc-network.net

Inilah yang kita butuhkan untuk menjadikan mesin ini transparant proxy.

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Selanjutnya atur semua akses dari internal network menuju internet di sini. Ini hanya sekedar contoh. Karena ini warnet, akses ke semua web tidak dibatasi.

# MASUKKAN ATURAN-ATURAN UTUK MENGIJINKAN AKSES DARI CLIENT
# Contoh aturan yang mengijinkan akses dari network lokal.
# Untuk mendaftar IP internal yang digunakan browsing.
acl view_net src 192.168.1.0/24
acl localhost src 127.0.0.0/24
# 192.168.1.0/24 maksudnya hanya 24 bit pertama yang perlu diperhatikan.
# Perbolehkan akses
http_access allow view_net
http_access allow localhost
# Lalu blok semua akses yang tidak termaktub diatas.
http_access deny all

Untuk konfigurasi yang lain, silahkan ngikut referensi di squid-cache.org karena saat ini topiknya transparant proxy. Lalu restart squid sekarang. service squid restart (untuk RedHat based) atau /etc/rc.d/rc.squid restart (untuk Slackware based). Sudah 75% deh buat mendapatkan transparant proxy.

Sekarang, yang harus dilakukan adalah meredirect semua request yang melalui gateway kita pada port 80 menuju port 3124 dengan menambahkan rule ini ke IPTABLES.

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

Habis itu aku reboot deh…

Sekarang aku coba browsing dari client dan….voilla…client tetep bisa akses ke internet, tapi kali ini lewat transparant proxy, mau bukti?

1104854410.086 159 192.168.1.50 TCP_MISS/302 469 GET http://www.google.com/ -
DIRECT/216.239.59.104 text/html
1104854410.217 128 192.168.1.50 TCP_MISS/200 1459 GET http://www.google.co.id/
/ - DIRECT/216.239.59.99 text/html
1104854410.397 180 192.168.1.50 TCP_MISS/200 9022 GET http://www.google.co.id/
/intl/en_uk/images/logo.gif - DIRECT/216.239.59.99 image/gif
1104854415.196 200 192.168.1.50 TCP_MISS/200 1459 GET http://www.google.co.id/
/ - DIRECT/216.239.59.99 text/html
1104854415.271 74 192.168.1.50 TCP_REFRESH_HIT/304 235 GET http://www.google/
.co.id/intl/en_uk/images/logo.gif - DIRECT/216.239.59.99 text/html

Ini hasil dari perintah tail -f /var/log/squid/access.log.

Nah…mudah kan settingnya? Kenapa ga dicoba? Rugi loh ada yang murah dan canggih masih pake yang mahal dan tertutup. =))

Double posting in linux-ae.org and ryst.linux-ae.org.