Користувальницькькі налаштування

Налаштування сайту


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації щодо оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Люди
Трохи про безпеку

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=

Або, якщо ви, як здорова людина, вказуєте швидкість ваших тарифів у кілобітах у дві сторони, тоді ось так. Також це сумісно з галочкою Radius у налаштуваннях DHCP сервера вашого Mikrotik-а.

eyJvcHRpb25zIjp7ImlkIjoiMSIsIm5hc2lkIjoiMSIsInVzZXJuYW1ldHlwZSI6Im1hYyIsInNlcnZpY2UiOiJwb2Rjb2EiLCJvbmx5YWN0aXZlIjoiMSIsInBvcnQiOiIzNzk5In0sImF0dHJpYnV0ZXMiOnsiMSI6eyJpZCI6IjEiLCJuYXNpZCI6IjEiLCJzY2VuYXJpbyI6ImNoZWNrIiwibW9kaWZpZXIiOiJhY3RpdmUiLCJhdHRyaWJ1dGUiOiJDbGVhcnRleHQtUGFzc3dvcmQiLCJvcGVyYXRvciI6Ijo9IiwiY29udGVudCI6IjEyMzQ1In0sIjIiOnsiaWQiOiIyIiwibmFzaWQiOiIxIiwic2NlbmFyaW8iOiJyZXBseSIsIm1vZGlmaWVyIjoiYWN0aXZlIiwiYXR0cmlidXRlIjoiSWRsZS1UaW1lb3V0Iiwib3BlcmF0b3IiOiI9IiwiY29udGVudCI6IjM2MDAifSwiMyI6eyJpZCI6IjMiLCJuYXNpZCI6IjEiLCJzY2VuYXJpbyI6InJlcGx5IiwibW9kaWZpZXIiOiJhY3RpdmUiLCJhdHRyaWJ1dGUiOiJBY2N0LUludGVyaW0tSW50ZXJ2YWwiLCJvcGVyYXRvciI6Ij0iLCJjb250ZW50IjoiNjAwIn0sIjQiOnsiaWQiOiI0IiwibmFzaWQiOiIxIiwic2NlbmFyaW8iOiJyZXBseSIsIm1vZGlmaWVyIjoiYWN0aXZlIiwiYXR0cmlidXRlIjoiTWlrcm90aWstUmF0ZS1MaW1pdCIsIm9wZXJhdG9yIjoiPSIsImNvbnRlbnQiOiJ7U1BFRURNUkx9In0sIjUiOnsiaWQiOiI1IiwibmFzaWQiOiIxIiwic2NlbmFyaW8iOiJyZXBseSIsIm1vZGlmaWVyIjoiYWxsIiwiYXR0cmlidXRlIjoiRnJhbWVkLUlQLUFkZHJlc3MiLCJvcGVyYXRvciI6Ij0iLCJjb250ZW50Ijoie0lQfSJ9LCI2Ijp7ImlkIjoiNiIsIm5hc2lkIjoiMSIsInNjZW5hcmlvIjoiY2hlY2siLCJtb2RpZmllciI6ImFsbCIsImF0dHJpYnV0ZSI6IkF1dGgtVHlwZSIsIm9wZXJhdG9yIjoiOj0iLCJjb250ZW50IjoiQWNjZXB0In19LCJzZXJ2aWNlcyI6eyIxIjp7ImlkIjoiMSIsIm5hc2lkIjoiMSIsInBvZCI6IntQUklOVEZ9ICdGcmFtZWQtSVAtQWRkcmVzcyA9IHtJUH0nIHwge1NVRE99ICB7UkFEQ0xJRU5UfSB7TkFTSVB9OntOQVNQT1JUfSBcImRpc2Nvbm5lY3RcIiB7TkFTU0VDUkVUfSIsImNvYWNvbm5lY3QiOiJcL2JpblwvdHJ1ZSIsImNvYWRpc2Nvbm5lY3QiOiJ7UFJJTlRGfSAnRnJhbWVkLUlQLUFkZHJlc3MgPSB7SVB9JyB8IHtTVURPfSAge1JBRENMSUVOVH0ge05BU0lQfTp7TkFTUE9SVH0gXCJkaXNjb25uZWN0XCIge05BU1NFQ1JFVH0ifX19

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

Уявімо, що ми вирішили використовувати мікротіки як NAS сервери:

  1. Потрібен мікротик із прошивкою не нижче v6
  2. Абонентські пристрої повинні бачити інтерфейс, на якому ми підніматимемо HotSpot через L2, тому-що авторизувати ми їх будемо за MAC
  3. У прикладі ми використовуємо сторонній dhcp, тому на мікротику треба налаштувати dhcp-relay

Налаштування в картинках

Заходимо 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`оф з різних мереж, натит в різні пули і так далі. Натить 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 · Востаннє змінено: 2023/06/23 11:24 повз borisov