<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Записки на полях &#187; billng</title>
	<atom:link href="http://snake.khd.ru/tag/billng/feed/" rel="self" type="application/rss+xml" />
	<link>http://snake.khd.ru</link>
	<description>Логи начинающего сисадмина</description>
	<lastBuildDate>Sun, 25 Jul 2010 00:55:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Посчитаем все! Stargazer как биллинг для небольшой локалки</title>
		<link>http://snake.khd.ru/2009/10/poschitaem-vse-stargazer-kak-billing-dlya-nebolshoj-lokalki/</link>
		<comments>http://snake.khd.ru/2009/10/poschitaem-vse-stargazer-kak-billing-dlya-nebolshoj-lokalki/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 10:09:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[billng]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[stargazer]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=93</guid>
		<description><![CDATA[Имеется: сервер на freebsd 7.2, две безлимитных линии, две группы пользователей
Задача &#8211; контролировать платежи пользователей за интернет.

Для начала нам понадобится биллинг &#8211; программа, которая будет считать трафик пользователя, осуществлять авторизацию и считать абонку. В моем случае это Stargazer
Для установки нам потребуются оболочка bash и библиотека expat.
Распаковываем архив, идем в projects/stargazer.
Выполняем:

#./build
#gmake install

Если все прошло успешно, то [...]]]></description>
			<content:encoded><![CDATA[<p>Имеется: сервер на freebsd 7.2, две безлимитных линии, две группы пользователей<br />
Задача &#8211; контролировать платежи пользователей за интернет.<br />
<span id="more-93"></span><br />
Для начала нам понадобится биллинг &#8211; программа, которая будет считать трафик пользователя, осуществлять авторизацию и считать абонку. В моем случае это <a href="http://www.stargazer.dp.ua/download.php" target="_blank">Stargazer</a></p>
<p>Для установки нам потребуются оболочка bash и библиотека expat.<br />
Распаковываем архив, идем в projects/stargazer.<br />
Выполняем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#./build</span>
<span style="color: #666666; font-style: italic;">#gmake install</span></pre></div></div>

<p>Если все прошло успешно, то в /etc/stargazer появятся  файлы rules, stargazer.conf и скрипты пользователей</p>
<p>Начнем по порядку:<br />
<strong>rules</strong> содержит список подсетей и направлений. По каждому направлению может быть свой тариф и свои правила подсчета.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">ALL     192.168.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">16</span>  DIR1 <span style="color: #666666; font-style: italic;">#направление 1 - локалка</span>
ALL     10.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">8</span>      DIR2 <span style="color: #666666; font-style: italic;"># направление 2 - городская сеть</span>
ALL     0.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</span>       DIR0 <span style="color: #666666; font-style: italic;"># направление 3 - инет</span></pre></div></div>

<p><strong>stargazer.conf</strong> &#8211; основной конфигурационный файл</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">################################################################################</span>
<span style="color: #666666; font-style: italic;">#                        Файл настроек сервера stargazer                       #</span>
<span style="color: #666666; font-style: italic;">################################################################################</span>
<span style="color: #666666; font-style: italic;"># Имя лог-файла куда пишутся события</span>
LogFile = <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>stargazer.log
&nbsp;
<span style="color: #666666; font-style: italic;"># Имя PID-файла куда пишется идентификатор процесса</span>
<span style="color: #666666; font-style: italic;"># По умолчанию /var/run/pid</span>
<span style="color: #666666; font-style: italic;"># PIDFile = /var/run/stargazer.pid</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Имя файла в котором определяются правила подсчета трафика</span>
Rules = <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>stargazer<span style="color: #000000; font-weight: bold;">/</span>rules
&nbsp;
<span style="color: #666666; font-style: italic;"># Время через которое пишется d БД детальная статистика пользователя</span>
<span style="color: #666666; font-style: italic;"># Значения: 1, 1/2, 1/4, 1/6.</span>
<span style="color: #666666; font-style: italic;"># 1 - раз в чаc, 1/2 - раз в пол часа, 1/4 - раз в 15 мин, 1/6 - раз в 10 мин</span>
<span style="color: #007800;">DetailStatWritePeriod</span>=<span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">6</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Периодичность записи записи в БД информации о статистике пользователя (минуты)</span>
<span style="color: #666666; font-style: italic;"># При большом кол-ве пользователей эту величину стоит увеличить, т.к.</span>
<span style="color: #666666; font-style: italic;"># запись в БД может занимать длительное время.</span>
<span style="color: #666666; font-style: italic;"># Значения: 1...1440 (минуты)</span>
StatWritePeriod = <span style="color: #000000;">10</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># День снятия абонплаты</span>
<span style="color: #666666; font-style: italic;"># Значения: 0...31. 0 - Последний день месяца</span>
DayFee = <span style="color: #000000;">1</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Абонплата снимается в последний (yes) или первый (no) день учетного периода.</span>
<span style="color: #666666; font-style: italic;"># Это влияет на то, как будет снята абонплата (АП) при переходе на новый тариф.</span>
<span style="color: #666666; font-style: italic;"># Если у пользователя был тариф A с АП=100 и он хочет перейти на тариф B с АП=200,</span>
<span style="color: #666666; font-style: italic;"># то при переходе на новый тариф со счета пользователя снимется 100, если</span>
<span style="color: #666666; font-style: italic;"># DayFeeIsLastDay = yes и 200, если DayFeeIsLastDay = no</span>
DayFeeIsLastDay = <span style="color: #c20cb9; font-weight: bold;">yes</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># День сброса данных о трафике за месяц и день перехода пользователей на новые тарифы</span>
<span style="color: #666666; font-style: italic;"># Значения: 0...31. 0 - Последний день месяца</span>
DayResetTraff = <span style="color: #000000;">1</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># &quot;Размазанное&quot; снятие абонплаты. Снятие АП не раз в месяц, а каждый</span>
<span style="color: #666666; font-style: italic;"># день 1/30 или 1/31 части АП</span>
<span style="color: #666666; font-style: italic;"># Значения: yes, no</span>
SpreadFee = no
&nbsp;
<span style="color: #666666; font-style: italic;"># Данная опция определяет может ли пользователь получить доступ в интерент</span>
<span style="color: #666666; font-style: italic;"># если у него на счету нет денег, но остался предоплаченный трафик</span>
<span style="color: #666666; font-style: italic;"># Значения: yes, no</span>
FreeMbAllowInet = no
&nbsp;
<span style="color: #666666; font-style: italic;"># Эта опция определяет что будет писаться в стоимость трафика в detail_stat.</span>
<span style="color: #666666; font-style: italic;"># Если у пользователя еще есть предоплаченный трафик и WriteFreeMbTraffCost = no,</span>
<span style="color: #666666; font-style: italic;"># то в detail_stat стоимость будет 0. Если у пользователя уже нет</span>
<span style="color: #666666; font-style: italic;"># предоплаченного трафика и WriteFreeMbTraffCost = no, то в detail_stat</span>
<span style="color: #666666; font-style: italic;"># будет записана стоиость трафика. При WriteFreeMbTraffCost = yes стоимость</span>
<span style="color: #666666; font-style: italic;"># трафика будет записана в любом случае.</span>
WriteFreeMbTraffCost = no
&nbsp;
<span style="color: #666666; font-style: italic;"># Названия направлений. Направления без названий не будут отображаться в</span>
<span style="color: #666666; font-style: italic;"># авторизаторе и конфигураторе. Названия состоящие из нескольких слов должны</span>
<span style="color: #666666; font-style: italic;"># быть взяты в кавычки</span>
<span style="color: #666666; font-style: italic;"># Я использовал только одно направление - Интернет. (&lt;em&gt;прим. Snake&lt;/em&gt;)</span>
<span style="color: #000000; font-weight: bold;">&lt;</span>DirNames<span style="color: #000000; font-weight: bold;">&gt;</span>
    DirName0 = Internet
    <span style="color: #666666; font-style: italic;">#DirName1 = Город</span>
    <span style="color: #666666; font-style: italic;">#DirName2 = Локаль</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>DirNames<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Кол-во запускаемых процессов stg-exec.</span>
<span style="color: #666666; font-style: italic;"># Эти процессы отвечают за выполнение скриптов OnConnect, OnDisconnect, ...</span>
<span style="color: #666666; font-style: italic;"># Кол-во процессов означает сколько скриптов могут выполнятся одновременно.</span>
<span style="color: #666666; font-style: italic;"># Значения: 1...1024</span>
ExecutersNum = <span style="color: #000000;">1</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Message Key для stg-exec.</span>
<span style="color: #666666; font-style: italic;"># Идентификатор очереди сообщений для выполнятеля скриптов.</span>
<span style="color: #666666; font-style: italic;"># Его изменение может понадобится если есть необходимость запустить несколько</span>
<span style="color: #666666; font-style: italic;"># экземпляров stg. Если вы не понимаете, что это, не трогайте этот параметр!</span>
<span style="color: #666666; font-style: italic;"># Значения: 0...2^32</span>
<span style="color: #666666; font-style: italic;"># Значение по умолчанию: 5555</span>
<span style="color: #666666; font-style: italic;"># ExecMsgKey = 5555</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Путь к директории, в которой находятся модули сервера</span>
ModulesPath = <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>stg
&nbsp;
<span style="color: #666666; font-style: italic;"># Определяет директорию, в которой будут находится файлы &quot;монитора&quot;</span>
<span style="color: #666666; font-style: italic;"># работы сервера. В этой директории будут созданы пустые файлы, время </span>
<span style="color: #666666; font-style: italic;"># модификации которых будет меняться примерно раз в минуту. Если какой-то </span>
<span style="color: #666666; font-style: italic;"># компонент сервера зависнет, файл(ы) перестанет обновлятся, и по этому </span>
<span style="color: #666666; font-style: italic;"># признаку можно определить сбой в работе сервера и при надобности </span>
<span style="color: #666666; font-style: italic;"># перезапустить. Если параметр не указан или пустой, мониторинг производится </span>
<span style="color: #666666; font-style: italic;"># не будет. Параметр не является обязательным, по умолчанию пустой.</span>
<span style="color: #666666; font-style: italic;"># MonitorDir=/var/stargazer/monitor</span>
&nbsp;
<span style="color: #666666; font-style: italic;">################################################################################</span>
<span style="color: #666666; font-style: italic;"># Store module</span>
<span style="color: #666666; font-style: italic;"># Настройки плагина работающего с БД сервера</span>
<span style="color: #666666; font-style: italic;"># Выберите нужный модуль хранения статистики (БД или файлы). Должен быть активен только один модуль!</span>
<span style="color: #666666; font-style: italic;"># Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
<span style="color: #666666; font-style: italic;"># Т.е. полное имя модуля mod_store_files.so</span>
<span style="color: #000000; font-weight: bold;">&lt;</span>StoreModule store_files<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Рабочая директория сервера, тут содержатся данные о тарифах, пользователях,</span>
    <span style="color: #666666; font-style: italic;"># администраторах и т.д.</span>
    WorkDir = <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>stargazer
&nbsp;
&nbsp;
    <span style="color: #666666; font-style: italic;"># Владелец, группа и права доступа на файлы статистики (stat) пользователя</span>
    ConfOwner = root
    ConfGroup = wheel
    ConfMode = <span style="color: #000000;">600</span>
&nbsp;
&nbsp;
    <span style="color: #666666; font-style: italic;"># Владелец, группа и права доступа на файлы конфигурации (conf) пользователя</span>
    StatOwner = root
    StatGroup = wheel
    StatMode = <span style="color: #000000;">640</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Владелец, группа и права доступа на лог-файлы (log) пользователя</span>
    UserLogOwner = root
    UserLogGroup = wheel
    UserLogMode = <span style="color: #000000;">640</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Удалять резервные копии после успешной записи conf/stat</span>
    <span style="color: #666666; font-style: italic;"># Значения: yes, no</span>
    <span style="color: #666666; font-style: italic;"># По умолчанию: yes</span>
    <span style="color: #666666; font-style: italic;"># RemoveBak = yes</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Восстанавливать файлы conf/stat из резервных копий при ошибке чтения</span>
    <span style="color: #666666; font-style: italic;"># Значения: yes, no</span>
    <span style="color: #666666; font-style: italic;"># По умолчанию: no</span>
    <span style="color: #666666; font-style: italic;"># ReadBak = no</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;/</span>StoreModule<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#&lt;StoreModule store_firebird&gt;</span>
<span style="color: #666666; font-style: italic;">#    # Адрес сервера БД</span>
<span style="color: #666666; font-style: italic;">#    server=localhost</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Путь к БД на сервере или ее алиас</span>
<span style="color: #666666; font-style: italic;">#    database=/var/stg/stargazer.fdb</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Имя пользователя БД</span>
<span style="color: #666666; font-style: italic;">#    user=stg</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Пароль пользователя БД</span>
<span style="color: #666666; font-style: italic;">#    password=123456</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Уровень изоляции транзаций (не обязательно, по умолчанию oncurrency):</span>
<span style="color: #666666; font-style: italic;">#    #  concurrency</span>
<span style="color: #666666; font-style: italic;">#    #  dirtyRead</span>
<span style="color: #666666; font-style: italic;">#    #  readCommitted</span>
<span style="color: #666666; font-style: italic;">#    #  consistency</span>
<span style="color: #666666; font-style: italic;">#    isolationLevel=concurrency</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Действия при блокировках (не обязательно, по умолчанию wait):</span>
<span style="color: #666666; font-style: italic;">#    #  wait</span>
<span style="color: #666666; font-style: italic;">#    #  noWait</span>
<span style="color: #666666; font-style: italic;">#    lockResolution=wait</span>
<span style="color: #666666; font-style: italic;">#&lt;/StoreModule&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#&lt;StoreModule store_postgresql&gt;</span>
<span style="color: #666666; font-style: italic;">#    # Адрес сервера БД</span>
<span style="color: #666666; font-style: italic;">#    server=localhost</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Имя БД</span>
<span style="color: #666666; font-style: italic;">#    database=stargazer</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Имя пользователя БД</span>
<span style="color: #666666; font-style: italic;">#    user=stg</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Пароль пользователя БД</span>
<span style="color: #666666; font-style: italic;">#    password=123456</span>
<span style="color: #666666; font-style: italic;">#&lt;/StoreModule&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#&lt;StoreModule store_mysql&gt;</span>
<span style="color: #666666; font-style: italic;">#    # Имя пользователя БД</span>
<span style="color: #666666; font-style: italic;">#    dbuser = stg</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Пароль пользователя БД</span>
<span style="color: #666666; font-style: italic;">#    rootdbpass = 123456</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Имя БД на сервере</span>
<span style="color: #666666; font-style: italic;">#    dbname = stg</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Адрес сервера БД</span>
<span style="color: #666666; font-style: italic;">#    dbhost = localhost</span>
<span style="color: #666666; font-style: italic;">#&lt;/StoreModule&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">################################################################################</span>
<span style="color: #666666; font-style: italic;"># Прочие модули</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;</span>Modules<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Настройки плагина авторизации Always Online &quot;mod_auth_ao.so&quot;</span>
    <span style="color: #666666; font-style: italic;"># Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
    <span style="color: #666666; font-style: italic;"># Т.е. полное имя модуля mod_auth_ao.so</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>Module auth_ao<span style="color: #000000; font-weight: bold;">&gt;</span>
    <span style="color: #000000; font-weight: bold;">&lt;/</span>Module<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Настройки плагина авторизации InetAccess &quot;mod_auth_ia.so&quot;</span>
    <span style="color: #666666; font-style: italic;"># Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
    <span style="color: #666666; font-style: italic;"># Т.е. полное имя модуля mod_auth_ia.so</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>Module auth_ia<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Порт на котором принимаются обращения от авторизатора</span>
        <span style="color: #666666; font-style: italic;"># Значения: 1...65534</span>
        Port = <span style="color: #000000;">5555</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Время между посылками запроса пользователю жив ли он</span>
        <span style="color: #666666; font-style: italic;"># и обновлением данных статистики (секунды)</span>
        <span style="color: #666666; font-style: italic;"># Значения: 5...600</span>
        UserDelay = <span style="color: #000000;">15</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">#Таймаут для пользователя. Если в течение этого времени авторизатор</span>
        <span style="color: #666666; font-style: italic;">#не отвечает, пользователь будет отключен</span>
        <span style="color: #666666; font-style: italic;"># Значения: 15...1200</span>
        UserTimeout = <span style="color: #000000;">65</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Этот параметр определяет что будет передаваться программе InetAccess от сервера</span>
        <span style="color: #666666; font-style: italic;"># как отстаток предоплаченного трафика</span>
        <span style="color: #666666; font-style: italic;"># Значения:</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = 0 - кол-во бесплатных мегабайт в пресчете на цену нулевого направления</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = 1 - кол-во бесплатных мегабайт в пресчете на цену первого направления</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = 2 - кол-во бесплатных мегабайт в пресчете на цену второго направления</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = 3 - кол-во бесплатных мегабайт в пресчете на цену третьего направления</span>
        <span style="color: #666666; font-style: italic;"># ........................</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = 9 - кол-во бесплатных мегабайт в пресчете на цену девятого направления</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = cash - кол-во денег на которые юзер может бесплатно качать</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = none - ничего не передавать</span>
        FreeMb = cash
    <span style="color: #000000; font-weight: bold;">&lt;/</span>Module<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Модули можно использовать несколько раз с разными параметрами</span>
    <span style="color: #666666; font-style: italic;">#&lt;Module auth_ia&gt;</span>
    <span style="color: #666666; font-style: italic;">#    Port = 7777</span>
    <span style="color: #666666; font-style: italic;">#    UserDelay = 15</span>
    <span style="color: #666666; font-style: italic;">#    UserTimeout = 65</span>
    <span style="color: #666666; font-style: italic;">#    FreeMb = 0</span>
    <span style="color: #666666; font-style: italic;">#&lt;/Module&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Настройки модуля конфигурации SgConfig &quot;mod_conf_sg.so&quot;</span>
    <span style="color: #666666; font-style: italic;"># Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>Module conf_sg<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Порт по которому сервер взаимодействует с конфигуратором</span>
        <span style="color: #666666; font-style: italic;"># Значения: 1...65535</span>
        Port = <span style="color: #000000;">5555</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">&lt;/</span>Module<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Модуль захвата трафика &quot;mod_cap_bpf.so&quot;</span>
    <span style="color: #666666; font-style: italic;"># Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
    <span style="color: #666666; font-style: italic;"># Без параметров. Только имя модуля.</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>Module cap_bpf<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #666666; font-style: italic;"># Интерфейс(ы) на котором нужно производить подсчет трафика</span>
        iface = rl0
        iface = rl1
        iface = dc0
    <span style="color: #000000; font-weight: bold;">&lt;/</span>Module<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Модуль захвата трафика &quot;mod_cap_nf.so&quot;</span>
    <span style="color: #666666; font-style: italic;"># Принимает информацию о трафике по протоколу NetFlow</span>
    <span style="color: #666666; font-style: italic;"># Второй параметер - это имя модуля без mod_ в начале и .so в конце</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>Module cap_nf<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #666666; font-style: italic;"># TCPPort - порт для TCP-соединений</span>
        TCPPort = <span style="color: #000000;">42111</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># UDPPort - порт для UDP-соединений</span>
        UDPPort = <span style="color: #000000;">42111</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Могут иметь совпадающие значения.</span>
        <span style="color: #666666; font-style: italic;"># Если параметр не указан - соответствующий порт не &quot;прослушивается&quot;.</span>
    <span style="color: #000000; font-weight: bold;">&lt;/</span>Module<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Настройки модуля пингующего пользователей &quot;mod_ping.so&quot;</span>
    <span style="color: #666666; font-style: italic;"># Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>Module <span style="color: #c20cb9; font-weight: bold;">ping</span><span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Время, в секундах, между пингами одного и того же пользователя</span>
        <span style="color: #666666; font-style: italic;"># Значения: 10...3600</span>
        PingDelay = <span style="color: #000000;">15</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">&lt;/</span>Module<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#    # Настройки модуля для удаленного выполнения скриптов OnCOnnect и</span>
<span style="color: #666666; font-style: italic;">#    # OnDisconnect &quot;mod_remote_script.so&quot;</span>
<span style="color: #666666; font-style: italic;">#    # Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
<span style="color: #666666; font-style: italic;">#    &lt;Module remote_script&gt;</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#        # Время, в секундах, между посылками подтверждений, того, что пользователь</span>
<span style="color: #666666; font-style: italic;">#        # всё еще онлайн</span>
<span style="color: #666666; font-style: italic;">#        # Значения: 10...600</span>
<span style="color: #666666; font-style: italic;">#        SendPeriod = 15</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#        # Соответствие подсетей, в которой находится пользователь и</span>
<span style="color: #666666; font-style: italic;">#        # соответствующего роутера. Первая часть строки - подслеть, заданная</span>
<span style="color: #666666; font-style: italic;">#        # как IP-адрес и маска, через пробел - IP-адрес роутера на котором</span>
<span style="color: #666666; font-style: italic;">#        # должны выполняться скрипты</span>
<span style="color: #666666; font-style: italic;">#        # Например эта запись &quot;192.168.1.0/24 192.168.1.1&quot; означает, что для</span>
<span style="color: #666666; font-style: italic;">#        # всех пользователей из подсети 192.168.1.0/24, скрипты будут</span>
<span style="color: #666666; font-style: italic;">#        # выполняться на роутере с адресом 192.168.1.1</span>
<span style="color: #666666; font-style: italic;">#        # Subnet0...Subnet100</span>
<span style="color: #666666; font-style: italic;">#        Subnet0 = 192.168.1.0/24 192.168.1.7</span>
<span style="color: #666666; font-style: italic;">#        Subnet1 = 192.168.2.0/24 192.168.2.5</span>
<span style="color: #666666; font-style: italic;">#        Subnet2 = 192.168.3.0/24 192.168.2.5</span>
<span style="color: #666666; font-style: italic;">#        Subnet3 = 192.168.4.0/24 192.168.2.5</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#        # Пароль для шифрования пакетов между stg-сервером и сервером,</span>
<span style="color: #666666; font-style: italic;">#        # выполняющим скрипты</span>
<span style="color: #666666; font-style: italic;">#        Password = 123456</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#        # Этот параметр определяет какие параметры пользователя передаются</span>
<span style="color: #666666; font-style: italic;">#        # на удаленный сервер</span>
<span style="color: #666666; font-style: italic;">#        # Cash, FreeMb, Passive, Disabled, AlwaysOnline, TariffName, NextTariff, Address,</span>
<span style="color: #666666; font-style: italic;">#        # Note, Group, Email, RealName, Credit, EnabledDirs, Userdata0...Userdata9</span>
<span style="color: #666666; font-style: italic;">#        UserParams=Cash Tariff EnabledDirs</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#        # Порт по которому сервер отсылает сообщения на роутер</span>
<span style="color: #666666; font-style: italic;">#        # Значения: 1...65535</span>
<span style="color: #666666; font-style: italic;">#        Port = 9999</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    &lt;/Module&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#    &lt;Module radius&gt;</span>
<span style="color: #666666; font-style: italic;">#        Password = 123456</span>
<span style="color: #666666; font-style: italic;">#        ServerIP = 127.0.0.1</span>
<span style="color: #666666; font-style: italic;">#        Port = 6666</span>
<span style="color: #666666; font-style: italic;">#        AuthServices = Login-User</span>
<span style="color: #666666; font-style: italic;">#        AcctServices = Framed-User</span>
<span style="color: #666666; font-style: italic;">#    &lt;/Module&gt;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;/</span>Modules<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #666666; font-style: italic;">################################################################################</span></pre></div></div>

<p>Скрипты OnConnect, OnDisconnect и другие обрабатываются при наступлении соответствующего события. Например, при подключении пользователя ему должен открываться доступ к интернету. Соответственно, при отключении пользователя &#8220;окно&#8221; должно закрываться.<br />
Вот пример моих скриптов:<br />
<strong>OnConnect</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Login</span>
<span style="color: #007800;">LOGIN</span>=$<span style="color: #000000;">1</span>
<span style="color: #666666; font-style: italic;">#user IP</span>
<span style="color: #007800;">IP</span>=$<span style="color: #000000;">2</span>
<span style="color: #666666; font-style: italic;">#cash</span>
<span style="color: #007800;">CASH</span>=$<span style="color: #000000;">3</span>
<span style="color: #666666; font-style: italic;">#user ID</span>
<span style="color: #007800;">ID</span>=$<span style="color: #000000;">4</span>
<span style="color: #666666; font-style: italic;">#Selected dirs to connect</span>
<span style="color: #007800;">DIRS</span>=$<span style="color: #000000;">5</span>
<span style="color: #007800;">fw</span>=<span style="color: #ff0000;">&quot;/sbin/ipfw&quot;</span>
<span style="color: #800000;">${fw}</span> table <span style="color: #000000;">1</span> add <span style="color: #007800;">$IP</span></pre></div></div>

<p>При соединении IP пользователя добавляется в таблицу фаервола, и ему открывается доступ в инет. </p>
<p><strong>OnDisconnect</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Login</span>
<span style="color: #007800;">LOGIN</span>=$<span style="color: #000000;">1</span>
<span style="color: #666666; font-style: italic;">#user IP</span>
<span style="color: #007800;">IP</span>=$<span style="color: #000000;">2</span>
<span style="color: #666666; font-style: italic;">#cash</span>
<span style="color: #007800;">CASH</span>=$<span style="color: #000000;">3</span>
<span style="color: #666666; font-style: italic;">#user ID</span>
<span style="color: #007800;">ID</span>=$<span style="color: #000000;">4</span>
<span style="color: #666666; font-style: italic;">#Selected dirs to disconnect</span>
<span style="color: #007800;">DIRS</span>=$<span style="color: #000000;">4</span>
<span style="color: #007800;">fw</span>=<span style="color: #ff0000;">&quot;/sbin/ipfw&quot;</span>
<span style="color: #800000;">${fw}</span> table <span style="color: #000000;">1</span> del <span style="color: #007800;">$IP</span></pre></div></div>

<p>При отключении ип пользователя удаляется из таблицы, доступ закрывается.</p>
<p>Остальная настройка подробно описана в мануале, ничего сложного там нет. Трафик считается, деньги исправно списываются.</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2009/10/poschitaem-vse-stargazer-kak-billing-dlya-nebolshoj-lokalki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
