PENINGKATAN PERFORMA PROXY SERVER

advertisement
PENINGKATAN PERFORMA PROXY SERVER BERBASIS SQUID
DENGAN TUNING PARAMETER KONFIGURASI
Suryadi Syamsu
Jurusan Teknik Informatika, STMIK AKBA, Makassar
e-mail : [email protected]
Telp : 0411-588371
Abstrak
Pada umumnya sebuah proxy server harus memiliki performansi yang tinggi, agar dapat melayani
permintaan dari sisi Klien yang akan mengakses internet. Penggunaan proxy server saat ini biasanya
masih menggunakan konfigurasi standar yang ada pada proxy server tersebut. Konfigurasi ini dapat
diatur lagi sedemikian rupa sehingga tercipta suatu proxy server yang handal dan memiliki
performansi yang lebih baik. Desain konfigurasi dilakukan dengan mengatur atau mengubah
(tuning) beberapa parameter yang ada dalam file konfigurasi aplikasi proxy server dan disesuaikan
dengan kebutuhan pengguna di jaringan. Kelebihan dari proxy server yang telah di tuning ini di
harapkan mendapatkan hasil ataupun performa yang lebih baik dibandingkan dengan proxy server
dengan pengaturan yang masih standar. Aplikasi yang akan digunakan untuk membuat proxy server
adalah squid yang berjalan pada sistem operasi Linux debian 5.0. Aplikasi squid paling banyak di
gunakan di jaringan lokal maupun internet baik untuk menyimpan cache web, redirect dan blokir
beberapa website, manejemen bandwidth hingga ke pembatasan akses.
Kata Kunci : proxy server, squid, tuning, cache, performansi, internet
1. Pendahuluan
Kebutuhan akan akses internet dewasa ini
sangatlah penting dimana setiap orang sudah
mulai mencari informasi sebanyak mungkin
melalui internet atau melakukan aktifitas
chating serta mengirim dan menerima email.
Informasi yang sering di cari di internet baik
berupa ilmu pengetahuan, berita, artikel dan
jurnal sering kali dilakukan dengan
menggunakan
sebuah
aplikasi
yang
dinamakan web browser.
Ketika kita melakukan koneksi ke internet
dan melakukan aktifitas browsing, kadang
kala koneksi menjadi lambat atau load sebuah
gambar dan video yang berasal dari internet
terasa berat ketika diakses lewat internet.
Berawal dari permasalahan tersebut di buatlah
sebuah aplikasi berbasis server yang bisa
mengatasi kelambatan pada akses web di
jaringan yang dinamakan Squid. Squid
berfungsi untuk menyimpan halaman website
baik itu berupa teks, gambar maupun video
dan diletakkan di dalam sebuah server.
Sehingga pada saat kita ingin mengakses
internet, sebagian teks, gambar atau video
yang sudah pernah di akses sebelumnya itu
akan tersimpan dalam Squid atau proxy server
dan akses internet menjadi cepat karena
sebagian konten tidak perlu lagi di ambil dari
internet tetapi cukup melalui proxy server di
jaringan lokal.
Penggunaan proxy server di jaringan dapat
menghemat bandwidth internet karena
sebagian konten bisa diambil di proxy server
tanpa perlu lagi mengambil di internet. Dari
sisi perfoma bisa ditingkatkan dengan cara
mengatur beberapa parameter-parameter yang
ada pada file konfigurasi squid. Selain
penghematan bandwidth, masih banyak fitur
lain yang ada pada squid seperti autentikasi,
akses kontrol berdasarkan waktu, pengguna
komputer dan lain-lain.
2. Perumusan Masalah
Pada dasarnya konfigurasi standar pada
squid atau proxy server cukup dengan
mengaktifkan access control list, http access,
http port dan transparant proxy. Namun
41
seiring dengan kebutuhan akan kecepatan dan
efektifitas dalam menggunakan akses internet
sehingga
kita
harus
mengkonfigurasi
beberapa paremeter untuk lebih meningkatkan
performa proxy server meskipun konfigurasi
stander pada proxy server tersebut sudah
cukup untuk menjalankan fungsi proxy server
sebagai web cache.
3. Tujuan Penelitian
Tujuan dari tulisan ini adalah merancang
sebuah proxy server berbasis squid untuk
melaksanakan fungsinya sebagai web cache di
jaringan lokal dan meningkatkan performa
dengan mengubah beberapa parameter pada
file konfigurasi squid.
4. Tinjauan Pustaka
Squid adalah sebuah daemon yang
digunakan sebagai proxy server dan web
cache. Squid memiliki banyak jenis
penggunaan, mulai dari mempercepat server
web dengan melakukan caching permintaan
yang berulang-ulang, caching DNS, caching
situs web, dan caching pencarian komputer di
dalam jaringan untuk sekelompok komputer
yang menggunakan sumber daya jaringan
yang sama, hingga pada membantu keamanan
dengan cara melakukan penyaringan (filter)
lalu lintas. Meskipun seringnya digunakan
untuk protokol HTTP dan FTP, Squid juga
menawarkan dukungan terbatas untuk
beberapa
protokol
lainnya
termasuk
Transport Layer Security (TLS), Secure
Socket Layer (SSL), Internet Gopher, dan
HTTPS. Versi Squid 3.1 mencakup dukungan
protokol IPv6 dan Internet Content
Adaptation Protocol (ICAP).
Squid pada awalnya dikembangkan oleh
Duane Wessels sebagai "Harvest object
cache", yang merupakan bagian dari proyek
Harvest yang dikembangkan di University of
Colorado at Boulder. Pekerjaan selanjutnya
dilakukan hingga selesai di University of
California, San Diego dan didanai melalui
National Science Foundation. Squid kini
hampir secara eksklusif dikembangkan
dengan cara usaha sukarela.
Squid umumnya didesain untuk berjalan
di atas sistem operasi mirip UNIX, meski
Squid juga bisa berjalan di atas sistem operasi
Windows. Karena dirilis di bawah lisensi
GNU General Public License, maka Squid
merupakan perangkat lunak bebas.
Caching merupakan sebuah cara untuk
menyimpan objek-objek Internet yang
diminta (seperti halnya data halaman web)
yang bisa diakses melalui HTTP, FTP dan
Gopher di dalam sebuah sistem yang lebih
dekat dengan situs yang memintanya.
Beberapa penjelajah web dapat menggunakan
cache Squid lokal untuk sebagai server proxy
HTTP, sehingga dapat mengurangi waktu
akses dan juga tentu saja konsumsi
bandwidth. Hal ini sering berguna bagi para
penyedia
layanan
Internet
untuk
meningkatkan kecepatan kepada para
pelanggannya, dan LAN yang membagi
saluran Internet. Karena memang bentuknya
sebagai proxy (ia berlaku sebagaimana
layaknya klien, sesuai dengan permintaan
klien), web cache bisa menyediakan
anonimitas dan keamanan. Tapi, web cache
juga bisa menjadi masalah yang signifikan
bila melihat masalah privasi, karena memang
ia dapat mencatat banyak data, termasuk URL
yang diminta oleh klien, kapan hal itu terjadi,
nama dan versi penjelajah web yang
digunakan klien serta sistem operasinya, dan
dari mana ia mengakses situs itu.
Selanjutnya, sebuah program klien
(sebagai contoh adalah penjelajah web) bisa
menentukan secara ekplisit proxy server yang
digunakan
bila
memang
hendak
menggunakan proxy (umumnya bagi para
pelanggan ISP) atau bisa juga menggunakan
proxy tanpa konfigurasi ekstra, yang sering
disebut sebagai "Transparent Caching", di
mana semua permintaan HTTP ke jaringan
luar akan diolah oleh proxy server dan semua
respons disimpan di dalam cache. Kasus
kedua umumnya dilakukan di dalam
perusahaan dan korporasi (semua klien berada
di dalam LAN yang sama) dan sering
memiliki masalah privasi yang disebutkan di
atas.
42
Squid memiliki banyak fitur yang bisa
membantu melakukan koneksi secara anonim,
seperti memodifikasi atau mematikan
beberapa field header tertentu dalam sebuah
permintaan HTTP yang diajukan oleh klien.
Saat itu terpenuhi, apa yang akan dilakukan
oleh Squid adalah tergantung orang yang
menangani komputer yang menjalankan
Squid. Orang yang meminta halaman web
melalui sebuah jaringan yang secara
transparan yang menggunakan biasanya tidak
mengetahui
bahwa
informasi
semua
permintaan HTTP yang mereka ajukan dicatat
oleh Squid.
Platform yang didukung Squid dapat
berjalan di atas sistem-sistem operasi berikut :
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
AIX
BSDI
Digital Unix
FreeBSD
HP-UX
IRIX
Linux
Mac OS X
NetBSD
NeXTStep
OpenBSD
SCO OpenServer
Solaris
UnixWare
Windows
-
sistem operasi Linux debian 5.0
Aplikasi squid versi 2.7 stable3
b. Implementasi sistem
o Instalasi paket proxy server
Langkah pertama yang akan dilakukan
untuk merancang dan mengimplementasikan
sebuah proxy server adalah dengan
menginstal
paket
squid
beserta
dependensinya. Pada sistem operasi linux
debian, instalasi paket squid di lakukan di
terminal console dengan perintah apt-get
install squid.
Gambar 1. Instal paket squid
Pada langkah instalasi muncul
peringatan untuk melanjutkan atau
tidak, tekan tombol Y untuk
melanjutkan proses instalasi paket
squid.
5. Pembahasan
a. Kebutuhan sistem
Untuk merancang sebuah proxy server
dibutuhkan
sebuah
komputer
dengan
spesifikasi
sebagai berikut :
-
Prosessor Intel Dual Core 2,3 GHz
Memori RAM 1 GB
Hard disk 40 GB
Ethernet Card 10/100 Mbps
Adapun kebutuhan perangkat lunak
untuk merancang sebuah proxy server Dengan
performa
yang akan di tingkatkan adalah
sebagai berikut :
Gambar 2. Proses instalasi paket squid
o Konfigurasi standar proxy server
Sebelum
kita
memulai
kofigurasi
43
standar proxy server, terlebih dahulu harus di
pastikan IP address proxy server bisa di akses
di jaringan. Konfigurasi IP address pada
sistem operasi linux debian bisa di lakukan di
dalam file interfaces yang berada pada
direktori /etc/network/interfaces.
Adapun perintah nya sebagai berikut :
nano /etc/network/interfaces. Masukkan
beberapa baris berikut ini kedalam file
tersebut.
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
gateway 192.168.1.1
Untuk penomoran IP address pada
proxy server disesuaikan dengan network
yang diterapkan pada jaringan.
parameter ini karena secara default
networknya adalah Private network
seperti beberapa baris dibawah ini.
acl localnet src 10.0.0.0/8
#
RFC1918 possible internal network
acl localnet src 172.16.0.0/12
#
RFC1918 possible internal network
acl localnet src 192.168.0.0/16 #
RFC1918 possible internal network
o http_access, Secara default tidak aktif
sehingga untuk mengaktifkan cukup
dengan menghapus tanda pagar didepan
kata http_access seperti di bawah ini.
#http_access allow localnet menjadi
http_access allow localnet
Parameter http_access saling terkait
dengan acl, sebagai contoh acl localnet
menandakan bahwa nama acl adalah
localnet dan http_access allow localnet
menandakan bahwa acl dengan nama
localnet ini akan di ijinkan untuk di
akses. Jika kata allow diganti dengan
kata deny maka acl dengan nama
localnet akan di blokir oleh proxy
server.
o http_port, paremeter ini secara default
aktif karena baris ini mendefinisikan
port yang akan di gunakan oleh proxy
server. Tetapi ada beberapa option pada
parameter ini yang biasa ditambahkan
agar semua klien yang akan mengakses
internet dipaksa untuk melewati proxy
server.
Gambar 3. Konfigurasi IP Address
Langkah
Selanjutnya
adalah
melakukan konfigurasi standar pada proxy
server dengan mengubah beberapa parameter
di /etc/squid/squid.conf dengan perintah nano
/etc/squid/squid.conf.
Parameter
standar
proxy server adalah sebagai berikut :
o acl network, atau Access Control List
secara default sudah aktif atau dengan
kata lain kita tidak perlu mengubah
http_port 3128 menjadi http_port 3128
transparent
parameter di atas menunjukkan port
yang akan digunakan oleh proxy server
adalah 3128 dengan option transparent.
Untuk option transparent hanya bisa
berfungsi apabila di proxy server sudah
di tambahkan rule iptables untuk
memaksa semua trafik web yang
melalui port 80 agar melewati proxy
server. Contoh script iptables sebagai
berikut.
44
iptables -A PREROUTING -t nat -j
REDIRECT -p tcp -s 192.168.1.0/24 -d
0/0 --dport 80 --to-ports 3128
-
Tuning
server
parameter
konfigurasi
proxy
Tuning parameter squid sangat
berpengaruh pada performa proxy server.
Adapun beberapa
parameter yang bisa
dimanfaatkan untuk peningkatan performa
adalah sebagai berikut.
o hosts_file /etc/hosts, Secara default
tidak aktif dan untuk mengaktifkan
cukup dengan menghapus tanda pagar
di depan baris hosts_file /etc/hosts.
Option ini memerintahkan squid untuk
melihat entri yang ada di /etc/hosts,
Untuk alamat hosts yang sering diakses
atau alamat situs lokal dalam intranet
atau
local
network,
hendaknya
dituliskan pada file /etc/hosts, karena
mempercepat akses ke nomor IP yang
dituliskan pada file tersebut.
o dns_nameservers
208.67.222.222
208.67.220.220, Secara default tidak
aktif dan untuk mengaktifkan dengan
menuliskan baris dns_nameservers
spasi IP DNS yang berasal dari provider
atau internet. Option ini akan
menghentikan sementara koneksi ketika
melakukan DNS lookup.
o cache_replacement_policy
heap
LFUDA, Secara default aktif tetapi
menggunakan algoritma LRU. Option
ini adalah mekanisme penghapusan
cache yang tersimpan dalam hard disk
proxy server. squid memiliki metode
penghapusan cache object dengan
beberapa algoritma penghapusan antara
lain :
 LRU (Least Recently Used) yaitu
metode
penghapusan
object
berdasarkan waktu kapan object
tersebut terakhir diakses. Semakin
lama
(besar)
waktunya,
kemungkin dihapus juga akan
semakin besar.
 LFUDA (Least Frequently Used
with Dynamic Aging) yaitu
metode
penghapusan
objek
berdasarkan kepopuleran, Jadi
object yang tidak populer atau
jarang diminta (request) maka
akan mendapatkan prioritas untuk
dihilangkan / dihapus.
 GDSF
(Greedy-Dual
Size
Frequency)
yaitu
metode
penghapusan object berdasarkan
ukuran. Jadi object yang memiliki
ukuran lebih besar maka akan
mendapatkan prioritas untuk
dihapus.
o Maximum_object_size
20 MB,
secara default aktf dengan nilai size
4096 KB. Option ini bertujuan untuk
menentukan kapasitas maksimal
object yang bisa ditampung oleh
proxy server. Karena sebelumnya di
bagian
cache_replacement_policy
kita memilih option heap LFUDA
maka nilai size nya harus dinaikkan
diatas nilai default dan tidak perlu
terlalu besar karena lebih baik
melakukan proses cache pada object
kecil namun sering diakses oleh user,
daripada menyimpan object besar
namun hanya diakses oleh 4 orang
user.
o Cache_swap_low 90, secara default
aktif dengan nilai persentase sebesar
90%. Option bertujuan untuk
menentukan pembersihan cache pada
hard disk.sebagai contoh misalnya
kita memiliki 10 GB untuk cache
squid maka pada pengggunaan 9 GB
akan dlakukan pembersihan cache
lama pada squid.
o Cache_swap_high 95, secara default
aktif dengan nilai persentase sebesar
95%. Pada option ini akan membuat
sisi agresif Squid akan bekerja.
Begitu mencapai kondisi nilai 95%
dari kapasitas, maka squid akan
melakukan pembersihan cache.
Disarankan untuk tidak disetting
diatas 95% dan sesuaikan dengan
replacement policy yang sudah diatur
sebelumnya.
45
o maximum_object_size_in_memory
50 KB, secara default aktif dengan
nilai 8 KB. Pada option ini
direkomendasikan
untuk
memberikan nilai rendah. File
berukuran besar akan menghabiskan
sumberdaya RAM Anda, dengan
memberikan ukuran byte yang tepat
akan dapat memudahkan situasi
swap-in dan swap-out antara cache
pada memori dan disk.
o cache_dir aufs /var/spool/squid
10000 16 256, secara default aktif
dengan standar ufs. Pada option ini
Rekomendasi yang sangat disarankan
adalah menggunakan “aufs“, dengan
format ini cache akan menggunakan
format standar squid “ufs“, namun
ditambahkan fasilitas async-I/O.
10000 berarti kapasitas cache yang
bisa ditampung oleh squid dalam
satuan MB, 16 adalah jumlah
kedalaman folder dan 256 berarti
jumlah file cache untuk setiap folder.
o
cache_mem 64 MB, secara default
aktif dengan kapasitas memori 8
MB. Pada option ini jangan
mengatur cache_mem terlalu besar.
Cache_mem menunjukkan jumlah
maksimal RAM yang digunakan oleh
squid untuk menyimpan obyek di
memori. Squid membutuhkan RAM
sekitar 100 MB per 1 GB file cache.
Jadi, jika kita memiliki 10 GB file
cache, maka squid membutuhkan
RAM minimal 1 GB.
o memory_pools off, secara default
aktif dengan posisi On. Pada saat
rutinitas squid menurun atau tidak
ada aktifitas, squid akan melepaskan
object yang tersimpan pada RAM
untuk diletakkan pada storage.
o Quick_abort_min 0 kB, secara
default aktif dengan nilai 16 KB.
Pada option ini dengan setting 0 KB
akan memberikan optimasi squid
lebih baik bagi user yang tiba-tiba
membatalkan request karena akan
menon-aktifkan pengiriman data
pada jaringan yang akhirnya dapat
mengoptimalkan bandwidth.
o Quick_abort_max 0 KB, secara
default aktif dengan nilai 16 KB.
Pada option ini sama dengan
quick_abort_min tapi dengan kondisi
agresif sebagai contoh misalnya user
yang tidak sabar pada proses request
akan dengan cepat membatalkan
prosesnya, baik itu browsing maupun
downloading. Dengan memberikan
setting 0 KB akan menghentikan
Squid untuk tidak melanjutkan
prosesnya pada situs yang diminta.
o client_db off, secara default aktif
dengan kondisi On. Pada option ini
jika diaktifkan, maka Squid akan
melakukan
proses
perhitungan
statistik pada akses user. Layanan ini
bertujuan membatasi jumlah request
pada klien yang melakukan request.
Hal ini bisa membebani memori,
maka sebaiknya dinonaktifkan.
o buffered_logs on, secara default
tidak aktif. Pada option ini jika
diaktifkan maka Buffer akan ditulis
pada file Log, selain akan
mempermudah akses berikutnya,
juga memberikan optimasi kepada
server squid yang lebih baik.
o half_closed_clients
off,
secara
default aktif. Pada option ini Squid
akan menonatifkan koneksi pada
klien yang lama tidak melakukan
request.
Parameter-parameter diatas hanya
sebagian kecil dari isi file konfigurasi yang
ada squid.
Parameter-parameter
yang
yang lain harus di ubah sesuai dengan
kebutuhan masing-masing.
6. Penutup
a. Kesimpulan
Berdasarkan uraian yang telah di
jelaskan pada bagian sebelumnya, maka
secara garis besar
bisa
di
simpulkan
bahwa :
o Proxy server sangat diperlukan di
jaringan lokal untuk menghemat
46
penggunaan bandwidth internet
o Proxy server membantu untuk
menyimpan
cache
sehingga
sebagian object yang berasal dari
internet bisa disimpan dalam
proxy server. Pada saat klien
mengakses internet kedua kalinya,
klien tidak perlu mengambil dari
internet tetapi cukup mengambil
object dari proxy server.
o Proxy server sudah bisa di
fungsikan hanya dengan mengatur
konfigurasi standar yang terdiri
dari ACL (access control list),
http_access,
http_port
dan
transparent proxy.
7. Daftar Pustaka
[1] http://www.squid-cache.org
[2] http://id.wikipedia.org/wiki/Squid
[3] http://kuasa66.wordpress.com/2009/
02/03/optimasi-squid/
[4] http://repository.amikom.ac.id/files/
Publikasi_05.11.0879.pdf
[5] http://warnetwarnetwarnet.blogspot.com/
2009/01/cara-instal-dan-optimasi-squidproxy.html“/etc/squid/squid.conf”
b. Saran
Beberapa saran yang dapat diberikan
dari hasil tulisan ini antara lain :
o Optimasi Proxy server dapat
dilakukan
dengan
menyetel
beberapa parameter konfigurasi di
file squid.conf
o Untuk
mendapatkan
hasil
performa yang lebih baik dari
penggunaan proxy server terlebih
dahulu
semua
parameter
konfigurasi yang telah kita ubah
harus sesuai dengan spesifikasi
server dan kondisi jaringan yang
ada.
47
Download