Proxy server adalah program yang menerima permintaan
(request) dari klien, seperti browser web atau ftp klien,dan kemudian
meneruskan permintaan tersebut ke server internet yang dituju. Salah
satu program yang cukup powerfull dalam menangani masalah keterbatasan
kecepatan akses dan keamanan data yang dipergunakan untuk menangani
keperluan internet adalah SQUID. Bagi seseorang administrator
jaringan,merupakan tugas utama untuk mengatur lau-lintas data dalam
suatu jaringan baik dari dalam maupun keluar jaringan. Squid merupakan
pilihan terbaik untuk membangun proxy server karena selain handal juga
gratis dan mendukung fitur ICP.
Melalui proxy server,seolah-olah klien merasaberinteraksi secara
langsung dengan server internet yang dituju.Kenyataannya,sebelum data
atau permintaannya disampaikan ke tujuan, data tersebut diarahkan
terlebih dahulu ke server proxy,kemudian server proxy akan meneruskan ke
server yang dituju,yaitu internet.
Bila tidak menggunakan proxy maka ketika kita membuka atau mengkases
suatu website harus dengan melakukan query atau permintaan atau
mengambil data secara langsung data yang berasal dari tempat penyimpan
data website tersebut.
Apabila kita browsing atau mengakses suatu website menggunakan proxy
maka kita cukup mengambil data website tersebut dari pihak Proxy
tersebut yang selanjutnya proxylah yang berperan mengambilkan data dari
server suatu situs dan kemudian mengantarkan ke IP kita atau sampai di
Komputer kita.
Web Proxy
Anonymous free web proxy dapat digunakan untuk mengakses website yang
di blok atau di filter dan juga dapat digunakan untuk meningkatkan
keamanan anda dalam mengunjungi website.
Web proxy dapat digunakan secara langsung tanpa perlu meng-install
software apapun di komputer anda, yang dibutuhkan oleh web proxy
hanyalah sebuah browser dan koneksi internet.
Anda dapat mengakses site-site yang di blok dengan mudah
Apa yang dapat di lakukan oleh Web Proxy ?
- Web Proxy dapat menyembunyikan ip address anda.
- Web Proxy dapat di gunakan untuk mengakses website yang di blok oleh ISP atau organisasi.
- Web Proxy dapat meningkatkan keamanan privacy anda.
- Web Proxy dapat mem-filter cookies yang tidak di inginkan dan semua cookies yang tersimpan di encrypt.
- Web Proxy dapat di gunakan untuk memblok website.
Kelebihan menggunakan Proxy server
Kelebihan Operating System yang menggunakan proxy adalah data yang
diminta dari klien akan diarahkan ke server proxy kemudian dilanjutkan
ke server internet.Pada saat data dari server datang,data tersebut akan
diarahkan oleh server internet ke server proxy kemudian server proxy
meneruskan data tsb ke klien yg memintanya.
Disamping memberikan data ke klien,server proxy juga menyimpan
salinan data itu sebagai webcache di hardisk.Apabila ada user lain yg
meminta data yg sama,maka server proxy akan mengambil data tersebut dari
hardisknya tanpa harus melakukan koneksi ke server internetyg
menyediakan data tsb. Kalau permintaan yg sama dilakukan oleh user
berkali-kali tentu akan mempengaruhi kecepatan akses internet secara
signifikan.
Fungsi utama Proxy
Conecting sharing :
Fungsi Proxy disini adalah penghubung atau perantara pengambilan data
dari suatu IP dan dihantarkan ke IP lain ataupun ke IP komputer kita.
Filtering :
Beberapa proxy dilengkapi juga dengan firewall yang mampu memblokir
atau menutup alamatnya suatu IP yang tidak diinginkan, sehingga beberapa
website tidak bisa diakses dengan menggunakan proxy tersebut.
Caching :
Artinya menyimpan proxy juga dilengkapi media penyimpanan data suatu
website dari query atau permintaan akses pengguna, jadi misalkan
permintaan mengkases suatu website bisa lebih cepat apabila sudah
terdapat permintaan akses ke suatu website pada pengguna proxy
sebelumnya.
Ada 3 macam proxy yang populer digunakan yaitu :
Proxy Tranparent :
Lebih mengutamakan fungsi sebagai kurir atau perantara pengambilan
data. Biasanya proxy Tranparents ini bisa kita gunakan untuk mempercepat
akses ke suatu website. Akan tetapi kalau kita menggunakan proxy
Transparen ini IP kita tetap bisa terdeteksi atau terbaca pada server IP
yang kita akses datanya dengan metode pelacakan IP yang lebih rumit.
Proxy Animouse :
Dengan Proxy Animouse selain sebagai perantara, proxy ini juga akan
memblokir data IP kita sehingga IP sebenarnya kita tidak bisa dibaca
oleh server website yang kita ambil atau kita akses datanya, dan yang
terbaca pada server website adalah IP Proxy tersebut. Tapi biasanya
kecepatan akses lebih lambat dari pada Proxy Transparent.
Elite proxy :
Alamat IP serta fakta bahwa proxy digunakan saat sambungan tidak
dapat ditangkap oleh server. Cara terbaik untuk menyembunyikan informasi
tentang keberadaan Anda di internet.
Jenis proxy menurut koneksinya :
1. proxy http
2. proxy socks
3. ssh tunnel
4. vpn
5. psybnc
6. bnc
7. proxy web (cgi, php)
Proxy saling berhubungan dengan 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.
tingkat keamanan proxy ????
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.
untuk itu kita perlu melakukan transparansi ip proxy bagi ada yang memiliki proxy server.
Proxy Tidak Melindungi Jaringan lokal
Proxy server berdasarkan pada web server dan seperti web server, mereka
beroperasi pada Application Layer—di atas Network dan Transport Layer.
Ini berarti mereka tidak melakukan apa-apa selain memfilter paket TCP/IP
yang tiba di server, dan mereka tidak mencampuri layanan Application
Layer yang lain seperti file sharing atau remote procedure call.
Hal ini membuat komputer terbuka terhadap hacking, kecuali jika Anda
mengambil langkah lain untuk mengamankan komputer. Walaupun kebanyakan
operating system modern mendukung pemilteran paket, tetapi filter mereka
tidak sekuat firewall sungguhan. Yang perlu Anda pastikan adalah hanya
port publik untuk layanan yang Anda proxy yang dibuka.
Beberapa pakar keamanan menganjurkan, supaya menjalankan layanan
sedikit mungkin pada firewall dan memisahkan fungsi proxy pada mesin
terpisah dengan asumsi bahwa filter harus sesederhana mungkin supaya
tidak dieksploitasi. Masalahnya adalah bahwa eksploitasi dapat muncul
pada berbagai level, dan jika Anda membuat proxy server di belakang
filter, hacker akan ada di belakang filter jika ia mengeksploitasi
proxy. Dengan menggunakan firewall yang terintegrasi dengan proxy
server, filter masih dapat melindungi jaringan bahkan jika layanan proxy
dieksploitasi.
Masalah Proxy Terhadap Kinerja
Proxy server mempunyai satu kekurangan pada kinerja, yaitu proxy server
membuat bottleneck. Seperti firewall atau router, satu koneksi proxy
server ke Internet dapat membuat bottleneck jika tidak di-upgrade ketika
jumlah user jaringan bertambah. Walaupun proxy awalnya meningkatkan
kinerja melalui mekanisme caching, Anda akan membuat semua orang
menunggu di belakang mesin yang lambat jika Anda mendapatkan lebih
banyak klien dari yang dapat didukung oleh server.
Namun, hati-hati dalam menyalahkan proxy Anda jika terjadi bottleneck
yang sebenarnya disebabkan oleh jalur Internet yang lambat. Jika Anda
hanya mempunyai satu koneksi Internet, dan itu adalah T1 (1,5 MB) atau
yang lebih lambat, semua komputer yang betul-betul memenuhi kebutuhan
minimum operating system dan proxy server sudah cukup cepat dalam
menangani beban yang ada. Bottleneck proxy hanya dapat terjadi bila
koneksi jaringan lebih cepat dari 1,5 MB/s atau pada waktu ada yang
salah dengan proxy server.
Masalah ini mudah diatasi dengan menambah lebih banyak proxy server.
Tidak seperti situs web atau server publik, proxy server todal perlu
mempunyai konfigurasi yang persis sama dengan mesin yang lain. Anda
dapat menghubungkan secara langsung berapa pun proxy server yang Anda
inginkan ke koneksi jaringan eksternal dan memberikan masing-masing
klien di dalam jaringan Anda ke salah salah proxy server.
Sebagai contoh, jika Anda mempunyai empat proxy server, hubungkan
tiap klien keempat ke proxy server yang sama. Anda akan kehilangan
beberapa manfaat caching karena client pada proxy berbeda yang mengakses
suatu situs tidak akan membuat situs itu tersedia untuk proxy yang
lain.
Anda dapat menggunakan software yang canggih dan TCP/IP load
balancing untuk menangani koneksi ke beberapa proxy, tetapi itu
membutuhkan biaya yang patut dipertimbangkan dan tidaklah jauh efisien.
Namun, ini menyediakan redundansi proxy, karena jika tidak user dapat
kehilangan layanan jika proxy mereka mati.
Explicit vs Transparent Proxy
Kebanyakan proxy, terutama proxy HTTP, butuh supaya software client
dikonfigurasi secara eksplisit untuk menggunakan proxy server dalam
mengakses data (seperti halaman web) dari jaringan luar. Ini berarti
bukan hanya setiap web browser, FTP client, atau aplikasi videophone
yang harus bisa menggunakan proxy server (banyak yang tidak, karena
telah diprogram dengan asumsi ada akses bebas ke Internet), tetapi juga
system administrator harus mengonfigurasi semua aplikasi pada komputer
client dalam jaringan supaya menggunakan proxy atau mengajari user
bagaimana melakukannya.
Masalah konfigurasi tidak menjadi beban bagi network administrator
karena web browser modern mempunyai kemampuan untuk mendeteksi setting
proxy pada jaringan secara otomatis. Namun software client lain, seperti
FTP atau Net2phone, tidak diprogram untuk melakukan itu. Walaupun fitur
tersebut menguntungkan network administrator, ada cara lebih baik bagi
protokol lain juga dan tidak perlu mengonfigurasi atau mengubah software
client jaringan—transparent proxy.
Transparent proxy Mengganti Aturan
Semua firewall modern dapat mengalihkan request yang datang ke port atau
komputer tertentu atau komputer interior tertentu yang akan memenuhi
request tersebut (seperti web server pada jaringan interior yang
diproteksi oleh firewall). Dengan cara yang sama, firewall dapat
menginterupsi dan mengalihkan traffic outgoing ke komputer tertentu,
seperti proxy server untuk request web. Komputer client tidak perlu tahu
bahwa traffic diinterupsi karena firewall dapat mengalihkan respon
proxy server ke client yang meminta seolah-olah tidak ada apapun yang
terjadi (menggunakan mekanisme Network Address Translation yang sekarang
tersebar luas). Anda dapat menemukan di Internet instruksi untuk
menggunakan fitur firewall oada BSD atau Linux bersama dengan paket
proxy seperti Jigsaw.
Gunakan Firewalll Sungguhan
Hal paling penting yang dapat dilakukan untuk melindungi diri Anda
sendiri adalah dengan menggunakan fungsi proxy pada firewall sungguhan
atau menaruh firewall di depan proxy server Anda untuk melindunginya.
Tidak ada alasan mengapa proxy server harus terhubung langsung ke
jaringan eksternal kecuali jika proxy digunakan untuk reverse proxy load
balancing suatu situs web.
Matikan Routing
Jika Anda menggunakan proxy sebagai pelindung utama terhadap hacker,
pastikan untuk mematikan routing melalui proxy. Jika Anda menyalakan
routing melalui proxy, proxy tidak akan melakukan fungsi sekuriti secara
signifikan karena client Anda semua akan dapat dilihat dari Internet.
Fitur penyembunyian client pada proxy menggandalkan penonaktifan routing
untuk mencegah sejumlah serangan protokol low-level.
Biasanya routing pada proxy dimatikan, tetapi kadang-kadang Anda
membutukan suatu layanan atau protokol yang tidak mempunyai layanan
proxy khusus atau tidak dapat di-proxy. Jangan tergoda dengan begitu
saja menyalakan routing. Jika layanan yang Anda butuhkan tidak dapat
diproxy, gunakan Network Address Translation. Jika layanan tersebut
tidak dapat ditranslasi maupun di-proxy, jangan gunakan sama sekali.
Amankan Dasar Operating System
Mengamankan dasar operating system sangat penting dalam menggunakan
proxy secara efektif sebagai perangkat pengaman. Jika hacker tidak dapat
mengeksploitasi server di mana proxy berjalan, mereka tidak dapat
mengganti setting sekuriti proxy untuk melewatinya.
Ini merupakan hal yang penting terutama dalam lingkungan Unix dan
Windows. Kedua operating system ini terkenal rentan terhadap hacking,
sehingga proxy yang berjalan pada
mereka juga sama rentannya.
Gunakan izin sekuriti yang kuat dan juga pemilteran port dan protokol
pada operating system untuk memastikan proxy server hanya melayani
protokol yang diinginkan. Cari tahu informasi hacking terakhir untuk
operating system Anda dan pastikan untuk menggunakan patch dan hot fix
pada server sekuriti eksternal begitu mereka dikeluarkan. Lebih penting
bagi server publik untuk aman daripada stabil. Crash yang terjadi pada
waktu menggunakan path atau hotfix yang belum diuji hanya menyebabkan
hilangnya layanan secara sementara—tidak menyebabkan bobolnya keamanan.
Matikan Akses Eksternal
Jangan pernah izinkan client jaringan eksternal untuk ter-proxy melalui
server Anda, walaupun jika hal ini terlihat masuk akal bagi remote user.
Dengan memberikan akses eksternal ke proxy server, itu memungkinkan
hacker untuk mengeksploitasi proxy server
Anda untuk menutupi koneksi IP mereka dan membuatnya tampak seolah-olah
proxy server Anda yang melakukan serangan. Ini dapat membuat Anda
bertanggung jawab atas kerusakan yang mereka lakukan.
Matikan Akses yang tidak dibutuhkan
Jangan jalankan semua layanan publik pada mesin yang sama dengan proxy
server. Aturan umum ini penting, terutama pada waktu menggunakan
mekanisme sekuriti seperti proxy server. Jika layanan seperti FTP atau
SMTP memungkinkan hacker untuk mengakses proxy server, hacker tersebut
dapat mematikan setting sekuriti proxy server untuk mendapatkan akses
lebih lanjut ke jaringan Anda. Namun jika layanan ini terbagi ke
beberapa mesin, serangan khusus FTP hanya akan memberikan akses ke FTP
server,
bukan seluruh jaringan.
Fungsi proxy server di buat untuk kejahatan
Para Booter seringkali menyerang atau melumpuhkan koneksi yahoo
messenger seseorang tidak hanya melalui satu cara saja semisal PM Bomb.
PM Bomb memang merupakan jenis Bot yang paling sering digunakan oleh
para Booter terutama yang pemula. PM Bomb jika berhasil atau lawan tidak
memiliki pertahanan memang sangat menyebalkan karena tampilan dimonitor
yang dipenuhi dengan windows PM Bomb ini. Akan tetapi sebenarnya jenis
PM Bomb bukan merupakan jenis bot yang mumpuni atau memiliki efektifitas
mendiskonekkan seseorang yang bagus. Memang jika digunakan dengan 1000
ID atau lebih hal tersebut bisa sangat berguna akan tetapi jika hanya
puluhan atau ratusan efektifitas untuk penyerangan tidaklah bisa
terjamin, terutama jika pihak yang diserang memiliki koneksitas yang
besar. Beberapa jenis Bot semisal invite game lebih cepat dan mumpuni
menyerang target dibandingakan dengan PM Bomb.
Nah, jika ID Bot yang anda gunakan lebih dari 1000 atau cukup banyak,
tidak menutup kemungkinan anda sendiri yang bisa terdiskonekkan atau
bahkan karena ini bisa membuat server yahoo sedikit curiga, IP anda bisa
saja dibann (atau dilarang) sehingga setiap anda ingin memasuki server
yahoo anda ditolak oleh mereka. Untuk menghindari hal ini atau untuk
mengatasi hal ini anda bisa menggunakan Proxy Server. Dengan Proxy
Server anda bisa dengan nyaman melakukan kegiatan booting tanpa takut di
bann oleh Om Yahoo atau sering diskonek, karena IP anda tidak terbaca
secara langsung oleh Om Yahoo. Untuk Proxy server yang lumayan bagus dan
tidak gratisan (lebih baik anonimous proxy), koneksitas anda bisa
menjadi lebih baik dalam mengirimkan serangan, akan tetapi seringkali
proxy yang tidak cukup baik malah akan membuat kerja koneksi anda
tersendat-sendat (terutama yang gratisan)
Disamping untuk keperluan ini anda bisa menggunakan Proxy server
untuk proses load web atau download file secara lebih baik. Akan tetapi
beberapa web memang tidak mengijinkan penggunaan proxy karena web
tersebut meminta konfirmasi IP seseoarang untuk mengakses webnya
(terutama yang anonimous). Bagi para pengguna dunia maya mungkin
penggunaan proxy server bukanlah hal yang asing lagi. Namun ada beberapa
hal yang perlu diketahui oleh para pemula mengenai proxy server.
Proxy server sebenarnya bekerja seperti tangan kedua (atau perantara)
antara komputer kita dengan sumber internet yang ingin kita akses. Jika
kita main di yahoo messenger berarti sumber internetnya adalah server
yahoo messenger itu sendiri. Data atau byte file yang masuk dari sumber
internet asli semisal om yahoo masuk ke proxy server terlebih dahulu dan
diolah sedemikian rupa di dalam database yang disebut “cache” sebelum
kemudian ditransfer ke komputer kita. Seringkali proxy server sudah
memiliki informasi yang ingin kita peroleh sehingga dia bisa langsung
memberikan ke pada kita tanpa melalui proses pengambilan dari sumber
aslinya. Keunggulan proxy adalah stabilitas dan kecepatan transfer serta
keamanan dan privasi yang diberikan. Kekurangannya, jika tidak
beruntung transfernya malah terputus-putus dan lambat terutama jika anda
menggunakan public proxy server.
Keuntungan dari Penggunaan memakai Proxy antara lain :
- Proxy bisa menyembunyikan identitas IP anda.
- Mempercepat akses ke suatu website.
- Dapat digunakan untuk mengakses suatu website atau IP yang diblokir
oleh Penyedia ISP atau Penyedia jaringan Internet tertentu (Dengan Proxy
Tertentu )
- Proxy dapat digunakan untuk memblokir akses ke suatu IP atau website ( Dengan Proxy tertentu )
- Meningkatkan Privacy atau keamanan karena proxy ini akan menfilter
cookies yang tidak diinginkan dan tersimpan dalam keadaan ter- encrypsi (
Proxy Tertentu)
Adapun keuntungan dari penggunaan diatas tetap tergantung dari
spesifikasi, jenis dan kualitas Proxy yang anda gunakan. Jadi tidak
semua proxy bisa difungsikan untuk hal diatas.
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 port 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) 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.
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 Proxy/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.
SQUID WEB PROXY/CACHE
Salah satu contoh aplikasi proxy/cache server adalah Squid. Squid
dikenal sebagai aplikasi proxy dan cache server yang handal. Pada pihak
klien bekerja apliaksi browser yang meminta request http pada port 80.
Browser ini setelah dikonfigurasi akan meminta content, yang selanjutnya
disebut object, kepada cache server, dengan nomor port yang telah
disesuaikan dengan milik server, nomor yang dipakai bukan port 80
melainkan port 8080 3130 (kebanyakan cache server menggunakan port itu
sebagai standarnya).
Pada saat browser mengirimkan header permintaan, sinyal http request
dikirimkan ke server. Header tersebut diterima squid dan dibaca. Dari
hasil pembacaan, squid akan memparsing URL yang dibutuhkan, lali URL ini
dicocokkan dengan database cache yang ada.
Database ini berupa kumpulan metadata (semacam header) dari object
yang sudah ada didalam hardisk. Jika ada, object akan dikirimkan ke
klien dan tercatat dalam logging bahwa klien telah mendapatkan object
yang diminta. Dalam log kejadian tersebut akan dicatat sebagai TCP_HIT.
Sebaliknya, jika object yang diminta ternyata tidak ada, squid akan
mencarinya dari peer atau langsung ke server tujuan. Setelah mendapatkan
objectnya, squid akan menyimpan object tersebut ke dalam hardisk.
Selama dalam proses download object ini dinamakan “object in transit”
yang sementara akan menghuni ruang memori. Dalam masa download tadi,
object mulai dikirimkan ke klien dan setelah selesai, kejadian ini
tercatat dalam log sebagai TCP_MISS.
Hubungan antar cache atau nantinya disebut peer itu sendiri ada dua
jenis, yaitu parent dan sibling. Sibling kedudukannya saling sejajar
dengan sibling lainnya, sedangkan parent adalah berada diatas sibling,
dua jenis peer ini yang selanjutnya akan bergandengan membentuk jaringan
hirarki cache
ICP sebagai protokol cache berperan dalam menanyakan ketersediaan
object dalam cache. Dalam sebuah jaringan sebuah cache yang mempunyai
sibling, akan mencoba mencari yang dibutuhkan ke peer sibling lainnya,
bukan kepada parent, cache akan mengirimkan sinyal icp kepada sibling
dan sibling membalasnya dengan informasi ketersediaan ada atau tidak.
Bila ada, cache akan mencatatkan ICP_HIT dalam lognya. Setelah kepastian
object bias diambil dari sibling, lalu cache akan mengirimkan sinyal
http ke sibling untuk mengambil object yang dimaksud. Dan setelah
mendapatkannya, cache akan mencatat log SIBLING_HIT.
Jika ternyata sibling tidak menyediakan object yang dicari, cache
akan memintanya kepada parent. Sebagai parent, ia wajib mencarikan
object yang diminta tersebut walaupun ia sendiri tidak memilikinya
(TCP_MISS). Setelah object didapatkan dari server origin, object akan
dikirimkan ke cache child tadi, setelah mendapatkannya cache child akan
mencatatnya sebagai PARENT_HIT.
Konfigurasi, penggunaan dan metode Squid
Konfigurasi-konfigurasi mendasar squid antara lain :
- 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.
- 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.
- 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, bias bertipe sibling maupun bertipe
parent,dan port yang digunakan untuk hubungan ICP maupun HTTP juga
dideklarasikan disini, sedangakan untuk parameter option disini ada
bermacam-macam salah satunya adalah default yang berarti dia adalah
satu-satunya parent yang harus dihubungi (jika bertipe parent) dan
proxy-only yang berarti bahwa object yang dipata dari peer tersebut
tidak perlu disimpan dalam hardisk local.
- Dead_peer_timeout jumlah_detik seconds.
Masing-masing peer yang telah didefinisikan sebelumnya mempunyai waktu
timeout sebesar yang ditentukan dalam konfigurasi ini, Jika peer tidak
menjawab kiriman sinyal ICP dalam batas waktu yang telah ditentukan,
peer akan dianggap tidak akan dapat dijangkau, dan cache server tidak
akan mengambil object dari server yang bersangkutan dalam interval waktu
tertentu.
- Hierarcy_stoplist pola1 pola2 Sintaks ini digunakan
untuk menyatakan apa yang harus tidak diminta dari peer, melainkan
harus langsung dari web server origin, jika pola1 dan pola 2 adalah
parameter cgi-bin, ?, dan lain-lain maka jika ada request URL yang
mengandung karakter tersebut maka akan diambilkan langsung ke server
origin.
- 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.
- 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.
- 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 objectnya.
ACL (Access Control List)
Selanjutnya konfigurasi-konfigurasi lanjutan squid, selain sebagai
cache server, squid yang memang bertindak sebagai “parent” untuk meminta
object dari kliennya dapat juga dikonfigurasi untuk pengaturan hak
akses lebih lanjut, untuk pertama kali yang dibicarakan adalah ACL
(access control list), ACL sendiri terdiri dari beberapa tipe antara
lain :
- Src – IP Address asal yang digunakan klien
- Dst – IP Address tujuan yang diminta klien
- Myip – IP Address local dimana klien terhubung
- srcdomain – Nama domain asal klien
- dstdomain – Nama domain tujuan klien
- srcdom_regex- Pencarian pola secara string dari nama domain asal klien
- dstdom_regex – Pencarian pola secara string dari nama domain tujuan klien
- Time – Waktu dinyatakan dalam hari dan jam
- Proto – Protokol transfer (http, ftp, gopher)
- Method – Metode permintaan http (get, post, connect)
Berikutnya adalah control list yang akan digunakan untuk mengatur control dari ACL, control list tersebut antara lain :
- http_access – memperbolehkan acess http
- icp_access – memperbolehkan peer untuk mengirimkan icp untuk menquery object
- miss_access – memperbolehkan klien meminta object yang belum ada (miss) didalam cache
- no_cache – object yang diminta klien tidak perlu disimpan ke hardisk
- always_direct – permintaan yang ditangani langsung ke server origin
- never direct – permintaan yang ditangani secara tidak langsung ke server origin.
Sebagai contoh diberikan sintaks konfigurasi ACL seperti dibawah ini :
#bagian ACL
ACL localnet src 192.168.100.0/24
ACL localkomp 127.0.0.1/255.255.255.255
ACL isp dst 202.59.206.65/30
ACL allsrc src 0.0.0.0/0.0.0.0
ACL alldst dst 0.0.0.0/0
ACL other src 10.10.11.11/32
ACL domainku srcdomain .jatara.net
#bagian control list
http_access deny other
http_access allow localnet
http_access allow lokalkomp
http_access allow domainku
http_access deny allsrc
always_direct allow isp
always_direct deny alldst
Pada konsep sintaks konfigurasi squid adalah bahwa sesuatu yang telah
dieksekusi pada baris yang lebih atas maka dia tidak dieksekusi lagi
dibaris yang paling bawah, walaupun dalam parameter ACL yang dibawah
tersebut dia juga termasuk, untuk lebih jelasnya, jika ada IP Address
192.168.100.0/24 maka IP Address yang berkisar dari 192.168.100.1 –
192.168.100.254 (ACL localnet) telah diijinkan untuk mengakses http yang
ditunjukkan oleh http_access allow localnet, dan dibawahnya ada ACL
allsrc yang itu adalah mencakup semua daftar IP Address dan ACL itu
tidak diperbolehkan mengakses http, yaitu http_access_deny allsrc, tapi
karena pada ACL localnet dia telah dieksekusi untuk sebagai IP Address
yang boleh mengakses, maka walaupun dibaris bwahnya di dieksekusi lagi,
itu tidak akan berpengaruh,hal-hal seperti itu digunakan untuk seorang
administrator cache server untuk melakukan pengontrolan agar tidak akan
terlalu detail melakukan pengaturan jika baris atas dan bawah sama-sama
saling mempengaruhi.
Peering
Kembali membicarakan tentang konfigurasi peering. Maka di squid
option atau parameter-parameter untuk pengaturan squid banyak sekali
variasinya antara lain terdapat dalam contoh dibawah ini :
Cache_peer ugm.ac.id sibling 8080 3130 proxy-only
Cache_peer itb.ac.id parent 3128 3130 no-digest round-robin
Cache_peer ui.ac.id parent 3128 3139 weight=2 no-digest
Untuk pengaturan diatas, tipe peer baik sibling maupun parent, nomor
port untuk hubungan icp maupun http telah dijelaskan pada bab
sebelumnya, disini akan dibahas tentang option yang ada yaitu
proxy-only, round-robin, dan no-digest.
Pada bagian sibling cache peer itu didefinisikan sebagai proxy-only
yang berarti seluruh object yang didapatkan dari sibling tidak akan
disimpan ke dalam hardsik, begitu object selesai didownload maka object
tersebut akan langsung diserahkan kepada klien dan object akan dihapus
dari memori, option selanjutnya adalah weight, option weight adalah
digunakan untuk pengaturan prioritas yang semakin tinggi nilainya maka
dia adalah cache parent yang akan dihubungi terlebih dahulu, option
round-robin berfungsi untuk memutar giliran parent mana yang akan
diminta mencarikan object, pada kasus ini jika ada terdapat banyak
parent yang tidak diberi option weight untuk prioritas maka option
round-robin digunakan untuk menggilir cache yang akan dihubungi secara
bergantian.
Sedang option no-digest adalah merupakan salah satu alternative squid
berbicara dengan peer. Cache digest menggunakan cara mengumpulkan
header masing-masing object yang telah disimpan kedalam sebuah file.
File ini yang nantinya akan diforward atau didownload oleh peer dengan
menggunakan protokol http. Header ini dikumpulkan dalam versi terkompres
dengan rasio tinggi.
Dengan memperoleh cache-digest dari peer, squid memperoleh kejelasan
status ada tidaknya object yang diminta, tanpa perlu bertanya dulu
sebelumnya lewat protokol ICP, Jelas dari sini squid dapat
mengoptimisasi banwitdh, terutama jika peer terletak dalam jarak logika
hoop yang cukup jauh. Cache digest itu sendiri degenerate secara berkala
dan besarnya tergantung dari jumlah setiap object, masing-masing object
tersebut disimpan dalam header sebanyak 10 bits.
Object Cache
Pengaturan object sebuah cache server merupakan salah satu hal yang
perlu diperhatikan disini. Telah diketahui sebelumnya bahwa object
disimpan pada dua level cache_dir yang besar levelnya didefinisikan pada
konfigurasi utama squid. Object itu sendiri berisikan content URL yang
diminta klien dan disimpan dalam bentuk file binary, masing-masing
object mempunyai metadata yang sebagian dari isinya disimpan didalam
memori untuk memudahkan melacak dimana letak object dan apa isi dari
object tersebut. Banyak sifat-sifat yang perlu diamati untuk optimasi
squid ini, antara lain :
Umur object Umur obect merupakan sebuah ukuran waktu yang dihabiskan
sebuah object untuk tinggal didalam hardisk cache. Umur object dibatasi
oleh beberapa factor, yaitu :
metode penghapusan object object dihapus bisa melalui beberap algoritma penghapusan :
- Logistic Regression : yaitu menghapus object dengan
kemungkinan logistic regression terkecil. Kemungkinan logistic
regression bisa diartikan sebagai besarnya kemungkinan object tersebut
akan diakses diwaktu yang akan dating.
- Least Recently Used : yaitu metode penghapusan
object berdasarkan waktu kapan object tersebut terakhir diakses. Semakin
lama (besar) waktunya, kemungkin dihapus juga akan semakin besar.
- Least Frequently Used : Metode penghapusan object yang paling jarang diakses.
- First In First Out : Penghapusan yang merunut
metode berdasarkan waktu masuk ke dalam cache_dir, yaitu object yang
paling awal masuk, berarti itu adalah object yang akan dihapus terlebih
dahulu.
- Random : Menghapus object secara random.
Kapasitas hardisk cache
Semakin besar kapasitas cache, berarti semakin lama umur object
tersebut bisa disimpan, jika pemakaian hardisk sudah mendekati batas
atas (cache_swap_high) penghapusan akan semakin sering dilakukan.
Memori
Memori dipakai squid dalam banyak hal. Salah satu contoh pemakaiannya
adalah untuk disimpannya object yang popular, lazimnya disebut hot
object. Jumlah hot object yang disimpan dalam memori bisa diatur dengan
option cache_mem pada squid.conf
Sebenarnya yang paling memakan memori adalah metadata object, karena
kebanyakan object sendiri sebenarnya disimpan dalam direktori cache_dir
hardsik local. Semakin banyak kapasitas cache_dir, semakin banyak pula
metadata dan semakin membebani pemakaian memori. Pada kebanyakan kasus
untuk setiap 1.000.000 jumlah object, rata-rata dibutuhkan sebesar 72 MB
memori untuk keseluruhan object dan 1,25 MB untuk metadata. Jumlah
object ini bisa didapatkan dari besar cache_dir dibagi dengan jumlah
rata-rata kapasitas object, biasanya setiap object bernilai 13 KB.
Mengingat pentingnya ketersediaan memori, penting untuk melihat
sebagus apa aplikasi pengalokasian memori yang ada pada sistem operasi
yang sedang bekerja. Secara default pada sistem operasi sudah tersedia
rutin program untuk alokasi memori atau malloc (memory allocation).
Namun pada beban yang sangat besar dan tanpa diimbangi penambahan memori
yang memadai, malloc akan mencapai batas atas performansi dan kemudian
mencapai status ketidakstabilan, dan squid akan menuliskan banyak pesan
error pada log, misalnya seperti : “xmalloc : Unable to allocate 4096
bytes!”.
Jika ini terjadi, langkah yang dapat dilakukan adalah melakukan
penambahan memori, dan langkah kedua jika ingin lebih stabil adalah
menginstall library untuk rutin program malloc yang lebih baru.
PROXY SERVER LAYER NETWORK
Salah satu contoh proxy yang bekerja pada layer jaringan adalah
aplikasi firewall yang menjalankan Network Address Translation (NAT).
NAT selalu digunakan pada router atau gateway yang menjalankan aplikasi
firewall. NAT digunakan untuk mengubah alamat IP paket TCP/IP, biasanya
dari alamat IP jaringan lokal ke alamat IP publik, yang dapat dikenali
di internet.
Pada suatu jaringan lokal (local Area Network), setiap komputer
didalamnya menggunakan alamat IP lokal, yaitu alamat IP yang sudah
disediakan untuk keperluan jaringan lokal, dan tidak akan dikenali atau
diterima oleh router-router di Internet. Ketika komputer-komputer pada
jaringan lokal tersebut memerlukan untuk mengakses layanan di internet,
paket-paket IP yang berasal dari jaringan lokal harus diganti alamat
sumbernya dengan satu alamat IP publik yang bisa diterima di internet.
Disinilah proses NAT dilakukan oleh aplikasi firewall di Gateway,
sehingga suatu server di internet yang menerima permintaan dari jaringan
lokal akan mengenali paket datang menggunakan alamat IP gateway, yang
biasanya mempunyai satu atau lebih alamat IP publik.
Pada proses NAT ini, aplikasi firewall di gateway menyimpan satu
daftar atau tabel translasi alamat berikut catatan sesi koneksi TCP/IP
dari komputer-komputer lokal yang menggunakannya, sehingga proses
pembaliknya bisa dilakukan, yaitu ketika paket jawaban dari internet
datang, gateway dapat mengetahui tujuan sebenarnya dari paket ini,
melakukan proses pembaliknya (de-NAT) dan kemudian menyampaikan paket
tersebut ke komputer lokal tujuan yang sebenarnya.
PROXY SERVER PADA LEVEL SIRKUIT
Proxy server yang bekerja pada level sirkuit dibuat untuk
menyederhanakan keadaan. Proxy ini tidak bekerja pada layer aplikasi,
akan tetapi bekerja sebagai “sambungan” antara layer aplikasi dan layer
transport, melakukan pemantauan terhadap sesi-sesi TCP antara pengguna
dan penyedia layanan atau sebaliknya. Proxy ini juga masih bertindak
sebagai perantara, namun juga membangun suatu sirkuit virtual diantara
layer aplikasi dan layer transport.
Dengan proxy level sirkuit, aplikasi klien pada pengguna tidak perlu
dikonfigurasi untuk setiap jenis aplikasi. Sebagai contoh, dengan
menggunakan Microsoft Proxy Server, sekali saja diperlukan untuk
menginstall WinSock Proxy pada komputer pengguna, setelah itu
aplikasi-apliakasi seperrti Windows Media Player, IRC atau telnet dapat
langsung menggunakannya seperti bila terhubung langsung lke internet.
Kelemahan dari proxy level sirkuit adalah tidak bisa memeriksa isi
dari paket yang dikirimkan atau diterima oleh aplikasi-aplikasi yang
menggunakannya. Kelemahan ini dicoba diatasi menggunakan teknologi yang
disebut SOCKS. SOCKS adalah proxy level sirkuit yang dapat digunakan
untuk semua aplikasi (generik proxy) yang berbasis TCP/IP, dikembangkan
sekitar tahun 1990 oleh Internet Engineering Task Force (IETF) dan sudah
mencapai versi 5 (RFC 1928). SOCKS menyediakan standar yang independen
dari platform yang digunakan untuk mengakses proxy level sirkuit. Salah
satu kemampuan penting SOCKS versi 5 adalah tambahan proses autentikasi
dan password, serta memberikan layanan proxy terhadap layanan berbasis
UDP, dengan pertama-tama melakukan koneksi TCP, den kemudian
menggunakannya untuk relay bagi data UDP.
SOCKS terdiri dari dua komponen, yaitu SOCKS server dan SOCKS klien.
SOCKS server diimplementasikan pada leyer aplikasi, sedangkan SOCKS
klien diimplementasikan diantara layer aplikasi dan layer transport.
Kegunaan pokoknya adalah untuk bisa menyelenggarakan koneksi dari satu
host pada satu sisi dari SOCKS server dengan host lain pada sisi yang
lain dari SOCKS server, tanpa kedua host harus terhubung langsung dalam
konteks TCP/IP.
Ketika satu aplikasi klien ingin terhubung dengan server aplikasi,
pertama-tama dia menghubungi SOCKS proxy server. Proxy inilah yang akan
melakukan relay data dan menghubungkan klien dengan server. Bagi si
klien, SOCKS proxy server adalah server, dan bagi server, SOCKS proxy
server adalah klien. SOCKS proxy melakukan 3 tahap proses yaitu membuat
permintaan koneksi, membuat sirkuit proxy-nya, dan melakukan relay data.
SOCKS versi 5 menambah satu prosedur yaitu proses autentikasi pada
setiap langkah diatas.
Aplikasi yang menggunakan SOCKS versi 5 sejumlah mempunyai keunggulan yaitu :
- Proxy generik yang tidak tergantung pada aplikasinya
(application-independent proxy). SOCKS membuat dan mengatur channel
komunikasi yang digunakan untuk semua aplikasi jaringan. Adanya aplikasi
baru tidak memerlukan pengembangan tambahan. Proxy layer aplikasi harus
membuat software proxy baru untuk setiap aplikasi baru, dan proxy layer
network dengan inspeksi penuh harus membuat cara inspeksi protokol
baru.
- Akses yang transparan pada jaringan dengan banyak server proxy.
- kemudahan autentikasi dan metode enkripsi. Hanya menggunakan satu
protokol saja untuk pembangunan channel komunikasi semua pengguna dan
aplikasi, dan proses autentikasinya. Kebanyakan protokol tuneling
memisahkan proses autentikasi dan proses pembangunan channel komunikasi.
- kemudahan membangun aplikasi jaringan tanpa harus membuat proxy-nya.
- manajemen kebijakan yang sederhana atas keamanan jaringan.