Dalam pengelolaan bandwidth, terutama yang bandwidthnya terbatas, maka pembatasan download sangat diperlukan.
Dengan squid pembatasan dapat dilakukan dengan bebarapa cara. Dalam bahasan ini akan dibahas dua hal saja yaitu :
1. Membatasi besarnya file yang boleh di download
Misalnya tidak boleh download dengan fle ukuran 650MB (satu CD)
ini dapat dilakukan dengan 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 6500000000 allow download
2. Cara yang kedua dengan cara membatasi download dengan memperlambat atau shaping paket yang dilewatkan. Misalnya badwidth yang tersedia 256kbps, dimana saat download bisa rata-rata 30KBps.
Akan dibuat aturan sebagai berikut :
a. Untuk browsing biasa tidak ada pembatasan
b. Untuk download dengan ukuran dibawah 1MB tidak ada pembatasan kecepatan
c. Untuk download dengan ukuran diatas 1MB dibatasi dengan kecepatan 10 byte / detik
# 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
# dibuat 2 aturan
delay_pools 2
# aturan 1, tidak ada pembatasan
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
# aturan 2, setelah download 2048000 bytes mk download menjadi 10000 bytes/s
delay_class 2 2
delay_parameters 2 -1/2048000 10000/2049000
delay_access 2 allow download
delay_access 2 deny all
delay_access 1 deny download
delay_access 1 allow all