splinter
написал 20 ноября 2008 года в 07:30 (1092 просмотра)
Ведет себя
как четкий пацан; открыл 134 темы в форуме, оставил 1459 комментариев на сайте.
Всем здрям, возможно ли ограничить траффик на пользователя не по ширине канала а по сумарному колличеству скаченных мегабайт? Что бы пользователю запрещался доступ если он исчерпал свой лимит за месяц, к примеру скачал 200 Мб. Кстати также крутится самописный биллинг на apache+mysql+php, его смысл в том что он забирает инфу с логов squid запихивает их в мускл, может это как то можно использовать?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Т.е. информация о трафике пользователя (с некоторой, скорее всего изменяемой, периодичностью обновления) у тебя есть?
База пользователей — тоже.
Вопрос: ты хочешь просто рубить или посылать на страничку, где рассказывает о том, что такой нехороший пользователь исчерпал лимит?
Если просто рубить, то я бы рекомендовал:
1. База пользователей в LDAP;
2. Разрешающие правила сквида включают в себя некоторые атрибуты LDAP’а (авторизация — по вкусу на твоё усмотрение);
3. С определённой тобой периодичностью (например — раз в час) биллинг обновляет данные о квотируемом трафике пользователя и при превышении квоты меняет значение атрибута LDAP;
4. В определённый тобой день месяца производится обнуление счётчика квот (статистика по общему трафику неприкосновенна).
В таком виде должно работать.
БД ползователей нет, есть их ипы, периодичность в моем случае это отрабатывание срипта который рассовывает инфу с лога сквида в таблицу мускула, в ней поля ip, bytes, link, date.
это было бы просто потрясающе :) LDAPa нет, я с ним сильно не сталкивался, можно как то без него эту проблему решить?
Не вижу для твоего случая принципиальной разницы между идентификацией пользователя по IP или по имени.
Читать про редирект в сквиде.
Можно. Но менее изящно (ибо применение изменённых правил потребует рестарта сквида, при посуточной дискретизации не фатально).
Пишешь правила на доступ в Сеть и редирект на «Квота выбрана» (чтобы пускались все IP-адреса, кроме перечисленных в файле overquoted).
По результатам проверки если таковые обнаружились: IP-адрес заносится (добавляется) в файл overquoted и перезапускается сквид. Раз в месяц файл обнуляется.
Есть, например, http://sams.perm.ru