Transaparent Proxy with SQUID

Bagi yang bandwidth internetnya kecil sangat disarankan menggunakan proxy server, terutama untuk caching file-file gambar yang biasanya sifatnya statis. Sekali mendayung 2-3 pulau terlalui, baru install CentOS 5 sekalian saja install SQUID untuk dijadikan proxy server. Cukup sakti juga squid ini, mendukung transparent proxy. User tidak perlu tahu kalau akses web-nya di redirect ke proxy server. Kegunaannya :
– Semua aktifitas browsing client pasti tercatat di log proxy, baik user client suka atau tidak suka D
– tahu maupun tidak tahu, semua koneksi browsing port 80 pasti di lewatkan ke proxy server
– kita tidak perlu merubah setting proxy untuk semua browser client.

yang kita perlukan hanya iptables yang terinstall di router dan squid proxy server. Langkahnya cukup mudah :
1) Pada router (basis linux) dengan iptables tambahkan rule :

  • iptables -t nat -A PREROUTING -i eth0 -s ! squid-box -p tcp –dport 80 -j DNAT –to squid-box:3128
  • iptables -t nat -A POSTROUTING -o eth0 -s local-network -d squid-box -j SNAT –to iptables-box
  • iptables -A FORWARD -s local-network -d squid-box -i eth0 -o eth0 -p tcp –dport 3128 -j ACCEPT

2) pada /etc/squid/squid.conf edit :

  • http_port 3128 transparent
  • httpd_accel_host virtual
  • httpd_accel_port 80
  • httpd_accel_with_proxy on
  • httpd_accel_uses_host_header on

flush rule di server dan restart squid daemon …. Beres deh …
ref :
http://www.faqs.org/docs/Linux-mini/TransparentProxy.html

http://www.squid-cache.org/mail-archive/squid-users/200703/0038.html

selamat mencoba!

Rasanya tidak perlu lagi dijelaskan fungsi maupun kegunaan Squid karena sudah banyak situs-situs lain yang menguraikannya secara jelas, baik berbahasa Indonesia maupun bahasa asing.Artikel ini terfokus secara teknisnya saja, bagaimana menginstalasi Squid dan mengkonfigurasi Squid sebagai transparent proxy melalui firewall yang sudah ada di server. Berdasarkan pengalaman, metode instalasi dan konfigurasi yang saya gunakan dapat berjalan dengan baik di server dengan sistem operasi Linux slackware 11 dan Hit ratio dapat mencapai 85%

Karena Squid membutuhkan memory yang cukup besar, maka untuk kebutuhan minimal memory untuk saat ini adalah 256MB. Di samping itu, Squid juga memerlukan tipe penyimpanan (disk) dengan kecepatan tinggi semacam SCSI, namun sebenarnya tipe hard disk IDE pun saat ini juga sudah mempunyai kecepatan tinggi, bahkan ada yang sudah mencapai 7200 rpm, mungkin 10000 rpm.

Download source dari squid
#wget

 

Code:

http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE9-20070220.tar.gz

Extract squid tersebut
#tar -zxvf squid-2.6.STABLE9-20070220.tar.gz -C /usr/local/src (sembarang mau ditaruh di mana hasil ekstraknya squid).

Masuk ke direktori ekstrak squid tersebut
#cd /usr/local/src/squid-2.6.STABLE9-20070220

Buat group dan user yang akan di gunakan untuk menjalankan squid
#groupadd squid_
#useradd -c \\\”SQUID PROXY CACHE\\\” -d /dev/null -s /bin/false -g _squid _squid

Configure dan install squid
#./configure \\\\
–prefix=/squid/ –sysconfdir=/etc/ –enable-gnuregex –enable-async-io=16 \\\\
–with-aufs-threads=16 –with-pthreads –with-aio –with-dl \\\\
–enable-storeio=aufs –enable-removal-policies=heap –enable-delay-pools \\\\
–disable-wccp –enable-cache-digests –enable-default-err-languages=English \\\\
–enable-err-languages=English –enable-linux-netfilter –disable-ident-lookups \\\\
–disable-hostname-checks –enable-underscores –enable-snmp –enable-useragent-log \\\\
–disable-wccpv2 –enable-epoll –disable-internal-dns –enable-htcp
Keterangan opsi :
–enable-async-io=16 dan –with-aufs-threads=16 di sesuaikan dengan kemampuan mesin server
Untuk pentium III dengan ram 128 kebawah dapat menggunakan 8
Untuk pentium III ram 128 s/d PIV 1,8 Ghz ram 256 dapat menggunakan 16
Untuk pentium IV ram 256 1,8 s/d PIV 2,4 ram 256 dapat menggunakan 24
Untuk pentium di atasnya atau sekelasnya dapat menggunakan 32
Pilihan diatas hanya sebuah perkiraan karena saya hanya menggunakan P4 ram 256 saja.
Kompile source
#make && make install

Keterangan tambahan :
–enable-auth=basic \\\\
–enable-basic-auth-helpers=NCSA
Digunakan jika proxy squid akan digunakan dengan menggunakan authentikasi user.

Tanda # didepan perintah maksudnya adalah root di dalam bash bukan comment.
Setelah instalasi selesai dan tidak terdapat kesalahan, langkah berikutnya adalah mengatur konfigurasi squid, bukalah file /etc/squid.conf dengan editor teks favorit anda (vi, pico, dll), file ini adalah file konfigurasi squid.

#pico -w /etc/squid.conf (Silahkan edit dengan editor kesukaan anda)
Rubahlah konfigurasi default squid.conf di sesuaikan dengan kebutuhan.
Jangan lupa untuk membuang yang kira kira tidak perlu dan membebani server.

agar squid dapat berjalan transparan maka untuk squid versi 2.6 keatas dapat memberikan opsi :
–> http_port 3128 transparent
di dalam confignya.

Sebelum squid dapat berjalan, anda harus menciptakan direktori swap. Lakukanlah dengan menjalankan perintah :

#/squid/sbin/squid -z

Perintah ini hanya perlu dijalankan satu kali saja ketika squid pertama kali akan dijalankan pada komputer anda.

Cek dulu konfigurasi squid sudah benar atau belum
#/squid/sbin/squid -k parse

Kalo masih terdapat kesalahan atau error silahkan di edit kembali konfigurasinya.

Untuk menjalankan squid gunakan perintah :
#/squid/sbin/squid -sYD

setting transparan iptables nya :
Buat file transparannya biar mudah memanggilnya :
#pico /etc/rc.d/rc.nat
isi dengan :
# Redirect proxy
for SQUID in 80 3128 444 3127 3129
do
iptables -t nat -A PREROUTING -p tcp –dport $SQUID -j REDIRECT –to-ports 3128
done

–> Hal diatas memiliki maksud semua port yang menuju ke 80,3128,444,3127,3129 di redirect ke 3128

Buatlah file agar dapat di eksekusi
#chmod +x /etc/rc.d/rc.nat

Jalankan transparan :
#/etc/rc.d/rc.nat

Untuk membuat squid jalan sendiri setiap kali booting maka tambah kan perintah di atas di /etc/rc.d/rc.local
#pico /etc/rc.d/rc.local
tambahkan baris :
# Squid Proxy Cache
/squid/sbin/squid -sYD
# Transparan Proxy
/etc/rc.d/rc.nat
Sampai disini anda sudah melakukan instalasi, setting dan mengaktifkan squid. Mudah bukan?


About this entry