Сергей Супрунов
Если вы вознамерились стать провайдером услуг Интернета, имея сервер под
управлением FreeBSD и несколько модемов на входе, то одной из первых задач,
которая встанет перед вами, будет проблема учета времени работы ваших
пользователей.
Безусловно, существует целый ряд готовых
программных продуктов, в той или иной степени решающих задачу учета (и
тарификации) работы пользователей, выходящих в Интернет через модемный пул
сервера. Однако для «частного» использования вряд ли целесообразно
«прикручивать» к вашей системе RADIUS или что-то подобное. В данной статье мы
попытаемся рассмотреть общие принципы решения задачи учета работы «дайлапников»,
скажем так, подручными средствами. Конкретную реализацию оставим за рамками
данной статьи.
Итак, для того чтобы посчитать время работы
пользователя, мы должны решить три задачи: определение момента входа
пользователя в систему, определение момента выхода из системы и сохранение
информации о данном соединении для последующего использования. Если мы изберем
авансовую систему оплаты доступа (когда «утром деньги – вечером стулья»), то
потребуется также контролировать состояние счета абонента в процессе его
работы, и отключать его, если аванс на его счету будет исчерпан. Также может
потребоваться и учет потребленного трафика.
Поскольку мы не ставим своей задачей разработку
серьезной и универсальной системы, то будем стремиться максимально использовать
то, что у нас уже есть. Также мы не будем связываться с программированием,
чтобы основная идея не затерялась в дебрях алгоритмизации, а ограничимся
скромными скриптами на Shell и Perl. Посмотрим, какие «встроенные» средства
учета нам доступны.