Tutorial kali ini merupaka request dari teman saya Ismail ‘Mbahjoe’ Marzuki, mengenai membatasi quota download di squid. Ada kalanya anda mengelola server dan network, merasa banyak user iseng yang suka atau rajin download setiap harinya. Sehingga mengganggu atau membebani network di kantor atau di rumah, anda bsia melakukan tips di bawah ini. Yaiutu dengan cara membatasi penggunaan atau membatasi quota download setiap orang. hehehehe. Pada tutorial kali ini saya anggap anda telah elesai menginstall squid, dan tinggal melakukan konfigurasi saja. Bagi yang belum menginstall squid, silakan cari tutorial cara menginstall squid, atau nanti akan saya tulis juga tutorial instalasi dan konfigurasi basic squid. Baik langkah-langkah yang harus dilakukan adalah :

Kita ambil contoh kasus, dalam hal ini teman saya Ismail Marzuki bertanya, bagaimana konfigurasi squid agar download max per user itu 10 Mb, jadi ketika dia mendownload file, di atas 10 Mb, maka koneksi akan drop dan melambat. Hanya max 10 Mb saja tiap kali download.

1. Silakan buka squid.conf anda
Hal ini dapat dilakukan dengan cara menambahkan tag reply_body_max_size

# Filter Download
acl download url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .tar .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov .msi .mp4

# TAG: reply_body_max_size bytes allow|deny acl acl…
# This option specifies the maximum size of a reply body in bytes.
# It can be used to prevent users from downloading very large files,
# such as MP3’s and movies. When the reply headers are received,
# the reply_body_max_size lines are processed, and the first line with
# a result of “allow” is used as the maximum body size for this reply.
# This size is checked twice. First when we get the reply headers,
# we check the content-length value. If the content length value exists
# and is larger than the allowed size, the request is denied and the
# user receives an error message that says “the request or reply
# is too large.” If there is no content-length, and the reply
# size exceeds this limit, the client’s connection is just closed
# and they will receive a partial reply.
#
# WARNING: downstream caches probably can not detect a partial reply
# if there is no content-length header, so they will cache
# partial responses and give them out as hits. You should NOT
# use this option if you have downstream caches.
#
# If you set this parameter to zero (the default), there will be
# no limit imposed.
#
#Default:
# reply_body_max_size 0 allow all
reply_body_max_size 100000000 allow download

Cara tadi adalah membatasi limit quota download setiap kali user emndownload. Sekarang kita akan membatasi user dari sisi speed max yang akan dia terima ketika sedang mendownload.

Kita buat rule sederhananya :

1. Jika melakukan browsing biasa tidak ada limitation speed

2. Jika mendownload file yang berukuran di bawah atau sama dengan 1 MB, tidak akan ada limitation speed

3. Jika user mendownload sebuah file yang berukuran diatas 1 MB akan dibatasi speed nya max 15 KBps (B ny besar bukan b kecil :D )

# Filter Download
acl download url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .tar .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov .msi .mp4

# disini akan kita buat 2 aturan

delay_pools 2

# aturan pertama ini tidak ada batasan, sesuai dengan poin 1 dan 2 di rule sederhana tadi
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1

# aturan 2, setelah download 2048000 bytes mk download menjadi 15000 bytes/s
delay_class 2 2
delay_parameters 2 -1/2048000 15000/2049000

delay_access 2 allow download
delay_access 2 deny all
delay_access 1 deny download
delay_access 1 allow all

Selamat Mencoba :)

Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Add to favorites
  • DZone
  • LinkedIn
  • PDF
  • Ping.fm
  • Posterous
  • RSS
  • Slashdot
  • Twitter