Proxy Server dengan Squid

Squid web-cache proxy server adalah software proxy server yang bersifat open source yang didesain untuk berjalan di sistem UNIX dan keluarganya (tentu saja termasuk Linux). Squid tidak hanya dapat meng-cache objek-objek web saja, namun juga dapar meng-cache DNS dan network lookup lainnya. Meskipun pada awalnya didesain untuk sistem UNIX, namun Squid dapat pula diport ke Windows NT, namanya menjadi SquidNT.

Cara Kerja Squid
Squid pertama-tama akan memeriksa request yang datang. Jika squid diset dengan autentikasi tertentu, squid akan memeriksa autentikasi user terlebih dahulu. Autentikasi ini termasuk subnet area, user account, jenis file yang direquest, alamat situs tujuan, dan properti-properti yang telah diset pada file konfigurasi squid. Jika lolos dan telah sesuai dengan konfigurasi, request tersebut kembali diperiksa apakah objek yang diminta telah berada di cache. Jika sudah ada maka proxy server tidak perlu melanjutkan request ke internet tetapi langsung mereply request dengan objek yang diminta.

Keuntungan menggunakan proxy server:

  • Dapat menghemat biaya bandwidth.
  • Mempercepat koneksi karena file-file web yang direquest (selanjutnya disebut object) disimpan di dalam cache sehingga tidak perlu keluar menuju internet.
  • Dapat mengatur kecepatan bandwidth untuk subnet yang berbeda-beda (mirip dengan HTB atau zaper).
  • Dapat melakukan pembatasan untuk file-file tertentu.
  • Dapat melakukan pembatasan akses kepada situs-situs tertentu (misalnya situs porno).
  • Dapat melakukan pembatasan download untuk file-file tertentu (misalnya file-file mp3, wav, dsb).
  • Dapat melakukan pembatasan waktu-waktu yang diperbolehkan untuk download.
  • Dapat melakukan pembatasan siapa saja yang boleh mengakses internet dengan menggunakan autentikasi. Autentikasi yang biasa digunakan bisa basic, digest, ataupun ntlm.
  • Dapat melakukan pembatasan-pembatasan lainnya.

Kerugian menggunakan proxy server:

  • Pintu keluar menuju gerbang internet hanya lewat proxy, sehingga ketika terjadi overload, akses internet menjadi lambat
  • User akan melihat file yang kadaluarsa jika cache expire time-nya terlalu lama, sehingga meskipun di website file tersebut sudah berubah, user masih melihat file yang tersimpan di cache memory
  • Karena koneksi internet harus melalui gerbang proxy terlebih dahulu, maka kecepatan akses bisa jadi lebih lambat daripada kita melakukan koneksi langsung. Dalam hal ini keduanya akan mengakses file internet secara langsung

Beberapa proxy yang sering digunakan:

  • Squid Web-cache: merupakan proxy server open source dan didesain untuk berjalan di sistem UNIX dan keluarganya.
  • WinProxy: proxy server berbasis windows yang sifatnya free.
  • WinGate Proxy Server: proxy server berbasis windows yang bersifat komersial.
  • Microsoft Proxy: proxy server buatan Microsoft Corporation. Tentu saja sangat komersial
  • dan lain-lain

ICP (Internet Cache Protocol)
ICP merupakan kependekan dari Internet Cache Protocol, yaitu merupakan protocol yang digunakan untuk mengkoordinasikan antara dua web cache atau lebih agar dapat bekerjasama dan berkomunikasi. Tujuan web-cache bekerja sama ini adalah supaya dapat mencari letak yang tepat untuk menerima objek yang direquest. Protokol ini tidak reliable namun memiliki time out yang sangat pendek sehingga cocok untuk web-cache. Protokol ini tidak cocok untuk delivery – UDP adalah protokol yang lebih umum digunakan untuk delivery protocol.

Access Control List
Access Control List (ACL) adalah daftar rule yang menyatakan pembagian previleges, untuk mencegah orang yang tidak memiliki hak akses menggunakan infrastruktur cache. ACL adalah konfigurasi yang paling penting dalam sebuah web-cache. Dalam Squid, ACL digunakan untuk mendefinisikan rule yang diterapkan dalam web-cache tersebut.
Squid mendukung tipe-tipe ACL seperti di bawah ini:

  • Network, subnet, baik tujuan maupun asal
  • Waktu, dalam hal ini adalah hari dan jam (bisa merupakan selang waktu)
  • Alamat website yang terangkum dalam regular expression (regex)
  • Port yang dituju, bisa merupakan daftar port atau selang port sekian hingga sekian
  • Protokol, misalnya HTTP, FTP, SNMP, dsb
  • Method form HTML, yaitu POST dan GET
  • Daftar browser yang digunakan client yang terangkum dalam regular expression (regex)
  • User Name
  • Nomor kode negara, baik yang dituju maupun negara asal
  • Autentikasi user name
  • SNMP agent
  • Maksimal koneksi untuk setiap IP address
  • Maksimal jumlah IP address yang diperbolehkan untuk user name yang sama
  • MIME yang direquest yang terangkum dalam regular expression
  • Header dari request yang terangkum dalam regular expression

Squid akan memeriksa setiap request yang datang dengan ACL yang ada pada konfigurasi dan mencocokannya dengan aturan yang ada. Pencocokan ini bisa berakibat diizinkan atau ditolaknya suatu koneksi dari user, pemberian bandwidth yang sesuai dengan aturan, dan sebagainya.

Delay Pool
Delay Pool adalah suatu cara untuk menurunkan kecepatan akses untuk suatu alamat website dari ACL tertentu. Squid tidak hanya mendukung delay pool hanya untuk subnet saja, namun untuk semua ACL yang telah dibahas di atas. Dalam squid, Delay Pool dispesifikasi dalam beberapa konfigurasi, yaitu:

  • Delay Pool menspesifikasi berapa jumlah pool atau kelompok bandwidth yang akan digunakan dalam squid.
  • Delay Class menspesifikasi masing-masing kelompok pool untuk masuk dalam class apa. Dalam squid ada beberapa class yang memiliki fungsi yang berbeda-beda, yaitu class 1, class 2, dan class 3. Class-class ini dispesifikasi berdasarkan IP address dari ACL.
  • Delay parameter menspesifikasi berapa jumlah transfer rate atau lebih sering disebut bandwidth untuk suatu pool. Bandwidth dispesifikasi dalam transfer rate rata-rata dan transfer rate maksimum yang dapat dicapai suatu pool.
  • Delay Access adalah parameter untuk memasukkan suatu ACL ke pool tertentu. Di sini juga disebutkan apakah ACL diterima atau ditolak untuk masuk ke pool tersebut.

Autentikasi pada Squid
Squid mendukung beberapa cara untuk autentikasi, yaitu basic, digest, dan NTLM. Cara basic paling sering digunakan karena hampir semua browser mendukung autentikasi ini, meskipun dari segi keamanan kurang dapat dijamin keamanannya. NTLM adalah kependekan dari NT Lan Manager, autentikasi yang dikembangkan oleh Microsoft yang digunakan oleh produk-produk Microsoft, dan akhirnya digunakan banyak software lain sebagai standar autentikasi, seperti misalnya Mozilla dan Apache WebServer. Sebenarnya tidak hanya NTLM saja yang didukung squid untuk melakukan autentikasi user. Program kita juga bisa digunakan sebagai media autentikasi karena parameter di file konfigurasi Squid sangat liberal. Pada prinsipnya program yang digunakan bisa menerima input dari realm browser dan mencek dengan passwordnya dan mereturn sebuah value: OK atau ERR. Squid akan membaca kedua return value tersebut. Oleh karena itu kita dapat membuat program untuk autentikasi Squid, misalnya autentikasi IMAP, sehingga yang digunakan adalah user dan password di mail server.

0 Responses

Posting Komentar

  • Chat Digi

    Name :
    Web URL :
    Message :
    :) :( :D :p :(( :)) :x