Инструменты пользователя

Инструменты сайта


Боковая панель

Разделы

Общее описание
История изменений
Рекомендации к обновлению
Планы на будущее
Известные проблемы
Онлайн демо
Случайная статья
Видео
Помощь проекту
Люди

FAQ


mgmikrotik

Авторизация абонентов через HotSpot сервер при помощи КучаГен

Можно использовать Mikrotik HotSpot для авторизации абонентов через freeradius чем то похоже на логику ISG cisco.

Что может и не может делать Mikrotik.

1. Можно авторизовать абонентов только если они находятся в одном L2 домене(в одной сети) вместе с Mikrotik.
2. Идентификатором для микротика является мак адрес.(абонентов будем авторизовать по mac)
3. Всех неавторизованных абонентов микротик никуда не пускает, так-же  Микротик будет перенаправлять неавторизованных туда куда вы укажите в файле, это может быть заглушка либо личный кабинет или ваша фантазия.
4. После успешной авторизации если в freeradius были параметры с указанием скоростей Микротик выставит для абонента шейпер.
5. Можно создавать списки для разрешенных сайтов, ипишников куда смогут ходит неавторизованные.
6. Микротик не может авторизовать по IP
7. Что-бы применить измененные параметры уже активного абонента его надо переавторизовать  (сбросить сессию) 
8. Для отключения, допустим когда у абона закончились деньги надо отправить команду на сброс сессии.

Также что-бы это все могло работать целостно и из коробки у вас должен быть настроен multigen и dhcp-server

Дальше описание пошагово.

Конфигурация Ubilling

Уже должен быть настроен КучаГен

Настраиваем биллинг стандартно как и для любых других устройств

в справочнике (сети и услуги) добавляем сети, создаем услуги

в справочнике (сервер dhcp) создаем нужные нам сети. ЧТОБЫ РАБОТАЛ DHCP-RELAY Не забываем поправить файл ubilling/config/dhcp/global.template

shared-network ourisp {

{SUBNETS}

subnet "сеть интерфейса через который билинг будет принимать запросы dhcp-relay с микротик" netmask 255.255.255.0 {}
}

В справочнике (сервера доступа NAS) вешаем на нашу сеть которая будет обслуживаться Микротиком нужный нам тип сервера доступа (Radius) Если у вас микротик обслуживает не одну сеть то для каждой сети создаем свой сервер доступа, IP для всех сетей одни это IP управления микротиком (через который билинг общается с микротиком)

Пароли с помощью которых наши будущие НАСЫ будут подключаться к Freeradius находятся тут же по нажатию шестеренки их можно увидеть. Далее эти параметры будем вносить в настройки Radius в микротике. Чтобы freeradius перечитал login\pass его надо перезапустить вручную (например service radiusd restart).

Добавим словарь для Mikrotik в файл /usr/local/etc/raddb/dictionary

$INCLUDE        /usr/local/etc/raddb/dictionary_preset/mikrotik.dictionary

Для Ubuntu примерно так /etc/freeradius/dictionary

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

После чего перезапускаем FreeRADIUS

Добавляем в NAS набор атрибутов, достаточный для работы

по поводу установки скорости и выбора макроса, выбираем на свой вкус и цвет из макросов КучаГенЫ в примере в базу вписаны значения в мегабитах прием=отдачи. Чтобы мы могли сбрасывать сессий при отключении или смене скорости, настраиваем сервис PoD/CoA отключать мы может только по PoD, а менять скорость на лету можно через CoA лобо просто сбросом сессии как в примере.

{PRINTF} 'Framed-IP-Address = {IP}' | {SUDO} {RADCLIENT} {NASIP}:{NASPORT} "disconnect" {NASSECRET}

еще есть вариант отсылать CoA только на изменения скорости , может кому пригодиться , пример переключение день ночь

{PRINTF} "Framed-IP-Address="\""{IP}"\"",Mikrotik-Rate-Limit="\""{SPEEDDOWN}M"\""" | {SUDO} {RADCLIENT} {NASIP}:{NASPORT} coa {NASSECRET}

Вот эта конфигурация NAS в текстовом виде для быстрой вставки, через кнопку клонировать NAS:

eyJvcHRpb25zIjp7ImlkIjoiMyIsIm5hc2lkIjoiMSIsInVzZXJuYW1ldHlwZSI6Im1hYyIsInNlcnZpY2UiOiJwb2Rjb2EiLCJvbmx5YWN0aXZlIjoiMSIsInBvcnQiOiIzNzk5In0sImF0dHJpYnV0ZXMiOnsiOSI6eyJpZCI6IjkiLCJuYXNpZCI6IjEiLCJzY2VuYXJpbyI6ImNoZWNrIiwibW9kaWZpZXIiOiJhY3RpdmUiLCJhdHRyaWJ1dGUiOiJDbGVhcnRleHQtUGFzc3dvcmQiLCJvcGVyYXRvciI6Ijo9IiwiY29udGVudCI6IjEyMzQ1In0sIjEwIjp7ImlkIjoiMTAiLCJuYXNpZCI6IjEiLCJzY2VuYXJpbyI6InJlcGx5IiwibW9kaWZpZXIiOiJhY3RpdmUiLCJhdHRyaWJ1dGUiOiJJZGxlLVRpbWVvdXQiLCJvcGVyYXRvciI6Ij0iLCJjb250ZW50IjoiMzYwMCJ9LCIxMSI6eyJpZCI6IjExIiwibmFzaWQiOiIxIiwic2NlbmFyaW8iOiJyZXBseSIsIm1vZGlmaWVyIjoiYWN0aXZlIiwiYXR0cmlidXRlIjoiQWNjdC1JbnRlcmltLUludGVydmFsIiwib3BlcmF0b3IiOiI9IiwiY29udGVudCI6IjYwMCJ9LCIxMiI6eyJpZCI6IjEyIiwibmFzaWQiOiIxIiwic2NlbmFyaW8iOiJyZXBseSIsIm1vZGlmaWVyIjoiYWN0aXZlIiwiYXR0cmlidXRlIjoiTWlrcm90aWstUmF0ZS1MaW1pdCIsIm9wZXJhdG9yIjoiPSIsImNvbnRlbnQiOiJ7U1BFRURET1dOfU0ifSwiMjkiOnsiaWQiOiIyOSIsIm5hc2lkIjoiMSIsInNjZW5hcmlvIjoicmVwbHkiLCJtb2RpZmllciI6ImFsbCIsImF0dHJpYnV0ZSI6IkZyYW1lZC1JUC1BZGRyZXNzIiwib3BlcmF0b3IiOiI9IiwiY29udGVudCI6IntJUH0ifX0sInNlcnZpY2VzIjp7IjEiOnsiaWQiOiIzIiwibmFzaWQiOiIxIiwicG9kIjoie1BSSU5URn0gJ0ZyYW1lZC1JUC1BZGRyZXNzID0ge0lQfScgfCB7U1VET30gIHtSQURDTElFTlR9IHtOQVNJUH06e05BU1BPUlR9IFwiZGlzY29ubmVjdFwiIHtOQVNTRUNSRVR9IiwiY29hY29ubmVjdCI6IlwvYmluXC90cnVlIiwiY29hZGlzY29ubmVjdCI6IntQUklOVEZ9ICdGcmFtZWQtSVAtQWRkcmVzcyA9IHtJUH0nIHwge1NVRE99ICB7UkFEQ0xJRU5UfSB7TkFTSVB9OntOQVNQT1JUfSBcImRpc2Nvbm5lY3RcIiB7TkFTU0VDUkVUfSJ9fX0=

Конфигурация Mikrotik

Представим, что мы решили использовать микротики в качестве NAS серверов … -

  1. Нужен микротик с прошивкой не ниже v6
  2. Абонентские устройства должны видеть интерфейс на котором мы будет поднимать HotSpot по L2 потому-что авторизовать мы их будет по MAC
  3. В примере мы используем сторонний dhcp поэтому на микротике надо настроить dhcp-relay.
  4. Настройка в картинках ..

Заходим ip - hotspot создаем сервер hotspot вешаем на интерфейс смотрящий на абонентов

Поле профиль, можно для всех хотспотов использовать один, если у них одинаковые настройки (радиусы, передача логина, пароль, типа вторизации и так далее) В поле login timeout устанавливаем время через которое микротик будет пробовать переавторизовывать неавторизованных абонентов.

Правим профиль сервера , ставим login by: mac и использовать радиус? если у вас для каждого хотспот разные радиусы то их можно различать по значению (Default domain) , аккаунтинг по желанию. Mac Auth. Password : любой на свой вкус мы его прописывали выше в атрибутах нас (12345)

Все пользователи при авторизации будут использовать значения таймаутов и всего остального из профиль пользователя Default изменения в нем применяются для всех хотспотов но переопределяются значениями из радиус, чтобы использовать профиль отличный от default имя профиля надо предавать атрибутами через радиус.

Добавляем в Walled Garden IP List адреса разрешенные нашим абонентам без авторизации и денег, адрес лист нужно предварительно создать в ip - firewall - address List, чтоб не насиловать фаервол дополнительными правилами можно тут что надо запрещать или разрешать.

Открываем настройки Radius вписываем наши параметры полученные при настройки КучаГен пароль для нас NAS (справочнике сервера доступа NAS) так же чтоб мы могли получать команды Pod\CoA надо не забыть поставить галочку для входящих соединений и указать порт в примере 3799 (его-же вписывали в настройках NAS сервера выше)

По итогу мы должны видеть наших все абонентов авторизованных и не авторизованных во вкладке hosts, туда попадают все устройства которые отправили хоть один пакет в сторону микротика. Во вкладке Active попадают только авторизованные для которых в радиусе нашлась правильная пара login\pass. Чтобы заставить абонента пройти процедуру переаторизацию (получить новые параметры) его надо удалять из Hosts.

В биллинге можем видеть сессии пользователей при условии что мы отправляем accounting

Перенаправление отключенных/не авторизованных

HotSpot умеет это прекрасно делать так что не чего выдумывать не надо, а требуется как минимум поправить один файл login.html на микротике (понятно что перенаправить без боли мы можем только http трафик, также можно пробовать перенаправлять https но это проблемно и в большинстве случаев не работоспособно ищите в интернетах)

Привести его к такому содержимому, ну и не забыть добавить все наши хосты к которым можно без авторизации, как минимум адрес страницы куда перенаправляем абонов и днс в список разрешенных , описано выше.

<html>
<head><title>...</title></head>
<body>
$(if chap-id)
<noscript>
<center><b>JavaScript required. Enable JavaScript to continue.</b></center>
</noscript>
$(endif)
<center>If you are not redirected in a few seconds, click 'continue' below<br>
<form name="redirect" action="https://bla-bla.net">
<input type="submit" value="continue">
</form>
<script language="JavaScript">
<!--
   document.redirect.submit();
//-->
</script></center>
</body>
</html>

вообще там очень много вариаций которыми можно корректировать поведение системы хот спот и при желании можно получать много всяких данных еще до авторизации и после, но об этом уже в официальной доке https://wiki.mikrotik.com/wiki/Manual:Customizing_Hotspot

Статистика Mikrotik

Mikrotik ccr1036 - начинает сдыхать при трафике больше + - 2.8G наличие или отсутствие на нем Nat почти не влияет. (это около 3к авторизованных абонентов)

Mikrotik ccr1072 - до предела еще не дошли, пережевывает 4G 3800-4500 авторизованных проц до 55% .(пока проблем нет но уже похоже подходит к концу еще мегов 500-1000 думаю прожует)

Подключены в сеть одним 10G портом, также был ccr1036 с собранными в LACP 4шт по 1G портами, проблемы появлялись немного раньше чем 2.8G, естественно с коробки без легкого тюнинга они так не умеют

Mikrotik ccr1072 - тупо как NAT в него стекается трафик от NAS`оф c разных сетей натит в разные пулы и так далее. Натит 15 гиг проц до 43% проблем нет.

Из полезного:

много ресурсов отжирает правила созданные по умолчанию хотспотом (заворот на себя 53 порта) поэтому создаем в шедулер правило которое будет его убивать при запуске микротика , если перезапустить хот спот руками то не забываем убить правило в фаерволе.

/system scheduler
add name=dns on-event=":delay 30;\r\
    \n/ip firewall nat remove [find dynamic dst-port=\"53\"]\r\
    \n/queue simple  remove [find name~\"hs\"]" policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup

так-же увеличиваем очередь шейпера (default-small) примерно так

/queue type
set 9 pfifo-limit=200

Если у вас на микротике дохрена абонов то не забываем увеличить время жизни ARP записи от стандартных 30сек до хотя бы 1-2 минуты иначе можно получить бродкастовый шторм не плохой.

mgmikrotik.txt · Последние изменения: 2019/11/26 10:46 — demonidze