Авторизация через Network Policy Server (NPS) для MikroTik
Как быстро и просто настроить авторизацию через RADIUS от Microsoft? Думаю, это поможет тем, кто захочет иметь возможность заходить на устройства MikroTik через дружелюбный WinBox и простой SSH.
Установка роли NPS
Имеем Windows Server 2016 Datacenter с уже установленным доменом.
Выбираем сервер, на котором будет разворачиваться роль. Microsoft не рекомендует делать это на контроллере домена, но в некоторых best practices для уменьшения задержек дают совет ставить именно на него. Добавляем роль Network Policy and Access Server вместе с management tools для настройки.
Install-WindowsFeature NPAS -IncludeManagementTools
Запускаем любым удобным способом админку NPS. Например, через менеджер серверов.
Регистрируем сервер NPS в AD.
netsh ras add registeredserver
Добавление RADIUS клиента
Для того, чтобы сервер знал с какими устройствами налаживать общение нужно добавить их в RADIUS Clients.
Для примера, добавляю свой MikroTik wAP. Friendly name установил как Identity на устройстве и IP заданный на его единственном проводном интерфейсе. Для того, чтобы устройство смогло авторизоваться на сервере нужно ввести ключ. Он создается на сервере либо вручную, либо генерируется автоматически. Я предпочел второй вариант.
New-NpsRadiusClient –Address "10.1.1.21" –Name "router01" –SharedSecret "egEcM4myJCptphGlZ1UymS#qLh^urp@fJ1hF8dE6dwb27NI^oIJtTWKKp^MEsU6p"
Vendor name остановим на стандартном RADIUS.
Устройство добавлено.
Создание политики подключения
Подбираем подходящее название для политики.
Определяем наше устройство с которым будет работать сервер.
Я выбрал только Client Friendly Name со значением Router01. Это четко привязывает данный пункт политики к устройству через созданного клиента. Можно идентифицировать устройство Mikrotik по Identity выбрав NAS Identifier.
Без предварительной конфигурации устройства Identity = MikroTik.
Дальнейшая настройка политики.
На этапе выбора протокола аутентификации достаточно выбрать нешифрованный (о чем получите предупреждение) PAP для SSH или шифрованный CHAP для WinBox. Я выбрал оба. Если есть необходимость использовать web версию, то достаточно включить MS-CHAPv2, в остальном всё аналогично.
Собственно, предупреждение о выборе небезопасного способа. Предлагают почитать пошаговый справочный материал.
На данном этапе я не стал ничего трогать.
Итоговые установки политики.
У меня не получилось воспроизвести это через PowerShell, даже стандартный example с technet'а. Буду признателен, если подскажете почему.
netsh nps add crp name = "Request Policy Router01" state = "ENABLE" processingorder = "1" policysource = "0" conditionid ="0x1020" conditiondata = "router01" profileid = "0x1025" profiledata = "0x1" profileid = "0x1009" profiledata = "0x1" "0x2" profileid = "0x1fb0" profiledata = "TRUE"
Выбираем нужный приоритет двигая выше или ниже пункт политики.
Создание политики сети
Назовем её Routers.
Как и прежде, нужно определить условия.
В AD у меня создан дополнительный пользователь состоящий в группе Domain Admins. Выбираю условие Windows Group исходя из того, чтобы все администраторы домена смогли получать доступ к MikroTik.
Разрешительное или запретительное правило. Мы будем разрешать всем, кто попал под условие.
Способ аутенификации выбираем аналогичный прошлой политике.
Исходя из необходимости можно настроить дополнительные настройки. Я оставил без изменений.
Далее необходимо выбрать что будет отправляться на сервер.
Итоговые настройки политики сети.
Выбираем необходимый приоритет среди других политик, если необходимо.
Чтобы учетная запись проверялась через NPS в AD у этого пользователя на вкладке Dial-in в разделе Network Access Permission должен быть отмечен пункт Control access through NPS Network Policy.
Для возможности авторизовываться через WinBox нужно включить обратимое шифрование в профиле пользователя.
Добавление сервера авторизации на MikroTik
Первым делом присвоим System/Identity равным router01 и IP с маской для интерфейса.
/system identity set name=router01 /ip address add address=10.1.1.21/24 interface=ether1 network=10.1.1.0
В System/Users и на вкладке Users включаем пункт Use RADIUS. По умолчанию выбран доступ только для чтения.
/user aaa set use-radius=yes
Открываем настройки Radius и добавляем новый сервер. Сервис выбирается исходя из назначения. Лучше, конечно же, делить доступ между ними. Address — адрес сервера на котором установлен NSP.
Secret — ключ, который был сгенерирован на стадии добавления клиента на сервере.
/radius add address=10.1.1.1 secret=egEcM4myJCptphGlZ1UymS#qLh^urp@fJ1hF8dE6dwb27NI^oIJtTWKKp^MEsU6p service=login
Проверка через SSH и WinBox
Проверка подключения через SSH и экспорт конфигурации.
И проверяем авторизацию в Winbox.
Как видим, в активных пользователях висят системный admin и оба подключения доменного юзера с доступом для чтения через SSH и Winbox.
Всё работает.
Настройка системы SMS авторизации iGoFree на MikroTik
Настройка начинается с подключения маршрутизатора к интернету. В самом простом случае следует вставить Ethernet кабель от провайдера в первый порт MikroTik и роутер получает IP через DHCP client. Кроме того по умолчанию на первом порту сделан scr-nat masqurade. Если необходима постоянная достоступность интернета, можно настроить резервирование через 3G модем. С модемами Huawei поддерживающими Hi-Link нужно создать DHCP client на интерфейсе lte2 указав в поле Default Route Distance (метрика или цена маршрута) значение большее чем на основном канале. Далее следует сделать в IP/Firewall/NAT правило scr-nat action Masquarade на интерфейс lte2 созданный 3G модемом.
Настроим OpenVPN client на MikroTik. Для этого откроем окно с интерфейсами и плюсиком добавим новый интерфейс:
Введём IP адрес сервера OpenVPN и логин пароль для доступа к нему. Хэшкод MD5 и алгоритм шифрования AES c ключём 128 бит:
Настроим точку доступа wlan1 вещающую Wi-Fi сеть персонала заведения в котором устанавливается система авторизации. Выбираем узкие каналы в 20 mHz которые позволяют достич максимальной дальности Wi-Fi сигнала. Связано это с тем, что энергия точки доступа распределяется на более узкую полосу, позволяя иметь в два раза большую силу сигнала на удалённых участках сети. Иначе сказать полезный сигнал Wi-Fi будет сильнее выделятся на уровне шумов. Кроме того на узких каналах можно разместить больше точек доступа разнеся их даже на 1, 5, 9, 13 канал максимально заполнив радиочастотный спектр полезным сигналом. Выбрав Wireless Protocol 802.11 можно обеспечить максимальную совместимость с Wi-Fi устройствами клиентов заведения, ведь обычные устройства не поддерживают проприетарных полинговых проколов MikrоTik.
Создадим виртуальную точку доступа Wi-Fi в которой будет использоваться SMS авторизация:
Индификатор сети SSID Walkers.Free профиль сети default, который не содержит пароля. Чтобы предотвратить ARP спуфинг клиентов друг другом (атака человек по середине позволяющая перехватывать трафик пользователя не использующего шифрования) снимаем галочку Default Forward и тем самым запрещаем передавать данные между клиентами подключенными к свободной Wi-Fi сети.
Мы хотим сделать одну сеть с индификатором Walkers.Free на четырёх точках доступа Wi-Fi позволяющую использовать SMS авторизацию. Проще всего это сделать с помощью технологии VLAN на основе меток. Кадры основной сети не будут иметь меток, а кадры дополнительной будут помечаться id 1, 2, 3. Создаём vlan1 с id 1 на интерфейсе bridge-local:
По аналогии создаём vlan2 с id 2 и vlan3 c id 3:
Создадим bridge1 на котором будет работать хотспот:
Добавим в bridge1 vlan1, vlan2, vlan3 и виртуальную точку доступа Wi-Fi wlan2:
Зафильтруем на вкладке Filters трафик между vlan1, vlan2, vlan3 и wlan2, чтобы клиенты подключённые к разным точкам доступа не могли передавать данные между собой:
Пропишем IP адрес на интерфейсе на котором мы будем делать HotSpot. В нашем случае это bridge1 хотя можно прописать и на wlan2:
Настроим с помощью мастера DHCP сервер:
Согласимся с предложеной сетью 10.130.92.0/24:
Согласимся с предложенным мастером шлюзом:
Ввиду того, что в свободной сети Walkers.Free не будет размещаться сетевое оборудование можно использовать весь пул свободных IP адресов кроме 10.130.92.1:
Время аренды IP адреса по умолчанию 10 минут, нажмём Next ничего не меняя:
Если всё правильно сделано мы увидим сообщение, что DHCP успешно настроен:
В сети персонала рекомендую выставить DHCP "authoritative" в Yes (DHCP авторитетный - Да), что заставит DHCP отвечать на запросы клиентов максимально быстро и отключить неавторитетные DHCP сервера в сети. Также выставить галочку "Add ARP for leases" для того чтобы в ARP таблицу автоматически добавлялись сопоставления IP с MAC.
Настроим HotSpot. Если его нет в меню IP, значит необходимо зайти в System/Packages, включить его и программно перезагрузить маршрутизатор. Если он уже включён, открываем окно создания HotSpot и плюсиком создаём новый сервер: Выбираем интерфейс на котором будет работать HotSpot - bridge1; пул раздачи IP адресов ранее созданый с помощью мастера настройки DHCP и профиль default, который сейчас будем править:
Поправим Server Profile default: Ставим галочку Login HTTP PAP. Данные для авторизации пользователя можно передавать открытым текстом по сети ввиду того, что ARP спуфинг не возможен.
На вкладке RADIUS поставим галочку Use RADIUS, что означает что список пользователей (MAC адресов) будет храниться на радиус сервере ООО "Уолкерс Системс":
Добавим список хостов и IP адресов к которым разрешён доступ без авторизации на HotSpot, чтобы пользователи могли увидеть страничку авторизации:
Дополнительно можно поправить User Profiles изменив период показа рекламы Session Timeout. Также можно дополнительно ограничить скорость пользователю, если в результате сбоя отказал основной канал связи с интернетом. Выставлено 128k исходящая скорость, 512k загрузка:
Что касается папки hotspot на самом роутере, то оно не годится нам и его следует заменить на то что мы предоставим: скачать
Номера телефонов и MAC адреса пользователей хранятся на FreeRadius сервере. Настроим подключение роутера к серверу. Укажем IP адрес его, сервис для которого он используется и пароль:
Сведения о трафике пользователей собираются на внешнем сервере (коллекторе) работающим с протоколом netflow. В данном примере показана работа по протоколу 9-ой версии. Включим сенсор netflow на роутере поставив галочку в поле Enable. Выберем интерфейс с которого нужно собирать статистику, для того чтобы в анализаторе не было дублированных данных выбираем только интерфейс на котором есть наши пользователи. Нажав кнопочку Terget добавляем IP адреса серверов (коллекторы netflow). Собирать данные можно на нескольких серверах. Данные которые можно увидеть в анализаторе будут содержать IP адрес, протокол и порт по которому происходит передача данных от пользователя и к нему. Также собираются сведения о количестве трафика и времени использования интернета.
Следует сделать также scr-nat с Action masquarade на интерфейс ведущий к серверам: FreeRADIUS, NetFlow коллектору:
Можно также обратить внимание на правила с буквой D (от dynamic), автоматически добавленые HotSpot:
Настроим правила фильтрации трафика. Если на маршрутизаторе реальный (статический) IP адрес в интернете рекомендуем проверить наличие в цепочке input на внешнем интерфейсе разрешающих правил с connection state: established и related. Если необходимо, можно разрешить ICMP, WEBBOX, WINBOX, SSH, Telnet. Остальной трафик к внешему интерфейсу лучше закрыть действием drop, что позволит уменьшить атаки на такие сервисы роутера как DNS и др.. Также следует в цепочке forward запретить доступ из сети с SMS авторизацией в сеть персонала и сетевого оборудования 10.130.92.0/24 -->> 192.168.0.0/16 действие Drop.
Настроим hEX PoE lite поддерживающий пассивный PoE и позволяющий строить недорогие сети в местах где невозможно запитать Wi-Fi точки доступа, кроме как по ethernet кабелю. На схеме он выделен красным:
Используем его как свитч и поэтому добавим ether1-gateway и группу портов 2-5 в local-bridge. Вторым действием можно добавить vlan1, vlan2, vlan3 с метками 1, 2, 3 прикрепив их к этому бриджу. Дополнительно, если необходимо, можно удалить IP адресс 192.168.88.1/24 c маршрутизатора, выключить DHCP сервер, и навесить DHCP-client на local-bridge:
Далее настроим одну из конечных Wi-Fi точек доступа mAP lite:
Настроим сеть персонала кафе на mAP lite выбрав предварительно созданый profile1 где содержатся параметры шифрования и пароль доступа к сети:
Создадим виртуальную точку доступа vlan2 с SSID Walkers. Используем профиль default который не содержит пароля. Запрещаем forward клиентов данными между друг другом:
Вешаем vlan1 с id 1 на bridge-local:
Создаём новый bridge1 без настроек:
Добавляем виртуальный локальный интерфейс vlan1 и виртуальный беспроводной интерфейс wlan2 (SSID Walkers.Free) в bridge1:
Дополнительно по аналогии с hEX PoE lite можно удалить IP адрес 192.168.88.1/24, DHCP сервер, правила фильтрации.
Настройка закончена! Конфигурацию хотспота с SMS авторизацией для mAP-2n можно скачать по этой ссылке. Логин: admin пароля нет.