LINUX.ORG.RU
ФорумAdmin

Squid - delay pools - slow acl

 , , , ,


0

1

Всем привет! В squid начиная с каких-то версий 3.х delay pools не работает с slow acl. Как быть, если необходимо ограничить скорость группам в AD с acl…external ldap_group? Гуглил, ничего не понял. Помогите, плиз!

В https://wiki.squid-cache.org/SquidFaq/SquidAcl#Fast_and_Slow_ACLs

Нужно использовать fast-acl :)

Готового решения твоей задачи imho нет.

Я удивляюсь, что до сих пор нет fast acl который бы хранил данные в shm и имел утиль для модификации на ходу этих данных.

Или хотя бы fast acl который смотрел бы только кеш внешнего acl.

vel ★★★★★
()
Ответ на: комментарий от vel

Нужно использовать fast-acl. Вот только как? Не может же быть, чтобы новые версии Squid не могли ограничить скорость группам в AD? Какой-то выход должен быть. В коммерческом проекте Web Safety - Web Filter for Your Network на Squid 5.12 в конфиге встречал такое:

delay_pools 1 delay_class 1 2 # policy:test, priority: 4 acl delay_pool_policy5 req_header X-Delay-Pool -i delay_pool_policy5 # policy:test, id: 5

delay_access 1 allow delay_pool_policy5 # policy:test, id: 5 delay_access 1 deny all

delay_parameters 1 10264576/20529152 102400/204800 # policy:test, priority: 4

Но ничего не понял. Конфиг разорван на кучу маленьких файлов и скриптов.

prof343
() автор топика
Ответ на: комментарий от prof343

отформатируй конфиг. Нифига непонятно.

vel ★★★★★
()
Ответ на: комментарий от prof343

они поступают хитро: через request_header_add добавляют заголовок в запросы которые должны попасть в delay_pool, которые можно проверить req_header, который fast acl.

vel ★★★★★
()
Ответ на: комментарий от vel

Так читаемо будет:

delay_pools 1

delay_class 1 2 # policy:test, priority: 4

acl delay_pool_policy5 req_header X-Delay-Pool -i delay_pool_policy5 # policy:test, id: 5

delay_access 1 allow delay_pool_policy5 # policy:test, id: 5

delay_access 1 deny all

delay_parameters 1 10264576/20529152 102400/204800 # policy:test, priority: 4

И как можно использовать request_header_add для delay pools? Никакой инфы не нашел.

prof343
() автор топика
Ответ на: комментарий от prof343

Общая идея такая:

Нужно сделать acl для каждого delay_pool (https://wiki.squid-cache.org/ConfigExamples/Authenticate/Groups)

external_acl_type adgroup %LOGIN /usr/local/squid/libexec/ext_wbinfo_group_acl.pl

acl group1 external adgroup group_name1
acl group2 external adgroup group_name2 

request_header_add можно использовать любые acl. Для каждого такого acl пишем добавление своего заголовка.

request_header_add X-DPool pool1 group1
request_header_add X-DPool pool2 group2

Для каждого delay_pool используем req_header (fast acl) для проверки заголовка добавленного через request_header_add

acl delay_pool_group1 req_header X-DPool group1
acl delay_pool_group2 req_header X-DPool group2

Дальше применяем их в delay_pool

delay_access 1 allow delay_pool_group1
delay_access 1 deny all

delay_access 2 allow delay_pool_group2
delay_access 2 deny all
vel ★★★★★
()
Ответ на: комментарий от vel

Мне не понятно, что такое pool1 и pool2. Ниже конфиг, как я его понимаю. Группы AD прокся понимает, доступ в инет дается при наличии пользователя в одной из интернет-групп. Пока скорость не меняется. Туплю я где-то.

external_acl_type ldap_check ttl=600 %LOGIN /usr/lib/squid/ext_ldap_group_acl...............

acl ldap_standard external ldap_check netaccess_standard

request_header_add X-DPool pool1 ldap_standard
acl delay_pool_netaccess_standard req_header X-DPool ldap_standard

delay_pools 1
delay_class 1 2
delay_access 1 allow delay_pool_netaccess_standard
delay_access 1 deny all
delay_parameters 1 none 8000/8000
prof343
() автор топика
Ответ на: комментарий от prof343

опечатку нашел

acl delay_pool_group1 req_header X-DPool pool1
acl delay_pool_group2 req_header X-DPool pool2

У тебя ошибка. Если в delay_pool1 попадают по acl delay_pool_netaccess_standard в котором проверяется заголовок X-DPool со значением ldap_standard, то и добавлять нужно

request_header_add X-DPool ldap_standard ldap_standard

vel ★★★★★
()
Ответ на: комментарий от vel

Не работает

external_acl_type ldap_check ttl=600 %LOGIN /usr/lib/squid/ext_ldap_group_acl...............

acl ldap_standard external ldap_check netaccess_standard

request_header_add X-DPool ldap_standard ldap_standard
acl delay_pool_netaccess_standard req_header X-DPool pool1

delay_pools 1
delay_class 1 2
delay_access 1 allow delay_pool_netaccess_standard
delay_access 1 deny all
delay_parameters 1 none 8000/8000
prof343
() автор топика
Ответ на: комментарий от vel

Еще раз спрошу: что такое pool1? Я не понимаю. Смысл строки request_header_add X-DPool ldap_standard ldap_standard мне тоже не понятен.

prof343
() автор топика
Ответ на: комментарий от vel

Почему именно заголовок X-DPool добавляется? По этому секретному заголовку нет никакой инфы в сети.

prof343
() автор топика
Ответ на: комментарий от prof343

C X- начинаются нестандартные заголовки.

Добавь любой заголовок с любым значением. Он нужен чтобы понять, что соединение нужно шейпить.

vel ★★★★★
()
16 ноября 2022 г.
Ответ на: комментарий от vel

подниму тему т.к у меня та же проблема а что разве squid позволяет в https траффик добавлять хедеры? здесь - https://serverfault.com/questions/612523/squid-request-header-add-with-https говорит что так не получится сделать, да и у меня ваше решение не работает. (в комментах там уточняется что таки можно, но надо заморачиваться с сертификатами и все такое) нет ли решения попроще? или как вставить хедеры тогда при том что протокол https?

mefisto74
()
Ответ на: комментарий от mefisto74

Для всего что попадает в ssl_bump bump - не проблема. Но надо заморачиваться с сертификатами.

для «ssl_bump splice» оно невозможно.

Про CONNECT не знаю.

vel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.