Anda
mungkin pernah mendengar tentang proxy server, tetapi apa itu
sebenarnya? Dan bagaimana cara kerjanya? Apakah ia hanya untuk
mempercepat koneksi ke Internet?
Proxy server mula-mula dikembangkan
untuk menyimpan halaman web yang sering diakses. Pada masa awal
Internet, koneksi sangat lambat, Internet masih relatif kecil, dan
halaman web masih statis. Keseluruhan Internet hanya terdiri dari
beberapa ribu situs yang sebagian besar untuk para ilmuwan dan
akademisi. Kapanpun ada berita penting pada suatu situs web, banyak
ilmuwan dari organisasi yang sama akan mengunjungi halaman tersebut
(berapa kali Anda memforward link di dalam perusahaan Anda?).
Proxy dan Web Caching
Dengan
menyimpan halaman tersebut pada server lokal, proxy dapat menghilangkan
akses Internet yang berlebih untuk mengambil kembali halaman yang sama
berulang-ulang. Jadi, proxy mula-mula sangat efektif untuk web caching.
Namun, Internet sekarang sudah cepat, halaman web bersifat dinamis dan
kepentingan user di dalam satu organisasi hanya terdiri dari ratusan
halaman web. Faktor-faktor ini menyebabkan caching proxy menjadi tidak
efektif, kecuali pada organisasi yang sangat besar atau ISP. Meskipun
semua browser standar mempunyai dukungan terhadap proxy server, sejak
1996 jarang digunakan.
Proxy = HTTP?
Banyak alternatif layanan
proxy, mulai dari fungsi filter pada Application layer untuk firewall
seperti Checkpoint Firewall-1, sampai aplikasi umum yang murni “hanya
proxy” seperti WinGate dan proxy satu layanan seperti Jigsaw untuk HTTP.
Proxy
server sering kali dihubungkan dengan layanan HTTP karena proxy kali
pertama dikembangkan untuk layanan ini. Sejak saat itu, fungsi proxy
telah diaplikasikan ke layanan Internet lain yang paling umum. Contoh
pada artikel ini akan menggunakan layanan HTTP, tetapi fungsionalitas
pada umumnya sama dengan layanan yang lain.
Bagaimana Cara Kerja Proxy?
Proxy
bekerja dengan mendengarkan request dari client internal dan mengirim
request tersebut ke jaringan eksternal seolah-olah proxy server itu
sendiri yang menjadi client. Pada waktu proxy server menerima respon dan
server publik, ia memberikan respon tersebut ke client yang asli
seolah-olah ia public server.
Proxy dan Keamanan
Internet yang
sekarang juga mempunyai cirinya sendiri, dan proxy server menunjukkan
efek samping yang sungguh tak terduga: mereka dapat menyembunyikan semua
user di belakang satu mesin, mereka dapat memfilter URL, dan mereka
dapat membuang content yang mencurigakan atau ilegal. Jadi meskipun
mula-mula dibuat sebagai cache nonsekuriti, tujuan utama proxy server
sekarang menjadi firewalling.
Proxy server memperbarui request
layanan pada jaringan eksternal atas nama client mereka pada jaringan
private. Ini secara otomatis menyembunyikan identitas dan jumlah client
pada jaringan internal dari jaringan eksternal. Karena posisi mereka di
antara client internal dan server publik, proxy juga dapat menyimpan
content yang sering diakses dari jaringan publik untuk mengurangi akses
ke jaringan publik tersebut. Kebanyakan implementasi nyata proxy
sekuriti meliputi pemilteran paket dan Network Address Translation untuk
membangun firewall yang utuh. Teknologi tersebut dapat digabungkan
dengan proxy untuk menghilangkan serangan yang terhadapnya proxy rentan.
Menyembunyikan Client
Fitur
keamanan utama proxy server adalah menyembunyikan client. Seperti
Network Address Translation, proxy server dapat membuat seluruh jaringan
internal muncul sebagai satu mesin dari Internet karena hanya satu
mesin yang melewatkan request ke Internet.
Seperti Network Address
Translatation, proxy server mencegah host eksternal untuk mengakses
layanan pada mesin internal. Pada proxy server, tidak ada routing ke
client karena domain alamat jaringan internal dan eksternal bisa saja
tidak kompatibel dan karena transport layer routing tidak ada di antara
kedua jaringan.
Proxy melakukan fitur ini dengan memperbarui request,
bukan mengganti dan menghitung ulang header alamat. Sebagai contoh,
pada waktu client membuat request melalui proxy server, proxy server
menerima request tersebut seolah-olah web server tujuan pada jaringan
internal. Ia kemudian memperbarui request ke jaringan eksternal seolah
web browser biasa. Pada waktu proxy menerima respon dari web server yang
sebenarnya, ia memberikan respon tersebut kepada client internalnya.
Hanya HTTP yang dilewatkan melalui proxy, bukan TCP atau IP. TCP/IP (dan
protokol low-level lainnya) diperbarui oleh proxy; mereka tidak akan
dilewatkan melalui proxy.
Aspek lain dari penyembunyian client adalah
penyebaran koneksi; proxy server dapat digunakan untuk membagi satu
koneksi Internet dan alamat IP ke seluruh jaringan. Oleh karena itu,
proxy server seperti WinGate sangat populer di lingkungan rumahan dan
kantor kecil di mana hanya ada satu koneksi dial-up atau dedicated yang
tersedia.
Pemblokiran URL
Pemblokiran URL memungkinkan
administrator untuk menolak situs tertentu berdasarkan URL mereka.
Secara teori, ini akan menjauhkan pegawai Anda dari situs web yang tidak
boleh mereka akses. Fungsi ini mudah diimplementasikan. Proxy mengecek
setiap request dengan daftar halaman yang ditolak sebelum ia memperbarui
request tersebut. Jika URL diblokir, proxy tidak akan meminta atau
memberikan halaman tersebut.
Namun, pemblokiran URL mudah diatasi,
karena situs web bisa ditulis dengan menggunakan alamat IP atau bahkan
keseluruhan nomor alamat. User dapat mengetik apa saja dalam web browser
mereka untuk mengakses halaman yang sama, namun URL blocker Anda
(mungkin) hanya akan mengecek alamat lengkap URL.
Masalah lain dengan
pemblokiran URL adalah memperbarui situs yang diblokir. Situs seperti
hacking, pornografi, dan situs game mempunyai masa hidup yang singkat,
mereka dapat muncul dan hilang dengan cepat. Sulit rasanya untuk
memblokir mereka dengan database pemblokiran URL Anda. Kebanyakan orang
akan menggunakan search engine atau berita Usenet untuk mengetahui
keberadaan situs.
Pemilteran Content
Karena proxy memperbarui
semua muatan protokol dan protokol spesifik, proxy dapat digunakan untuk
mencari muatan content yang mencurigakan. Ini berarti Anda dapat
mengonfigurasi layanan proxy HTTP untuk mempreteli kontrol ActiveX,
applet Java, atau bahkan gambar berukuran besar jika Anda rasa mereka
bisa menyebabkan masalah keamanan. Anda juga bisa menggunakan proxy SMTP
utuk mempreteli attachment berupa file executable dan file arsip zip
jika Anda rasa mereka menyebabkan masalah.
Pemfilteran content juga
dapat digunakan untuk mengecek halaman web akan adanya kata atau kalimat
tertentu, seperti merk dagang kompetitor Anda atau sejumlah berita
hangat. Anda harus memfilter control ActiveX, applet Java, dan file
executable dalam e-mail karena mereka dapat digunakan untuk
menginstalasi Trojan horse.
Jika ada user yang perlu mentransfer file
executable, minta mereka untuk mentransfernya dalam file zip atau
gunakan BinHex atau encoder yang lain untuk mentransfernya dalam format
teks. File akan perlu di-decode, sehingga mencegah pentransferan virus
atau Trojan horse.
Pengecekan Konsistensi
Pengecekan konsistensi
merupakan pengecekan content protokol untuk memastikan itu dapat
dimengerti oleh protokol. Pengecekan konsistensi memastikan bahwa jenis
content tertentu tidak dapat digunakan untuk mengeksploitasi kelemahan
sistem keamanan dalam jaringan internal Anda.
Sebagai contoh, daemon
SMTP Sendmail Unix dulunya terkenal peka terhadap masalah buffer
overflow. Ini terjadi pada waktu e-mail dikirim dan membutuhkan waktu
lebih lama dari yang ditentukan. Sendmail akan mengalokasikan bagian
memory sebesar yang diminta oleh e-mail tersebut, tetapi kemudian
memeriksa e-mail sampai akhirnya tiba di bagian akhir. Jika di antara
bagian yang diminta dan bagian akhir berisi kode executable, hacker bisa
mendapatkan akses root ke e-mail server Anda.
Anda tentu pernah
mendengar tentang banyaknya jumlah eksploitasi buffer overflow yang
dilakukan oleh hacker untuk melawan IIS. Dengan menggunakan URL yang
lebih panjang dari yang bisa ditangani IIS dan eksploitasi terhadap DLL
pendukung, hacker dapat membuat serangan otomatis terhadap IIS yang
bekerja sebagai worm pada Internet dan menyebabkan kerusakan secara
luas. Microsoft telah meluncurkan perbaikan keamanan untuk mengatasi
masalah ini.
Pengecekan konsistensi dengan proxy dapat memastikan
bahwa masalah semacam ini bisa dihilangkan pada proxy sehingga mereka
tidak akan mempengaruhi mesin internal. Sayangnya, masalah yang harus
dicek biasanya tidak diketahui sampai hacker mengeksploitasi mereka,
jadi kebanyakan pengecekan konsistensi hanya dilakukan setelah ditemukan
adanya eksploitasi.
Pemblokiran Routing
Paket Transport layer
perlu diarahkan karena request semuanya diperbarui. Hal ini
menghilangkan eksploitasi Transport layer seperti routing, fragmentasi,
dan beragam serangan denialof-service. Dengan menghilangkan routing,
Anda juga dapat memastikan bahwa semua protokol yang belum Anda tentukan
tidak akan dilewatkan ke jaringan publik. Pemblokiran routing mungkin
merupakan keuntungan proxy server yang paling penting. Karena paket
TCP/IP sebenarnya lewat antara jaringan internal dan eksternal, banyak
serangan denial-of-service dan eksploitasi yang dapat dicegah.
Sayangnya,
pemblokiran routing tidak begitu sering digunakan karena banyaknya
protokol yang ada. Sedapat mungkin jangan perbolehkan paket low-level
melewati proxy server kita. Kebanyakan proxy server memperbolehkan Anda
untuk membuat proxy TCP generik untuk semua port yang enggunakan proxy
SOCKS generik atau utiiliti redir Unix. Proxy generik ini, meskipun
mereka tidak dapat melakukan pemfilteran content, tetapi memungkinkan
Anda untuk mencegah paket TCP/IP berlalu-lalang antarjaringan Anda.
Logging dan Alerting
Manfaat
keamanan terakhir dari proxy adalah fasilitas logging dan alerting yang
mereka sediakan. Proxy memastikan bahwa semua content mengalir melalui
satu poin, yang bisa
menjadi tempat pemeriksaan data jaringan.
Kebanyakan proxy server akan mencatat penggunaan proxy oleh user dan
dapat dikonfigurasi untuk mencatat situs yang mereka kunjungi. Ini akan
memungkinkan Anda untuk mengatur ulang cara browsing user jika Anda
curiga akan adanya aktivitas yang ilegal atau tidak semestinya.
Fasilitas
alert disediakan oleh beberapa proxy untuk memperingatkan Anda atas
serangan yang terjadi, meskipun proxy umumnya bukan sasaran penyerangan.
Namun, fasilitas ini bisa digunakan untuk meningkatkan kewaspadaan Anda
pada interface eksternal, yang sering kali dicoba untuk dieksplotiasi
oleh hacker.
Proxy dan Kinerja
Selain aspek keamanan, proxy server
juga dapat memberikan peningkatan kinerja yang penting. Pertama, proxy
dapat menyimpan data yang sering direquest untuk meningkatkan kinerja
dengan menghilangkan akses berlebih ke jaringan eksternal (yang
kecepatannya lebih lambat). Kedua, proxy dapat menyeimbangkan beban
service ke sejumlah server internal.
Caching
Seperti yang telah
disebutkan di bagian awal artikel ini, proxy mula-mula dikembangkan
sebagi peningkat kinerja, bukan sebagai perangkat pengaman. Pada awal
Internet, hanya ada ribuan situs web. Mereka kebanyakan bersifat ilmiah
dan tidak sering berubah. Karena koneksi ke Internet lambat, proxy dapat
digunakan untuk menyimpan sebagian besar Internet secara lokal,
sehingga pengguna internal cukup browsing ke proxy lokal. Content tidak
berubah dengan sangat cepat, jadi ini masih masuk akal.
Sekarang
caching hanya masuk akal jika ada user dalam jumlah besar yang mengakses
halaman web yang sama berulang-ulang. Pola penggunaan seperti ini
sekarang sudah jarang, jadi segi caching proxy server sudah mulai usang.
Dengan
e-commerce yang semakin umum, caching akan kembali menjadi fungsi yang
penting karena banyak orang akan melakukan pekerjaan mereka dengan
menghadapi beberapa situs yang sering diakses. Sebagai contoh, ambil
agen perjalanan yang menggunakan Expedia.com dan Travelocity.com untuk
melakukan pekerjaan mereka. Banyak agen akan mengakses dua situs yang
sama berulang-ulang, sehingga menyimpan elemen situs utama, gambar, dan
applet adalah masuk akal.
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 paralel ke sejumlah mesin.
Sebagai contoh, http://www.microsoft.com/ dijalankan pada 30 server DNS
yang identik. DNS menyediakan skema dasar load-sharing di mana akses ke
nama DNS akan mendapatkan salah satu alamat IP, tetapi ini belum
benar-benar menyeimbangkan beban.
Proxy server dapat digunakan untuk
merespon ke satu alamat IP dan kemudian mengarahkan koneksi client ke
salah satu server di belakangnya. Proxy server dapat menggunakan
beberapa tolak ukur yang disediakan oleh semua web server untuk
mengtahui server mana yang mempunyai sisa kapasitas paling banyak.
Setiap client yang terhubung kemudian dapat diarahkan ke web server mana
pun yang mempunyai kapasitas yang cukup untuk menanganinya.
0 comments:
Post a Comment