1. Proxy Server
Proxy server sudah menjadi hal yang popular di
kalangan para pengguna internet saat ini, berkaitan dengan kemampuannya untuk
menghemat bandwith, meningkatkan keamanan, dan menambah kecepatan web-surfing.
Dalam jaringan yang menerapkan sistem proxy, hubungan komunikasi ke internet
dilakukan melalui sistem pendelegasian. Komputer-komputer yang dapat dikenali
oleh internet bertindak sebagai wakil.
2. Proxy Server
Squid
Proxy server yang
cukup popular saat ini adalah squid, karena selain gratis juga mendukung ICP.
ICP digunakan untuk pertukaran data tentang suatu URL dengan cache-cache
lainnya. Secara sederhana, squid dapat dikatakan sebagai software yang
diaplikasikan untuk membuat http atau ftp cache. Cara kerja squid dapat
dianalogikan seperti browser (IE/Opera/Netscape) yang menyimpan data suatu site
di hardisk sehingga untuk menampilkan site yang sama tinggal mengambil data di
cachenya.
Squid dapat
dikonfigurasikan sebagai :
§ Mode httpd-accelerator untuk meningkatkan
performansi web server kita.
§ Proxy caching-server agar seluruh user dalam
jaringan kita dapat menggunakan squid untuk mengakses internet.
Pada konfigurasi
pertama, squid server berlaku seperti reverse proxy-cache, squid akan menerima
permintaan client, memberikan data di cachenya, jika tidak ada akan mengambil
langsung dari server aslinya (reverse proxy).
Sebagai proxy cache
server, kita dapat mengontrol secara keseluruhan kinerja jaringan kita dan
memberlakukan beberapa aturan dalam
memberkian data yang dapat dilihat, diakses atau didownload. Kita juga dapat
mengontrol penggunaan bandwith, waktu koneksi dan sebagainya. Sebuah proxy
cache dapat dikonfigurasikan sebagai
Squid dapat menghemat bandwith dapat diterangkan sebagai berikut :
Misal suatu host
memin ta www.detik.com,
maka squid akan mengambil dan meletakkannya di hardisk server untuk selanjutnya diambil oleh host yang bersangkutan. Bila
ada host lain yang meminta data yang sama, server tidak perlu lagi
mendownloadnya dari www.detik.com, tapi
cukup memberikan data yang ada di cachenya sehingga akan lebih cepat dan
menghemat bandwith. Untuk lebih jelasnya perhatikan gambar berikut ini:
Gambar Posisi
host di internet
Selain itu, squid dapat melakukan filtering, yaitu
squid dapat memblok permintaan cliet terhadap URL-URL tertentu, sehingga
pengelola jaringan dapatlebih santai tanpa khawatir adanya penyalahgunaan yang
tidak dikehendaki. Dalam squid dikenal istilah parent dan sibling. Parent akan
mengambil langsung ke web site yang diminta, sedangkan sibling akan mencarinya
dulu ke parent. Bila tidak ada, maka sibling mencarinya langsung ke web site
yang bersangkutan.
Sebuah proxy cache dapat dikonfigurasikan untuk
berjalan standalone server atau sebagai hierarki cache dengan dengan
proxy-proxy lainnya, yang akan kita bahas lebih lanjut berikut ini.
§
Standalone
server, tanpa parent dan sibling
Ini merupakan konfigurasi yang paling sederhana
yang biasa dipakai oleh ISP (Internet Service Provider) dan warung
internet dimana squid server local akan langsung mencari ke web server www.detik.com untuk memenuhi permintaan client
bila data tidak terdapat di cache.
§ Sibling tanpa parent
Biasanya konfigurasi ini dipakai untuk jaringan
yang tidak terlalu besar. Permintaan oleh klien pada suatu URL akan diterima
lokal yang akan mencarinya ke sibling , bila tidak ada, lokal akan langsung
mencarinya langsung ke webserver yang bersangkutan.
§ Parent dan sibling
Biasanya konfigurasi ini diterapkan untuk jaringan
yang besar. Efisiensi jaringan ini cukup baik, karena yang bekerja untuk
mendapatkan halaman web keluar jaringan hanyalah parent sisanya sibling dan
para client tidak dapat memperolehnya secara langsung (dengan firewall). Klien
yang meminta halaman web www.detik.com akan
diterima squid server lokal yang kemudian akan memeriksa cachenya, bila tidak
ada dia akan mencari ke sibling, bila ada sibling akan memberikannya ke lokal,
namun bila tidak ada lokal akan meminta ke parent. Sebagai parent ia harus
melayani permintaan ini. Walaupun ia tidak memiliki halaman yang diminta, ia
harus memenuhinya dengan mengambil langsungke www.detik.com. Setelah itu
permintaan dikembalikan ke lokal dan akhirnya ke klien.
3. Hierarki Squid
Server proxy dapat dihubungkan dengan server-server
proxy lain dan membentuk hierarki seperti pada sebuah organisasi. Jika server
proxy bergabung dalam sebuah hierarki, sebuah server proxy bisa memilih untuk
mengambil dokumen yang diinginkan dari server proxy lain dalam hierarki atau
mengambil dari server asal. Hierarki ini terdiri dari cache pada tingkat
nasional, regional, dan organisasi. Dalam prototipe ini cache pada tingkat
nasional melayani permintaan akses untuk domain negara tersebut. Misalnya
terdapat permintaan dokumen dari URL http://www.republika.co.id yang berada di
bawah domain id (Indonesia ),
maka dokumen tersebut diminta dari cache tingkat nasional di Indonesia.
Gambar 4. Prototipe hierarki cache
4. Instalasi Squid
Untuk mendapatkan source squid terbaru dapat
download di ftp://squid.nalr.fr/squid/
atau homepage squid http://www.squid-cache.org/.
Dalam modul ini kita akan melakukan instalasi secara manual yaitu
squid-2.3.STABLE2-src.tar.gz. Sebelum instalasi pastikan source ini sudah ada
(misal di direktori /usr/local).
1.
Masuklah ke
direktori /usr/local/ dan ekstark source dengan perintah:
#
cd /usr/local
# tar zxvf squid-2.3.STABLE2-src.tar.gz
2.
Squid proxy-server
tidak dapat berjalan sebagai sebagai super user root, oleh karena itu kita
harus membuat account khusus tanpa shell untuk menjalankan Squid Proxy Server :
#
useradd –d /cache/ -r –s /dev/null 2>&1
#
mkdir /cache/
# chown –R squid.squid /cache/
Perintah pertama akan menambahkan user “squid” ke
file /etc/passwd, lalu membuat direktori “/cache” (jika belum ada) kemudian
mengubah kepemilikan direktori “/cache”
ke user “squid”.
3.
Setelah proses
ekstarksi akan terbentuk direktori squid-2.3.STABLE2-src, masuk ke direktori
tersebut dan lakukan konfigure otomatis yang akan memberikan output berupa file
Makefile.
# ./configure --prefix=/usr/local/squid
4.
Selanjutnya lakukan
kompilasi dan install sbb:
#
make
# make install
Hasil instalasi bisa dilihat di direktori
/usr/local/squid. Di dalamnya terdapat direktori /bin, /logs dan /etc.
5. Konfigurasi Squid
Setelah proses instalasi selesai, langkah selanjutnya
adalah mengkonfigurasi squid. File
konfigurasi ini biasanya terletak pada direktori /usr/local/squid/etc. Squid
biasanya sudah menyediakan file konfigurasi default yaitu squid.conf.default,
yang berisi parameter-parameter squid secara lengkap, berikut deskripsi serta
contoh penggunaannya.
5.1. Konfigurasi file Squid.conf
Dalam
direktori /usr/local/squid/bin akan terdapat file-file sbb:
squid program utama
dnsserver server
untuk melayani request pemetaan
ip <-> nama tiap child proses squid
cachemgr program
tambahan untuk memantau server secara otomatis
runchace script untuk
memulai squid
Sedangkan
dalam direktori /usr/local/squid/etc akan terdapat file-file konfigurasi sbb :
squid.conf.default file konfigurasi squid default
mime.conf.default file
konfigurasi mime default
Sedangkan file-file log akan terdapat pada
direktori /usr/local/squid/logs, yaitu :
access.log mencatat log aktivitas-aktivitas
yang dilakukan oleh klien.
cache.log mencatat
log yang dicatat oleh cache server.
store.log mencatat setiap
log yang berhubungan dengan database.
5.2. Konfigurasi Mode Httpd-Accelerator
Berikut kita akan membahas bagian-bagian yang
perlu diedit pada file squid.conf :
http_port 80
Option ini menyatakan nomor port
yang akan digunakan Squid untuk permintaan HTTP client. Jika diset 80, client
akan seolah-olah terkoneksi dengan Webserver Apache.
icp_port 0
Option ini
menentukan nomor port tempat Squid mengirim dan menerima permintaan ICP dari
cache lainnya. Untuk mendisable kita set 0, karena kita mengkonfigurasi Squid
sebagai mode accelerator Web Server. ICP diperlukan hanya pada multilevel cache
dengan multilevel siblings dan parent.
acl QUERY urlpath_regex cgi-bin
\? and no_cache deny QUERY
Option ini menyatakan
objek yang tidak pernah dicached.
cache_mem 16 MB
Option ini menyatakan jumlah memori (RAM) yang
digunakan untuk caching. Squid menggunakan memori lebih besar dari nilai yang
tertera. Sebaiknya jumlah ini sepertiga dari memori total.
cache_dir ufs /cache 200 16 256
Option
“cache_dir” menyatakan jenis sistem storage yang digunakan (ufs). Space disk
sebesar 200 MB, jumlah subdirektori tingkat pertama dalam direktori cache
adalah 16 dan jumlah subdirektori tingkat kedua yang dibuat dalam direktori cache
tingkat pertama adalah 256. Dalam mode accelerator hal ini berkaitan dengan
besar dan jumlah file yang ingin di tampilkan pada webserver Apache.
emulate_httpd_log on
Jika
option ini dibuat “ON”, Squid akan membuat format file log yang sama dengan
Webserver Apache. Hal ini berguna terutama jika kita ingin menggunakan program
seperti Webalizer.
redirect_rewrites_host_header off
Jika
diset “OFF”, Squid tidak akan menulis ulang suatu host.
replacement_policy GDSF
Option “replacement_policy” menyatakan objek dalam
cache yang akan dihapus Squid saat proxy membutuhkan ruang disk yang lebih
banyak.
acl all src 0.0.0.0/0.0.0.0 and http_access allow all
Options
“acl” and “http_access” mengatur batasan akses terhadap Proxy server Squid.
Pada contoh di atas, kita berarti mengijinkan setiap orang terkoneksi lewat
proxy.
cache_mgr admin
Option
“cache_mgr” menyatakan alamat e-mail administrator yang bertanggung-jawab pada
server.
cache_effective_user squid and cache_effective_group squid
Options
ini menyatakan UID/GID dimana cache berjalan.
httpd_accel_host 167.205.206.100 and httpd_accel_port 80
Dari
option ini, Squid akan mengetahui nomor port HTTP server yang sebenarnya dan IP
address yang digunakan. Pada contoh di atas IP address webserver adalah
167.205.206.100 pada port 80.
log_icp_queries off
Jika kita tidak
menggunakan ICP sebaiknya option ini diset “OFF”.
cachemgr_passwd my-secret-pass all
Option
“cachemgr_passwd” menyatakan password yang diperlukan untuk mengakses utilitas
program “cachemgr.cgi”. Isilah <my-secret-pass> dengan password yang
diinginkan. Keyword <all> akan membuat password yang sama untuk semua
buffered_logs on
Option
“buffered_logs” yang diset “ON” dapat
menambah kecepatan penulisan beberapa file log.
5.3. Konfigurasi Mode Proxy-Caching Mode
Pada proxy-caching
server, semua user dalam network kita menggunakan Squid untuk mengakses
Internet. Tentu saja kita dapat
menerapkan beberapa aturan dan menghemat bandwith. Konfigurasi Squid sebagai
proxy-caching mode tidak jauh berbeda dengan mode sebelumnya, hanya mungkin ada
beberapa option yang diubah atau ditambahkan. Perbedaan utama dengan mode
sebelumnya adalah adanya access control list (ACL). ACL berguna untuk
merestriksi akses berdasarkan IP address asal (src), IP address tujuan (dst),
domain asal, domain tujuan, berdasarkan waktu akses, dsb. Konfigurasi ACL yang
umum digunakan adalah sebagai berikut :
§
Akses berdasarkan IP address asal
acl [alamat] src
a.b.c.d/e.f.g.h
§
Akses berdasarkan IP address tujuan
acl [alamat] dst
a.b.c.d/e.f.g.h
§
Akses berdasarkan domain asal
acl [alamat] srcdomain
[nama.domain]
§
Akses berdasarkan domain tujuan
acl [alamat] dstdomain
[nama.domain]
Untuk lebih jelasnya
perhatikan contoh isi file konfigurasi proxy-cache server berikut ini :
# pico squid.conf
icp_port 0
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 16 MB
cache_dir ufs /cache 200 16 256
redirect_rewrites_host_header off
replacement_policy
GDSF
Misalkan kita ingin
agar proxy server Squid hanya membolehkan akses untuk client dalam jaringan kita
dan proxy server itu sendiri dengan menggunakan port-port tertentu yaitu 80
(http), 21 (ftp), 23 (telnet) 25 (smtp), dan 443 (https). Selain itu, proxy
Squid akan meolak setiap IP address asal dan semua port yang mencoba
terkoneksi.Bila jaringan kita menggunakan IP Private kelas C 192.168.1.0 kita dapat membuat konfigurasi sbb :
acl localnet src
192.168.1.0/255.255.255.0
acl localhost src
127.0.0.1/255.255.255.255
acl Safe_ports port 80
443 210 119 70 21 1025-65535
acl CONNECT method
CONNECT
acl all src
0.0.0.0/0.0.0.0
http_access allow
localnet
http_access allow
localhost
http_access deny
!Safe_ports
http_access deny CONNECT
http_access deny all
cache_mgr admin@nama.domain
cache_effective_user squid
cache_effective_group squid
log_icp_queries off
cachemgr_passwd my-secret-pass all
buffered_logs on
Sedangkan
option-option yang lain sama seperti yang sudah dijelaskan untuk mode
sebelumnya.
6. Menjalankan
Squid
Setelah membuat
konfigurasi Squid lewat file squid.conf, selanjutnya kita harus menstart squid
agar server itu dapat berjalan dengan baik. Proses squid sebaiknya dijalankan
oleh user squid dan bukan oleh root demi keamanan.
• To run Squid server in
httpd-accelerator mode, the following files are required and must
be created or copied to
the appropriate directories on your server.
Copy the squid.conf file
in the “/etc/squid/” directory.
Copy the squid script
file in the “/etc/rc.d/init.d/” directory.
Copy the squid file
in the “/etc/logrotate.d/” directory.
• To run Squid server in
proxy-caching mode, the following files are required and must be
created or copied to the
appropriate directories on your server.
Copy the squid.conf file
in the “/etc/squid/” directory.
Copy the squid script
file in the “/etc/rc.d/init.d/” directory.
Copy the squid file
in the “/etc/logrotate.d/” directory.
Create the squid script
file (touch /etc/rc.d/init.d/squid) and add:
#!/bin/bash
#
squid This shell script takes care of starting and stopping
#
Squid Internet Object Cache
#
#
chkconfig: - 90 25
#
description: Squid - Internet Object Cache. Internet object caching is \
#
a way to store requested Internet objects (i.e., data available \
#
via the HTTP, FTP, and gopher protocols) on a system closer to the \
#
requesting site than to the source. Web browsers can then use the \
#
local Squid cache as a proxy HTTP server, reducing access time as \
#
well as bandwidth consumption.
#
pidfile: /var/run/squid.pid
# config:
/etc/squid/squid.conf
Untuk menjalankan squid
Pertama-tama kita harus membuat user
squid yang akan menjalankan proses Squid proxy server. Loginlah sebagai user
squid dan lakukan perintah berikut ini :
# squid –z
Perintah ini akan membuat
direktori cache sebanyak dan sedalam yang telah dideklarasikan pada file
squid.conf. Lalu jalankan program squid :
# /usr/loacl/squid/bin/squid
–sY &
Perhatikan pesan yang
muncul pada console, dan perhatikan juga file /usr/local/squid/log/cache.log
barangkali terjadi suatu kegagalan atau error. Agar saat sistem direboot
program Squid akan langsung berjalan secara otomatis, tambahkan baris berikut
ini pada file /etc/rc.d/rc.local/ :
# pico /etc/rc.d/rc.local
Tambahlah baris-baris
berikut ini :
/usr/local/squid/bin/squid
–sY &
Tidak ada komentar:
Posting Komentar