Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Задаем скорость

Проверяем тарифные планы , в каждом тарифном плане должны присутствовать настроенные "Интервалы"  и "Тариф трафика" с указанной скоростью для ТП.

Авторизация по SSH ключу

Для выполнения команд нужно создать SSH сертификат с пустым паролем и залить его на Mikrotik по ftp.

Перед созданием сертификата убедитесь что на Mikrotik'е включён сервис ftp, ssh.


Загружаем ключи и сертификаты :

Code Block
languagebash
# shell
MIKROTIK_USERNAME='логин_для_микротика'
MIKROTIK_IP='айпи_адрес_микротика'
/usr/abills/misc/certs_create.sh ssh abills_admin -UPLOAD_FTP ${MIKROTIK_USERNAME}@${MIKROTIK_IP}
# спросит пароль, загрузит ключи

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

Code Block
languagebash
[admin@mikrotik]> user add name=abills_admin group=write
[admin@mikrotik]> user ssh-keys import public-key-file=id_rsa.abills_admin.pub user=abills_admin

Проверяем с биллинг сервера правильно ли мы все сделали (в консоль должно вывести name: MikroTik) :

Code Block
languagebash
ssh -l abills_admin  -i /usr/abills/Certs/id_rsa.abills_admin ${MIKROTIK_IP} "/system identity print"


Самостоятельная активация сессии IPN абонентом

Добавить правила для перенаправления на клиентский кабинет для подключения к IPN :

Code Block
languagebash
/ip firewall nat add chain=dstnat action=dst-nat to-addresses=10.0.0.10 to-ports=80 protocol=tcp
 src-address=192.168.6.0/24 dst-address=0.0.0.0/0 dst-port=80


Инициализация и контроль правил шейпера

Code Block
languagebash
/usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1 NAS_IDS=1 

Параметры для скрипта :

КлючЗначение
NAT=1Поднять маскарадинг для всех адрес листов
SKIP_NAT_IPS=xxx.xxx.xxx.xxxНе маскарадить обращения к адресу
NAS_IDS=1Номер сервера доступа


Пример правила открытия доступа для модуля Ipn (тип сервера - mikrotik_dhcp)

Warning

Сертификат SSH (/usr/abills/Certs/id_rsa.abills_admin) должен быть доступен пользователю под которым работает веб сервер

abills/libexec/config.pl

Code Block
languagebash
$conf{IPN_FW_START_RULE}='SUDO=/usr/local/bin/sudo;
CMD="${SUDO} /usr/abills/libexec/linkupdown ipn up getif %LOGIN %IP %DEBUG > /dev/null 2>&1";
if [ "${NAS_TYPE}" = "mikrotik_dhcp" ]; then CMD="/usr/abills/libexec/linkupdown mikrotik up - %LOGIN %IP NAS_HOST=${NAS_MNG_IP_PORT}
NAS_MNG_USER=${NAS_MNG_USER}";
elif [ "${NAS_MNG_IP_PORT}" != "" ]; then CMD="/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.${NAS_MNG_USER}
${NAS_MNG_USER}@${NAS_MNG_IP_PORT} \"${CMD}\""; fi;
eval "${CMD}"';

$conf{IPN_FW_STOP_RULE}='SUDO=/usr/local/bin/sudo;
CMD="${SUDO} /usr/abills/libexec/linkupdown ipn down getif %LOGIN %IP %DEBUG > /dev/null 2>&1";
if [ "${NAS_TYPE}" = "mikrotik_dhcp" ]; then CMD="/usr/abills/libexec/linkupdown mikrotik down - %LOGIN %IP NAS_HOST=${NAS_MNG_IP_PORT}
NAS_MNG_USER=${NAS_MNG_USER}";
elif [ "${NAS_MNG_IP_PORT}" != "" ]; then CMD="/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.${NAS_MNG_USER}
${NAS_MNG_USER}@${NAS_MNG_IP_PORT} \"${CMD}\""; fi;
eval "${CMD}"';


Подсчет трафика

Необходимо установить и настроить пакет flow-tools по инструкции :  Установка flow-tools

Вносим в /etc/crontab

Code Block
languagebash
*/5 * * * * root /usr/abills/libexec/traffic2sql 2 flowdir=/usr/abills/var/log/ipn/


Настройка Mikrotik для подсчета трафика

Нам нужно настроить Микротик чтоб он слушал и отправлял flow пакеты на биллинг сервер для их последующей обработки с помощью колектора (flow-tools).

В консоли Микротика :

Code Block
languagebash
/ip traffic-flow set enabled=yes
/ip traffic-flow target add address=10.0.0.10:9996 version=5
/ip traffic-flow set interfaces=ether3 active-flow-timeout=30m inactive-flow-timeout=15s cache-entries=4k enabled=yes ;

в данном случае нам интересны 2 параметра :

ether3интерфейс на котором слушать
10.0.0.10адрес сервера обработки flow пакетов (Сервер биллинга)


Включение активных пользователей

Данная команда автоматически включает всех пользователей с положительным депозитом или правами получать сервис.

Активируются только те пользователи у которых прописан IP адрес сервиса Internet. Также обязательно на IPN серверах доступа

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

Code Block
languagebash
/usr/abills/libexec/periodic monthly MODULES=Ipn LOGON_ACTIVE_USERS

Параметры скрипта :

ПараметрЗначение
NAS_IDS=1,2Идентификаторы серверов доступа. По умолчанию система переинициализирует пользователей на всех серверах доступа с типом 'ipcad'
TP_ID=3,6Номера тарифных планов для активации. По умолчанию все
LOGIN=test,test3Логины пользователей. По умолчанию все
GID=1Группы пользователей
DEBUG=…

Дебаг режимы

1-4 Детализация процесса

5 - Отображать команды на выполнение

6 - Отображать команды но не выполнять

В конфиге abills/libexec/config.pl опция :

$conf{IPN_DHCP_ACTIVE}=1;Включать сервис для всех IP адресов прописанных в IP (DHCP) секции абонента. С начало включаются адреса Internet сервиса если они не равны 0.0.0.0, а потом адреса IP сервиса.


Контроль активных соединений

Контролем активных соединений и отключением абонентов с негативным депозитом занимается программа billd

Добавление нового пользователя

При добавлении нового пользователя на "Шаг 3" - "Internet+" , в   IPoE / DHCP Option 82 → Активация IPN   ставим галку и продолжаем регистрацию дальше как обычно.

Image Added