Учет трафика. Выделение определенного лиl
-
Доброго времени суток, уже неделю разбираюсь с pfsense и она работает почти как я хочу. Для полного счастья не хватает совсем чуть-чуть.
Опишу как у меня организовано сейчас. Небольшая организация, интернет от обоих провайдеров лимитированный и по этому одним пользователям он не доступен, другим доступен с определенным дневным лимитом, а некоторым пользователям он доступен без всяких ограничений (в данном случае под интернетом подразумевается трафик по 80-му порту). Также почта и аська раздается всем желающим. Все остальное запрещено. Это все организовано при помощи виндовой программы tmeter - ведутся логи, в общем осуществляется бдительный контроль.
Аналогичное хотелось бы сделать и при помощи pfsense, но только ума не приложу каким образом организовать выделение того самого дневного лимита для конкретных пользователей??? Squid я так понимаю proxy с возможностью протоколирования движения пакетов, и в нем я только ВИЖУ, кто сколько накачал - ОГРАНИЧИВАТЬ не могу?
В какую сторону копать? -
К сожалению в pfSense биллинг не предусмотрен. Ограничения по трафику нет.
-
как вариант, можно урезать скорость.
-
А какие-нибудь дополнительные пакеты или может быть скриптами можно отлавливать эти события? Кстати в каком виде squid свою базу хранит?
-
-
- есть lightsquid, который с помощью ipcad можно заставить считать весь трафик (тут поднималось и не раз)
- тебе нужно парсить логи lightsquid, если больше определенной суммы для юзера, добавлять правило в firewall "deny all from ip to any"
- в 00:00 сбрасывать правила
- ????
- PROFIT!!!
-
lightsquid я поставил и трафик он считает и складывает отчеты в /var/lightsquid/report. В этом каталоге идет разбивка по дням (подкаталоги), а уже в них файлы с конкретными IP, и первая строчка этого файла total: 200297 (размер полученных данных в байтах). Т.е. я так понимаю - это как раз, то что мне нужно! Значит мне нужно написать скрипт, который будет каждую минуту например, проверять файлы с определенными IP (тех у кого есть ограничения на трафик), и если значение превышает лимит - то нужно создавать правило. С просмотром файлов я наверное разберусь, а вот как из скрипта правила добавлять?
-
- Не понял, зачем ты переписал то что я сказал, только другим словами?
- man pfctl
-
-
-
Почитал о pfctl хотел сделать блокирующее правило и динамично изменяющуюся таблицу IP адресов
Как работать с таблицами разобрался, а вот как добавить правило использующее эту таблицу понять не могу, все статьи описывают изменения файла etc/pf.conf, но он пустой и правил там нет, где pfsense хранит правила фаервола? Можно ли при создании правила через web интерфейс указать с какой таблицей адресов оно будет работать? -
C pfctl там можно динамически менять правила ( на лету). Достаточно иметь одну таблицу, которая прописана в блокирующем правиле - можно менять ее содержимое.
Текущий дамп правил в /tmp/rules.debug. Можно использовать таблицу снорта. Правила его поддерживающие есть, даже если он не установлен.# snort2c table <snort2c> persist block quick from <snort2c> to any label "Block snort2c hosts" block quick from any to <snort2c> label "Block snort2c hosts"</snort2c></snort2c></snort2c>
-
Читай про pfctl там можно динамически менять правила ( на лету). Достаточно иметь одну таблицу, которая прописана в блокирующем правиле - можно менять ее содержимое.
да я ему прям ссылку чуть ли не на готовое решение кинул
-
Можно использовать таблицу снорта
То что нужно!
Всем кто принимал участие в обсуждении спасибо, очень помогли! Обкатаю скрипт и выложу его здесь в качестве решения моей задачи, может кому еще пригодиться.
-
в свое время писал статейку http://www.opennet.ru/base/net/traf_gate.txt.html
-
в свое время писал статейку http://www.opennet.ru/base/net/traf_gate.txt.html
Я вот подумываю Free-SA освоить - не хватает уже ресурсов под LS.