Это старая версия документа.
Mikrotik
Настройка на сервере биллинга
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 PoD для сброса с линии
PPP
Через консоль
/ppp aaa set accounting=yes use-radius=yes interim-update=300 /ppp profile set default local-address=192.168.101.10
Через WinBox
PPPoE
Через консоль
/interface pppoe-server server add interface=ether1 \ \... service-name=pppoe-in 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
- Создаем новый bridge : bridge → «+» → «OK»
- Добавляем туда wlan порт : ports → «+» → interface: wlan1
- Добавляем DHCP клиент : IP → DHCP Client → «+» → interface: bridge1
- Добавляем новый пул адресов для хотспота : IP → Adresses → «+» → interface: bridge1 , adress: свободный пул адресов , например 192.168.111.0/24
- Переключаем wifi модуль в режим bridge : Wireless → intefaces → wlan1 → Wireless - mode: bridge , band: 2GHz-B/G , protocol 802.11 , enable , OK
- Настраиваем хотспот : 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
Автонастройщик 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 - Отображать базовые сообщения программы и писать лог команд для |