Jumat, 22 Agustus 2008

Membuat Proxy Server Dengan Linux Slackware

Proxy Server

Squid Proxy Server

Jika Anda sebagai administrator Lab. Komputer (dengan jumlah komputer 40), dan dilengkapi
dengan modem ADSL kecepatan 384kbbs/64kbbs , maka tanpa web-cache,, jumlah bandwith
yang diperlukan untuk berinternet ria adalah 40 x trafik data masing2 komputer.
Jika masing2 browser tiap komputer membuka www.yahoo.com, maka trafik data adalah 40 x 31
KByte.
Squid merupakan proxy server populer di dunia. Banyak fungsi yang diemban oleh proxy server.
Salah satunya adalah sebagai web-cache.
Sebelum memulai, siapa yang akan menjalankan squid ? Tambahkan user dan group baru
bernama squid.
roor@komputer7:~# groupadd squid
Tambahkan user squid:
roor@komputer7:~# adduser squid
Ada 2 model penggunaan paket squid. Kompile dan install dari source. Atau kompile lewat
SlackBuild.

Abdul Rais Husain | ICT Center Majene2

Pertama2 buat direktory cache :

Buat direktory cache squid. (jika install dari paket SlackBUild)
roor@komputer7:~# mkdir /var/log/squid/cache
roor@komputer7:~# chown -hR squid:squid /var/log/squid/cache
Buat direktory cache squid (Jika Instal dari source )
roor@komputer7:~# mkdir /usr/local/squid/var/cache
roor@komputer7:~# chown -hR squid:squid /usr/local/squid/var/cache

From the Source :

…. Ambil squid versi terbaru :
http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE14.tar.gz
Kopikan file tersebut di /usr/share/squid dan unpack source code tersebut.
roor@komputer7:~# tar -xvzf squid-2.6.STABLE14.tar.gz
masuk kedirektory squid dan lakukan konfigurasi
roor@komputer7:~#./configure
Lakukan Make
roor@komputer7:~# make
Install program hasil kompilasi.
roor@komputer7:~# make install
Edit awal konfig squid di /usr/local/squid/etc/squid.conf
cache_mem 256 MB
cache_dir ufs /usr/local/squid/var/cache 1000 16 256
acl our_networks src 192.168.1.0/24 192.168.2.0/24
http_access allow our_networks

Sebagai root lakukan instruksi :
roor@komputer7:~# /usr/local/squid/sbin/squid -Z
Perintah diatas untuk membuat swap cache yang akan digunakan squid.
Sekarang Saatnya mencoba :
roor@komputer7:~# /usr/local/squid/sbin/squid -D
From SlackBuild :

….Jika Anda ingin mengkompile squid lewat script SlackBUild.
Ambil script Slackbuild squid versi terbaru :
http://slackbuilds.org/slackbuilds/12.0/network/squid.tar.gz
Unpack file squid.tar.gz pada direktory tertentu. (misal /usr/src/squid)
Abdul Rais Husain | ICT Center Majene3

Ambil source squid
http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE14.tar.gz
Kopikan file source squid kedalam direktory slackbuild squid (yang baru Anda unpack).
Kemudian jalankan script squid.SlackBuild.
roor@komputer7:~# ./squid.SlackBuild
Setelah proses kompilasi dan pembentukan paket squid selesai, install squid. (Hasil slacbuild
diletakkan di /tmp)
masuk kedirektory /tmp dan lakukan instruksi :
roor@komputer7:~# installpkg squid-*.tgz
Oke ! Paket squid sudah terinstall
Edit awal konfig squid di /etc/squid/squid.conf
cache_mem 256 MB
cache_dir ufs /var/log/squid/cache 1000 16 256
acl our_networks src 192.168.1.0/24 192.168.2.0/24
http_access allow our_networks
Sebagai root lakukan instruksi :
roor@komputer7:~# squid -z
Perintah diatas untuk membuat swap cache yang akan digunakan squid.

Sekarang Saatnya mencoba :

roor@komputer7:~# squid -D
Untuk selanjutnya untuk start squid, Anda dapat menggunakan rc.squid.
Ubah ke 755 permission rc.squid
roor@komputer7:~# chmod 755 /etc/rc.d/rc.squid
Pada waktu booting pertamakali, squid akan diaktifkan.

Blok Situs dan Keyword dengan ACL

Untuk membatasi akses terhadap suatu situs tertentu kadang diperlukan. Semisal di sekolah anda
ingin mem-blok beberapa situs porno dan keyword pencarian.
Pada tulisan ini dibahas mengenai blok terhadap beberapa alamat situs tertentu ataupun blok
pencarian di google dengan menggunakan keyword tertentu.
Disini akan dibahas blok suatu situs dengan menggunakan ACL dari squid.
Berikut ini adalah beberapa langkah-nya :

1. Buat sebuah file daftar alamat situs.

Buat sebuah file yang berisi mengenai alamat dari situs - situs dan keyword yang mau
anda blok. Perhatikan letak dari file tersebut ! (karena anda harus mendefinisikan path
dari file tersebut di squid.conf)

Abdul Rais Husain | ICT Center Majene4
Contoh isi file :
http://xxx.com
http://www.porno.com
sex
seks
sek

2. Tambahkan rule ACL di squid.conf

Misalkan nama file yang baru anda buat tadi “situsterlarang.txt”.
Edit squid.conf anda dan tambahkan beberapa rule di bawah ini :
acl NamaACL url_regex -i “path_dari_file_anda”
contoh :
acl porno url_regex -i “/etc/squid/situsterlarang.txt”
http_access deny NamaACL
contoh :
http_access deny porno
Perhatikan untuk letak dari http_access deny porno. Letakkan baris ini sebelum
http_access deny all
3. Restart squid anda, lalu coba lakukan test dari client

Transparent Proxy

Mengapa Transparent Proxy ?
Mengisikan setting proxy untuk jumlah client yang sedikit mungkin bukan masalah besar, tapi
jika jumlah client yang banyak juga beragamnya browser ada baiknya membuat transparent
proxy, yang memaksa setiap browser client untuk menggunakan proxy.
Tanpa Transparant proxy, besar kemungkinan client dapat mem-bypas proxy (dengan segala
aturannya)untuk melakukan koneksi langsung.
Tambahkan configurasi berikut di squid.conf
Squid versi 2.6
http_port 3128 transparent
Squid versi 2.5
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Konfigurasi tersebut berfungsi jika pada proses kompilasi opsi untuk transparant proxy
diaktifkan, silahkan melihat manual kompilasi squid untuk mengaktifkan fungsi tersebut.
Selanjutnya adalah memaksa akses ke port 80 (http) melalui proxy.
Di command line ketikkan :
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -d 0/0 -p tcp –dport 80 -j
REDIRECT –to 3128
Abdul Rais Husain | ICT Center Majene5

Dengan asumsi bahwa router (gateway) dan proxy server berapa pada mesin linux yang sama,
silahkan menyesuaikan jika sekiranya mesin proxy berbeda dengan router/gateway. Dengan
demikian setiap kali ada akses ke port 80 (http) akan di alihkan ke 3128 (proxy).

SquidNote

1. Kompleksitas.
Ini adalah ‘musuh utama’ . Berhadapan dengan ratusan baris squid.conf. Apa yang Anda
inginkan dari squid ?
Saya mencatat, cukup 4 baris modifikasi dari squid.conf sudah membuat squid Anda
berjalan normal.
o cache_mem 256 MB
Ganti besar memory 1/3 dari kapasitas memory Anda. Memang tidak ada
patokan pasti. Jika Anda punya memory 512MB, dan dikhususkan buat
squid, berjalan di run level 3, mungkin Anda bisa mengganti dengan
400MB Hehehe
o cache_dir ufs /var/log/squid/cache 1000 16 256
Berapa besar kapasitas Hardisk Anda ? Angka 1000 menandakan 1000MB
untuk cache squid di hardisk. Ingin lebih ? Silahkan !
o acl our_networks src 192.168.1.0/24 192.168.2.0/24
Baris di atas menunjukkan bahwa komputer dengan alamat 192.168.1.0
sampai 192.168.1.255 dan komputer dengan address 192.168.2.0 sampai
192.168.2.255 merupakan our_networks.
o http_access allow our_networks
Baris diatas memgatakan, squid hanya mengijinkan cache http pada alamat
yang disebutkan our_networks
2. Identitas.
•?cache_mgr emailku@blablabla.com
Mungkin Anda ingin mengganti Identitas cache_mgr dengan e-mail Anda ?
3. Jalankan squid !.
•?#squid -D
Ini adalah cara ‘kasar’ untuk menjalankan squid. :) Ingat, setiap mengganti
squid.conf restart squid Anda. #squid restart agar konfig baru di terima. Ini juga
cara ‘kasar’ Hehehe
4. Set Browser client Anda !.
Set browser client Anda untuk mengarah ke proxy server. Pada Firefox, Klik Edit–
>Preferences–>Advanced–>Networks–>Settings–>Manual proxy Configuration
Isi dengan IP Proxy server Anda. Isikan juga port proxy (default 3128 8)
Abdul Rais Husain | ICT Center Majene6

Buat admin yang malas

Mengisikan setting proxy untuk jumlah client yang sedikit mungkin bukan masalah besar,
tapi jika jumlah client yang banyak juga beragamnya browser ada baiknya membuat
transparent proxy, yang memaksa setiap browser client untuk menggunakan proxy.
5. Jika Ingin start saat boot !
Letakkan script ini di /etc/rc.d/rc.local
if [ -x /etc/rc.d/rc.squid ]; then
/etc/rc.d/rc.squid start
fi