nixp.ru v3.0

17 октября 2017,
вторник,
14:37:36 MSK

DevOps с компанией «Флант»
Аватар пользователя splinter
splinter написал 20 ноября 2008 года в 07:30 (621 просмотр) Ведет себя как четкий пацан; открыл 134 темы в форуме, оставил 1458 комментариев на сайте.

Всем здрям, возможно ли ограничить траффик на пользователя не по ширине канала а по сумарному колличеству скаченных мегабайт? Что бы пользователю запрещался доступ если он исчерпал свой лимит за месяц, к примеру скачал 200 Мб. Кстати также крутится самописный биллинг на apache+mysql+php, его смысл в том что он забирает инфу с логов squid запихивает их в мускл, может это как то можно использовать?

Anarchist

Т.е. информация о трафике пользователя (с некоторой, скорее всего изменяемой, периодичностью обновления) у тебя есть?

База пользователей — тоже.

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

Если просто рубить, то я бы рекомендовал:

1. База пользователей в LDAP;

2. Разрешающие правила сквида включают в себя некоторые атрибуты LDAP’а (авторизация — по вкусу на твоё усмотрение);

3. С определённой тобой периодичностью (например — раз в час) биллинг обновляет данные о квотируемом трафике пользователя и при превышении квоты меняет значение атрибута LDAP;

4. В определённый тобой день месяца производится обнуление счётчика квот (статистика по общему трафику неприкосновенна).

В таком виде должно работать.

splinter

БД ползователей нет, есть их ипы, периодичность в моем случае это отрабатывание срипта который рассовывает инфу с лога сквида в таблицу мускула, в ней поля ip, bytes, link, date.

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


это было бы просто потрясающе :) LDAPa нет, я с ним сильно не сталкивался, можно как то без него эту проблему решить?

Anarchist
splinter
БД ползователей нет, есть их ипы, периодичность в моем случае это отрабатывание срипта который рассовывает инфу с лога сквида в таблицу мускула, в ней поля ip, bytes, link, date.

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

splinter
это было бы просто потрясающе :)

Читать про редирект в сквиде.

splinter
LDAPa нет, я с ним сильно не сталкивался, можно как то без него эту проблему решить?

Можно. Но менее изящно (ибо применение изменённых правил потребует рестарта сквида, при посуточной дискретизации не фатально).

Пишешь правила на доступ в Сеть и редирект на «Квота выбрана» (чтобы пускались все IP-адреса, кроме перечисленных в файле overquoted).

По результатам проверки если таковые обнаружились: IP-адрес заносится (добавляется) в файл overquoted и перезапускается сквид. Раз в месяц файл обнуляется.

sky
splinter
Всем здрям, возможно ли ограничить траффик на пользователя не по ширине канала а по сумарному колличеству скаченных мегабайт? Что бы пользователю запрещался доступ если он исчерпал свой лимит за месяц, к примеру скачал 200 Мб. Кстати также крутится самописный биллинг на apache+mysql+php, его смысл в том что он забирает инфу с логов squid запихивает их в мускл, может это как то можно использовать?

Есть, например, http://sams.perm.ru