Оглавление
Ранее мы настроили NPS сервер и настроили по Active Directory вход а Winbox . Давайте теперь настоим второй фактор Multifactor как дополнительную защиту для входа в устройство.
Установка Radius Adapter
Устанавливаем по инструкции
https://multifactor.ru/docs/radius-adapter/linux/
https://github.com/MultifactorLab/multifactor-radius-adapter
Я буду устанавливать на Ubuntu 18.04.6 LTS (Bionic Beaver)
Установка пакетов для работы Radius Adapter
cd /tmp
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y aspnetcore-runtime-6.0
ln -s /usr/lib/x86_64-linux-gnu/libldap-2.4.so.2 /usr/lib/x86_64-linux-gnu/libldap.so.2
apt-get install unzip
#############
cd /tmp
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y apt-transport-https
rm packages-microsoft-prod.deb
sudo apt-get install -y dotnet-sdk-8.0
ln -s /usr/lib/x86_64-linux-gnu/libldap-2.4.so.2 /usr/lib/x86_64-linux-gnu/libldap.so.2
apt-get install unzip
Устанавливаем MultiFactor Radius Adapter
Создаём рабочие директории:
sudo mkdir /opt/multifactor /opt/multifactor/radius /opt/multifactor/radius/logs
sudo wget https://github.com/MultifactorLab/multifactor-radius-adapter/releases/latest/download/release_linux_x64.zip
sudo unzip release_linux_x64.zip -d /opt/multifactor/radius
Назначаем права пользователю mfa
sudo useradd -r mfa
sudo chown -R mfa: /opt/multifactor/radius/
sudo chmod -R 700 /opt/multifactor/radius/
Перейдем в директорию и проверим добавились ли права

Все конфиги и файлы должны быть назначены на этого пользователя , если вы копируйте конфиги проверяйте права командой
ls -l
Настраиваем автозапуск службы:
sudo nano /etc/systemd/system/multifactor-radius.service
[Unit]
Description=Multifactor Radius Adapter
[Service]
WorkingDirectory=/opt/multifactor/radius/
ExecStart=/usr/bin/dotnet /opt/multifactor/radius/multifactor-radius-adapter.dll
Restart=always
# Restart service after 10 seconds if the service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=multifactor-radius
User=mfa
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
# How many seconds to wait for the app to shut down after it receives the initial interrupt signal.
# If the app doesn't shut down in this period, SIGKILL is issued to terminate the app.
# The default timeout for most distributions is 90 seconds.
TimeoutStopSec=30
[Install]
WantedBy=multi-user.target
sudo systemctl enable multifactor-radius
Регистрация ресурса на Multifactor



Мы получили NAS Identifier и Shared Secrer , далее мы его будем использовать в конфигурации
Конфигурация
Параметры работы компонента хранятся в файле /opt/multifactor/radius/clients/ .
Копируем дефолтный конфиг и начинаем его редактировать
cd /opt/multifactor/radius/clients/
cp cisco\ with\ nps.config.template cisco\ with\ nps.config
sudo chown -R mfa: /opt/multifactor/radius/
sudo chmod -R 700 /opt/multifactor/radius/
nano cisco\ with\ nps.config
<?xml version="1.0" encoding="utf-8"?> <configuration>
<configSections>
<section name="RadiusReply" type="MultiFactor.Radius.Adapter.RadiusReplyAttributesSection, multifactor-radius-adapter" />
</configSections>
<appSettings>
<!-- cisco asa ip -->
<add key="radius-client-ip" value="192.168.1.0/24"/>
<!-- shared secret between this service and cisco -->
<add key="radius-shared-secret" value="12345"/>
<!--One of: ActiveDirectory, ADLDS, Radius, None-->
<add key="first-factor-authentication-source" value="RADIUS"/>
<!-- Адрес, с которого адаптер будет обращаться в NPS -->
<add key="adapter-client-endpoint" value="192.168.1.40"/>
<!-- Адрес и порт NPS -->
<add key="nps-server-endpoint" value="192.168.1.201:1812"/>
<!-- Параметр NAS-Identifier для подключения к API Мультифактора - из личного кабинета -->
<add key="multifactor-nas-identifier" value="rs_08fa2d52e3602431ed1153c8a77b2f5"/>
<!-- Параметр Shared Secret для подключения к API Мультифактора - из личного кабинета -->
<add key="multifactor-shared-secret" value="1bf787db83354sd4gasafs22ad4a11979f"/>
</appSettings>
<RadiusReply>
<Attributes>
<add name="Class" from="memberOf" />
</Attributes>
</RadiusReply>
</configuration>
Добавляем наш Raduis на NPS
Добавляем Клиента

Создаем политику



Запуск службы
После настройки конфигурации запускаем компонент: Всегда после изменения конфигурации перезагружаем службу
sudo systemctl stop multifactor-radius
sudo systemctl daemon-reload
sudo systemctl start multifactor-radius
sudo systemctl status multifactor-radius
Тестовое подключение
Подключаемся к Mikrotik


Лог на NPS

Лог на Mikrotik

Траблшутинг
/usr/bin/dotnet /opt/multifactor/radius/multifactor-radius-adapter.dll
less /var/log/syslog
journalctl -fu multifactor-radius
Открываем 2 окна ssh
в первом запускаем tail -f /opt/multifactor/radius/logs/*
во втором перезапускаем службы
sudo systemctl stop multifactor-radius
sudo systemctl daemon-reload
sudo systemctl start multifactor-radius
sudo systemctl status multifactor-radius
Подождите пока служба попытается еще раз запустится и напишет в лог где проблема в конфигурации либо запустите ее с соседнего терминала .
Вот пример лога из за которого не запускалась служба
2024-11-19 07:57:51.781 +00:00 [WRN] The setting 'use-upn-as-identity' is deprecated, use 'use-attribute-as-identity' instead
2024-11-19 07:57:51.850 +00:00 [ERR] Unable to start: Configuration error: 'service-account-user' and 'service-account-password' elements not found. Please check configuration of client 'cisco with ad'.
System.Exception: Configuration error: 'service-account-user' and 'service-account-password' elements not found. Please check configuration of client 'cisco with ad'.
at
При выводе статуса sudo systemctl status multifactor-radius , служба activating (auto-restart) этот состояние гооворит что сервис не работает! проблема в конфигурационном файле
root@radius:/opt/multifactor/radius/clients# sudo systemctl status multifactor-radius
● multifactor-radius.service - Multifactor Radius Adapter
Loaded: loaded (/etc/systemd/system/multifactor-radius.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) since Tue 2024-11-19 13:02:34 UTC; 427ms ago
Process: 9349 ExecStart=/usr/bin/dotnet /opt/multifactor/radius/multifactor-radius-adapter.dll (code=exited, status=0/SUCCESS)
Main PID: 9349 (code=exited, status=0/SUCCESS)
root@radius:/opt/multifactor/radius/clients#
Смотрим лог
Исполняем команду /usr/bin/dotnet /opt/multifactor/radius/multifactor-radius-adapter.dll
Если ошибок нету переходим к
Открываем 2 окна ssh
в первом запускаем tail -f /opt/multifactor/radius/logs/*
во втором перезапускаем службы
sudo systemctl stop multifactor-radius
sudo systemctl daemon-reload
sudo systemctl start multifactor-radius
sudo systemctl status multifactor-radius
less /var/log/syslog
journalctl -fu multifactor-radius
Нам вышла ошибка проблема в конфигурации файла cisco with nps , и причина
