Assalamualaikum
wr.wb
Untuk orang awam mungkin belum terlalu mengenal
proxy server. Oleh karena itu pada postingan kali ini saya akan menjelaskan
tentang Pengertian dan Konsepdasar Proxy Server.....
PENGERTIAN DAN KONSEP DASAR PROXY
Proxy dapat dipahami
sebagai pihak ketiga yang berdiri ditengah-tengah antara kedua pihak yang
saling berhubungan dan berfungsi sebagai perantara, sedemikian sehingga pihak
pertama dan pihak kedua tidak secara langsung berhubungan, akan tetapi
masing-masing berhubungan dengan perantara, yaitu proxy.
Sebuah analogi; bila
seorang mahasiswa meminjam buku di perpustakaan, kadang si mahasiswa tidak
diperbolehkan langsung mencari dan mengambil sendiri buku yang kita inginkan
dari rak, tetapi kita meminta buku tersebut kepada petugas, tentu saja dengan
memberikan nomor atau kode bukunya, dan kemudian petugas tersebut yang akan
mencarikan dan mengambilkan bukunya. Dalam kasus diatas, petugas perpustakaan
tersebut telah bertindak sebagai perantara atau Proxy. Petugas tersebut juga
bisa memastikan dan menjaga misalnya, agar mahasiswa hanya bisa meminjam buku untuk mahasiswa, dosen boleh
meminjam buku semua buku, atau masyarakat umum hanya boleh meminjam buku
tertentu.
Mungkin proses tersebut
menjadi lebih lama dibandingkan bila kita langsung mencari dan mengambil
sendiri buku yang kita inginkan. Namun bila saja setiap kali petugas mencari
dan mengambil buku untuk seseorang, si petugas juga membuat beberapa salinan
dari buku tersebut sebelum memberikan bukunya kepada orang yang meminta, dan
menyimpannya di atas meja pelayanan, maka bila ada orang lain yang meminta buku
tertentu, sangat besar kemungkinan buku yang diminta sudah tersedia salinannya
diatas meja, dan si petugas tinggal memberikannya langsung. Hasilnya adalah
layanan yang lebih cepat dan sekaligus keamanan yang baik.
Analogi diatas
menjelaskan konsep dan fungsi dasar dari suatu proxy dalam komunikasi jaringan
komputer dan internet. Proxy server mempunyai 3 fungsi utama yaitu Connection
Sharing, Filtering dan Caching. Masing masing fungsi akan dijelaskan lebih
lanjut dibawah.
Proxy dalam
pengertiannya sebagai perantara, bekerja dalam berbagai jenis protokol
komunikasi jaringan dan dapat berada pada level-level yang berbeda pada hirarki
layer protokol komunikasi jaringan. Suatu perantara dapat saja bekerja pada
layer Data-Link, layer Network dan Transport, maupun layer Aplikasi dalam
hirarki layer komunikasi jaringan
menurut OSI. Namun pengertian proxy server sebagian besar adalah untuk menunjuk
suatu server yang bekerja sebagai proxy pada layer Aplikasi, meskipun juga akan
dibahas mengenai proxy pada level sirkuit.
Dalam suatu jaringan
lokal yang terhubung ke jaringan lain atau internet, pengguna tidak langsung
berhubungan dengan jaringan luar atau internet, tetapi harus melewati suatu
gateway, yang bertindak sebagai batas antara jaringan lokal dan jaringan luar.
Gateway ini sangat penting, karena jaringan lokal harus dapat dilindungi dengan
baik dari bahaya yang mungkin berasal dari internet, dan hal tersebut akan
sulit dilakukan bial tidak ada garis batas yang jelas jaringan lokal dan
internet. Gateway juga bertindak sebagai titik dimana sejumlah koneksi dari
pengguna lokal akan terhubung kepadanya, dan suatu koneksi ke jaringan luar
juga terhubung kepadanya. Dengan demikian, koneksi dari jaringan lokal ke
internet akan menggunakan sambungan yang dimiliki oleh gateway secara
bersama-sama (connection sharing). Dalam hal ini, gateway adalah juga sebagai
proxy server, karena menyediakan layanan sebagai perantara antara jaringan lokal dan jaringan
luar atau internet.
Diagram berikut
menggambarkan posisi dan fungsi dari proxy server, diantara pengguna dan
penyedia layanan:
PROXY, GATEWAY DAN FIREWALL
Proxy server juga
biasanya menjadi satu dengan firewall server, meskipun keduanya bekerja pada
layer yang berbeda. Firewall atau packet filtering yang digunakan untuk
melindungi jaringan lokal dari serangan atau gangguan yang berasal dari
jaringan internet bekerja pada layer network, sedangkan proxy server bekerja
pada layer aplikasi. Firewall biasanya diletakkan pada router-router, untuk
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 diperbolehkan lewat.
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 memalsukan alamat IP pada paket (spoofing)
emnggunakan 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.
Dalam analogi
perpustakaan diatas, filtering pada firewall serupa dengan petugas perpustakaan
menimpan daftar mahasiswa dan dosen yang terpercaya, dan mereka boleh langsung
mengambil sendiri buku yang diinginkan dari rak. Ini bisa menghasilkan proses
sirkulasi buku yang lebih cepat, namun memerlukan penanganan khusus atas daftar
yang diperbolehkan tersebut. Ini juga beresiko bila ada seseorang yang
menggunkan identitas palsu, sehingga seolah-olah dia adalah salah satu dari
yang ada dalam daftar yang diperbolehkan.
Proxy server
menggunakan cara yang berbeda. Proxy server memotong hubungan langsung antara
pengguna dan layanan yang diakases (atau antara mahasiswa dan buku-buku
perpustakaan dalam analogi diatas). Ini dilakukan pertama-tama dengan mengubah
alamat IP, membuat pemetaan dari alamat IP jaringan lokal ke suatu alamat IP
proxy, yang digunakan untuk jaringan luar atau internet. Karena hanya lamat IP
proxy tersebut yang akan diketahui secara umum di internet (jaringan yang tidak
terpercaya), maka pemalsuan tidak bisa dilakukan.
PENDEKATAN LAYER OSI
Karena proxy bekerja pada layer aplikasi, proxy server dapat berjalan pada banyak aplikasi antara lain HTTP Proxy atau Web Proxy untuk protokol HTTP atau Web, FTP Proxy, SMTP/POP Proxy untuk email, NNTP proxy untuk Newsgroup, RealAudio/RealVideo Proxy untuk multimedia streaming, IRC proxy untuk Internet Relay Chat (IRC), dan lain-lain. Masing-masing hanya akan menerima,meneruskan atau melakukan filter atas paket yang dihasilkan oleh layanan yang bersesuaian.
Proxy aplikasi spesifik
memiliki pilihan konfigurasi yang sangat banyak. Sebagai contoh, Web Proxy
dapat dikonfigurasi untuk menolak akses ke situs web tertentu pada waktu-waktu
tertentu. Demikian juga proxy yang lain, misalnya dapat dikonfigurasi untuk
hanya memperbolehkan download FTP dan tidak memperbolehkan upload FTP, hanya
memperbolehkan pengguna tertentu yang bisa memainkan file-file RealAudio,
mencegah akses ke email server sebelum tanggal tertentu, dan masih banyak lagi.
Proxy server juga
sangat baik dalam hal kemampuan menyimpan catatan (logging) dari trafik
jaringan, dan dapat digunakan untuk memastikan bahwa koneksi untuk jenis trafik
tertentu harus selalu tersedia. Sebagai contoh, sebuah kantor mempunyai koneksi
terus menerus ke Internet untuk keperluan akses Web menggunakan satu koneksi
Dial-up. Proxy server dapat dikonfigurasi untuk membuka satu lagi koneksi Dial-up
kedua bila ada pengguna yang melakukan download melalui FTP pada koneksi
Dial-up pertama dalam waktu lama.
Sebagaimana biasa,
kelemahan dari konfigurasi yang sangat fleksibel dan banyak pilihan adalah
timbulnya kompleksitas. Aplikasi pada sisi pengguna seperti Web Browser atau
RealAudio Player harus ikut dikonfigurasi untuk bisa mengetahui adanya proxy
server dan bisa menggunakan layanannya. Bila suatu layanan baru dibuat di
internet yang berjalan pada layer aplikasi, dengan menggunakan protokol baru dan
port yang baru, maka harus dibuat juga proxy yang spesifik dan bersesuaian
dengan layanan tersebut. Proses penambahan pengguna dan pendefinisian aturan
akses pada suatu proxy juga bisa sangat rumit.
Sebagai perantara
antara pengguna dan server-server di internet, proxy server bekerja dengan cara
menerima permintaan layanan dari user, dan kemudian sebagai gantinya proxy
server akan mewakili permintaan pengguna, ke server-server di internet yang
dimaksudkan. Dengan demikian, sebenarnya proxy server hanya meneruskan
permintaan pengguna ke server yang dimaksud, akan tetapi disini identitas
peminta sudah berganti, bukan lagi pengguna asal, tetapi proxy server tersebut.
Server-server di internet hanya akan mengeahui identitas proxy server tersebut,
sebagai yang meminta, tetapi tidak akan tahu peminta sebenarnya (yaitu pengguna
asalnya) karena permintaan yang sampai kepada server-server di internet bukan
lagi dari pengguna asal, tetapi dari proxy server.
Bagi penggguna sendiri,
proses yang terjadi pada proxy server diatas juga tidak kelihatan (transparan).
Pengguna melakukan permintaan atas layanan-layanan di internet langsung kepada
server-server layanan di internet. Penguna hanya mengetahui keberadaan atau
alamat dari proxy server, yang diperlukan untuk melakukan konfigurasi pada
sisis pengguna untuk dapat menggunakan layanan dari proxy server tersebut.
CACHING
Fungsi dasar yang ketiga dan sangat penting dari suatu proxy server adalah caching. Proxy server memiliki mekanisme penyimpanan obyek-obyek yang sudah pernah diminta dari server-server di internet, biasa disebut caching. Karena itu, proxy server yang juga melakukan proses caching juga biasa disebut cache server.
Mekanisme caching akan
menyimpan obyek-obyek yang merupakan hasil permintaan dari dari para pengguna,
yang didapat dari internet. Karena proxy server bertindak sebagai perantara,
maka proxy server mendapatkan obyek-obyek tersebut lebih dahulu dari sumbernya
untuk ekmudian diteruskan kepada peminta yang sesungguhnya. Dalam proses
tersebut, proxy server juga sekaligus menyimpan obyek-obyek tersebut untuk
dirinya sendiri dalam ruang disk yang disediakan (cache).
Dengan demikian, bila
suatu saat ada pengguna yang meminta suatu layanan ke internet yang mengandung
obyek-obyek yang sama dengan yang sudah pernah diminta sebelumnya, yaitu yang
sudah ada dalam cache, maka proxy server akan dapat langsung memberikan obyek
dari cache yang diminta kepada pengguna, tanpa harus meminta ulang ke server
aslinya di internet. Bila permintaan tersebut tidak dapat ditemukan dalam cache
di proxy server, baru kemudian proxy server meneruskan atau memintakannya ke
server aslinya di internet.
Proses caching ini juga
tidak kelihatan bagi pengguna (transparan), karena bagi pengguna tidak tampak
siapa sebenarnya yang yang memberikan obyek yang dimintanya, apakah proxy
server yang mengambil dari cache-nya atau server asli di internet. Dari sisi
pengguna, semua akan nampak sebagai balasan langsung dari internet.
Salah satu proxy yang
paling banyak dibahas dan digunakan secara luas adalah HTTP proxy atau Web
proxy. HTTP proxy server merupakan proxy yang berdiri diantara alokasi web
pengguna misalnya web browser dan web server atau HTTP server.
Ketika pengguna membuka
browser dan mengetikkan URL, maka content yang diminta URL tersebut dinamakan
“Internet Object”. Pertama dia akan bertanya terlebih dahulu ke sebuah DNS
(Domain Name Server). DNS akan mencari IP Address dari URL tersebut dalam
databasenya dan memberi jawaban kepada browser tersebut kembali. Setelah
browser mendapatkan IP Address, maka ia akan membuka hubungan ke port http web
server tujuan. Web server akan mendengarkan adanya permintaan dari browser lalu
memberikan content yang diminta tersebut. Seteleh browser menerima content maka
hubungan dengan web server bias diputus. Content lalu ditampilkan dan disimpan
didalam hardisk.
Content yang disimpan
didalam hardisk biasanya disebut cache object yang natinya akan digunakan jika
pengguna kembali mengunjungi site yang sama, misalnya dengan mengklik tombol
back atau melihat history. Dalam kunjungan berikutnya, browser akan memeriksa
validasi content yang disimpannya, validasi ini dilakukan dengan membandingkan
header content yang ada pada cache object dengan yang ada pada web server, jika
contect belum expired (kadaluwarsa) maka contect tadi akan ditampilkan kembali
ke browser.
Cache object yang
disimpan dalam hardisk local ini hanya bias dipakai oleh pengguna sendirian,
tidak bias dibagi dengan pengguna yang lainnya, lain hal jika content tersebut
disimpan pada sebuah server, dimana semua computer terhubung dengan server
tersebut, maka cache object tersebut bias dipakai bersama-sama, server
tersebutlah yang nantinya akan dinamakan cache server atau proxy server.
Cache server diletakkan
pada titik diantara klien dan web server . Pada contoh diatas klien akan
meminta content dari suatu web server ke cache server, tidak langsung ke web
server tujuan. Cache server inilah yang bertanggung jawab untuk mendownload
content yang diminta dan memberikannya pada klien. Content tadi disimpan pada
hardsik local cache server. Lain waktu, ada klien yang meminta content yang
sama, maka cache server tidak perlu mengambil langsung dari server tujuan tapi
tinggal memberikan content yang sudah ada. Disinilah letak optimasi cache
server tersebut.
Ada dua jenis metode
caching, yaitu pasif dan aktif. Seperti telah kita ketahui, object yang
disimpan bisa saja mencapai expired, untuk memeriksanya dilakukan validasi.
Jika validasi ini dilakukan setelah ada permintaan dari klien, metode ini
disebut pasif. Pada caching aktif, cache server mengamati object dan pola
perubahannya. Misalkan pada sebuah object didapati setiap harinya berubah
setiap jam 12 siang dan pengguna biasanya membacanya jam 14, maka cache server
tanpa diminta klien akan memperbaharui object tersebut antara jam 12 dan 14
siang, dengan cara update otomatis ini waktu yang dibutuhkan pengguna untuk
mendapatkan object yang fresh akan semakin sedikit.
Pada kondisi tertentu,
kapasitas penyimpanan akan terkuras habis oleh object. Namun cache server
mempunyai beberapa metode penghapusan untuk menjaga kapasitas tetap terjaga,
sesuai dengan kopnfigurasi yang telah ditetapkan. Penghapusan ini didasarkan
pada umur dan kepopuleran, semakin tua umur object akan tinggi prioritasnya
untuk dihapus. Dan juga untuk object yang tidak popular akan lebih cepat
dihapus juga.
Diagram berikut menggambarkan proses dan mekanisme caching
:
Hirarki Cache
Antara cache server
bias terjalin saling kerja sama. Protokol “kerja sama” ini bernama Internet
Cache Protocol (ICP). Dengan ICP, sistem cache bias mempunyai hirarki. Hirarki
dibentuk oleh dua jenis hubungan, yaitu parent dan sibling.
Parent
:cache server yang wajib mencarikan content yang diminta oleh klien
Sibling :cache server yang wajib memberikan content
yang diminta jika memang tersedia. Jika tidak, sibling tidak wajib untuk
mencarikannya
Dari dua hubungannya
ini, sistem cache bias didesain secara bertingkat. Misalkan dalam mendesain
sebuah ISP atau network kampus, anda bias mempunyai lebih dari satu cache
server yang saling sibling satu dengan yang lainnya.
Skenario lainnya
misalkan antara cache kantor pusat dan kantor cabang, dimana kantor pusat
terletak di gateway internet. Parent kantor pusat selain digunakan network
lokalnya, juga dibebani trafik yang berasal dari cache server milik kantor
cabang.
Untuk bermacam-macam desain cache dapat dilihat dari
skema gambar berikut :
Pada gambar diatas jelas bahwa antara cache sibling yang satu dengan yang lainnya saling bertukar object, dan jika tidak ada maka cache sibling akan meminta content ke cache server, dan cache server wajib untuk memberikannya, dalam kondisi yang sesungguhnya hubungan cache sibling bias lebih dari satu.
Hubungan jenis ini
bersifat ketergantungan penuh, cache child (cache server) mau tidak mau harus
meminta kepada parent, dan parent pun berkewajiban untuk memenuhi permintaan
child tanpa kecuali, pada kondisi ada atau tidaknya object yang diminta di
dalam hardsiknya. Dan bagi child, bila parent tidak bias memenuhi permintaan,
maka cache child akan memberikan pesan error pada browser klien bahwa URL
maupun content yang diminta tidak dapat diambil.
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.
Sebagai contoh, pada saat klient membuka hubungan HTTP (port
80) dengan suatu web server, firewall pada router yang menerima segera mengenali
bahwa ada paket data yang berasal dari klien dengan nomor port 80. Disini kita
juga mempunyai satu HTTP proxy server yang berjalan pada port 3130. Maka pada
firewall router kita buat satu aturan yang menyatakan bahwa setiap paket yang
datang dari jaringan lokal menuju ke port 80 harus dibelokkan ke arah alamat
HTTP proxy server port 3130. Akibatnya, semua permintaan web dari pengguna akan
masuk dan diwakili oleh HTTP proxy server diatas.
Jadi secara umum keuntungan dari metode transparent
proxy itu sendiri adalah :
1. Kemudahan administrasi jaringan,
dengan artian browser yang digunakan klien tidak harus dikonfigurasi secara
khusus yang menyatakan bahwa mereka menggunakan fasilitas proxy yang
bersangkutan.
2. Sentralisasi kontrol, dengan artian,
pergantian metode bypass proxy maupun
penggunaan proxy oleh klien dapat dilakukan secara terpusat.
Tidak ada komentar:
Posting Komentar