URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 40876
[ Назад ]

Исходное сообщение
"squid"

Отправлено ids , 23-Фев-04 11:12 
Можно ли как-то в настройках сквида прописать лимитированную расдачу инета. Например по 1,2,3 часа в день суммарно, независимо от обьема. Если да. то подскажите как сделать можно.

Содержание

Сообщения в этом обсуждении
"squid"
Отправлено Михаил , 23-Фев-04 11:42 
>Можно ли как-то в настройках сквида прописать лимитированную расдачу инета. Например по
>1,2,3 часа в день суммарно, независимо от обьема. Если да. то
>подскажите как сделать можно.
а как ты предлагаешь измерять эти часы? хотя бы теоретически?
если по времени скачивания файлов, то на хорошем канале обычный пользователь при обычном серфинге за день тратит всего несколько минут суммарно...


"squid"
Отправлено ids , 23-Фев-04 12:44 
>>Можно ли как-то в настройках сквида прописать лимитированную расдачу инета. Например по
>>1,2,3 часа в день суммарно, независимо от обьема. Если да. то
>>подскажите как сделать можно.
>а как ты предлагаешь измерять эти часы? хотя бы теоретически?
>если по времени скачивания файлов, то на хорошем канале обычный пользователь при
>обычном серфинге за день тратит всего несколько минут суммарно...

Я хочу что бы пользователю выдавалось какое-то фиксированное время работы в сети в сутки (2,3,4 часа). Независимо от объема. Как он будет тратить это время - его дело. На следующие сутки остаток времени не переходит.


"squid"
Отправлено Михаил , 23-Фев-04 13:45 
>>>Можно ли как-то в настройках сквида прописать лимитированную расдачу инета. Например по
>>>1,2,3 часа в день суммарно, независимо от обьема. Если да. то
>>>подскажите как сделать можно.
>>а как ты предлагаешь измерять эти часы? хотя бы теоретически?
>>если по времени скачивания файлов, то на хорошем канале обычный пользователь при
>>обычном серфинге за день тратит всего несколько минут суммарно...
>
>Я хочу что бы пользователю выдавалось какое-то фиксированное время работы в сети
>в сутки (2,3,4 часа). Независимо от объема. Как он будет тратить
>это время - его дело. На следующие сутки остаток времени не
>переходит.

так он же и не тратит часы!
он тратит секунды или минуты...

опять же, что ты подразумеваешь под термином "время работы в сети"?
если клиент открыл за 2 секунды страничку в браузере, а потом два часа ее читает, то сколько он "работал в сети"?

имхо, подход изначально неверен. если клиент в сети постоянно, то учитывается и ограничивается либо трафик, либо полоса пропускания...


"squid"
Отправлено ids , 23-Фев-04 17:47 
>>>>Можно ли как-то в настройках сквида прописать лимитированную расдачу инета. Например по
>>>>1,2,3 часа в день суммарно, независимо от обьема. Если да. то
>>>>подскажите как сделать можно.
>>>а как ты предлагаешь измерять эти часы? хотя бы теоретически?
>>>если по времени скачивания файлов, то на хорошем канале обычный пользователь при
>>>обычном серфинге за день тратит всего несколько минут суммарно...
>>
>>Я хочу что бы пользователю выдавалось какое-то фиксированное время работы в сети
>>в сутки (2,3,4 часа). Независимо от объема. Как он будет тратить
>>это время - его дело. На следующие сутки остаток времени не
>>переходит.
>
>так он же и не тратит часы!
>он тратит секунды или минуты...

Плевать. Скажем так, аська у него проработает как? Ровно столько, сколько будет дано на это времени.

>
>опять же, что ты подразумеваешь под термином "время работы в сети"?
>если клиент открыл за 2 секунды страничку в браузере, а потом два
>часа ее читает, то сколько он "работал в сети"?

2 секунды. Все от того, что он все 2 секунды использовал сеть. Остальное хранилось у него на компе. Поэтому суммарное время подключений не зависимо от объема - не должно превышать определенного лимита, 2-3-4 часа.

>
>имхо, подход изначально неверен. если клиент в сети постоянно, то учитывается и
>ограничивается либо трафик, либо полоса пропускания...

Расскажи руководству моему:)

Вообщем идея какая, как считать время подключений в сквиде, и при превышении лимита - отключать от Сети. В какую сторону смотреть? Не подскажите?


"squid"
Отправлено Михаил , 23-Фев-04 18:36 
>>так он же и не тратит часы!
>>он тратит секунды или минуты...
>
>Плевать. Скажем так, аська у него проработает как? Ровно столько, сколько будет
>дано на это времени.
имхо, бред полнейший...
я могу за полчаса выкачать здоровенный файл порнухи в Гиг весом, который для моей фирмы будет стоить $60, или буду 6 часов в день сидеть в аське и съесть за все это время 100 Кбайт трафика, который будет стоить 18 копеек. и предлагается первое разрешать, а второе запрещать???????

>2 секунды. Все от того, что он все 2 секунды использовал сеть.
>Остальное хранилось у него на компе. Поэтому суммарное время подключений не
>зависимо от объема - не должно превышать определенного лимита, 2-3-4 часа.
при довольно активном серфинге за целый рабочий день я занимаю 10-20 минут работы канала , так что говорить у часах в большинстве случаев бессмысленно, так как пользователи далеко не каждый день скачивают что-то крупное...
если борьба с аськой - не лучше ли ее просто перекрыть?
иначе пользователи будут каждый десть минут подконнекчиваться и отконнекчиваться :)


>>имхо, подход изначально неверен. если клиент в сети постоянно, то учитывается и
>>ограничивается либо трафик, либо полоса пропускания...
>
>Расскажи руководству моему:)
нет, рассказывать предстоит тебе, иначе тебе воплощать в жизнь этот бред :)

>Вообщем идея какая, как считать время подключений в сквиде, и при превышении
>лимита - отключать от Сети. В какую сторону смотреть? Не подскажите?
в логах сквид пишет время, потраченное, на запрос, но надо смотреть в доке что это за время.
как вариант это может быть полное время на обработку запроса, либо время на прием/передачу данных по этому запросу...

есть системы (в том числе и у меня), которые ограничивают пользователю по объему трафика.  можно их взять за основу и сделать свою...


"squid"
Отправлено Nickolay , 23-Фев-04 20:29 
>Расскажи руководству моему:)
в мягкой форме говоришь, что технически это нереализуемо(или нет софта, а писать придется год-два), если надешь что-то платное - напиши цену. и предложе свой альтернативный "нормальный" вариант.
что бы ни у кого не было головной боли

"squid"
Отправлено ids , 23-Фев-04 21:55 
>>Расскажи руководству моему:)
>в мягкой форме говоришь, что технически это нереализуемо(или нет софта, а писать
>придется год-два), если надешь что-то платное - напиши цену. и предложе
>свой альтернативный "нормальный" вариант.
>что бы ни у кого не было головной боли

Понимаешь ли, сейчас не то время что бы грить руководстку о долгосрочном писании некоего софта. Оно готово ввалить денег в то что скажет кто-то из нашего отдела один раз. Просто идея в том, что кто-то хочет принципиально строить политику на покупных решениях от сторонних производителей на платформе win32/64. А я ищю поиск решений на более надежной плаформе, на системах открытого кода, и так как понимаю что это в наще время более надежная систнема!
Сквид является самым продвинутым в вопросе доступа к инету по 3128, поэтому вопрос по этомй теме.

зы! Я уже пьян :)


"squid"
Отправлено terr , 24-Фев-04 07:09 
попробуй так:
через крон открывай для этой ИП порты на файрволе
(и так же закрывай) - помоему самое простое решение. :))
((пусть раздача по времени = бред, ну раз чел так хочет...))

"squid"
Отправлено Michael , 24-Фев-04 08:44 
>попробуй так:
>через крон открывай для этой ИП порты на файрволе
>(и так же закрывай) - помоему самое простое решение. :))
>((пусть раздача по времени = бред, ну раз чел так хочет...))
и что это даст?
надо же не по расписанию давать доступ, а по суммарному наработанному за день времени... а узнать его очень приблизительно можно либо измеряя и суммирую длительность tcp-коннектов на порт прокси, либо по логам сквида... оба эти способа довольно грубы, но другого я не вижу...


"squid"
Отправлено Michael , 24-Фев-04 08:46 
>Просто идея в том, что
>кто-то хочет принципиально строить политику на покупных решениях от сторонних производителей
>на платформе win32/64.
Сильно сомневаюсь, что на этой платформе найдется то, что от тебя хотят...

"squid"
Отправлено hromach , 24-Фев-04 14:12 
ставишь с 9 до 11 и все

"squid"
Отправлено A Clockwork Orange , 24-Фев-04 14:22 
Не напомните адресок где описывается лог сквида?
не анализаторы лога и именно описание лога?

"squid"
Отправлено Michael , 24-Фев-04 15:01 
>Не напомните адресок где описывается лог сквида?
>не анализаторы лога и именно описание лога?
ссылки классические:
http://www.squid-cache.org/Doc/FAQ/FAQ-6.html
http://www.bog.pp.ru/work/squid.html#stat

"squid"
Отправлено Nickolay , 24-Фев-04 14:28 
>Понимаешь ли, сейчас не то время что бы грить руководстку о долгосрочном
>писании некоего софта. Оно готово ввалить денег в то что скажет
>кто-то из нашего отдела один раз. Просто идея в том, что
>кто-то хочет принципиально строить политику на покупных решениях от сторонних производителей
>на платформе win32/64. А я ищю поиск решений на более надежной
>плаформе, на системах открытого кода, и так как понимаю что это
>в наще время более надежная систнема!
а что же злопыхатели предлагают под win такого?
мне кажется что под винду ничего такого нет. просто купят какой-то proxy-софт, а потом скажут "вы нас не правильно поняли".
но деньги уже будут потрачены...
p.s. сдается мне что это тупое заколачивание денег.



"squid"
Отправлено Michael , 24-Фев-04 15:03 
>p.s. сдается мне что это тупое заколачивание денег.
не удивлюсь, если не совсем тупое, а с откатами...

"squid"
Отправлено forfreeuse , 24-Фев-04 15:55 
можно считать что юзер пользуеться инетом, если он переодически открывает страницы (тобишь с неким таймаутом).

По идее можно анализировать лог так:

1. Инитим переменные для юзера:
   время_в_сети=0 - Сколько пользоватль лазил в сети.
   online=0 - юзверь сейчас не в сети.
  
while()
{
Если (юзверь зашел на страницу через сквид)
   {
    если (!online) {online=1; last_visit=сейчас; break;}

    время_в_сети-=сейчас-last_visit;
    last_visit=сейчас;

    если (время_в_сети>3*60) {redirect("Ваше время истекло"); break;}
   }

Если (сейчас - last_visit >timeout) {online=0;}

}

--
Slava
http://www.rejik.ru

>>>>Можно ли как-то в настройках сквида прописать лимитированную расдачу инета. Например по
>>>>1,2,3 часа в день суммарно, независимо от обьема. Если да. то
>>>>подскажите как сделать можно.
>>>а как ты предлагаешь измерять эти часы? хотя бы теоретически?
>>>если по времени скачивания файлов, то на хорошем канале обычный пользователь при
>>>обычном серфинге за день тратит всего несколько минут суммарно...
>>
>>Я хочу что бы пользователю выдавалось какое-то фиксированное время работы в сети
>>в сутки (2,3,4 часа). Независимо от объема. Как он будет тратить
>>это время - его дело. На следующие сутки остаток времени не
>>переходит.
>
>так он же и не тратит часы!
>он тратит секунды или минуты...
>
>опять же, что ты подразумеваешь под термином "время работы в сети"?
>если клиент открыл за 2 секунды страничку в браузере, а потом два
>часа ее читает, то сколько он "работал в сети"?
>
>имхо, подход изначально неверен. если клиент в сети постоянно, то учитывается и
>ограничивается либо трафик, либо полоса пропускания...



"squid"
Отправлено Michael , 24-Фев-04 16:31 
>можно считать что юзер пользуеться инетом, если он переодически открывает страницы (тобишь
>с неким таймаутом).
>
>По идее можно анализировать лог так:
>
>1. Инитим переменные для юзера:
>   время_в_сети=0 - Сколько пользоватль лазил в сети.
>   online=0 - юзверь сейчас не в сети.
>
>while()
>{
> Если (юзверь зашел на страницу через сквид)
>   {
>    если (!online) {online=1; last_visit=сейчас; break;}
>
>    время_в_сети-=сейчас-last_visit;
>    last_visit=сейчас;
>
>    если (время_в_сети>3*60) {redirect("Ваше время истекло"); break;}
>   }
>
> Если (сейчас - last_visit >timeout) {online=0;}
>
>}
>
>--
>Slava
>http://www.rejik.ru

Как я понимаю, речь идет о редиректоре сквида?
Такой способ тоже не выход - он не защитит от долгих одиночных коннектов, например, я могу запустить закачку одновременно 10 файлов по Гигу каждый общей длительностью не на полчаса, а на 12 часов... Т.е. мне будет дозволено забить канал на весь день и потратить большую кучу денег на трафик...


"squid"
Отправлено forfreeuse , 24-Фев-04 16:54 
Нет, не обязательно редиректор, хотя можно и через него извратиться.
А с длинными закачками проблема извечная, единственно что могу предложить, так это килять активные закачки длящиеся больше некоторого таймаута.

--
Slava
http://www.rejik.ru

>Как я понимаю, речь идет о редиректоре сквида?
>Такой способ тоже не выход - он не защитит от долгих одиночных
>коннектов, например, я могу запустить закачку одновременно 10 файлов по Гигу
>каждый общей длительностью не на полчаса, а на 12 часов... Т.е.
>мне будет дозволено забить канал на весь день и потратить большую
>кучу денег на трафик...



"squid"
Отправлено Michael , 24-Фев-04 17:51 
>Нет, не обязательно редиректор, хотя можно и через него извратиться.
тогда куда девать предложенный кусок кода?

>А с длинными закачками проблема извечная, единственно что могу предложить, так это
>килять активные закачки длящиеся больше некоторого таймаута.
а если закачка совершенно законная?
и ведь бывает, что закачка не может быть возобновлена, например в случае одноразовых url-ов (таковые встречаются не так уж редко)

могу предложить еще три варианта, которые так же не лишены кривости:
1) периодически (раз в 1-10 секунд) мониторить netstat -n -t|grep '192.168.0.254:3128'|grep established на предмет имеющихся соединений и соответственно наращивать счетчики по каждому ip-адресу.
2) настроить шейпер для клиентов, и принять, что занятая полоса для каждого из клиентов равна максимальной полосе. написать правила iptables для каждого клиентского ip-адреса и периодически снимать с них показания. делением трафика на скорость получаем время. при первышени порога правило iptables меняется с accept на reject.
3) написать свой модуль для iptables, мониторящий соединения и суммирующий их длительность.

потенциально третий способ наиболее точный, но он же и наиболее трудновыполнимый...


"squid"
Отправлено ids , 24-Фев-04 18:01 
>>Нет, не обязательно редиректор, хотя можно и через него извратиться.
>тогда куда девать предложенный кусок кода?
>
>>А с длинными закачками проблема извечная, единственно что могу предложить, так это
>>килять активные закачки длящиеся больше некоторого таймаута.
>а если закачка совершенно законная?
>и ведь бывает, что закачка не может быть возобновлена, например в случае
>одноразовых url-ов (таковые встречаются не так уж редко)
>
>могу предложить еще три варианта, которые так же не лишены кривости:
>1) периодически (раз в 1-10 секунд) мониторить netstat -n -t|grep '192.168.0.254:3128'|grep established
>на предмет имеющихся соединений и соответственно наращивать счетчики по каждому ip-адресу.
>
>2) настроить шейпер для клиентов, и принять, что занятая полоса для каждого
>из клиентов равна максимальной полосе. написать правила iptables для каждого клиентского
>ip-адреса и периодически снимать с них показания. делением трафика на скорость
>получаем время. при первышени порога правило iptables меняется с accept на
>reject.
>3) написать свой модуль для iptables, мониторящий соединения и суммирующий их длительность.
>
>
>потенциально третий способ наиболее точный, но он же и наиболее трудновыполнимый...

Я как то трусил iptables раз в минуту. Правил там у меня много, вообщем получилось что машинка хорошо пригибалась LA был где то в районе 2.

Всетаки интересно как это наваять средствами сквиды. поидее наверное как-то можно по snmp снимать со сквиды данные и отталкиваясь от них - лупить на фаервол или в acl сквида.


"squid"
Отправлено Michael , 24-Фев-04 18:54 
>Я как то трусил iptables раз в минуту. Правил там у меня
>много, вообщем получилось что машинка хорошо пригибалась LA был где то
>в районе 2.
хм, не улавливаю... что такое LA?
кстати, счетчики можно снимать не вызовом команды iptables, а через API, так побыстрее будет...

>Всетаки интересно как это наваять средствами сквиды. поидее наверное как-то можно по
>snmp снимать со сквиды данные и отталкиваясь от них - лупить
>на фаервол или в acl сквида.
т.е. периодически дергать сквид на предмет текущих соединений? уж тогда лучше nestat дергать...


"squid"
Отправлено ids , 25-Фев-04 12:15 
>>Я как то трусил iptables раз в минуту. Правил там у меня
>>много, вообщем получилось что машинка хорошо пригибалась LA был где то
>>в районе 2.
>хм, не улавливаю... что такое LA?

Load Average

>кстати, счетчики можно снимать не вызовом команды iptables, а через API, так
>побыстрее будет...

Вот это не знаю. Наверное было бы, но просто не хочется как то связываться с нагромождением разных приблуд. Хочется сделать все на проксе, что бы она занималсь этим всем.

>
>>Всетаки интересно как это наваять средствами сквиды. поидее наверное как-то можно по
>>snmp снимать со сквиды данные и отталкиваясь от них - лупить
>>на фаервол или в acl сквида.
>т.е. периодически дергать сквид на предмет текущих соединений? уж тогда лучше nestat
>дергать...

надо думать. Неужели там нет таких вещей?


"squid"
Отправлено forfreeuse , 24-Фев-04 18:21 
>>Нет, не обязательно редиректор, хотя можно и через него извратиться.
>тогда куда девать предложенный кусок кода?
Например в трубу лога закачек сквиды.

Хотя у редиректора свои плюсы, он получает запрос до начала закачки и может ограничивать кому можно качать.

>а если закачка совершенно законная?
>и ведь бывает, что закачка не может быть возобновлена, например в случае
>одноразовых url-ов (таковые встречаются не так уж редко)
Честно говоря ни разу не встречал...

>могу предложить еще три варианта, которые так же не лишены кривости:
>1) периодически (раз в 1-10 секунд) мониторить netstat -n -t|grep '192.168.0.254:3128'|grep established
>на предмет имеющихся соединений и соответственно наращивать счетчики по каждому ip-адресу.
тогда лучше netstat -n -t -o
Но здесь есть вероятность посчитать одну и туже закачку два раза. Один через греп, другой через лог закачек.


>2) настроить шейпер для клиентов, и принять, что занятая полоса для каждого
>из клиентов равна максимальной полосе. написать правила iptables для каждого клиентского
>ip-адреса и периодически снимать с них показания. делением трафика на скорость получаем время. при первышени порога правило iptables меняется с accept на reject.
Тут будет неточным деление трафика на скорость, поскольку качаться все одно будет с разной скоростью. С разных сайтов качает по разному.

кроме того надо учесть, что пользователь может взять дцать мегов из кеша сквиды и время посчитается неправильно.

>3) написать свой модуль для iptables, мониторящий соединения и суммирующий их длительность.
>потенциально третий способ наиболее точный, но он же и наиболее трудновыполнимый...

Логично, так же можно написать модуль для сквиды или свою мини-проксю, прослойку между пользователем и сквидой, да сложно это.


"squid"
Отправлено Michael , 24-Фев-04 19:08 
>>а если закачка совершенно законная?
>>и ведь бывает, что закачка не может быть возобновлена, например в случае
>>одноразовых url-ов (таковые встречаются не так уж редко)
>Честно говоря ни разу не встречал...
например, скачиваний приаттаченых файлов через web-интерфейс бесплатных почтовиков... или, буквально сегодня попалось, сайт техподдержки ibm-овских и hiatchi-вских винтов...

>>могу предложить еще три варианта, которые так же не лишены кривости:
>>1) периодически (раз в 1-10 секунд) мониторить netstat -n -t|grep '192.168.0.254:3128'|grep established
>>на предмет имеющихся соединений и соответственно наращивать счетчики по каждому ip-адресу.
>тогда лучше netstat -n -t -o
а смысл? таймеры у established соединений все равно нулевые...

>Но здесь есть вероятность посчитать одну и туже закачку два раза. Один
>через греп, другой через лог закачек.
в смысле? через какой лог?

>>2) настроить шейпер для клиентов, и принять, что занятая полоса для каждого
>>из клиентов равна максимальной полосе. написать правила iptables для каждого клиентского
>>ip-адреса и периодически снимать с них показания. делением трафика на скорость получаем время. при первышени порога правило iptables меняется с accept на reject.
>Тут будет неточным деление трафика на скорость, поскольку качаться все одно будет
>с разной скоростью. С разных сайтов качает по разному.
поэтому и говорю о шейпере, чтобы ограничит скорость соединений и сделать их грубо равными по скорости...

>кроме того надо учесть, что пользователь может взять дцать мегов из кеша
>сквиды и время посчитается неправильно.
насчет кэша в исходных условиях не было...
и почему посчитается неправильно? шейпер отработает и отдаст на наужной скорсти эти дцать мегов -> получим нужное время.
но то, что способ очень грубый - согласен.

>>3) написать свой модуль для iptables, мониторящий соединения и суммирующий их длительность.
>>потенциально третий способ наиболее точный, но он же и наиболее трудновыполнимый...
>
>Логично, так же можно написать модуль для сквиды или свою мини-проксю, прослойку
>между пользователем и сквидой, да сложно это.

короче, извращенных вариантов напридумать можно...
имхо, извращенным они будут всегда, так как поставлена совершенно дурацкая задача!
самое лучшее - вообще отказаться от такой задачи, объяснив шефу ее неправильность и предложив более разумные способы ограничения аппетитов пользователей.


"squid"
Отправлено forfreeuse , 24-Фев-04 21:13 
Тут в голову пришла мысля, собственно что мешает в предложенный мной вариант кода вставить проверку на наличие активных закачек для этого юзверя?

В случае если таймаут истек и в сквид не было обращений, перед тем как решить, что юзверь в офлайне проверить, не качает ли он что-либо.


Только думаю для скорости проверять лучше не нетстатом, а как в менеджере, что в дистрибутиве сквиды идет. Он ведь показывает активные закачки?
Плюс убивать активные закачки через то-те манагер, когда время пользователя истечет.

--
slava
http://www.rejik.ru


"squid"
Отправлено pva , 25-Фев-04 14:25 
Вопрос к Славе
Как смотреть активные закачки я знаю
cache_object://localhost/active_requests -
меню Client-side Active Requests

а вот как можно прибивать активные закачки через cachemgr.cgi или напрямую обращаясь к объекту cache Squid-a ?


"squid"
Отправлено forfreeuse , 25-Фев-04 14:55 
Честно говоря не помню.
Если сложности с убиванием через менеджер, то наверное можно добавлять правило в iptables для остановки текущих закачек конкретного юзверя.

>Вопрос к Славе
>Как смотреть активные закачки я знаю
>cache_object://localhost/active_requests -
>меню Client-side Active Requests
>
>а вот как можно прибивать активные закачки через cachemgr.cgi или напрямую обращаясь
>к объекту cache Squid-a ?



"squid"
Отправлено al1 , 26-Фев-04 05:50 
>Можно ли как-то в настройках сквида прописать лимитированную расдачу инета. Например по
>1,2,3 часа в день суммарно, независимо от обьема. Если да. то
>подскажите как сделать можно.


Может быть проще раздавать inet по vpn?


"squid"
Отправлено PJ , 26-Фев-04 12:58 
>Можно ли как-то в настройках сквида прописать лимитированную расдачу инета. Например по
>1,2,3 часа в день суммарно, независимо от обьема. Если да. то
>подскажите как сделать можно.

посмотри

http://www.opennet.me/prog/info/1795.shtml
http://sacc.westural.ru/


"squid"
Отправлено ids , 26-Фев-04 13:30 
>>Можно ли как-то в настройках сквида прописать лимитированную расдачу инета. Например по
>>1,2,3 часа в день суммарно, независимо от обьема. Если да. то
>>подскажите как сделать можно.
>
>посмотри
>
>http://www.opennet.me/prog/info/1795.shtml
>http://sacc.westural.ru/

это все не то :(
Хотя достойно внимания.


"squid"
Отправлено Boriska , 01-Мрт-04 09:29 
Посмотри http://www.netams.com, там есть решение подобное тому что ты хочешь. Именно ограничение по суммарному времени, однако к squid оно отношения не имеет.