Monday, July 24th, 2017

Установка биллинга Abills на Ubuntu + сервер доступа на Mikrotik Router OS

Published on Март 30, 2009 by   ·   Комментариев нет

Установка биллинга Abills на Ubuntu 8.04 LTS Server + Mikrotik Router OS
в качестве сервера доступа

1. Установка Ubuntu 8.04 LTS Server

1.1. Базовая установка системы.

Установка операционной системы Ubuntu ничем не отличается от установки любой другой ОС.

     * Скачайте и запишите iso-образ Ubuntu 8.04 LTS Server c http://ubuntu.com">официального сайта.


     * Загрузите компьютер с привода CD-ROM.


     * После загрузки Вас попросят выбрать язык установки. После этого - раскладку клавиатуры.


     * Инсталлятор обнаружит Ваше аппаратное обеспечение и сконфигурирует сеть по DHCP. Если в
       Вашей сети нет DHSP-server, то можно сеть настроить вручную.


     * Затем инсталлятор спросит Вас об имени хоста и часовом поясе.


     * Далее вы можете сконфигурировать разделы на жестком диске.


     * Базовая установка системы закончена.


     * Теперь необходимо ввести пользователя и пароль, который будет назначен как пользователь sudo.


     * Так же можно установить несколько пакетов для работы сервера.

В процессе установки Вам может быть захочется изменить какие-либо параметры по умолчанию.
Для этого нажмите кнопку «Назад» и перед вами будет подробное меню установки.

Помощь в каждом разделе установки можно вызвать с помощью «F1».

1.2. Установка необходимых пакетов.

После установки базовой системы нам предложат установить пакеты. Что нам понадобится
обязательно:

     * LAMP (Linux/Apache/MySQL/PHP server), можно установить после установки базовой системы
     * FreeRadius
     * модули для Perl

1.2.1. Устанавливаем и настраиваем FreeRadius

Установка производится очень просто, путем запуска всего лишь одной команды:

   sudo apt-get install freeradius

Дальше идет настройка, что тоже не очень сложно.

Добавляем в файл /etc/freeradius/users.

             DEFAULT Auth-Type = Accept
                     Exec-Program-Wait = "/usr/abills/libexec/rauth.pl"

Все остальное комментируем.

Добавляем в файл /etc/freeradius/acct_users

             #Перед Exec-Program должен быть пробел
     #Если каждого аккаунтинг-запроса в памяти оставались зомби-процессы racct.pl, то
     замените в файле acct_users Exec-Program на Exec-Program-Wait
     DEFAULT Acct-Status-Type == Start
              Exec-Program = "/usr/abills/libexec/racct.pl"
     DEFAULT Acct-Status-Type == Alive
              Exec-Program = "/usr/abills/libexec/racct.pl"
     DEFAULT Acct-Status-Type == Stop
              Exec-Program = "/usr/abills/libexec/racct.pl"

Заменяем в файле /etc/freeradius/clients.conf. Было:

             client 127.0.0.1 {
                     secret          = testing123
                     shortname       = localhost

Стало:

             client localhost {
                secret = radsecret #Пароль для доступа к радиусу
                shortname = shortname

Добавляем так же наш NASMikrotik:

             client 172.16.0.1 {
                     secret = radsecret
                     shortname Mikrotik
                     nastype = other
             }

Так же я столкнулся с проблемой, когда не прописан локальный IP в качестве клиента, то
ничего не хочет работать:

             client 172.16.0.2 {
                     secret = radsecret
                     shortname Mikrotik
                     nastype = other
             }

Cоздаем функции для преавторизации и поставторизации. Добавляем в файл
/etc/freeradius/radiusd.conf

             modules {

             exec pre_auth {
                 wait = yes
                 program = "/usr/abills/libexec/rauth.pl pre_auth"
                 input_pairs = request
                 output_pairs = config
             }

             exec post_auth {
                 wait = yes
                 program = "/usr/abills/libexec/rauth.pl post_auth"
                 input_pairs = request
                 output_pairs = config
             }

Комментируем строки `mschap' и `eap' в разделе `authorize' в файле
/etc/freeradius/radiusd.conf, т.е. оставляем только это:

             authorize {
               pre_auth
               preprocess
               #mschap
               #eap
               suffix
               files
             }

Для оповещения о неавторизированных пользователях правим секцию post-auth в файле
/etc/freeradius/radiusd.conf
Было:

             #       Post-Auth-Type REJECT {
             #               insert-module-name-here
             #       }

Стало:

             Post-Auth-Type REJECT {
                              post_auth
                     }

Проверяем конфигурацию freeradius:

             sudo check-radiusd-config -level 345 radiusd on

Если все ок, то:

   Radius server configuration looks OK.

Добавляем словарь для Mikrotika в /etc/freeradius/dictionary.

$INCLUDE /usr/local/radius/share/freeradius/dictionary.mikrotik

1.2.2. Настраиваем MySQL

Создаем файлик pre_abills.sql с содержимым следующего вида:

             use mysql;
             INSERT INTO user (Host, User, Password) VALUES
             ('localhost','abills',password('sqlpassword'));
             INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
             Create_priv, Drop_priv, Index_priv, Alter_priv) VALUES ('localhost', `abills', `abills',
             `Y', `Y', `Y', `Y', `Y', `Y', `Y', `Y');
             CREATE DATABASE abills;

И выполняем следующую команду:

 mysql -u root -p < ./pre_abills.sql

У Вас спросят пароль для пользователя root, который Вы указали при установке LAMP сервера.
Дальше выполняем еще одну команду:

             mysqladmin flush-privileges

Тем самым мы создали базу данных abills и пользователя abills со всеми правами на данную
базу. Переходим к следующему этапу.

1.2.3. Настройка Apache

Меняем кодироку на cp1251 здесь /etc/apache2/conf.d/charset

    AddDefaultCharset cp1251

Добавляем поддержку mod_rewrite.

             sudo ln -s /etc/apache2/mods-available/rewrite.load
             /etc/apache2/mods-enabled/rewrite.load

Качаем последнюю стабильную версию Abills из CVS. При запросе пароля просто нажмите
«Enter»:

             cvs -d:pserver:anonymous@abills.cvs.sourceforge.net:/cvsroot/abills login
             cvs -z3 -d:pserver:anonymous@abills.cvs.sourceforge.net:/cvsroot/abills co -P abills

Копируем скачанную папку `abills' в /usr:

 sudo cp -R ./abills /usr/

Подключаем конфиг в Апач:

 ln -s /usr/abills/misc/abills_httpd.conf /etc/apache2/sites-enabled/abills_httpd.conf

Теперь, если Вы не хотите вешать биллинг на нестандартный порт, то правим файл
/etc/apache2/sites-enabled/abills_httpd.conf. Было:

             Listen 9443
             <VirtualHost _default_:9443>

Стало:

             #Listen 9443
             <VirtualHost *:80>

Так же правим файл /etc/apache2/sites-enabled/000-default.conf. Было:

             <VirtualHost _default_:80>

Стало:

 <VirtualHost *:80>

Перезапускаем Apache:

 /etc/init.d/apache2 restart

1.2.4. Установка модулей для Perl

Тут все ставится одной коммандой:

sudo apt-get install libdbi-perl libdbd-mysql-perl libdigest-md4-perl libdigest-sha1-perl libnet-perl libcrypt-des-perl

2. Настройка Abills

Abills у нас уже скачан, осталось только его настроить.
В папке /usr/abills/libexec/ копируем файл config.pl.default на config.pl.

 сp /usr/abills/libexec/config.pl.default /usr/abills/libexec/config.pl

Это основной конфиг биллинга. Правим там пару строк буквально:

             $conf{dbhost}=&#039;localhost&#039;;
             $conf{dbname}=&#039;abills&#039;;
             $conf{dbuser}=&#039;abills&#039;;
             $conf{dbpasswd}=&#039;sqlpassword&#039;;
             $conf{dbtype}=&#039;mysql&#039;;
             $conf{default_language}=&#039;russian&#039;;
             $conf{periodic_check}=&#039;yes&#039;;
             $conf{secretkey}="vlnlhjvycjgfxtexkhgv8ti76r865duyvouvo76fkhdc6rxckygvljhbluyvkuc";

Далее заливаем дамп пустой базы:

        mysql -u root -p abills < ./abills.sql

Вставляем в /etc/crontab:

             */5  *  *  *  *   root    /usr/abills/libexec/billd -all
             1    0  *  *  *   root    /usr/abills/libexec/periodic daily
             1    0  1  *  *   root    /usr/abills/libexec/periodic monthly
             #ежедневное автоматическое резервное копирование базы данных
             1    3  *  *  *   root     /usr/abills/libexec/periodic backup

Создаем недостающие каталоги:

             mkdir /usr/abills/backup
             chown www-data /usr/abills/backup
             touch /usr/abills/var/log/abills.log
             chown www-data:www-data /usr/abills/var/log/abills.log

Устанавливаем права на чтение и запись WEB-cервером для файлов WEB-интерфейса

  chown -Rf www-data:www-data /usr/abills/cgi-bin

Проверка: Открываем веб интерфейс — http://your.host/abills/admin/»>http://your.host/abills/admin/ Логин администратора
по умолчанию — abills, пароль — abills. От имени этого администратора будут выполняться
различные операции в автоматическом режиме, например снятие абонплаты в начале месяца,
поэтому удалять его не нужно, нужно только изменить пароль на более безопасный.

Для реальных администраторов необходимо завести свои аккаунты и назначить им необходимые
права: Система > Администраторы.

Теперь осталось сконфигурировать NAS сервер в биллинге. Заходим в админке «Система — Сервер
доступа».

IP 172.16.0.1
Название произвольно, NASMikrotik
Radius NAS-Identifier
Опис
Тип mikrotik:Mikrotik (http://www.mikrotik.com»>http://www.mikrotik.com)
Авторизация SQL
External accounting
Alive (sec.) 60
Отключено
IP:Port 172.16.0.1
Пользователь abills
Пароль
Radius Parameters Acct-Interim-Interval=60

Нажимаем «Добавить» и возле нового сервера доступа нажимаем «IP Pools». Дальше просто
вводим первый IP из пула и количество IP адресов в пуле.

Осталось добавить тарифы и пользователей. Это хорошо описано в официальной документации,
так что повторяться не имеет смысла.

3. Настройка Mikrotik Router OS

Сразу оговорка, версия Mikrotik должна быть НЕ ниже 2.9.27.

Детально настройку я рассматривать не буду, т.к. это тема для отдельной статьи (не
исключено, что она будет), а рассмотрим только то, что указано в официальной документации с
некоторыми изменениями и дополнениями.

Итак, выполняем следующие команды последовательно:

             /radius add address=172.16.0.2 secret=radsecret service=ppp
             /radius incoming set accept=yes
             /ppp aaa set accounting=yes use-radius=yes interim-update=60
             /ppp profile set default local-address=192.168.10.1
             /interface pppoe-server server add interface=ether1 service-name=pppoe-in
             authentication=chap
             /interface pptp-server server set enabled=yes authentication=chap

Теперь создаем сертификат для удаленного управления Mikrotik'ом. Сертификат должен быть с
пустым паролем.

    # /usr/abills/misc/sslcerts.sh ssh admin_ssh

Вновь сгенерированный сертификат лежит в каталоге /usr/abills/Certs/. По FTP заливаем
публичный (.pub) сертификат на Mikrotik и создаем НОВОГО пользователя. После чего
подключаем сертификат к этому пользователю.

Не используйте учетную запись admin!!!

             [admin@mikrotik]> user add name=abills group=write
             [admin@mikrotik]> user ssh-keys import file=id_dsa.abills.pub
             user: abills

Дальше проверяем действие сертификата:

    ssh -l admin_ssh -i /usr/abills/Certs/id_dsa.admin_ssh 172.16.0.1 "/system identity print"

Mikrotik должен нам ответить «name: MikroTik». Если все так и есть, то все у нас получилось
и можно пробовать работать.

Теперь, если необходимо, то можно настроить шейпер с учетом разных классов трафика. Для
этого в каталог /usr/abills/libexec/ext_acct ложим скрипт mikrotik_mshaper.sh следующего
содержания:

             #!/bin/sh
             # Mikrotik multi traffic class shaper

             DEBUG=0;
             ACT_STATUS_TYPE=$1;
             NAS_IP_ADDRESS=$2;
             NAS_PORT=$3;
             NAS_TYPE=$4;
             USER_NAME=$5;
             FRAMED_IP_ADDRESS=$6;

             if [ w${ACT_STATUS_TYPE} = wStart ] ; then
               /usr/abills/libexec/linkupdown mikrotik up INTERFACE ${USER_NAME} ${FRAMED_IP_ADDRESS}
             NAS_HOST=NAS_IP_ADDRESS NAS_ADMIN=abills PROTO=pppoe
             else if [ w${ACT_STATUS_TYPE} = wStop ] ; then
               /usr/abills/libexec/linkupdown mikrotik down INTERFACE ${USER_NAME}
             ${FRAMED_IP_ADDRESS} NAS_HOST=NAS_IP_ADDRESS NAS_ADMIN=abills PROTO=pppoe
                 else
                   echo "Not enought arguments";
               fi;
             fi;

Естесственно, необходимо назначить нужные права:

  chmod 755 /usr/abills/libexec/ext_acct/mikrotik_mshaper.sh
zp8497586rq










































Смотрите также:

Readers Comments (Комментариев нет)

Comments are closed.

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]