План:
Установка роли NPS;Добавление RADIUS клиента;
Создание политики подключения;
Создание политики сети;
Добавление сервера авторизации на MikroTik;
Проверка через SSH и WinBox.
Установка роли 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.
Всё работает.
Спасибо за внимание.
Комментарии (14)
AcidVenom
26.11.2017 18:26А почему ограничиваете только логином? VPN не используете?
Alx1 Автор
27.11.2017 06:39В данном примере описал только о способе доступа на устройство. Использовать radius для авторизации пользователей в сети, конечно, удобно, но, согласитесь, это большая тема для серии отдельных статей.
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 (следует выделять отдельные группы и учётки для администрирования в разных «зонах»)
Т.е. уровень безопасности до применения этой статьи был выше, чем после.
Буду признателен автору, если он найдёт способ достигнуть поставленной задачи не понижая уровня безопасности и обновит эту статью пока кто нибудь не использовал её как руководство.Alx1 Автор
27.11.2017 06:32Эта статья не про безопасность, не best practices. Можно и нужно подстраивать под себя любое описание, не копировать слепо. Я осознаю, что с точки зрения безопасности там есть жуткие минусы. Если описать все способы защиты, то получится статья о совсем другом.
Faight
27.11.2017 10:43Очень хотелось бы видеть и про безопасность. Можно было бы посвятить этому вторую статью в цикле, это бы отлично дополнило представленный материал! Так же могу подсказать идею для статьи, разделить средствами NPS политик Login, VPN Access, а так же Login и Wi-Fi auth. Это бы вписалось в концепцию безопасности.
Безопасность очень важный аспект, но ее слишком часто опускают для упрощения. В итоге получается интересная статья, но не применимая в боевых условиях.Alx1 Автор
27.11.2017 13:46Почему бы и нет. Постараюсь поглубже разобраться в мелочах и составить подробный материал по безопасности.
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.
Как бы вы не хотели, но эта статья про безопасность. Даже если это слово из заголовка убрать.Alx1 Автор
27.11.2017 14:27Хочет читающий того или нет, но он должен понимать что делает. Нельзя написать универсальную инструкцию для любой архитектуры и топологии. У многих разный баланс безопасность/удобство, поэтому я не затрагиваю эту тему. Мне интересно написать статью со своими идеями и опытом касательно этой сложной области и узнать мнение других людей. Просто не вижу целесообразным тут обсуждать то, что я нарочно не учел чтобы описание выглядело проще.
Я согласен с вашими замечаниями белее чем и то, как я настроил не должно быть в продакшене, нужно подстроить под свою контору. В следующей статье я постараюсь описать свои взгляды и некоторые практики как это можно сделать безопаснее.
Pave1
27.11.2017 09:49К первому пункту стоит отметить, что всё же передаваемый пароль шифруется средствами радиуса. Т.е. не так уж все плохо.
Cayp
27.11.2017 12:05Но надо быть очень аккуратным.
RADIUS Protocol Security and Best Practices.
…
The only acceptable usage of PAP for secure connections is with OTP and Token Card authentication, where the password has high entropy and changes for each use. However, enabling PAP allows misconfigured access clients to negotiate PAP with their access servers and send unprotected user account passwords.
Да и не всё спокойно в датском королевстве.
How secure is the radius encryption
mihmig
28.11.2017 11:24Почему бы не использовать в качестве RADIUS-сервера сам микротик (User Manager)?
Daar
Спасибо!
Недавно думал как бы прикрутить Микротик к Мелкомягкому радиусу.