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