Home Без рубрики Настройка 2FA для Winbox — Mkrotik с помощью Мультифактор

Настройка 2FA для Winbox — Mkrotik с помощью Мультифактор

by admin

Ранее мы настроили 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 , и причина

You may also like

Leave a Comment