Это старая версия документа.


Mikrotik

http://www.mikrotik.com
Version: >=2.9.13

Настройка на сервере биллинга

FreeRadius

radius/etc/raddb/dictionary

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

В /usr/local/share/freeradius/dictionary.mikrotik добавляем такой атрибут

ATTRIBUTE       Mikrotik-Address-List                   19   string
ATTRIBUTE       Mikrotik-Total-Limit                    17   integer
ATTRIBUTE       Mikrotik-Total-Limit-Gigawords          18   integer

Добавляем сервер доступа в RADIUS

raddb/clients.conf

client xx.xx.xx.xx {
  secret     = radsecret
} 

После внесения всех изменений перезагрузите радиус

Управление через ssh

Удалённое выполнение команд на Mikrotik через ssh, используется для управления правилами шейпера и фаервола. Для выполнения команд нужно создать ssh сертификат с пустым паролем и залить его на микротик по ftp. Перед созданием сертификата убедитесь включён ли на микротике ftp.

Создание сертификата
Сделайте сертификат пустым паролем(для дальнейшего управления микротиком)

# /usr/abills/misc/certs_create.sh ssh abills_admin -UPLOAD_FTP admin@10.20.1.1

Не используйте пользователя 'admin'. Для удалённого доступа создайте отдельного пользователя.
Создание пользователя

[admin@mikrotik]> user add name=abills_admin group=write

Подключите SSH ключ пользователю

[admin@mikrotik]> user ssh-keys import public-key-file=id_dsa.abills_admin.pub user=abills_admin

Проверяем:

% ssh -l abills_admin  -i /usr/abills/Certs/id_dsa.abills_admin  10.20.1.1 "/system identity print"

если все правильно сделано результат

name: "MikroTik"

Mikrotik PPPoE/PPTP

Radius

Настройка через консоль

тут вводим адрес Radius сервера

/radius add address=192.168.1.50 secret=radsecret service=ppp
/radius incoming set accept=yes port=1700 

Настройка через WinBox

авторизация на RADIUS сервере
radius

Открытие RADIUS PoD для сброса с линии

radius

PPP

Через консоль

/ppp aaa set accounting=yes use-radius=yes interim-update=300
/ppp profile set default local-address=192.168.101.10

Через WinBox

ppp_acounting ppp_profile

PPPoE

Через консоль

/interface pppoe-server server add interface=ether1 \
\... service-name=pppoe-in authentication=chap

Через WinBox

pppoe

PPTP

Через консоль

/interface pptp-server server set enabled=yes authentication=chap

Через WinBox

pptp

Mikrotik IPN

Настройка сервера доступа

/ System configuration/ NAS/

Type ipcad

/ System configuration/ NAS/ IP POOLs/ Нужно внести пул адресов, с которых можно авторизоваться. Тарифные планы

Модуль использует тарифную логику модуля Dv (Internet). Заводим классы трафика / System configuration/ Internet/ Traffic Classes. Глобальный класс трафика должен иметь номер 0. Заводим тарифные планы в / System configuration/ Internet/ Tarif plans/ . В тарифном плане в Intervals обязательно указывать сети в противном случае модуль не будет вести подсчёт трафика.

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

Через консоль

/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 ;

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

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

/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

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

# /usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1 NAS_IDS=1 

Дополнительные параметры

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

config.pl

$conf{IPN_FW_START_RULE}="/usr/bin/sudo /usr/abills/libexec/linkupdown mikrotik up - %LOGIN %IP NAS_HOST=10.0.0.1 NAS_ADMIN=abills_admin". ' > /dev/null 2>&1';
$conf{IPN_FW_STOP_RULE}="/usr/bin/sudo /usr/abills/libexec/linkupdown mikrotik down - %LOGIN %IP NAS_HOST=10.0.0.1 NAS_ADMIN=abills_admin". ' > /dev/null 2>&1';

Mikrotik DHCP

Для управления данным функционалом нужен модуль Freeradius DHCP.
При данной схеме работы DHCP запросы клиентов приходят на Mikrotik DHCP, затем Mikrotik их трансформирует в radius запрос и отправляет на RADIUS сервер где происходит авторизация пакета и отправка результата на Mikrotik. После получения результата от RADIUS сервера Mikrotik формирует пакет DHCP для клиента.

Возможности

  • Динамическая и статическая раздача IP адресов
  • Option 82 (Удобная система интеграции с любым нестандартным оборудованием)
  • Нарезка скорости абонентам
  • Гостевой доступ

Настройка
config.pl

$AUTH{mikrotik_dhcp}='Mac_auth';

Так как DNS, маска сети и шлюз прописываются на Mikrotik и их нельзя изменить через radius вы можете для гостевых сетей только отправлять параметры длительности для ип адреса и как гостевые адреса использовать часть сети dhcp.
Пример параметров для гостевого пула

$conf{DHCPHOSTS_GUEST_POOLS}='0:16:Session-Timeout=300';



Если все правильно настроено на RADIUS сервер приходят следующие пары.

NAS-Port-Type = Ethernet
NAS-Port = 2205156610
Called-Station-Id = "DHCP-server"
User-Name = "00:1B:FC:3A:B7:AA"
User-Password = ""
Agent-Remote-Id = 0x00067072cf5c8f82
Agent-Circuit-Id = 0x0004000b0101
NAS-Identifier = "MikroTik"
NAS-IP-Address = 10.10.0.1

Если используете авторизацию по порту и маку коммутатора в запросе обязательно должны быть параметры Option 82

Agent-Remote-Id = 0x00067072cf5c8f82
Agent-Circuit-Id = 0x0004000b0101

Ответ RADIUS для микротика (Access-Accept/Access-Deny)

Sending Access-Accept of id 19 to 193.106.59.230 port 55118
        Mikrotik-Address-List = "CLIENTS_12"
        Session-Timeout = 300
        Framed-IP-Address = 10.10.1.200

Управление шейпером

Инициализация и контроль правил шейпера. При использовании разных скоростей в разные промежутки времени нужно через крон вызывать данную команду на границе интервалов. Данную команду нужно делать для любого типа подключения PPPoE, PPTP или IPoE.

Программа инициализации правил шейпера и загрузки их на mikrotik сервера

# /usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1

Параметры

NAS_IDS='1,2' Список серверов доступа. По умолчанию скорость просматривается на всех
RECONFIGURE=1 переинициализировать правила шейпера
NAT=1 Включение ната
SHOW_SPEED=1 Показать абонентов для которых применён шейпер id, address_list, ip
DEBUG=1..7 Режимы отладки.
1 - Отображать базовые сообщения программы и писать лог команд для Mikrotik. Лог записывается в файл /usr/abills/var/log/mikrotik_cmd.log
2 - Отображать команды для Mikrotik на экран.
5 - Отображать но не выполнять команды
7 - Отображать SQL запросы к базе во время выполнения программы

После инициализации правил шейпера при подключении абонента на Mikrotik передаётся только IP адрес абонента с указанием в какой список его внести.
При использовании PPoE, PPTP адрес передаётся системой через RADIUS пары:

Mikrotik-Address-List=CLIENTS_[TP_ID]

При использовании IPN используется стандарnный IPN механизм $conf{IPN_START_RULES} $conf{IPN_STOP_RULES}

Проверка правил шейпера:

Если всё настроено правильно и команда «builld RECONFIGURE=1» сделала свое дело ,- вы должны получить приблизительно такие ответы по соответствующих запросах в консоли MikroTik:

/ip firewall mangle print 
 0   chain=forward action=mark-packet new-packet-mark=ALLOW_TRAFFIC_CLASS_2_out passthrough=yes
   dst-address=0.0.0.0/0 src-address-list=CLIENTS_2
1   chain=forward action=mark-packet new-packet-mark=ALLOW_TRAFFIC_CLASS_2_in passthrough=yes
   src-address=0.0.0.0/0 dst-address-list=CLIENTS_2

/queue tree print 
0   name="TP_2_in_global" parent=global-out packet-mark=ALLOW_TRAFFIC_CLASS_2_in limit-at=0
   queue=TP_2_in_global_speed priority=5 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s
1   name="TP_2_out_global" parent=global-out packet-mark=ALLOW_TRAFFIC_CLASS_2_out limit-at=0
   queue=TP_2_out_global_speed priority=5 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 

ABillS

/ System configuration/ NAS/

IP IP Адрес Mikrotik
Type mikrotik - для pppoe, pptp
mikrotik_dhcp - для DHCP
Alive Время обновления статистики. Рекомендуемое значение 300
:Manage:
:Radius NAS Identifier используеться только в случае нескольких радиус клиентов на одном IP
IP:PORT: IP адрес и порт для контроля соединения. Например, для отключения пользователя с веб-интерфейса. MIKROTIC_IP:CoA_PORT:SSH_PORT

MIKROTIC_IP - адрес микротик
CoA_PORT - порт дял сброса пользователя с линии (По умолчанию 1700)
SSH_PORT - порт для управления по ssh (По умолчанию 22)
пример: 10.11.11.1:1700:22
User: abills_admin
Имя пользователя для запуска удалённых команд через SSH.
После заведения пользователя заведите SSH сертификат в системе.
Password: radsecret - Пароль PoD/CoA для сброса пользователя с линии.

Перенаправление в клиентский кабинет

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

Настройка HotSpot на Mikrotik

Инструкция по настройке hotspot на Mikrtoik RouterBoard через интерфейс WinBox: Рекомендуем обнулить систему RouterOS перед настройкой ,- в терминале делаем :

>system reset-configuration 
  1. Создаем новый bridge : bridge → «+» → «OK»
  2. Добавляем туда wlan порт : ports → «+» → interface: wlan1
  3. Добавляем DHCP клиент : IP → DHCP Client → «+» → interface: bridge1
  4. Добавляем новый пул адресов для хотспота : IP → Adresses → «+» → interface: bridge1 , adress: свободный пул адресов , например 192.168.111.0/24
  5. Переключаем wifi модуль в режим bridge : Wireless → intefaces → wlan1 → Wireless - mode: bridge , band: 2GHz-B/G , protocol 802.11 , enable , OK
  6. Настраиваем хотспот : IP → Hotspot → Hotspot setup → Hotspot interface: bridge1 → Local Adress of Network:(пул который мы создали) → Adress pool of network:(оставляем как есть) → SSL-sertificate: none → SMTP server: 0.0.0.0 → DNS servers :(8.8.8.8 ,-гугловский DNS , можно свой) → DNS name: можно оставить пустым → готово

если нам нужно чтобы хотспот использовал для авторизации внешний Radius сервер , - в терминале пишем :

> ip hotspot profile set hsprof1 use-radius=yes
> radius add service=hotspot address=y.y.y.y secret=123456

где y.y.y.y - адрес радиуса и secret - пароль к радиусу.

Для того чтобы hotspot работал с Abills ,- нужно cоздать в биллинге сервер доступа : Настройки → Сервер доступа → «+» → IP:(IP Mikrotik) ,тип:MikroTik

ABillS: настройка Mikrotik+HotSpot+ABillS

Автонастройщик mikrotik_configure

Программа авто настройки mikrotik дает возможность настроить микротик удалённо, а также после настройки сохранить конфигурацию для последующей заливки в однотипные сервера (доступна в коммерческой версии системы)

Дополнительно

  • Выставление скорости с возможностью быстрого серфинга

Для это используем RADIUS параметр Mikrotik-Rate-Limit. Для примера скорость 1 мегабит. Данный параметр стоит занести в радиус пары тарифного плана (/ Система/ Internet/ Тарифные планы/ Добавить/) :

Mikrotik-Rate-Limit=1M 1536k 768k 8 8 1M
rx-rate – 1 Mbps
rx-burst-rate – 1536 kbps
rx-burst-threshold – 768 kbps
rx-burst-time – 8 секунд
priority – 8
rx-rate-min – 1 Mbps

Т.е. я ограничиваю полосу пропускания канала в 1 мегабит (как гарантированную, так и максимальную), но если пользователь за 8 секунд не превышает 768 кбит, то ему может быть отдано 1.5 мегабита.

При использовании данного скорость интервалов не будет учитиватсья и соответственно нельзя будет построить скоростя с учётом времени суток (Например день/ночь)

Проверка синхронности сессий микротика с билингом

Программа проверяет активные сессии на микротике и сравнивает их с билингом. Не зарегистрированные в биллинге сессии программа отключает. Также есть возможность просмотр активных сессий микротика.

/usr/abills/libexec/billd checkmikro
NAS_IDS='1,2' Список серверов доступа. По умолчанию скорость просматривается на всех
DEBUG=1..7 Режимы отладки.
1 - Отображать базовые сообщения программы и писать лог команд для

Видео пособие по настройке Mikrotik

Другие ресурсы