LINUX.ORG.RU

SQUID disable upload

 


0

1

Добрый день. Прошу помочь. Есть Squid 4.10, в нем необходимо ограничить/запретить upload файлов только на облачные ресурсы такие как yandex disk,google disk и т.д. для пользователей по группам.

В squid для этого используется функция «request_body_max_size», но она общая для всех. (Может я чего не так понял)

Но есть обходное решение можно создать ACL, что бы можно было применять эту функцию на пользователей и группы. в SQUID3 эта ACL подключалась так - external_acl_type request_body %{Content-Length} /usr/bin/upload.sh, которая обращается к скрипту, в котором указан максимальный размер файла для uploada и SQUID3 эту ACL понимал. А если данную ACL указать для SQUID4, то возникает ошибка FATAL: Can’t parse configuration token: ‘%{Content-Length}’ и SQUID соответственно запуститься не может. Кто сталкивался с данной проблемой, подскажите может в SQUID4 используется другая переменная. Как ограничивать/запрещать (upload) выгрузки в интернет для определенных пользователей или групп и на определенные сайты в SQUID4.



Последнее исправление: unix_day (всего исправлений: 3)

В squid для этого используется функция «request_body_max_size», но она общая для всех. (Может я чего не так понял)

request_body_max_size не имеет к ограничению скорости upload никакого отношения.

Единственный способ ограничивать исходящий поток - это маркировать через tcp_outgoing_mark/tcp_outgoing_tos исходящие коннекты и шейпить их средствами iproute2/tc

Учти, что в tcp_outgoing_mark/tcp_outgoing_tos можно использовать только быстрые acl!

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

Прошу прощенья, ввел в заблуждение, эта функция «request_body_max_size» обозначает максимальный размер отправляемых PUT/POST запросов. И большое спасибо за совет!

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

Единственный способ ограничивать исходящий поток - это маркировать через tcp_outgoing_mark/tcp_outgoing_tos исходящие коннекты и шейпить их средствами iproute2/tc

Прошу напишите поподробнее, как в SQUID маркировать трафик, SQUID маркирует пакеты или соединения? Можно ли маркировать трафик до определенного сайта?

unix_day
() автор топика

Через опции tcp_outgoing_mark и/или tcp_outgoing_tos

tcp_outgoing_mark выполняет setsockopt(fd, SOL_SOCKET, SO_MARK,...)

tcp_outgoing_tos выполняет setsockopt(fd, IPPROTO_IP, IP_TOS, ...)

Обе опции действуют один раз при установлении соединения.

маркируются пакеты.

можно.

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

С маркировкой пока не разобрался до конца. Но на данный момент решил задачу путем запрета метода POST на выборочные сайты следующим методом:

acl cloud url_regex -i «/etc/squid/acl/cloud» (список облачных ресурсов).

acl upload_method method post (обозначаем метод POST).

http_access deny cloud upload_method (запрещаем POST на выбранные ресурсы).

Файлы скачиваются, но загрузить их не удается. Очевидно этот метод неидеальный так при открытии яндекс диска, не может полностью загрузиться содержимое страницы из-за чего невозможно скачивать свои файлы, но если кто-то делиться ссылкой на файл с яндекс диска, то скачать его удается без проблем. На mail.diske страница загружается, файлы скачиваются, а при попытке загрузить что либо, выскакивает окно авторизации mail.ru и так по циклу, для гугл диска страница открывается, но скачивать не удается и загружать, но повторюсь если отправлять ссылку на файлы с облаков, то файлы загружаются без проблем.

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