Proxy
Server
Proxy server berasal dari kata proximus yang berarti dekat. Proxy server merupakan server yang membantu privasi client dalam mengakses internet. Untuk melakukan hal tersebut, proxy server memiliki cara kerja yang
bertahap dimulai dari client sampai
ke server dan sebaliknya (seperti
perantara). Proxy server juga bertindak
sebagai gateway terhadap dunia
internet untuk setiap komputer client.
Proxy server tidak terlihat oleh
komputer client sebagai contoh saat
seorang pengguna yang berinteraksi dengan internet
melalui sebuah proxy server tidak
akan mengetahui bahwa sebuah proxy server
sedang menangani request yang dilakukannya.
Web server yang menerima request dari Proxy server akan menginterpresentasikan request-request tersebut seolah-olah datang secara langsung dari
komputer client, bukan dari proxy server.

Gambar
2.17 Proxy Server
2.5.1 Fungsi Proxy
Proxy
server
memiliki tiga fungsi dasar yaitu connection sharing, firewall, dan chacing.
Connection
Sharing
Untuk connection sharing, Proxy server dapat bertindak sebagai gateway
untuk jarngan lokal terhadap jaringan luar atau internet, karena paket data
yang dikirimkan dari jaringan lokal ke jaringan luar harus melewati proxy server.
Proxy sever sebagai connection
sharing ini dapat bekerja pada layer
Data-Link, layer Network dan Transport,
maupun layer Aplikasi dalam hirarki layer komunikasi jaringan menurut OSI, namun sebagian
besar pengertian, proxy server bekerja
pada layer aplikasi.
Firewall
Proxy
server
juga mempunyai fungsi untuk melakukan filtering
yang biasa disebut dengan firewall. Filtering ini berdasarkan daftar aturan
dan pengaturan pada akses tertentu sehingga lebih mudah mengatur trafik dari
sumber-sumber yang tidak terpercaya dan digunakan untuk melindungi kumpulan
komputer dalam sebuah jaringan maupun sekumpulan jaringan yang berbeda
topologi. Firewall biasanya diletakkan pada router-router, sehingga bisa melakukan filtering atas paket yang lewat dari dan ke jaringan-jaringan yang
dihubungkan.
Karena firewall
melakukan filtering berdasarkan suatu
daftar aturan dan pengaturan akses tertentu, maka lebih mudah mengatur dan
mengendalikan trafik dari sumber-sumber yang tidak dipercaya. Firewall juga melakukan filtering berdasarkan jenis protokol
yang digunakan (TCP,UDP,ICMP) dan port TCP atau UDP yang digunakan oleh suatu layanan (semisal telnet atau FTP).
Sehingga firewall melakukan kendali
dengan metode boleh lewat atau tidak boleh lewat, sesuai dengan daftar aturan dan
pengaturan akses yang dibuat. Bila suatu layanan tertentu atau alamat tertentu
merupakan layanan atau alamat yang terpercaya, maka dapat diatur pada firewall agar paket dari sumber
terpercaya dapar diijinkan.
Packet filtering pada firewall
mempunyai keunggulan yaitu kecapatan yang lebih dan tidak memerlukan
konfigurasi tertentu pada pengguna-pengguna yang terhubung. Namun di sisi lain
dapat menimbulkan kesulitan, karena akan sangat sulit bila kita harus membuat
satu daftar aturan yang banyak dan kompleks. Disamping itu, yang bisa dilakukan
firewall hanya memperbolehkan atau
tidak memperbolehkan suatu paket lewat berdasarkan pada alamat IP sumber atau alamat IP tujuan yang ada pada paket tersebut.
Penyerang bisa melakukan pemalsuan alamat IP
pada paket (spoofing) menggunakan
alamat IP tertentu yang terpercaya,
dan firewall akan melewatkannya. Penyerang juga dapat melakukan penyadapan
paket (sniffing) dengan relatif mudah
untuk mengetahui struktur alamat IP
pada header paket yang lewat di
jaringan.
Caching
Fungsi dasar
yang ketiga dari sebuah proxy server
adalah caching. Caching adalah sebuah cara untuk penyimpanan content-content yang sudah pernah diminta oleh pengguna di internet, content-content tersebut disimpan pada sebuah ruang disk yang disebut cache. Sehingga apabila ada pengguna yang akan meminta content yang sama, proxy server akan memberikannya langsung tanpa meminta terlebih
dahulu ke server aslinya di internet.
Proses caching ini tidak terlihat oleh pengguna
(transparent). Artinya pengguna tidak
dapat membedakan siapa sebenarnya yang memberikan content tersebut. Content
yang disimpan mempunyai batas waktu untuk memeriksanya digunakan validasi.
Validasi ini digunakan apabila ada pengguna yang memintanya, metode ini disebut
caching pasif, sedangkan caching aktif proxy akan secara otomatis akan mengamati content dan perubahannya.
Dalam kondisi tertentu kapasitas penyimpanan cache akan berkurang oleh content
yang disimpan, bila itu terjadi maka proxy
server akan melakukan penghapusan secara otomatis agar ruang penyimpanan
tetap terjaga, penjadwalan yang dilakukan sesuai dengan konfigurasi yang sudah
ditentukan, biasanya ditetukan oleh waktu suatu content tersimpan.
Fungsi lainnya
yang dimiliki oleh proxy server
yaitu:
·
Bandwidth
Management,
yaitu untuk membuat aturan dalam mengelola konten dan kecepatan akses terhadap
sumber daya internet/intranet yang
diberlakukan bagi client dalam
jaringan lokalnya. Hal ini terkait pula dengan metode caching yang dilakukan sebuah server
proxy pada umumnya.
·
IP Address/Group and User Access Management
fungsi ini
merupakan fitur yang cukup penting untuk mengelola hak kepada user/computer/group/IP Address yang bisa
mengakses jaringan luar/internet dan kita sebagai NetAdmin, dapat mengatur siapa saja yang boleh mengakses internet.
·
Content
Filtering,
fitur ini berupa aturan yang akan menyaring setiap informasi/konten yang
diminta oleh client agar tidak
terlalu bebas dan dapat merusak/meminimalisir sisi negatif dari konten
tersebut. Misalkan untuk mem-block Window Pop-Up, Java Applet, ActiveX, dan
lain-lain.
·
Transparent
proxy
and Non-transparent proxy, yaitu
sebuah metode dimana client yang ada
dalam jaringan, tidak perlu melakukan konfigurasi (alias konfigurasi dilakukan
secara transparent) untuk bisa
mengakses/terhubung/dikenakan rule (aturan) dari server proxy tersebut, akan tetapi proxy server yang langsung melakukan broadcast terhadap siapapun yang diberi akses ke internet ‘dipaksa’ untuk melewati proxy server terlebih dahulu. Sementara Non-transparent proxy adalah kebalikan
dari transparent dan setiap client
yang akan terhubung/mengakses/dikenakan rule
proxy, setiap aplikasi yang terhubung ke internet seperti Internet
Browser, FTP (File Transfer Protocol)
client, dan lain-lain harus
dikonfigurasi agar terhubung ke proxy server,
baru kemudian di-forward ke internet.
·
VPN
Server dan VPN Tunnel, VPN adalah singkatan dari (Virtual Private Network) atau jaringan pribadi, yang merupakan cara
agar jaringan lokal/pengguna perorangan di suatu tempat dapat mengakses
jaringan lokal/komputer server di tempat
lainnya melalui media publik seperti internet. Melalui VPN ini, seseorang atau
sebuah jaringan local di suatu tempat dapat terhubung dengan IP Address local di tempat yang lain,
sehingga komunikasi yang terjadi layaknya dalam sebuah jaringan lokal biasa (LAN), namun media yang digunakan adalah
media publik seperti internet.
·
Reverse Proxy Load Balancing. Proxy server sekarang ini dapat digunakan untuk melakukan “reverse proxy”, atau menyediakan layanan
proxy ke client eksternal untuk server
internal. Fungsi ini digunakan untuk menyeimbangkan beban klien ke sejumlah
web server. Banyak situs web yang fungsionalitasnya tinggi
menggunakan aplikasi kompleks seperti ISAPI,
Active Server Pages, Java Servlet, atau CGI.
Aplikasi ini dijalankan pada server,
sehingga mereka sangat mengurangi banyaknya client yang mampu ditangani oleh
satu server. Sebagai contoh, Windows 2000
server yang menjalankan IIS yang
bisa menangani sampai 100.000 browser
untuk halaman HTML standar hanya bisa
menangani 5000 browser halaman ASP. Ini berarti bahwa kebanyakan fungsi e-commerce sebenarnya tidak bisa ditangani oleh satu server, jadi situs tersebut harus
dijalankan secara parallel ke sejumlah emsin. Sebagai contoh http://www.microsoft.com/ dijalankan
pada 30 server DNS yang identik. DNS
menyediakan skema dasar load-sharing yaitu
akses ke nama DNS akan mendapatkan salah satu alamat IP, tetapi ini belum
benar-benar menyeimbangakan beban.
·
Proxy server
dapat digunakan untuk merespon ke satu alamat IP dan kemudian mengarahkan koneksi client ke salah satu server
di belakanganya. Proxy server dapat
menggunakan beberapa tolak ukur yang disediakan oleh semua web server untuk mengetahui server
mana yang mempunyai sisa kapasitas paling banyak. Setiap client yang terhubung, kemudian dapat diarahkan ke web server manapun yang mempunyai
kapasitas yang cukup untuk menanganinya.
2.5.2 Transparent Proxy
Salah satu kompleksitas dari proxy
pada level aplikasi adalah bahwa pada sisi pengguna harus dilakukan konfigurasi
yang spesifik untuk suatu proxy
tertentu agar bisa menggunakan layanan dari suatu proxy server. Bila diinginkan agar pengguna tidak harus melakukan
konfigurasi khusus, kita bisa mengkonfigurasi proxy/cache server agar berjalan secara benar-benar transparan
terhadap pengguna (transparent proxy).
Biasanya cara ini memerlukan bantuan dan konfigurasi aplikasi firewall (yang bekerja pada layer network) untuk bisa membuat transparent proxy yang bekerja pada layer aplikasi.
Transparent
proxy
dapat berguna untuk “memaksa pengguna” menggunakan proxy/cache server, karena pengguna benar-benar tidak mengetahui
tentang keberadaan proxy ini, dan
apapun konfigurasi pada sisi pengguna, selama proxy server ini berada pada jalur jaringan yang pasti dilalui oleh
pengguna untuk menuju ke internet,
maka pengguna pasti dengan sendirinya akan “menggunakan” proxy/cache
ini.
Cara membuat transparent proxy adalah dengan membelokkan arah (redirecting) dari paket-paket untuk
suatu aplikasi tertentu, dengan menggunakan satu atau lebih aturan pada firewall/router. Hal ini bisa dilakukan
karena setiap aplikasi berbasis TCP
akan menggunakan salah satu port yang
tersedia, dan firewall dapat diatur
agar membelokkan paket yang menuju ke port
layanan tertentu, ke arah port dari proxy yang bersesuaian.

Gambar
2.18 Metode Transparent
Proxy
Jadi secara umum
keuntungan dari metode transparent proxy
adalah :
1.
Kemudahan
administrasi jaringan, yang berarti browser
yang digunakan klien tidak harus dikonfigurasi secara khusus yang menyatakan
bahwa mereka menggunakan fasilitas proxy
yang bersangkutan.
2.
Sentralisasi
kontrol, yang berarti pergantian metode bypass
proxy maupun penggunaan proxy oleh klien dapat dilakukan secara
terpusat.
2.5.3 Squid
Proxy
Salah
satu contoh aplikasi proxy/cache server
adalah Squid. 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 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 Adaption 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.
Konfigurasi,
penggunaan dan metode Squid
Konfigurasi-konfigurasi mendasar squid antara lain :
1.
http_port nomor port.
Ini akan menunjukkan nomor port yang akan dipakai untuk menjalankan
squid. Nomor port ini akan dipakai untuk berhubungan dengan klien dan peer.
2.
icp_port
nomor port.
Ini akan
menunjukkan nomor port yang akan
dipakai untuk menjalankan squid.
Nomor port ini akan dipakai untuk
berhubungan dengan klien dan peer.
3.
cache_peer nama_peer tipe_peer nomor_port_http nomor_port_icp
option.
Sintask dari cache peer ini digunakan untuk berhubungan dengan peer lain, dan peer lain
yang dikoneksikan ini tipenya bergantung dari tipe peer yang telah dideklarasikan ini, bisa bertipe sibling maupun bertipe parent,dan port
yang digunakan untuk hubungan ICP
maupun HTTP juga dideklarasikan di sini.
4.
Dead_peer_timeout jumlah_detik seconds.
Masing-masing peer yang telah didefinisikan sebelumnya mempunyai waktu timeout sebesar yang ditentukan dalam
konfigurasi ini.
5.
Hierarcy_stoplist pola1 pola2
Sintaks ini
digunakan untuk menyatakan apa yang harus tidak diminta dari peer, melainkan harus langsung dari web server origin.
6.
Cache_mem jumlah_memori (dalam bytes)
Sintaks ini akan
menentukan batas atas jumlah memori yang digunakan untuk menyimpan antara lain
: intransit object yaitu object yang dalam masa transisi antara
waktu cache mendownload sampai object
disampaikan ke klien, dan hot object,
yaitu object yang sering diakses.
7.
Cache_swap_low/high jumlah (dalam persen)
Squid akan menghapus object yang ada didalam hardisknya jika media tersebut mulai penuh.
Ukuran penuh ini yang diset pada cache_swap_low dan cache_swap_high. Bila batas swap_low
telah tercapai maka squid mulai
menghapus dan jika batas swap_high
tercapai maka squid akan semakin
sering menghapus.
8.
Cache_dir jenis_file_sistem direktori
kapasitas_cache dir_1 jumlah dir_2
Sintaks ini akan
menjelaskan direktori cache yang
dipakai, pertama adalah jenis file
sistemnya, lalu didirektori mana cache tersebut
akan disimpan, selanjutnya ukuran cache
tersebut dalam MegaBytes lalu jumlah
direktori level 1 dan direktori level 2 yang akan digunakan squid untuk menyimpan objeknya.
(Sumber: www.scribd.com)