Доброго всем времени суток. Прошу помочь в решении некой проблемы.
Server Ubuntu 11.04
DNS Bind9
Squid
clamav + havp + sarg
интернет 512kb/sПроблема такая:
Мне необходимо ограничить скорость скачиваемых файлов по типу и размеру. При этом у пользователя direktor (1-3) не должно быть ни каких ограничений. А у остальных скорость 100% по куда они не начинают качать, при этом первые 3Mb при максимуме а остальные на скорости 64kb/s
Но как это сделать не пойму :(Сделал так;
acl direktor1 src 192.168.0.20/32
acl direktor2 src 192.168.0.21/32
acl direktor3 src 192.168.0.22/32
acl lan1 src 192.168.0.0/24http_access allow direktor1
http_access allow direktor2
http_access allow direktor3
http_access allow lan1delay_pools 2
delay_class 1 1
delay_class 2 3delay_access 1 allow direktor1
delay_access 1 allow direktor2
delay_access 1 allow direktor3
delay_access 1 deny all
delay_access 2 allow lan1
delay_access 2 deny allа дальше не пойму что и как, куда вставить acl media urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.avi$ \.mpg$ что бы всё заработало?
>[оверквотинг удален]
> delay_class 1 1
> delay_class 2 3
> delay_access 1 allow direktor1
> delay_access 1 allow direktor2
> delay_access 1 allow direktor3
> delay_access 1 deny all
> delay_access 2 allow lan1
> delay_access 2 deny all
> а дальше не пойму что и как, куда вставить acl media urlpath_regex
> -i \.mp3$ \.asf$ \.wma$ \.avi$ \.mpg$ что бы всё заработало?Для твоего случая, порядок команд delay_access важен:
acl boss src 192.168.0.20 192.168.0.21 192.168.0.22
acl media urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.avi$ \.mpg$delay_pools 3
delay_class 1 1
delay_class 2 1
delay_class 3 1delay_access 1 allow boss
delay_access 1 deny all
delay_access 2 allow media
delay_access 2 deny all
delay_access 1 allow lan1
delay_access 1 deny all
# для боссов
delay_parameters 1 -1/-1
#для мультимедия
delay_parameters 2 8000/3000000
#для юзеров
delay_parameters 3 -1/-1-1/-1 означает анлим, но весь канал сквиду отдавать не стоит, поскольку есть и другие сервисы, например почта, отдай сквиду процентов 80 от канала или еще меньще, но это уже твое дело.
При дележе пулов нужно знать толщину канала в инет!
Допустим канал в инет 2 мегабита, то есть 256000 байт/сек. Сквиду отдаем 184000 байт/сек. Я бы сделал примерно так без привязки к мультимедиа:delay_pools 2
delay_class 1 1
delay_class 2 2delay_access 1 allow boss
delay_access 1 deny all
delay_access 2 allow lan1
delay_access 2 deny all# для боссов
delay_parameters 1 184000/184000 128000/128000
#для юзеров
delay_parameters 2 184000/184000 8000/56000184000/184000 - ведро на весь пул 184000 байта, скорость на весь пул максимум 184000 байт/сек
8000/56000 - на каждого юзера ведерки по 56000 байт, а струйка в него в 8000 байт/сек - быстро будет усасывать объекты размером до 56000 байт , объекты больше 56000 будет сосать на скорости 8000 байт/сек
Что то это правило никак не хочет работать. Как только я прописываю его в конце конфиг файла и перегружаю squid не одна страница не открывается. :(.В данный момент у меня сейчас установлена связка: Squid + dansguardian + ClamAV + havp + webmin. А так же настроено правило NAT. При необходимости могу скинуть конфиги. Совсем уже запутался. :(
> Что то это правило никак не хочет работать. Как только я прописываю
> его в конце конфиг файла и перегружаю squid не одна страница
> не открывается. :(.
> В данный момент у меня сейчас установлена связка: Squid + dansguardian +
> ClamAV + havp + webmin. А так же настроено правило NAT.
> При необходимости могу скинуть конфиги. Совсем уже запутался. :(покажи последний конфиг сквида
> покажи последний конфиг сквидаВ конце конфига добавил:
acl boss src 192.168.0.20 192.168.0.21 192.168.0.22
acl media urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.avi$ \.mpg$
acl lan1 src 192.168.0.0/24delay_pools 3
delay_class 1 1
delay_class 2 1
delay_class 3 1delay_access 1 allow boss
delay_access 1 deny all
delay_access 2 allow media
delay_access 2 deny all
delay_access 1 allow lan1
delay_access 1 deny all# для боссов
delay_parameters 1 -1/-1
#для мультимедия
delay_parameters 2 8000/3000000
#для юзеров
delay_parameters 3 -1/-1cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow all
acl Scan_HTTP proto HTTP
never_direct allow Scan_HTTPЕсли не обходимо выложу весь файл, но он длинный....
Быть может и мне поможете с моей "бедой". :)
Версия Squid: 3.1.6-1.2
GNU\Linux debian 2.6.32-5-68
======
Имеются следюущие acl'ы
Под acl'ом для пояснения указываю содержимое.
acl super_users src "/etc/squid3/acl/super_users"
192.168.0.86
192.168.0.100
192.168.0.56
###########
acl banned src "/etc/squid3/acl/deny_all_users"
192.168.20.250
##########
acl rents_net src "/etc/squid3/acl/rents_net"
192.168.20.0/24
#############
acl office_net src "/etc/squid3/acl/office_net"
192.168.0.0/24
#######
#
acl mobile urlpath_regex -i (\.thm|\.sis|\.swf|\.jad|\.jar|\.3gp|\.mp4)((\#|\&|\?|\s){1}|$)
acl multimedia urlpath_regex -i (\.swf|\.mp3|\.m3u|\.flv|\.wav|\.vqf|\.avi|\.wmv|\.mpeg|\.mp|\.asf|\.mpe|\.dat|\.mpg|\.wma|\.midi|\.aiff|\.au|$
acl archive urlpath_regex -i (\.tar.gz|\.gz|\.tar|\.zip|\.rar|\.cab|\.arj|\.lzh|\.ace|\.7-zip|\.gzip|\.uue|\.bz2|\.iso)((\#|\&|\?|\s){1}|$)
acl mp3 urlpath_regex -i (\.wav|\.mp3|\.mp4)((\#|\&|\?|\s){1}|$)
acl soft urlpath_regex -i (\.exe|\.msi|\.rpm|\.deb|\.bat|\.cmd)((\#|\&|\?|\s){1}|$)
acl documents urlpath_regex -i (\.doc|\.docx|\.xls|\.xlsx|\.odf|\.odt|\.pdf)((\#|\&|\?|\s){1}|$)
##############################################
##############################################
delay_pools 5
#Office
delay_class 1 3
#Rents
delay_class 2 3
#Multimedia
delay_class 3 3
#Super users
delay_class 4 1
#Banned
delay_class 5 1
#####
delay_access 1 allow office_net
delay_access 1 allow documents
delay_access 1 allow archive
delay_access 1 allow soft
delay_access 1 deny all
###
delay_access 2 allow rents_net
delay_access 2 allow documents
delay_access 2 allow archive
delay_access 2 allow soft
delay_access 2 deny all
####
delay_access 3 allow office_net
delay_access 3 allow rents_net
delay_access 3 allow multimedia
delay_access 3 allow mp3
delay_access 3 deny all
####
delay_access 4 allow super_users
delay_access 4 deny all
####
delay_access 5 allow banned
delay_access 5 allow mp3
delay_access 5 allow multimedia
delay_access 5 allow archive
delay_access 5 allow soft
delay_access 5 allow documents
delay_access 5 deny all
###
delay_parameters 1 400000/800000 150000/450000 400000/800000
delay_parameters 2 600000/1200000 300000/600000 600000/120000
delay_parameters 3 1000/1500 500/1000 1000/1500
delay_parameters 4 -1/-1
delay_parameters 5 1000/1500
====
Собственно в 2-х словах задача.
Имеются 2 подсети.
192.168.0.0/24 - office_net
192.168.20.0/24 - rents_net
На office_net отдаем ~4Мбита, с ограничением в ~1.5Мбита на хост при привышении буфера передачи.
Аналогично и для rents_net.
Однако хочется сделать так, что бы из этих 2-х подсетей не было возможности просматривать какой либо мультимедийный контент, обрезав скорость.
Разумеется имеются некоторые люди (super_users), которым ограничивать ничего не надо.
Ну и последний вариант - условный "бан".
Собственно squid3 корректно обрабатывает office_net, rents_net. А вот остальные ограничения банально не действуют. И вот как бы осуществить задуманное пока что не соображу...
Относительно delay_parameters в squid.conf пишется, что изначально идет Общая скорость на пул, затем индивидуальная, затем подсеть.
На мой взгляд проблема кроется где то в ACL'ах. По крайней мере когда мы задаем подсеть /24, к примеру. Т.е. если я правильно понял, то squid3 увидев ip в каком либо из ACL'ов дальше уже не обрабатывает правила. Как быть в моем случае? :-[