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.