Linux Inspirations

FreeBSD 6.1 + PF Transparent Proxy + Squid 2.6

Posted on: 6 April, 2007

FreeBSD 6.1 + PF Transparent Proxy + Squid 2.6
Latar Belakang

Seorang teman menginginkan untuk menerapkan transparent proxy untuk semua host yang ada di LAN kantornya, kecuali untuk beberapa host yang memang sangat penting trafiknya untuk tidak dilewatkan ke transparent proxy.

Karena satu hal dan lain sebagainya, susunan jaringan yang berjalan adalah sebagai berikut:

 

Oke, memang tampak aneh karena seharusnya mikrotik menjadi router utama menjadi gateway ke internet sedangkan seharusnya sebuah cache server tidak berada di sana, di posisi paling depan menghadap ke internet. Ceritanya panjang sekali, but whatever it is, yang jadi permasalahan sekarang adalah bagaimana setting cache server untuk jaringan yang agak unik tersebut.

Asumsi

OS yang digunakan adalah FreeBSD 6.x

Langkah-langkah konfigurasi Squid dan PF secara umum tidak akan dibahas di sini, karena bisa didapat dengan search di internet. Yang akan dibahas hanya konfigurasi yang dibahas saja.

Tidak menggunakan server produksi sebagai percobaan

Use with your own cautions!

Setup

Yang pertama terpikirkan oleh saya bahwa saya akan menggunakan versi Squid terbaru untuk software proxy yang akan diinstall. Sebuah proxy/cache server memerlukan sebuah mesin yang cukup powerfull. Demikian juga instalasi ini menggunakan mesin yang cukup kuat untuk dijadikan proxy:

shell> dmesg |less
Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 6.1-RELEASE #0: Fri Jan 12 10:14:59 WIT 2007
root@somewhere:/usr/obj/usr/src/sys/KERNEL-SMP
Timecounter “i8254” frequency 1193182 Hz quality 0
CPU: Intel(R) Xeon(TM) CPU 2.80GHz (2800.11-MHz 686-class CPU)
Origin = “GenuineIntel” Id = 0xf43 Stepping = 3
Features=0xbfebfbff E2,SS,HTT,TM,PBE>
Features2=0x641d>
AMD Features=0x20100000
Logical CPUs per core: 2
real memory = 1073152000 (1023 MB)
avail memory = 1041035264 (992 MB)

Setelah saya lihat mesin diatas cukup bagus untuk proxy, saya melanjutkan ke direktori /usr/ports/www/squid dan menjalankan perintah:
shell> make fetch

Perintah tersebut hanya akan mengambil source Squid yang kemudian akan diletakkan di bawah direktori /usr/ports/distfiles. Waktu saya fetch, saya mendapatkan versi squid-2.6.STABLE9.tar.bz2

Setelah itu file tersebut saya pindah kan ke /usr/local/src, yaitu direktori yang sering saya gunakan untuk menaruh semua file source dan melakukan kompilasi dari sana.

shell> cd /usr/ports/distfiles
shell> mv squid-2.6.STABLE9.tar.bz2 /usr/local/src
shell> cd /usr/local/src
shell> tar -zxvf squid-2.6.STABLE9.tar.bz2
shell> cd squid-2.6.STABLE9
shell> ./configure –prefix=/usr/local/squid –enable-pf-transparent
shell> make && make install clean distclean

Catatan:
Option ./configure di atas bisa disesuaikan dengan kebutuhan masing-masing. Contoh di atas akan menempatkan semua base instalasi di bawah direktori /usr/local/squid. Karena bertujuan untuk digunakan sebagai transparent proxy dengan firewall pf, maka di sini ditambahkan opsi –enable-pf-transparent.

squid.conf

Selanjutnya adalah mengkonfigurasi Squid agar dapat menjalankan fungsinya sebagai transparent proxy. Di sini agak berbeda dengan versi sebelum Squid 2.6.x. Versi yang sebelumnya (Squid 2.5.x kebawah) menggunakan konfigurasi yang nampak seperti:

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Sedangkan pada versi Squid 2.6.x, konfigurasi yang digunakan adalah:

http_port 10.0.0.1:3128 transparent

Baris tersebut mengatakan bahwa daemon Squid dibind ke interface dengan ip address 10.0.0.1 dan port 3128. Jadi jika di scanport di interface lain, port tersebut tidak akan terdeteksi. Sebuah contoh dari konsep Security through obscurity .

Setting PF

Beberapa host di bawah mesin mikrotik sengaja tidak diproxy dengan alasan tertentu, sedangkan selain host-host tersebut, akan dilewatkan proxy. Pada gambar diagram, host-host tersebut dikelompokkan menjadi dua kelompok yaitu Proxied Hosts dan Non-Proxied Hosts (terdiri dari host dengan ip address: 192.168.1.84, 192.168.1.106, dan 192.168.1.100). Jadi konfigurasinya adalah:

table <nonprox> {192.168.1.100,192.168.1.106, 192.168.1.84}
table <prox> { 192.168.1.0/16 }
set skip on lo0

rdr pass on $extif proto tcp from !<nonprox> to !<lan> port {80,8080,3128} \
-> 10.0.0.1 port 3128 #transparent proxy
nat from { 192.168.1.0/16 } to !<lan> -> ($extif)

….dst….

Source : https://www.otakudang.org

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

ABout Me!


WordPress ini sengaja saya buat untuk menulis apa yang telah saya lakukan agar saya selalu ingat, tulisan yang saya buat kebanyakan dalam bentuk tutorials configurasi linux dari hasil uji coba saya dan sebahagian di kutip dari beberapa website lain yang saya anggap perlu untuk saya tulis disini. Mudah-mudahan tutorial yang saya buat ini berguna buat pencinta linux yang lain. Salam Sejahtera.

Blog Stats

  • 120,467 hits

Linux Inspiration

%d blogger menyukai ini: