Radius server mikrotik что это
Авторизация через Radius на Mikrotik с подстановкой локальной группы
Всем доброго дня! Я работаю начинающим сетевым администратором в крупной федеральной компании со смешанной сетью, cisco, mikrotik, juniper.
И вот однажды появилась следующая задача.
1. Есть региональный системный администратор, у которого в подчинении несколько системных администраторов. У каждого системного администратора есть РУ — региональный узел, где головными устройствами стоят 2 Mikrotik 1100ahx2 и cisco c3550, по магазинам — MikroTik RB751G-2HnD.
2. На каждом Микротике заведена локальная группа с именем, совпадающем с городом: Омск — OMS, Кемерово — KMR, с полными правами на Микротик.
Сделать авторизацию регионального администратора через Radius только в пределах своей зоны ответственности, допустим OMS и KMR.
Задача есть, пробуем выполнять.
Настраиваем Radius на Микротике:
/radius add service=login address=10.0.x.10 secret=xxx disabled=no
/user aaa set use-radius=yes
Устанавливаем FreeRadius на Linux, у меня был Debian: apt-get install freeradius
У меня подсеть на Микротиках 172.16.0.0/12,
пишем в /etc/freeradius/clients.conf
client 172.16.0.0/12 <
secret = xxx
shortname = Network_Devices
>
Затем, не забываем /etc/freeradius/dictionary
VENDOR Mikrotik 14988
ATTRIBUTE Mikrotik-Recv-Limit 1 integer
ATTRIBUTE Mikrotik-Xmit-Limit 2 integer
ATTRIBUTE Mikrotik-Group 3 string
ATTRIBUTE Mikrotik-Wireless-Forward 4 integer
ATTRIBUTE Mikrotik-Wireless-Skip-Dot1x 5 integer
ATTRIBUTE Mikrotik-Wireless-Enc-Algo 6 integer
ATTRIBUTE Mikrotik-Wireless-Enc-Key 7 string
ATTRIBUTE Mikrotik-Rate-Limit 8 string
ATTRIBUTE Mikrotik-Realm 9 string
ATTRIBUTE Mikrotik-Host-IP 10 ipaddr
ATTRIBUTE Mikrotik-Mark-Id 11 string
ATTRIBUTE Mikrotik-Advertise-URL 12 string
ATTRIBUTE Mikrotik-Advertise-Interval 13 integer
ATTRIBUTE Mikrotik-Recv-Limit-Gigawords 14 integer
ATTRIBUTE Mikrotik-Xmit-Limit-Gigawords 15 integer
ATTRIBUTE Mikrotik-Wireless-PSK 16 string
ATTRIBUTE Mikrotik-Total-Limit 17 integer
ATTRIBUTE Mikrotik-Total-Limit-Gigawords 18 integer
ATTRIBUTE Mikrotik-Address-List 19 string
ATTRIBUTE Mikrotik-Wireless-MPKey 20 string
ATTRIBUTE Mikrotik-Wireless-Comment 21 string
ATTRIBUTE Mikrotik-Delegated-IPv6-Pool 22 string
VALUE Mikrotik-Wireless-Enc-Algo No-encryption 0
VALUE Mikrotik-Wireless-Enc-Algo 40-bit-WEP 1
VALUE Mikrotik-Wireless-Enc-Algo 104-bit-WEP 2
VALUE Mikrotik-Wireless-Enc-Algo AES-CCM 3
VALUE Mikrotik-Wireless-Enc-Algo TKIP 4
Все, теперь нам нужно создать пользователя в /etc/freeradius/users:
regSA User-password :=12345
Auth-Type = CHAP,
Mikrotik-Group := OMS
Перезапускаем FreeRadius и пробуем зайти на омские Микротики. Все работает.
Но теперь пробуем зайти на кемеровские. Получаем группу read, с правами только на чтение. В чем дело? Смотрим лог на Микротике и видим:
В активных пользователях:
Ты забыл прописать группу для Кемерова, скажете вы. Прописываем:
regSA User-password :=12345
Auth-Type = CHAP,
Mikrotik-Group := OMS, KMR
Рестартим freeradius. Пробуем, получаем тоже самое. Получается, что для одного пользователя мы можем указать только одну группу. Потому что при авторизации всегда берется первая указанная. Тупик? Нет, пара часов гугла, исследование FreeRadius и нахожу выход.
В radiusd.conf есть обработчик post-auth, решаю попробовать использовать его.
Пишем:
/172\.22\.(2(27|39|51))\.(9|73|1(21)|2(19|52))/) < и проверяем IP
update reply <
Mikrotik-Group := «OMS» если все сошлось, то выдаем микротику группу, которая на нем есть
>
>
if (NAS-IP-Address =
> закрываем весь post-auth
NAS-IP-Address — это IP адрес с которого прилетает запрос на авторизацию. Используется регулярка, но так как я с ними на ВЫ, то использовал для генерации сайт www.analyticsmarket.com/freetools/ipregex
Теперь в /etc/freeradius/users: убираем группу, как абсолютно лишний для нас атрибут
regSA User-password :=12345
Auth-Type = CHAP
После рестарта FreeRadius понимаем, что у нас все работает, что на омские микротики регионал попадает с группой OMS, на кемеровские — с KMR.
Почему нельзя было в users поставить Mikrotik-Group := «full»? Можно было, но тогда региональный сисадмин получил доступ ко всем Микротикам по всей России, что конечно же нехорошо. Такие права есть только у избранных.
RADIUS — немного о Mikrotik, NPS и не только
Changelog
Определение, назначение, общие сведения
Позволяет повысить безопасность сети и централизованно управлять доступами.
Сервер RADIUS может иметь свою базу данных с учетными данными (например файлы или mysql) или работать в паре с другим сервером, например Active Directory.
Кроме AAA позволяет передать некоторые дополнительные данные (настройки) клиенту прошедшему аутентификацию, в том числе vendor-specific attributes (VSA). У Mikrotik такие тоже есть, позже пройдемся по самым интересным.
Существуют много популярных приложений радиус сервера, самый популярные: freeRADIUS и Служба NPS (Network Policy Server) Windows Server. Более подробно мы рассмотрим второй вариант.
Компоненты кейса
RADIUS сервер (он же радиус сервер, он же сервер аутентификации).
Настройка
Установку роли описывать не буду, существует 100500 статей в картинках, например: тыц
Добавление радиус клиента на радиус-сервере. Нам нужно заполнить «понятное имя», IP адрес и придумать пароль (а.к.а. «секрет»), который понадиобится при настройке аутентификатора (mikrotik в нашем случае)
Политики запросов на подключение и Стетевые политики очень похожи при настройке, и нужно понимать разницу между ними. Первые нужны для того что бы при определенных условиях определить сервер на котором будет проходить проверка аутентификации клиента (к примеру локально или на другом удаленном радиус сервере) а так же для некоторых манипуляций с атрибутами. Вторые же позволяют определить набор условий по которым возможно обозначить разрешить или отклонить запроос клиента на подключение.
Политики имеют порядок и обрабатываются по нему одна за другой. Если подключение не соответствует условиям политики, то проверяется следущая и так далее. К примеру, это поможет разделить правила обработки для проводных\беспроводных и впн клиентов.
Добавление политики запросов на подключение
Добавление сетевой политики
Некоторые типовые кейсы применения радиус сервера :
централизованная аутентификация на устройствах поддерживающих aaa
аутентификация для vpn (pptp\l2tp)
аутентификация в wifi
Итак подробнее, + некоторые плюшки. Для всех наших пунктов нам нужно настроить радиус клиента в mikrotik
Теперь можно начинать настраивать интересные вещи.
1. настроим вход на микротик
Стоит уделить внимание параметру default-group он означает группу по умолчанию, в которая применится к пользователю.
Теперь настроим NPS:
А вот так будет выглядеть настройка необходимого нам атрибута, из которого микротик определит в какую группу поместить подключенного пользователя.
Сразу попробуем авторизоваться и видим что попали в нужную группу read
В методах проверки подлинности указываем :
Политика mikrotik-admin-network будет отличаться тем что в условиях выберем группу admins-network а значение отрибута MIKROTIK_GROUP зададим как full Результат ожидаемый, мы залогинились в микротик под полными правами:
Перейдем к впн, и к стразу более интересному сценарию.
В настройки правил форейвола для ограничения доступа подсетей я пожалуй не буду углубляться, подразумевается что вы понимаете как из одной подсети запретить доступ к ресурсу и как разрешить. (с) предпологается, что вы немного сетевик. Касательно примера подсети 10.10.21.0/24 необходимо разрешить форвард в подсети серверов и management а подсети 10.10.22.0/24 необходимо разрешить только доступк корпоративным сервисам, но не к сетям управления.
Знакомым нам образом добавим атрибут указывающий какой профиль микротика использовать.
Методы проверки подлинности используем как и в прошлый раз. В настройках Сервера VPN рекомендуется указать точно такой же тип.
Настроим тестовое поключение и увидим что получили IP из пула для сетевых администраторов.
Теперь настроим политику для обычных пользователей:
Wifi и Dot1x
Прежде чем перети к самому вкусному, хочется сделать выбор как мы будем проходить авторизацию, можно выбрать по логину и паролю, компьютеру, использовать mac адрес как логин и пароль.. и наконец пойти самым сложным интересным путем, использовать сертификаты. В качестве предварительной подготовки нам необходимо:
настроить службу центра сертификации Windows тыц, актуально и для следующего пункта
настроить GPO для распространения CA сертификата домена тыц
GPO автоматического получения сертификата компьютера docs.microsoft
GPO включение службы dot1X (проводная автонастройка) и создать Политики проводных сетей (802.3) для выбора способа проверки подлинности тыц
GPO Автоматическое подключение к Wifi до логина пользователя тыц
Данные пункты не маленькие что бы включать их в эту статью, но достаточно освещены в статьях интернета.
Настройку WiFi каждый настраивает как ему удобно. Я к примеру, предпочитаю CapsMan, даже если это будет единственная AP в сети. В любом случае нас интересует только Security Profile/Security Cfg.
А в методах проверки подлинности следующее.
Какие радиус атрибуты могут быть нам полезны:
устанавливать лимиты по обьему или/и скорости трафика
и многие другие параметры из вики, либо их комбинации с условиями сетевой политики, смотря сколько у вас фантазии 🙂
dot1x
Зачем нужен dot1X и как его настроить.. очень много интересных слов можно было бы тут написать, но все сказано до нас. Например на канале одного прекрасного тренера или wiki
Начнем с микротика:
Настроим политики сети: В условиях необходимо отобрать проводные клиенты
В настройках атрибутами выдадим рабочий влан
К примеру вот так выглядит отказ в авторизации:
А вот так успешное подключение:
IPSEC
С недавнего времени стало популярно настраивать vpn через ipsec ikev2, но многих пугает морока с клиентскими сертификатами. В этом плане использовать учетные данные из AD гораздо удобнее.
Для начала включим в настроках добавленного радиус клиента что он будет использоваться для ipsec
Дефолтные конфиги в ipsec не принято трогать. поэтому будем создавать свои.
Создадим «группу конфигов»
/ip ipsec policy group add name=ipsec
Настроим Profile (фаза 1)
/ip ipsec profile add dh-group=modp1024 enc-algorithm=aes-192,3des name=ipsec
Создадим пир для входящих подключений
/ip ipsec peer add exchange-mode=ike2 name=ipsec passive=yes profile=ipsec send-initial-contact=no
Создадим настройки proposals (фаза 2)
/ip ipsec proposal add name=ipsec
Добавим пулл ip адресов которые будут выдаваться клиентам
/ip pool add name=pool1 ranges=10.20.0.10-10.20.0.250
Добавим Mod config, из которого клиенты получают префиксы подсетей за впн и dns
/ip ipsec mode-config add address-pool=pool1 name=ipsec split-include=0.0.0.0/0,10.20.0.0/16
Создадим шаблонную политику шифрования трафика
/ip ipsec policy add group=ipsec proposal=ipsec template=yes
Если планируете подключаться из windows машин в домене, то можете импортировать сертификат из своего CA и разлить его политикой на ноутбуки\компьютеры.
Если нет своего CA то можно сгенерировать сертификат на микротике. но тогда прийдется опять таки его импортировать на клиентах вручную или через GPO.
И на мой взгляд самый удобный способ, воспользоваться сертификатом letsecrypt, кстати в ros7 есть команда для автоматического получения сертификата.
Или приобрести коммерческий сертификат. У меня в примере Letsencrypt, обратите внимание что необходимо добавить так же все промежуточные сертификаты.
/ip ipsec identity add auth-method=eap-radius certificate=lefull,lefull_1,lefull_2 generate-policy=port-strict mode-config=ipsec peer=ipsec policy-template-group=ipsec
Добавляем политику на NPS сервере
В методах проверки подлинности разрешаем аутентификацию по паролю используюя ms-chap v2
После этого можно подключаться клиентом, все должно работать )
Если желательно расписать как настраивать клиента на mikrotik дайте знать )
Диагностика
Не всегда наши настройки сразу работают так как надо, иногда что то идет не так, и очень хочется понять что именно. Для того что бы понять в чем причина у нас есть :
политики сети и доступа
возможны проблемы из за windows брандмауера починить можно
или для англоязычной версии:
radclient из пакета freeradius-utils. Позволяет из командной строки проверить некоторые типы авторизации, к примеру подключение к vpn
Выводы
RADIUS в сетевой среде очень полезен в плане безопасности и удобен в плане централизованного управления. Настраивать не так уж и сложно, главное читать, понимать документацию и логи.
Если какой то из пунктов непонятен, пишите. попробую показать или помочь разобраться.
Если в статье нашли ошибки, неточности или знаете как сделать лучше тоже пишите.
Благодарности:
Спасибо @aslancherkesov за злого редактора и свежий взгляд на буквы.
RADIUS
RADIUS, short for Remote Authentication Dial-In User Service, is a remote server that provides authentication and accounting facilities to various network appliances. RADIUS authentication and accounting gives the ISP or network administrator the ability to manage PPP user access and accounting from one server throughout a large network. The MikroTik RouterOS has a RADIUS client that can authenticate for HotSpot, PPP, PPPoE, PPTP, L2TP, and ISDN connections. The attributes received from the RADIUS server override the ones set in the default profile, but if some parameters are not received they are taken from the respective default profile.
The RADIUS server database is consulted only if no matching user access record is found in the router’s local database.
If RADIUS accounting is enabled, accounting information is also sent to the RADIUS server default for that service.
RADIUS Client
This sub-menu allows adding/remove RADIUS clients.
The order of added items in this list is significant.
Properties
When the RADIUS server is authenticating the user with CHAP, MS-CHAPv1, MS-CHAPv2, it is not using a shared secret, the secret is used only in authentication reply, and the router is verifying it. So if you have the wrong shared secret, the RADIUS server will accept a request, but the router won’t accept a reply. You can see that with /radius monitor command, the «bad-replies» number should increase whenever somebody tries to connect.
If RadSec is enabled, make sure your RADIUS Server is using «radsec» as the shared secret, otherwise, RADIUS Server will not be able to decrypt data correctly (unprintable characters). With RadSec RouterOS forces the shared secret to «radsec» regardless of what has been set manually (RFC6614).
Example
To set up a RADIUS Client for HotSpot and PPP services that will authenticate against a RADIUS Server (10.0.0.3), you need to do the following:
To set up a RADIUS Client with RadSec, you need to do the following:
Make sure the specified certificate is trusted.
To view RADIUS Client statistics, you need to do the following:
Make sure you enable RADIUS authentication for the desired services:
Connection Terminating from RADIUS
Sub-menu: /radius incoming
This facility supports unsolicited messages sent from the RADIUS server. Unsolicited messages extend RADIUS protocol commands, that allow terminating a session that has already been connected from the RADIUS server. For this purpose, DM (Disconnect-Messages) is used. Disconnect messages cause a user session to be terminated immediately.
RouterOS doesn’t support POD (Packet of Disconnect) the other RADIUS access request packet that performs a similar function as Disconnect Messages
Авторизация через 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 для настройки.
Запускаем любым удобным способом админку NPS. Например, через менеджер серверов.
Регистрируем сервер NPS в AD.
Добавление RADIUS клиента
Для того, чтобы сервер знал с какими устройствами налаживать общение нужно добавить их в RADIUS Clients.
Для примера, добавляю свой MikroTik wAP. Friendly name установил как Identity на устройстве и IP заданный на его единственном проводном интерфейсе. Для того, чтобы устройство смогло авторизоваться на сервере нужно ввести ключ. Он создается на сервере либо вручную, либо генерируется автоматически. Я предпочел второй вариант.
Vendor name остановим на стандартном RADIUS.
Создание политики подключения
Подбираем подходящее название для политики.
Определяем наше устройство с которым будет работать сервер.
Я выбрал только Client Friendly Name со значением Router01. Это четко привязывает данный пункт политики к устройству через созданного клиента. Можно идентифицировать устройство Mikrotik по Identity выбрав NAS Identifier.
Без предварительной конфигурации устройства Identity = MikroTik.
Дальнейшая настройка политики.
На этапе выбора протокола аутентификации достаточно выбрать нешифрованный (о чем получите предупреждение) PAP для SSH или шифрованный CHAP для WinBox. Я выбрал оба. Если есть необходимость использовать web версию, то достаточно включить MS-CHAPv2, в остальном всё аналогично.
Собственно, предупреждение о выборе небезопасного способа. Предлагают почитать пошаговый справочный материал.
На данном этапе я не стал ничего трогать.
Итоговые установки политики.
У меня не получилось воспроизвести это через PowerShell, даже стандартный example с technet’а. Буду признателен, если подскажете почему.
Выбираем нужный приоритет двигая выше или ниже пункт политики.
Создание политики сети
Назовем её 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/Users и на вкладке Users включаем пункт Use RADIUS. По умолчанию выбран доступ только для чтения.
Открываем настройки Radius и добавляем новый сервер. Сервис выбирается исходя из назначения. Лучше, конечно же, делить доступ между ними. Address — адрес сервера на котором установлен NPS.
Secret — ключ, который был сгенерирован на стадии добавления клиента на сервере.
Проверка через SSH и WinBox
Проверка подключения через SSH и экспорт конфигурации.
И проверяем авторизацию в Winbox.
Как видим, в активных пользователях висят системный admin и оба подключения доменного юзера с доступом для чтения через SSH и Winbox.