Білінг популярний, завдяки простій установки і настройки. А також великим плюсом білінгу є його відкритість і безкоштовність.
Під обліковим записом "root" виконаємо всі що тут написано.
# Rpm -i stargazer-2.405.9.8.centos.i386.rpm
Якщо ставите на CentOS 6 x32, встановіть спочатку бібліотеку compat-expat:
# Yum install compat-expat1.i686
Основні конфігураційні файли зберігаються в папці / etc / stargazer
В папці / var / stargazer зберігається база MySQL і логи.
Після установки в папці / etc / stargazer / з'явиться 9 файлів:
Включимо логирование шляхом раскоментірованія рядка п'яти файлів. Після цих маніпуляції будуть писатися логи в папку / var / stargazer /
Видалимо знак "#" де стоїть команда "echo". Тим самим раскоментіровав рядок.
# Cd / etc / stargazer
Відкриємо перший файл OnChange:
# Nano OnChange
У ньому бачимо рядок "#echo"
Приберемо знак "#"
Натискаємо комбінацію клавишь CTRL + O, Enter, а потім CTRL + X
Після чого виходить віконце з ім'ям файлу, де ми натискаємо Enter.
Такі дії повторюємо з іншими файлами:
# Nano OnConnect -> видаляємо знак # -> CTRL + O, Enter, CTRL + X
# Nano OnDisconnect -> видаляємо знак # -> CTRL + O, Enter, CTRL + X
# Nano OnUserAdd -> видаляємо знак # -> CTRL + O, Enter, CTRL + X
# Nano OnUserDel -> видаляємо знак # -> CTRL + O, Enter, CTRL + X
Створимо правила IPTABLES (фаєрвол) в папці / etc / sysconfig
І вставимо всередину наступний текст (правила):
Зберігаємо файл / etc / sysconfig / firewall натиснувши комбінацію CTRL + S
Даємо права на запуск:
# Chmod 750 / etc / sysconfig / firewall
І відразу ж перевіряємо як він працює:
# / Etc / sysconfig / firewall
Після виконання скрипта, помилок не повинно бути.
Дані правила фаєрволла після перезавантаження комп'ютера пропадуть. Вся справа в тому, що їх треба вставити в автозавантаження.
Це робиться в такий спосіб:
Кінець файл rc.local додається рядок з шляхом до наших правил:
/ Etc / sysconfig / firewall
Залишилося дописати правила включення і відключення доступу комп'ютерів в Інтернет.
Відкриємо файл OnConnect:
# Nano / etc / stargazer / OnConnect
І додамо в кінець файлу рядки рядки:
# Add iptables rules
/ Sbin / iptables -t filter -A FORWARD -s $ IP -j ACCEPT
/ Sbin / iptables -t filter -A FORWARD -d $ IP -j ACCEPT
Зберігаємо файл - CTRL + O, Enter, CTRL + X
Також змінимо файл / etc / stargazer / OnDisconnect
# Nano / etc / stargazer / OnDisconnect
Додамо наступні рядки в кінець файлу:
# Delete iptables rules
/ Sbin / iptables -t filter -D FORWARD -p all -s $ IP -j ACCEPT
while [$? -eq 0]
do
/ Sbin / iptables -t filter -D FORWARD -p all -s $ IP -j ACCEPT
done
/ Sbin / iptables -t filter -D FORWARD -p all -d $ IP -j ACCEPT
while [$? -eq 0]
do
/ Sbin / iptables -t filter -D FORWARD -p all -d $ IP -j ACCEPT
done
Зберігаємо файл - CTRL + O, Enter, CTRL + X
Тепер включимо автозагрузку Stargazer:
# Chkconfig stargazer on
І запустимо демон білінгу:
На цьому установка і настройка Stargazer завершена!
Налаштування кешируючого DNS сервера
В консолі вводимо:
Створюємо файли зони:
Встановимо пакет Bind, який дозволить додати функцію кешуючого DNS сервера на наш шлюз:
# Yum install bind -y
Поставимо його в автозавантаження:
# Chkconfig named on
Налаштуємо його, відкриємо файл /etc/named.conf і змінимо вміст:
# Додаємо рядок і вказуємо DNS провайдера
# Вказуємо кому дозволено брати DNS запити
Запускаємо службу named:
# Service named start
Без настройки самого Stargazer не обійтися, так як за замовчуванням білінг показує Інтернет трафік в графі Локального трафіку. Треба це виправити.
Відкриваємо /etc/stargazer/stargazer.conf і відповідно до файлом /etc/stargazer/rules.cfg міняємо вміст stargazer.conf:
# Ім'я лог-файлу куди пишуться події
LogFile = /var/log/stargazer.log
# Файл в якому визначаються правила підрахунку трафіку
Rules = / etc / stargazer / rules
# Час через яке пишеться d БД детальна статистика користувача
# Значення: 1, 1/2, 1/4, 1/6.
# 1 - раз в чаc, 1/2 - раз на пів години, 1/4 - раз в 15 хв, 1/6 - раз в 10 хв
DetailStatWritePeriod = 1/6
# Періодичність записи записи в БД інформації про статистику користувача (хвилини)
# При великій кількості користувачів цю величину варто збільшити, тому що
# Запис в БД може займати тривалий час.
# Значення: 1. 1440 (хвилини)
StatWritePeriod = 10
# День зняття абонплати
# Значення: 0. 31. 0 - Останній день місяця
DayFee = 1
# Абонплата знімається в останній (yes) або перший (no) день облікового періоду.
# Це впливає на те, як буде знята абонплата (АП) при переході на новий тариф.
# Якщо у користувача був тариф A з АП = 100 і він хоче перейти на тариф B з АП = 200,
# То при переході на новий тариф з рахунку користувача зніметься 100, якщо
# DayFeeIsLastDay = yes і 200, якщо DayFeeIsLastDay = no
DayFeeIsLastDay = yes
# День скидання даних про трафік за місяць і день переходу користувачів на нові тарифи
# Значення: 0. 31. 0 - Останній день місяця
DayResetTraff = 1
# "Розмазати" зняття абонплати. Зняття АП не раз на місяць, а кожен
# День 1/30 або 1/31 частини АП
# Значення: yes, no
SpreadFee = no
# Дана опція визначає чи може користувач отримати доступ в інтерент
# Якщо у нього на рахунку немає грошей, але залишився передплачений трафік
# Значення: yes, no
FreeMbAllowInet = no
# Ця опція визначає що буде писатися в вартість трафіку в detail_stat.
# Якщо у користувача ще є передплачений трафік і WriteFreeMbTraffCost = no,
# То в detail_stat вартість буде 0. Якщо у користувача вже немає
# Передплаченого трафіку і WriteFreeMbTraffCost = no, то в detail_stat
# Буде записана стоіость трафіку. При WriteFreeMbTraffCost = yes вартість
# Трафіку буде записана в будь-якому випадку.
WriteFreeMbTraffCost = no
# Необов'язковий параметр. Вказує знімати повну абонплату у користувача навіть
# Якщо він биз заморожений тільки частина облікового періоду.
# За замовчуванням встановлений в no
# FullFee = no
# Необов'язковий параметр вказує показувати на рахунку і дозволяти
# Використовувати користувачеві абонплату. За замовчуванням встановлений в yes
# ShowFeeInCash = yes
# Кількість запускаються процесів stg-exec.
# Ці процеси відповідають за виконання скриптів OnConnect, OnDisconnect.
# Кількість процесів означає скільки скриптів можуть виконуватися одночасно.
# Значення: 1. 1024
ExecutersNum = 1
# Message Key для stg-exec.
# Ідентифікатор черги повідомлень для виполнятеля скриптів.
# Його зміна може знадобиться якщо є необхідність запустити кілька
# Примірників stg. Якщо ви не розумієте, що це, не чіпайте цей параметр!
# Значення: 0. 2 ^ 32
# Значення за замовчуванням: 5555
# ExecMsgKey = 5555
# Шлях до директорії, в якій знаходяться модулі сервера
ModulesPath = / usr / lib / stg
# Визначає директорію, в якій будуть знаходиться файли "монітора"
# Роботи сервера. У цій директорії будуть створені порожні файли, час
# Модифікації яких буде змінюватися приблизно раз на хвилину. Якщо якийсь
# Компонент сервера зависне, файл (и) перестане оновлюючи, і з цього
# Ознакою можна визначити збій в роботі сервера і при потребі
# Перезапустити. Якщо параметр не зазначений або порожній, моніторинг проводиться
# не буде. Параметр не є обов'язковим, за замовчуванням порожній.
# MonitorDir = / var / stargazer / monitor
# Другий параметр - це ім'я модуля без mod_ на початку і .so в кінці
# Тобто повне ім'я модуля mod_store_files.so
# Робоча директорія сервера, тут містяться дані про тарифи, користувачів,
# Адміністраторів і т.д.
WorkDir = / var / stargazer
# Власник, група і права доступу на файли статистики (stat) користувача
ConfOwner = root
ConfGroup = root
ConfMode = 600
# Власник, група і права доступу на файли конфігурації (conf) користувача
StatOwner = root
StatGroup = root
StatMode = 640
# Власник, група і права доступу на лог-файли (log) користувача
UserLogOwner = root
UserLogGroup = root
UserLogMode = 640
# Час між посилками запиту користувачеві чи живий він
# І оновленням даних статистики (секунди)
# Значення: 5. 600
UserDelay = 15
# Цей параметр визначає що буде передаватися програмі InetAccess від сервера
# Як отстаток передплаченого трафіку
# Значення:
# FreeMb = 0 - кількість безкоштовних мегабайт в пресчете на ціну нульового напрямку
# FreeMb = 1 - кількість безкоштовних мегабайт в пресчете на ціну першого напряму
# FreeMb = 2 - кількість безкоштовних мегабайт в пресчете на ціну другого напрямку
# FreeMb = 3 - кількість безкоштовних мегабайт в пресчете на ціну третього напряму
#.
# FreeMb = 9 - кількість безкоштовних мегабайт в пресчете на ціну дев'ятого напрямки
# FreeMb = cash - кількість грошей на які користувач може безкоштовно качати
# FreeMb = none - нічого не передавати
FreeMb = cash
# Модулі можна використовувати кілька разів з різними параметрами
#
# Port = 7777
# UserDelay = 15
# UserTimeout = 65
# FreeMb = 0
#
# Настройки модуля конфігурації SgConfig "mod_conf_sg.so"
# Другий параметр - це ім'я модуля без mod_ на початку і .so в кінці
# Порт по якому сервер взаємодіє з конфігуратором
# Значення: 1. 65535
Port = 5555
# Модуль захоплення трафіку "mod_cap_ether.so"
# Другий параметер - це ім'я модуля без mod_ на початку і .so в кінці
# Без параметрів. Тільки ім'я модуля.
# Модуль без параметрів
# Настройки модуля пінг користувачів "mod_ping.so"
# Другий параметр - це ім'я модуля без mod_ на початку і .so в кінці
# Час, в секундах, між пінг одного і того ж користувача
# Значення: 10. 3600
PingDelay = 15
#
# Password = 123456
# ServerIP = 127.0.0.1
# Port = 6666
# AuthServices = Login-User
# AcctServices = Framed-User
#
Жирним наголосив на тому що я міняв. Тут ми змінили назви напрямків за якими ведеться облік трафіку.
Тепер для перевірки відкриємо файл / etc / stargazer / rules
ALL 10.168.50.0/24 DIR1
ALL 10.0.0.0/8 DIR2
ALL 0.0.0.0/0 DIR0
Це робиться через головне меню - Налаштування -> Налаштування.
Тепер підключимося до шлюзу.
При підключенні до сервера у вас запитають логін і пароль, які за умовчанням мають вигляд:
Налаштуємо тарифний план через головне меню "Правка -> Тарифні плани."
Тут правимо напрямок "Internet", вводимо ціну за мегабайт витрачений на цьому напрямку.
У на провайдер Intelsoft, який бере 1 рубль за скачав мегабайт. Червоної рамкою я помітив те що потрібно змінити. Вважати локальний трафік ми не будемо. Після всіх змін натисніть на кнопку "Зберегти"
Заведемо в системі першого користувача user1 і додамо йому на приводу не яку суму грошей :). У нашому випадку ми додали 100 рупій.
Після додавання користувача, натисніть кнопку Оновити
У InetAccess введіть логін і пароль щойно створеного користувача, і натисніть кнопку Підключитися:
Пароль: 123456 (або ваш пароль)
Повинен загорітися зелене індикатор сигналізує про те що доступ в Інтернет відкритий. Запустіть бразуер і введіть в ньому для перевірки:
Повинна з'явиться сторінка Google.
Якщо у вас щось не вийшло, значить треба все перевірити ще раз.