LINUX.ORG.RU

реализовывается авторизацией через радиус, ну не делается такое на прокси, гон это

anonymous
()

А причем вообще деньги и squid (или тот же radius) ???
Вы видели где-нибудь в squid-е acl типа "деньги" или в radius-е что-то типа "if money_lost {...}" ???
Без рук и головы здесь ничего не поможет
Посмотри по какому принципу и каким параметрам работает ограничение доступа в squid-е и попробуй подогнать это к своей ситуации : подобрать нужные acl-и, их последовательность, может пару скриптов написать...., а таким образом, как сейчас, вопросы ставить не нужно :-)

spirit ★★★★★
()

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

anonymous
()

Я думаю так:
Надо заранее создать создать ряд "одноразовых" пользователей, доступ которым через сквид разрешен с использованием внешней программы аутентификации (я использую NCSA-htpasswd). (Аналог таких пользователей - карточки оплаты - ввел PIN-код и выкинул)

Потом создать файл такого формата:
--------
user1 1000000
user2 1000000
........
--------
А может такого формата:
----------------
<user>
<id>user1</id>
<quota>1000000</quota>
</user>
----------------
Затем натравить программу-демон (которую Вы напишите) на лог сквида access.log
При добавлении сквидом записи в лог эта программа должна вытащить из строки в логе имя пользователя и количесво байт, полученных им.
На каждого пользователя в памяти должна храниться текущаяя сумма, к которой и надо прибавить размер в байтах, а затем сравнить с квотой этого пользователя в вышеуказанном файле. В случае превышения дать внешнюю команду операционной системы:
htpasswd -b squid.passwd user1 new_passwd,
где squid.passwd - файл, где созданы пользователи,
new_passwd - случайно сгенерированный новый пароль, главное - чтоб он не совпадал с тем, который был :)
И даже сквид перезагружать не надо.
P.S. Надо проверить параметр сквида authenticate_ttl, по умолчанию он один час, для нас подойдет 1 минута или меньше
Дмитрий.

anonymous
()

а ты знаешь, что запись попадает в access.log только когда объект ОТДАН клиенту. т.е. я качаю исошку и фиг ты меня вчислишь пока я ее до конца не докачаю... попандоз однако :) кроме того, пароли летают открытым текстом, вводить их каждую минуту очень даже неудобно, сквид отдает размер объекта вместе с заголовком, а считать просто весь траффик на клиента или только то, что сейчас прокси тянет для него из инета и как такое реализовать. я еще долго могу перечилсять подобные задачи, или этого достаточно, чтобы понять что такая реализация крива изначально ?

anonymous
()

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

anonymous
()

примерно правильно :) я так и делаю на фре при помощи ipa, если нужно тупо отстрелить айпишник. а авторизацию как ты прикрутишь, Ы ?

anonymous
()

Вообще-то в сабже говорится о сквиде, вот я и предложил некий шаблон.
Все зависит от индивидуальных особенностей и своеобразия текущего момента :)
Например, фаервол не определяет, получен ли файл из кеша или из интернета (если из кеша, то зачем за него платить?)
Все описаные проблемы можно как-либо решить или пренебречь ими.
Также, любой способ приблизительный, врядли можно посчитать с точностью до байта трафик пользователя.
С уважением, Дмитрий

anonymous
()

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

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