Как быстро и просто настроить авторизацию через RADIUS от Microsoft? Думаю, это поможет тем, кто захочет иметь возможность заходить на устройства MikroTik через дружелюбный WinBox и простой SSH.

План:

Установка роли NPS;
Добавление RADIUS клиента;
Создание политики подключения;
Создание политики сети;
Добавление сервера авторизации на MikroTik;
Проверка через SSH и WinBox.

Установка роли NPS


Имеем Windows Server 2016 Datacenter с уже установленным доменом.

image

Выбираем сервер, на котором будет разворачиваться роль. Microsoft не рекомендует делать это на контроллере домена, но в некоторых best practices для уменьшения задержек дают совет ставить именно на него. Добавляем роль Network Policy and Access Server вместе с management tools для настройки.

Install-WindowsFeature NPAS -IncludeManagementTools

image

image

image

image

Запускаем любым удобным способом админку NPS. Например, через менеджер серверов.

image

Регистрируем сервер NPS в AD.

netsh ras add registeredserver

image

Добавление RADIUS клиента

Для того, чтобы сервер знал с какими устройствами налаживать общение нужно добавить их в RADIUS Clients.

image

Для примера, добавляю свой MikroTik wAP. Friendly name установил как Identity на устройстве и IP заданный на его единственном проводном интерфейсе. Для того, чтобы устройство смогло авторизоваться на сервере нужно ввести ключ. Он создается на сервере либо вручную, либо генерируется автоматически. Я предпочел второй вариант.

New-NpsRadiusClient –Address "10.1.1.21" –Name "router01" –SharedSecret "egEcM4myJCptphGlZ1UymS#qLh^urp@fJ1hF8dE6dwb27NI^oIJtTWKKp^MEsU6p"

image

Vendor name остановим на стандартном RADIUS.

image

Устройство добавлено.

Создание политики подключения


image

Подбираем подходящее название для политики.

image

Определяем наше устройство с которым будет работать сервер.

image

Я выбрал только Client Friendly Name со значением Router01. Это четко привязывает данный пункт политики к устройству через созданного клиента. Можно идентифицировать устройство Mikrotik по Identity выбрав NAS Identifier.

image

Без предварительной конфигурации устройства Identity = MikroTik.

image

Дальнейшая настройка политики.

image

На этапе выбора протокола аутентификации достаточно выбрать нешифрованный (о чем получите предупреждение) PAP для SSH или шифрованный CHAP для WinBox. Я выбрал оба. Если есть необходимость использовать web версию, то достаточно включить MS-CHAPv2, в остальном всё аналогично.

image

Собственно, предупреждение о выборе небезопасного способа. Предлагают почитать пошаговый справочный материал.

image

На данном этапе я не стал ничего трогать.

image

Итоговые установки политики.

У меня не получилось воспроизвести это через 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"

image

Выбираем нужный приоритет двигая выше или ниже пункт политики.

Создание политики сети

image

Назовем её Routers.

image

Как и прежде, нужно определить условия.

image

В AD у меня создан дополнительный пользователь состоящий в группе Domain Admins. Выбираю условие Windows Group исходя из того, чтобы все администраторы домена смогли получать доступ к MikroTik.

image

image

Разрешительное или запретительное правило. Мы будем разрешать всем, кто попал под условие.

image

Способ аутенификации выбираем аналогичный прошлой политике.

image

Исходя из необходимости можно настроить дополнительные настройки. Я оставил без изменений.

image

Далее необходимо выбрать что будет отправляться на сервер.

image

Итоговые настройки политики сети.

image

Выбираем необходимый приоритет среди других политик, если необходимо.

image

Чтобы учетная запись проверялась через NPS в AD у этого пользователя на вкладке Dial-in в разделе Network Access Permission должен быть отмечен пункт Control access through NPS Network Policy.

image

Для возможности авторизовываться через WinBox нужно включить обратимое шифрование в профиле пользователя.

image

Добавление сервера авторизации на 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

image

В System/Users и на вкладке Users включаем пункт Use RADIUS. По умолчанию выбран доступ только для чтения.

/user aaa set use-radius=yes

image

Открываем настройки Radius и добавляем новый сервер. Сервис выбирается исходя из назначения. Лучше, конечно же, делить доступ между ними. Address — адрес сервера на котором установлен NSP.

Secret — ключ, который был сгенерирован на стадии добавления клиента на сервере.

/radius add address=10.1.1.1 secret=egEcM4myJCptphGlZ1UymS#qLh^urp@fJ1hF8dE6dwb27NI^oIJtTWKKp^MEsU6p service=login

image

Проверка через SSH и WinBox

Проверка подключения через SSH и экспорт конфигурации.

image

И проверяем авторизацию в Winbox.

image

Как видим, в активных пользователях висят системный admin и оба подключения доменного юзера с доступом для чтения через SSH и Winbox.

image

Всё работает.
Спасибо за внимание.

Комментарии (14)


  1. Daar
    26.11.2017 09:16

    Спасибо!
    Недавно думал как бы прикрутить Микротик к Мелкомягкому радиусу.


  1. AcidVenom
    26.11.2017 18:26

    А почему ограничиваете только логином? VPN не используете?


    1. Alx1 Автор
      27.11.2017 06:39

      В данном примере описал только о способе доступа на устройство. Использовать radius для авторизации пользователей в сети, конечно, удобно, но, согласитесь, это большая тема для серии отдельных статей.


  1. Cayp
    27.11.2017 06:21

    В статье минимум три вредных совета(антипаттерна) связанных с безопасностью и из-за них я бы не рекомендовал использовать её как руководство в промышленной эксплуатации чего-то важного.

    1. Использование небезопасных методов аутентификации (PAP) (нет шифрования)

    2. Store passwords using reversible encryption
    (Storing passwords using reversible encryption is essentially the same as storing clear-text versions of the passwords. For this reason, this policy should never be enabled unless application requirements outweigh the need to protect password information.) (в примере это сделано для учётной записи администратора(!!!))

    3. Всё это происходит с использованием группы Domain Admins (следует выделять отдельные группы и учётки для администрирования в разных «зонах»)

    Т.е. уровень безопасности до применения этой статьи был выше, чем после.

    Буду признателен автору, если он найдёт способ достигнуть поставленной задачи не понижая уровня безопасности и обновит эту статью пока кто нибудь не использовал её как руководство.


    1. Alx1 Автор
      27.11.2017 06:32

      Эта статья не про безопасность, не best practices. Можно и нужно подстраивать под себя любое описание, не копировать слепо. Я осознаю, что с точки зрения безопасности там есть жуткие минусы. Если описать все способы защиты, то получится статья о совсем другом.


      1. Faight
        27.11.2017 10:43

        Очень хотелось бы видеть и про безопасность. Можно было бы посвятить этому вторую статью в цикле, это бы отлично дополнило представленный материал! Так же могу подсказать идею для статьи, разделить средствами NPS политик Login, VPN Access, а так же Login и Wi-Fi auth. Это бы вписалось в концепцию безопасности.
        Безопасность очень важный аспект, но ее слишком часто опускают для упрощения. В итоге получается интересная статья, но не применимая в боевых условиях.


        1. Alx1 Автор
          27.11.2017 13:46

          Почему бы и нет. Постараюсь поглубже разобраться в мелочах и составить подробный материал по безопасности.


      1. Cayp
        27.11.2017 11:53

        Зануда mode on.

        В заголовке статьи есть «авторизация».
        Authorization is the function of specifying access rights/privileges to resources related to information security and computer security in general and to access control in particular.

        Как бы вы не хотели, но эта статья про безопасность. Даже если это слово из заголовка убрать.


        1. Alx1 Автор
          27.11.2017 14:27

          Хочет читающий того или нет, но он должен понимать что делает. Нельзя написать универсальную инструкцию для любой архитектуры и топологии. У многих разный баланс безопасность/удобство, поэтому я не затрагиваю эту тему. Мне интересно написать статью со своими идеями и опытом касательно этой сложной области и узнать мнение других людей. Просто не вижу целесообразным тут обсуждать то, что я нарочно не учел чтобы описание выглядело проще.
          Я согласен с вашими замечаниями белее чем и то, как я настроил не должно быть в продакшене, нужно подстроить под свою контору. В следующей статье я постараюсь описать свои взгляды и некоторые практики как это можно сделать безопаснее.


    1. Pave1
      27.11.2017 09:49

      К первому пункту стоит отметить, что всё же передаваемый пароль шифруется средствами радиуса. Т.е. не так уж все плохо.


      1. hitry
        27.11.2017 10:14

        а есть ли решение для второго пункта?


        1. Faight
          27.11.2017 10:40

          Есть, не использовать Winbox для которого это требуется. У него слишком много минусов, например, пароли локально хранит в незащифрованном виде.

          HTTPS web-interface, ssh более чем достаточно для управления.



  1. mihmig
    28.11.2017 11:24

    Почему бы не использовать в качестве RADIUS-сервера сам микротик (User Manager)?