Selasa, 18 Desember 2012

Proxy Server


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

http://www.computerrepairmaintenance.com/images/proxy-server.png








Gambar 2.17 Proxy Server
2.5.1      Fungsi Proxy
Proxy server memiliki tiga fungsi dasar yaitu connection sharing, firewall, dan chacing.

Connection Sharing
Untuk connection sharing, Proxy server dapat bertindak sebagai gateway untuk jarngan lokal terhadap jaringan luar atau internet, karena paket data yang dikirimkan dari jaringan lokal ke jaringan luar harus melewati proxy server. Proxy sever sebagai connection sharing ini dapat bekerja pada layer Data-Link, layer Network dan Transport, maupun layer Aplikasi dalam hirarki layer komunikasi jaringan menurut OSI, namun sebagian besar pengertian, proxy server bekerja pada layer aplikasi.

Firewall
Proxy server juga mempunyai fungsi untuk melakukan filtering yang biasa disebut dengan firewall. Filtering ini berdasarkan daftar aturan dan pengaturan pada akses tertentu sehingga lebih mudah mengatur trafik dari sumber-sumber yang tidak terpercaya dan digunakan untuk melindungi kumpulan komputer dalam sebuah jaringan maupun sekumpulan jaringan yang berbeda topologi. Firewall biasanya diletakkan pada router-router, sehingga bisa melakukan filtering atas paket yang lewat dari dan ke jaringan-jaringan yang dihubungkan.
Karena firewall melakukan filtering berdasarkan suatu daftar aturan dan pengaturan akses tertentu, maka lebih mudah mengatur dan mengendalikan trafik dari sumber-sumber yang tidak dipercaya. Firewall juga melakukan filtering berdasarkan jenis protokol yang digunakan (TCP,UDP,ICMP) dan port TCP atau UDP yang digunakan oleh suatu layanan (semisal telnet atau FTP). Sehingga firewall melakukan kendali dengan metode boleh lewat atau tidak boleh lewat, sesuai dengan daftar aturan dan pengaturan akses yang dibuat. Bila suatu layanan tertentu atau alamat tertentu merupakan layanan atau alamat yang terpercaya, maka dapat diatur pada firewall agar paket dari sumber terpercaya dapar diijinkan.
Packet filtering pada firewall mempunyai keunggulan yaitu kecapatan yang lebih dan tidak memerlukan konfigurasi tertentu pada pengguna-pengguna yang terhubung. Namun di sisi lain dapat menimbulkan kesulitan, karena akan sangat sulit bila kita harus membuat satu daftar aturan yang banyak dan kompleks. Disamping itu, yang bisa dilakukan firewall hanya memperbolehkan atau tidak memperbolehkan suatu paket lewat berdasarkan pada alamat IP sumber atau alamat IP tujuan yang ada pada paket tersebut. Penyerang bisa melakukan pemalsuan alamat IP pada paket (spoofing) menggunakan alamat IP tertentu yang terpercaya, dan firewall akan melewatkannya. Penyerang juga dapat melakukan penyadapan paket (sniffing) dengan relatif mudah untuk mengetahui struktur alamat IP pada header paket yang lewat di jaringan.

Caching
Fungsi dasar yang ketiga dari sebuah proxy server adalah caching. Caching adalah sebuah cara untuk penyimpanan content-content yang sudah pernah diminta oleh pengguna di internet, content-content tersebut disimpan pada sebuah ruang disk yang disebut cache. Sehingga apabila ada pengguna yang akan meminta content yang sama, proxy server akan memberikannya langsung tanpa meminta terlebih dahulu ke server aslinya di internet.
Proses caching ini tidak terlihat oleh pengguna (transparent). Artinya pengguna tidak dapat membedakan siapa sebenarnya yang memberikan content tersebut. Content yang disimpan mempunyai batas waktu untuk memeriksanya digunakan validasi. Validasi ini digunakan apabila ada pengguna yang memintanya, metode ini disebut caching pasif, sedangkan caching aktif proxy akan secara otomatis akan mengamati content dan perubahannya. Dalam kondisi tertentu kapasitas penyimpanan cache akan berkurang oleh content yang disimpan, bila itu terjadi maka proxy server akan melakukan penghapusan secara otomatis agar ruang penyimpanan tetap terjaga, penjadwalan yang dilakukan sesuai dengan konfigurasi yang sudah ditentukan, biasanya ditetukan oleh waktu suatu content tersimpan.

Fungsi lainnya yang dimiliki oleh proxy server yaitu:
·      Bandwidth Management, yaitu untuk membuat aturan dalam mengelola konten dan kecepatan akses terhadap sumber daya internet/intranet yang diberlakukan bagi client dalam jaringan lokalnya. Hal ini terkait pula dengan metode caching yang dilakukan sebuah server proxy pada umumnya.
·      IP Address/Group and User Access Management
fungsi ini merupakan fitur yang cukup penting untuk mengelola hak kepada user/computer/group/IP Address yang bisa mengakses jaringan luar/internet dan kita sebagai NetAdmin, dapat mengatur siapa saja yang boleh mengakses internet.
·      Content Filtering, fitur ini berupa aturan yang akan menyaring setiap informasi/konten yang diminta oleh client agar tidak terlalu bebas dan dapat merusak/meminimalisir sisi negatif dari konten tersebut. Misalkan untuk mem-block Window Pop-Up, Java Applet, ActiveX, dan lain-lain.
·      Transparent proxy and Non-transparent proxy, yaitu sebuah metode dimana client yang ada dalam jaringan, tidak perlu melakukan konfigurasi (alias konfigurasi dilakukan secara transparent) untuk bisa mengakses/terhubung/dikenakan rule (aturan) dari server proxy tersebut, akan tetapi proxy server yang langsung melakukan broadcast terhadap siapapun yang diberi akses ke internet ‘dipaksa’ untuk melewati proxy server terlebih dahulu. Sementara Non-transparent proxy adalah kebalikan dari transparent dan setiap client yang akan terhubung/mengakses/dikenakan rule proxy, setiap aplikasi yang terhubung ke internet seperti Internet Browser, FTP (File Transfer Protocol) client, dan lain-lain harus dikonfigurasi agar terhubung ke proxy server, baru kemudian di-forward ke internet.
·      VPN Server dan VPN Tunnel, VPN adalah singkatan dari (Virtual Private Network) atau jaringan pribadi, yang merupakan cara agar jaringan lokal/pengguna perorangan di suatu tempat dapat mengakses jaringan lokal/komputer server di tempat lainnya melalui media publik seperti internet. Melalui VPN ini, seseorang atau sebuah jaringan local di suatu tempat dapat terhubung dengan IP Address local di tempat yang lain, sehingga komunikasi yang terjadi layaknya dalam sebuah jaringan lokal biasa (LAN), namun media yang digunakan adalah media publik seperti internet.
·      Reverse Proxy Load Balancing. Proxy server sekarang ini dapat digunakan untuk melakukan “reverse proxy”, atau menyediakan layanan proxy ke client eksternal untuk server internal. Fungsi ini digunakan untuk menyeimbangkan beban klien ke sejumlah web server. Banyak situs web yang fungsionalitasnya tinggi menggunakan aplikasi kompleks seperti ISAPI, Active Server Pages, Java Servlet, atau CGI. Aplikasi ini dijalankan pada server, sehingga mereka sangat mengurangi banyaknya client yang mampu ditangani oleh satu server. Sebagai contoh, Windows 2000 server yang menjalankan IIS yang bisa menangani sampai 100.000 browser untuk halaman HTML standar hanya bisa menangani 5000 browser halaman ASP. Ini berarti bahwa kebanyakan fungsi e-commerce sebenarnya tidak bisa ditangani oleh satu server, jadi situs tersebut harus dijalankan secara parallel ke sejumlah emsin. Sebagai contoh http://www.microsoft.com/ dijalankan pada 30 server DNS yang identik. DNS menyediakan skema dasar load-sharing yaitu akses ke nama DNS akan mendapatkan salah satu alamat IP, tetapi ini belum benar-benar menyeimbangakan beban.
·      Proxy server dapat digunakan untuk merespon ke satu alamat IP dan kemudian mengarahkan koneksi client ke salah satu server di belakanganya. Proxy server dapat menggunakan beberapa tolak ukur yang disediakan oleh semua web server untuk mengetahui server mana yang mempunyai sisa kapasitas paling banyak. Setiap client yang terhubung, kemudian dapat diarahkan ke web server manapun yang mempunyai kapasitas yang cukup untuk menanganinya.

2.5.2      Transparent Proxy
Salah satu kompleksitas dari proxy pada level aplikasi adalah bahwa pada sisi pengguna harus dilakukan konfigurasi yang spesifik untuk suatu proxy tertentu agar bisa menggunakan layanan dari suatu proxy server. Bila diinginkan agar pengguna tidak harus melakukan konfigurasi khusus, kita bisa mengkonfigurasi proxy/cache server agar berjalan secara benar-benar transparan terhadap pengguna (transparent proxy). Biasanya cara ini memerlukan bantuan dan konfigurasi aplikasi firewall (yang bekerja pada layer network) untuk bisa membuat transparent proxy yang bekerja pada layer aplikasi.
Transparent proxy dapat berguna untuk “memaksa pengguna” menggunakan proxy/cache server, karena pengguna benar-benar tidak mengetahui tentang keberadaan proxy ini, dan apapun konfigurasi pada sisi pengguna, selama proxy server ini berada pada jalur jaringan yang pasti dilalui oleh pengguna untuk menuju ke internet, maka pengguna pasti dengan sendirinya akan “menggunakan”  proxy/cache ini.
Cara membuat transparent proxy adalah dengan membelokkan arah (redirecting) dari paket-paket untuk suatu aplikasi tertentu, dengan menggunakan satu atau lebih aturan pada firewall/router. Hal ini bisa dilakukan karena setiap aplikasi berbasis TCP akan menggunakan salah satu port yang tersedia, dan firewall dapat diatur agar membelokkan paket yang menuju ke port layanan tertentu, ke arah port dari proxy yang bersesuaian.

Sebagai contoh,  pada saat klien membuka hubungan HTTP (port 80) dengan suatu web server, firewall pada router yang menerima segera mengenali bahwa ada paket data yang berasal dari klien dengan nomor port 80. Disini kita juga mempunyai satu HTTP proxy server yang berjalan pada port 3130. Maka pada firewall router kita buat satu aturan yang menyatakan bahwa setiap paket yang datang dari jaringan lokal menuju ke port 80 harus dibelokkan ke arah alamat HTTP proxy server port 3130. Akibatnya, semua permintaan web dari pengguna akan masuk dan diwakili oleh HTTP proxy server di atas.








Gambar 2.18 Metode Transparent Proxy
Jadi secara umum keuntungan dari metode transparent proxy adalah :
1.    Kemudahan administrasi jaringan, yang berarti browser yang digunakan klien tidak harus dikonfigurasi secara khusus yang menyatakan bahwa mereka menggunakan fasilitas proxy yang bersangkutan.
2.    Sentralisasi kontrol, yang berarti pergantian metode bypass proxy  maupun penggunaan proxy oleh klien dapat dilakukan secara terpusat.


2.5.3      Squid Proxy
Salah satu contoh aplikasi proxy/cache server adalah Squid. Squid adalah sebuah daemon yang digunakan sebagai proxy server dan web cache. Squid memiliki banyak jenis penggunaan, mulai dari mempercepat server web dengan melakukan caching permintaan yang berulang-ulang, caching DNS, caching situs web, dan caching pencarian komputer di dalam jaringan untuk sekelompok komputer yang menggunakan sumber daya jaringan yang sama, hingga membantu keamanan dengan cara melakukan penyaringan (filter) lalu lintas.
Meskipun seringnya digunakan untuk protokol HTTP dan FTP, Squid juga menawarkan dukungan terbatas untuk beberapa protokol lainnya termasuk Transport Layer Security (TLS), Secure Socket Layer (SSL), Internet Gopher, dan HTTPS. Versi Squid 3.1 mencakup dukungan protokol IPv6 dan Internet Content Adaption Protocol (ICAP).
Squid pada awalnya dikembangkan oleh Duane Wessels sebagai "Harvest object cache", yang merupakan bagian dari proyek Harvest yang dikembangkan di University of Colorado at Boulder. Pekerjaan selanjutnya dilakukan hingga selesai di University of California, San Diego dan didanai melalui National Science Foundation. Squid kini hampir secara eksklusif dikembangkan dengan cara usaha sukarela.
Squid umumnya didesain untuk berjalan di atas sistem operasi mirip UNIX, meski squid juga bisa berjalan di atas sistem operasi Windows.

Konfigurasi, penggunaan dan metode Squid

Konfigurasi-konfigurasi mendasar squid antara lain :
1.         http_port nomor port.
Ini akan menunjukkan nomor port yang akan dipakai untuk menjalankan squid. Nomor port ini akan dipakai untuk berhubungan dengan klien dan peer.
2.          icp_port nomor port.
Ini akan menunjukkan nomor port yang akan dipakai untuk menjalankan squid. Nomor port ini akan dipakai untuk berhubungan dengan klien dan peer.

3.         cache_peer nama_peer tipe_peer nomor_port_http nomor_port_icp option.
Sintask dari cache peer ini digunakan untuk berhubungan dengan peer lain, dan peer lain yang dikoneksikan ini tipenya bergantung dari tipe peer yang telah dideklarasikan ini, bisa bertipe sibling maupun bertipe parent,dan port yang digunakan untuk hubungan ICP maupun HTTP juga dideklarasikan di sini.
4.         Dead_peer_timeout jumlah_detik seconds.
Masing-masing peer yang telah didefinisikan sebelumnya mempunyai waktu timeout sebesar yang ditentukan dalam konfigurasi ini.
5.         Hierarcy_stoplist pola1 pola2
Sintaks ini digunakan untuk menyatakan apa yang harus tidak diminta dari peer, melainkan harus langsung dari web server origin.

6.         Cache_mem jumlah_memori (dalam bytes)
Sintaks ini akan menentukan batas atas jumlah memori yang digunakan untuk menyimpan antara lain : intransit object yaitu object yang dalam masa transisi antara waktu cache mendownload sampai object disampaikan ke klien, dan hot object, yaitu object yang sering diakses.

7.         Cache_swap_low/high jumlah (dalam persen)
Squid akan menghapus object yang ada didalam hardisknya jika media tersebut mulai penuh. Ukuran penuh ini yang diset pada cache_swap_low dan cache_swap_high. Bila batas swap_low telah tercapai maka squid mulai menghapus dan jika batas swap_high tercapai maka squid akan semakin sering menghapus.

8.         Cache_dir jenis_file_sistem direktori kapasitas_cache dir_1 jumlah dir_2
Sintaks ini akan menjelaskan direktori cache yang dipakai, pertama adalah jenis file sistemnya, lalu didirektori mana cache tersebut akan disimpan, selanjutnya ukuran cache tersebut dalam MegaBytes lalu jumlah direktori level 1 dan direktori level 2 yang akan digunakan squid untuk menyimpan objeknya.

(Sumber: www.scribd.com)

Tidak ada komentar:

Posting Komentar