---
title: "Abills+mikrotik"
description: "Установка биллинга Abills на Ubuntu 8.04 LTS Server + Mikrotik Router OS в качестве сервера доступа ..."
author: "SomeSmile"
published: "2010-06-13T03:04:20+00:00"
modified: "2010-06-13T03:04:20+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/abills-mikrotik-52535"
markdown_url: "https://yvision.kz/post/abills-mikrotik-52535/markdown"
site_name: "Yvision.kz"
---

# Abills+mikrotik

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

Установка биллинга 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

Стало: #Listen 9443

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

Стало:

Перезапускаем 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}='localhost'; $conf{dbname}='abills'; $conf{dbuser}='abills'; $conf{dbpasswd}='sqlpassword'; $conf{dbtype}='mysql'; $conf{default_language}='russian'; $conf{periodic_check}='yes'; $conf{secretkey}="vlnlhjvycjgfxtexkhgv8ti76r865duyvouvo76fkhdc6rxckygvljhbluyvkuc";

$conf{secretkey}, и параметр в abills.sql должен быть одинаковый!!!

Далее заливаем дамп пустой базы: mysql -u root -p abills http://your.host/abills/admin/ Логин администратора по умолчанию - abills, пароль - abills. От имени этого администратора будут выполняться различные операции в автоматическом режиме, например снятие абонплаты в начале месяца, поэтому удалять его не нужно, нужно только изменить пароль на более безопасный.

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

Теперь осталось сконфигурировать NAS сервер в биллинге. Заходим в админке "Система - Сервер доступа". Название должно совпадать с shortname в clients.conf!!! 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

---

Source: [https://yvision.kz/post/abills-mikrotik-52535](https://yvision.kz/post/abills-mikrotik-52535)