Биллинг на PfSense 2.3.2

Навигация по книге

Данная статья представляет дальнейшее развитие концепции, изложенной в https://warelab.ru/node/21.

В данной версии реализован функционал по суточному ограничению потребляемого трафика.

Заходим в webGUI pfsense, если не установлены, устанавливаем пакеты squid(версия 0.4.23_2 (3.5.19_1)), Lightsquid(версия 3.0.4_1(lightsquid-1.8_4)), cron(версия 0.3.7).

Заходим в консоль pfsense, например с помощью putty.
Копируем файл в директорию /usr/local

cd /usr/local
fetch https://warelab.ru/sites/warelab.ru/files/pf232s3519304.tar__0.gz

Распаковываем файл
tar -xzf pf232s3519304.tar__0.gz
с тем, чтобы получилась директория squid в /usr/local

Патчим
cd pkg
patch < /usr/local/squid/billing.patch

Настраиваем cron на выполнение програмы "perl /usr/local/squid/ter.pl" раз в полчаса, или вручную выполняем данную последовательность в консоли(сколько Ваш пользователь расходует трафика за полчаса - это и есть погрешность). Если программа не будет выполняться соответственно ни один пользователь не появится в файле blocked_users и соответственно не заблокируется. С другой стороны не стоит слишком часто дергать базу Lightsquid.

Чтобы все заработало необходимо разрешить локальную авторизацию в squid(Servises->Proxy server->Auth Settings->Authentication method->local), Ввести локальных пользователей и их пароли в Servises->Proxy server->Local Users, обеспечить совпадение имен в файле limit и в squid Servises->Proxy server->Local Users. Сопоставить необходимые лимиты пользователям в файле limit. Необходимо сохранить изменения в конфигурации squid.

Проверить работу скрипта можно по наличию сообщения "trafic blocator" в системном логе.

Кроме других версий пакетов перемещен в доступное для squid файл /var/squid/acl/blocked_users.

для блокировки медиаконтента в squid добавить после блокировки превысивших трафик:
acl media rep_mime_type -i ^audio/*
acl media rep_mime_type -i ^video/*
http_reply_access deny media

Просьба свои замечания и предложения направлять в https://warelab.ru/contact