mikrotik-wiki.ru
Главная
Загрузка...

802.1X и RADIUS аутентификация на MikroTik

RouterOS 7.xIP12 мин530 мар. 2026 г.
TelegramVK

802.1X — стандарт контроля доступа к сети на уровне порта. В корпоративных сетях это основной механизм, не позволяющий неавторизованным устройствам получить доступ к ресурсам — будь то проводное подключение через Ethernet-коммутатор или Wi-Fi с WPA2/WPA3 Enterprise. MikroTik RouterOS поддерживает 802.1X как в роли аутентификатора (Authenticator) на проводных и беспроводных интерфейсах, так и в роли RADIUS-клиента для взаимодействия с внешним сервером аутентификации. В этом руководстве разберём архитектуру 802.1X, настроим проводную и беспроводную аутентификацию, подключим FreeRADIUS и встроенный User Manager v5, рассмотрим различные EAP-методы и диагностику.

Описание

Зачем нужен 802.1X

В типичной офисной сети без 802.1X любой, кто подключит кабель к розетке или узнает пароль Wi-Fi, получает полный доступ к сети. Это создаёт серьёзные риски:

  • Несанкционированный доступ — посторонние устройства в корпоративной сети
  • Отсутствие аудита — невозможно определить, кто именно подключён
  • Единый пароль Wi-Fi — компрометация одного устройства = компрометация всей сети
  • Flat network — без сегментации все устройства видят друг друга

802.1X решает эти проблемы:

Без 802.1XС 802.1X
Подключил кабель — в сетиПодключил кабель — нужны учётные данные
Один пароль Wi-Fi на всехИндивидуальный логин/пароль или сертификат
Нет информации о клиентеRADIUS знает: кто, откуда, когда
Все в одном VLANДинамическое назначение VLAN по пользователю
Гости вместе с сотрудникамиРазные профили: сотрудники, гости, IoT

Архитектура 802.1X

Система состоит из трёх компонентов:

  1. Supplicant (Клиент) — устройство, запрашивающее доступ. Встроен в Windows, macOS, Linux, iOS, Android
  2. Authenticator (Аутентификатор) — сетевое устройство (коммутатор, точка доступа), контролирующее доступ к порту. В нашем случае — MikroTik
  3. Authentication Server — RADIUS-сервер, хранящий базу пользователей и принимающий решение о допуске. FreeRADIUS, NPS (Windows), или User Manager v5 (встроенный в RouterOS)

Процесс аутентификации:

code
Supplicant              Authenticator (MikroTik)         RADIUS Server
    |                          |                              |
    |--- EAPOL-Start -------->|                              |
    |<-- EAP-Request/Id ------|                              |
    |--- EAP-Response/Id ---->|                              |
    |                          |--- Access-Request --------->|
    |                          |<-- Access-Challenge ---------|
    |<-- EAP-Request ----------|                              |
    |--- EAP-Response ------->|                              |
    |                          |--- Access-Request --------->|
    |                          |<-- Access-Accept ------------|
    |<-- EAP-Success ----------|                              |
    |                          |                              |
    [Порт открыт, доступ получен]

До успешной аутентификации порт коммутатора пропускает только EAPOL-фреймы (EAP over LAN, Ethertype 0x888E). Весь остальной трафик блокируется.

EAP-методы

EAP (Extensible Authentication Protocol) — фреймворк, внутри которого работают конкретные методы аутентификации:

МетодАутентификация клиентаАутентификация сервераБезопасностьСложность
PEAP (MSCHAPv2)Логин/парольСертификат сервераВысокаяСредняя
EAP-TLSСертификат клиентаСертификат сервераМаксимальнаяВысокая
EAP-TTLS/PAPЛогин/парольСертификат сервераВысокаяСредняя
EAP-TTLS/MSCHAPv2Логин/парольСертификат сервераВысокаяСредняя
EAP-SIMSIM-картаОператорВысокаяСпецифичная

Рекомендации по выбору:

  • Сотрудники с корпоративными ноутбуками — EAP-TLS (сертификаты), максимальная безопасность
  • Сотрудники с личными устройствами (BYOD) — PEAP (MSCHAPv2), логин/пароль из Active Directory
  • Гости — PEAP или Captive Portal (Hotspot), временные учётные данные

Настройка

Подготовка: RADIUS-сервер

Перед настройкой 802.1X на MikroTik необходим RADIUS-сервер. Есть два варианта:

  1. FreeRADIUS — полноценный RADIUS-сервер на Linux, максимальная гибкость
  2. User Manager v5 — встроенный в RouterOS 7, проще в настройке

В этом разделе покажем настройку с FreeRADIUS. User Manager v5 описан в отдельном руководстве.

Установка FreeRADIUS на Ubuntu

bash
sudo apt update && sudo apt install -y freeradius freeradius-utils

# Проверяем запуск
sudo systemctl status freeradius

Настройка клиента (MikroTik) в FreeRADIUS

Отредактируйте файл /etc/freeradius/3.0/clients.conf:

code
client mikrotik-switch {
    ipaddr = 203.0.113.1
    secret = MyR4d1usS3cret!
    shortname = mikrotik
    nastype = other
}

Добавление тестового пользователя

В файле /etc/freeradius/3.0/users:

code
testuser Cleartext-Password := "TestPass123!"
    Tunnel-Type = VLAN,
    Tunnel-Medium-Type = IEEE-802,
    Tunnel-Private-Group-Id = 10

Этот пользователь при аутентификации будет помещён в VLAN 10.

Сертификат сервера для EAP

FreeRADIUS использует сертификат для EAP-методов (PEAP, EAP-TLS). По умолчанию при установке создаются самоподписанные сертификаты в /etc/freeradius/3.0/certs/. Для production замените их на сертификаты вашего корпоративного CA.

Перезапуск FreeRADIUS:

bash
sudo systemctl restart freeradius
# Для отладки запуск в режиме debug:
sudo freeradius -X

Настройка RADIUS-клиента на MikroTik

Добавляем RADIUS-сервер на MikroTik:

[admin@MikroTik] >
/radius/add service=dot1x address=10.0.0.100 secret="MyR4d1usS3cret!" \
  timeout=3s authentication-port=1812 accounting-port=1813 \
  comment="FreeRADIUS server"

Проверяем настройки:

[admin@MikroTik] >
/radius/print

Параметры:

ПараметрЗначениеОписание
servicedot1xТип сервиса (dot1x, hotspot, ppp, login, wireless)
address10.0.0.100IP-адрес RADIUS-сервера
secretMyR4d1usS3cret!Общий секрет (shared secret) — должен совпадать на обеих сторонах
timeout3sТаймаут ожидания ответа
authentication-port1812Порт аутентификации (стандартный)
accounting-port1813Порт учёта (accounting)

802.1X на Ethernet-портах (проводная аутентификация)

Включение 802.1X Authenticator

Настраиваем 802.1X на портах коммутатора. Допустим, порты ether2-ether5 — для сотрудников, а ether6-ether8 — для гостей:

[admin@MikroTik] >
# Включаем dot1x на портах для сотрудников
/interface/dot1x/server/add interface=ether2 auth-types=eap-tls,eap-peap \
  accounting=yes interim-update=5m reauth-period=3600s \
  comment="Employee port"

/interface/dot1x/server/add interface=ether3 auth-types=eap-tls,eap-peap \
  accounting=yes interim-update=5m reauth-period=3600s \
  comment="Employee port"

/interface/dot1x/server/add interface=ether4 auth-types=eap-tls,eap-peap \
  accounting=yes interim-update=5m reauth-period=3600s \
  comment="Employee port"

/interface/dot1x/server/add interface=ether5 auth-types=eap-tls,eap-peap \
  accounting=yes interim-update=5m reauth-period=3600s \
  comment="Employee port"

Параметры:

  • auth-types — разрешённые EAP-методы. Можно указать несколько через запятую
  • accounting — отправка учётных данных на RADIUS (кто подключён, сколько трафика)
  • interim-update — интервал промежуточных отчётов accounting
  • reauth-period — период повторной аутентификации (3600с = 1 час)

Guest VLAN для неаутентифицированных устройств

Устройства без 802.1X supplicant (принтеры, телефоны) не смогут аутентифицироваться. Для них настроим Guest VLAN:

[admin@MikroTik] >
/interface/dot1x/server/set [find where interface=ether2] \
  guest-vlan-id=99 auth-timeout=30s

Если устройство не отвечает на EAP-запросы в течение auth-timeout, порт переключается в Guest VLAN (ID 99). Это позволяет принтерам и другим «немым» устройствам получить базовую сетевость.

Динамическое назначение VLAN через RADIUS

RADIUS-сервер может указать, в какой VLAN поместить пользователя. Для этого сервер должен вернуть атрибуты:

  • Tunnel-Type = VLAN
  • Tunnel-Medium-Type = IEEE-802
  • Tunnel-Private-Group-Id = <VLAN_ID>

На стороне MikroTik VLAN-интерфейсы должны быть созданы заранее:

[admin@MikroTik] >
# Создаём VLAN-интерфейсы на bridge
/interface/vlan/add name=vlan10-employees interface=bridge vlan-id=10
/interface/vlan/add name=vlan20-guests interface=bridge vlan-id=20
/interface/vlan/add name=vlan99-quarantine interface=bridge vlan-id=99

# Назначаем IP-адреса
/ip/address/add address=10.10.10.1/24 interface=vlan10-employees
/ip/address/add address=10.20.20.1/24 interface=vlan20-guests
/ip/address/add address=10.99.99.1/24 interface=vlan99-quarantine

# DHCP-серверы для каждого VLAN
/ip/pool/add name=pool-vlan10 ranges=10.10.10.100-10.10.10.254
/ip/pool/add name=pool-vlan20 ranges=10.20.20.100-10.20.20.254
/ip/pool/add name=pool-vlan99 ranges=10.99.99.100-10.99.99.254

/ip/dhcp-server/add name=dhcp-vlan10 interface=vlan10-employees address-pool=pool-vlan10
/ip/dhcp-server/add name=dhcp-vlan20 interface=vlan20-guests address-pool=pool-vlan20
/ip/dhcp-server/add name=dhcp-vlan99 interface=vlan99-quarantine address-pool=pool-vlan99

/ip/dhcp-server/network/add address=10.10.10.0/24 gateway=10.10.10.1 dns-server=10.10.10.1
/ip/dhcp-server/network/add address=10.20.20.0/24 gateway=10.20.20.1 dns-server=10.20.20.1
/ip/dhcp-server/network/add address=10.99.99.0/24 gateway=10.99.99.1 dns-server=10.99.99.1

Настройка VLAN filtering на bridge:

[admin@MikroTik] >
/interface/bridge/set bridge vlan-filtering=yes

/interface/bridge/vlan/add bridge=bridge tagged=bridge vlan-ids=10
/interface/bridge/vlan/add bridge=bridge tagged=bridge vlan-ids=20
/interface/bridge/vlan/add bridge=bridge tagged=bridge vlan-ids=99

# Порты с dot1x — untagged, VLAN назначается динамически
/interface/bridge/port/set [find where interface=ether2] pvid=1
/interface/bridge/port/set [find where interface=ether3] pvid=1

WPA2/WPA3 Enterprise для Wi-Fi (EAP)

Для беспроводных клиентов 802.1X интегрируется через WPA2/WPA3 Enterprise. MikroTik выступает одновременно как точка доступа и 802.1X Authenticator.

Настройка Wi-Fi с WPA2 Enterprise

[admin@MikroTik] >
# Создаём Security Profile с EAP
/interface/wifi/security/add name=sec-enterprise \
  authentication-types=wpa2-eap,wpa3-eap \
  eap-methods=eap-tls,passthrough \
  tls-mode=no-certificates

# Создаём конфигурацию Wi-Fi
/interface/wifi/configuration/add name=cfg-corporate \
  ssid="Corp-WiFi" security=sec-enterprise \
  country="Russia"

# Применяем к интерфейсу
/interface/wifi/set wifi1 configuration=cfg-corporate disabled=no

При eap-methods=passthrough MikroTik пересылает все EAP-сообщения на RADIUS-сервер без локальной обработки. Это наиболее гибкий вариант — RADIUS-сервер решает, какой EAP-метод использовать.

Отдельный SSID для гостей

[admin@MikroTik] >
# Гостевой Security Profile — можно PEAP с простыми учётными данными
/interface/wifi/security/add name=sec-guest \
  authentication-types=wpa2-eap \
  eap-methods=passthrough

/interface/wifi/configuration/add name=cfg-guest \
  ssid="Guest-WiFi" security=sec-guest \
  country="Russia"

# Virtual AP на том же радио
/interface/wifi/add name=wifi1-guest master-interface=wifi1 \
  configuration=cfg-guest disabled=no

RADIUS-сервер возвращает разные VLAN для сотрудников и гостей на основе учётных данных.

Пример: сотрудники по сертификатам, гости по логину

Комбинируем оба метода аутентификации на одном RADIUS-сервере.

Конфигурация FreeRADIUS для разных групп

В файле /etc/freeradius/3.0/users:

[admin@MikroTik] >
# Сотрудники по сертификатам (EAP-TLS) — в VLAN 10
DEFAULT EAP-Type == TLS
    Tunnel-Type = VLAN,
    Tunnel-Medium-Type = IEEE-802,
    Tunnel-Private-Group-Id = 10,
    Reply-Message = "Welcome, employee"

# Гости по логину/паролю (PEAP) — в VLAN 20
guest01 Cleartext-Password := "GuestPass2026!"
    Tunnel-Type = VLAN,
    Tunnel-Medium-Type = IEEE-802,
    Tunnel-Private-Group-Id = 20,
    Session-Timeout = 28800,
    Reply-Message = "Welcome, guest. Session limit: 8 hours"

guest02 Cleartext-Password := "GuestPass2026!"
    Tunnel-Type = VLAN,
    Tunnel-Medium-Type = IEEE-802,
    Tunnel-Private-Group-Id = 20,
    Session-Timeout = 28800

Выдача клиентских сертификатов для EAP-TLS

Создаём сертификаты на MikroTik (или на внешнем CA):

[admin@MikroTik] >
# Корневой CA
/certificate/add name=corp-ca common-name="Corp CA" \
  key-size=4096 days-valid=3650 key-usage=key-cert-sign,crl-sign
/certificate/sign corp-ca

# Сертификат RADIUS-сервера (если RADIUS на MikroTik User Manager)
/certificate/add name=radius-cert common-name="radius.corp.local" \
  key-size=2048 days-valid=1825 key-usage=digital-signature,key-encipherment,tls-server
/certificate/sign radius-cert ca=corp-ca

# Клиентский сертификат для сотрудника
/certificate/add name=employee-ivanov common-name="ivanov@corp.local" \
  key-size=2048 days-valid=365 key-usage=tls-client
/certificate/sign employee-ivanov ca=corp-ca

# Экспорт для установки на ноутбук сотрудника
/certificate/export-certificate employee-ivanov \
  file-name=ivanov-cert type=pkcs12 export-passphrase="TempPass123"

Файл ivanov-cert.p12 передаётся сотруднику для установки на устройство. После установки сертификата supplicant Windows/macOS автоматически использует его для EAP-TLS.

Интеграция с User Manager v5 (встроенный RADIUS)

Если не хотите разворачивать внешний FreeRADIUS, можно использовать User Manager v5, встроенный в RouterOS 7:

[admin@MikroTik] >
# Устанавливаем пакет (если не установлен)
# Загрузите user-manager-7.20.npk и перезагрузите

# Включаем User Manager
/user-manager/set enabled=yes

# Добавляем MikroTik как NAS-клиент
/user-manager/router/add name=local-switch address=127.0.0.1 \
  shared-secret="LocalSecret123"

# На самом MikroTik — RADIUS указывает на себя
/radius/add service=dot1x address=127.0.0.1 secret="LocalSecret123"

# Создаём профиль для сотрудников
/user-manager/profile/add name=employee name-for-users="Employee Access" \
  validity=unlimited

# Создаём пользователей
/user-manager/user/add name=ivanov password="SecurePass1!" group=employee
/user-manager/user/add name=petrov password="SecurePass2!" group=employee

Подробнее о User Manager v5 — в отдельном руководстве.

Проверка

Проверка статуса 802.1X на портах

[admin@MikroTik] >
/interface/dot1x/server/print detail

Ключевые поля:

ПолеОписание
statusauthorized — клиент аутентифицирован, unauthorized — нет
client-macMAC-адрес подключённого устройства
session-idИдентификатор RADIUS-сессии
eap-methodИспользуемый метод (PEAP, TLS, TTLS)
vlan-idНазначенный VLAN (если динамический)

Мониторинг активных сессий

[admin@MikroTik] >
# Все dot1x сессии
/interface/dot1x/server/state/print

# Подробности по конкретному порту
/interface/dot1x/server/state/print where interface=ether2

Проверка RADIUS-взаимодействия

[admin@MikroTik] >
# Статистика RADIUS
/radius/print detail

# Лог RADIUS-запросов
/log/print where topics~"radius"

Включите расширенное логирование для отладки:

[admin@MikroTik] >
/system/logging/add topics=radius,dot1x,debug action=memory

Тестирование аутентификации с Linux

На Linux-клиенте для тестирования используйте wpa_supplicant или eapol_test (входит в пакет eapoltest или freeradius-utils):

[admin@MikroTik] >
# Установка
sudo apt install -y eapoltest

# Тест PEAP аутентификации
cat > peap-test.conf << 'EOF'
network={
    ssid="Corp-WiFi"
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="testuser"
    password="TestPass123!"
    phase2="auth=MSCHAPV2"
}
EOF

eapol_test -c peap-test.conf -a 10.0.0.100 -s "MyR4d1usS3cret!"

Успешная аутентификация покажет SUCCESS в выводе.

Проверка на Windows

На Windows 10/11 настройка 802.1X supplicant:

  1. Для проводного подключения: Службы → "Wired AutoConfig" → запустить и включить автозапуск
  2. Свойства сетевого адаптера → вкладка "Проверка подлинности" → включить IEEE 802.1X → выбрать метод (PEAP или EAP-TLS)
  3. Настроить параметры EAP (выбрать корневой CA, ввести учётные данные)

Диагностика на Windows:

code
netsh lan show interfaces
netsh lan show profiles
# Лог событий: Event Viewer → Windows Logs → Security → Event ID 5632 (успех) или 5633 (отказ)

Типичные ошибки

Ошибка: Shared secret mismatch

Симптомы: В логе MikroTik — RADIUS server is not responding или bad authenticator. В логе FreeRADIUS — Shared secret is incorrect.

Причина: Shared secret на MikroTik и RADIUS-сервере не совпадают. Даже один лишний пробел или различие в регистре приведёт к ошибке.

Решение:

[admin@MikroTik] >
# Проверяем секрет на MikroTik
/radius/print detail

# Устанавливаем заново
/radius/set [find] secret="MyR4d1usS3cret!"

На FreeRADIUS проверьте файл clients.conf — значение secret должно быть идентичным. Секрет чувствителен к регистру и пробелам.

Ошибка: RADIUS timeout

Симптомы: В логе MikroTik — timeout или RADIUS server is not responding. Клиент не может аутентифицироваться.

Причина: RADIUS-сервер недоступен — неправильный IP, firewall блокирует порты 1812/1813 (UDP), сервис не запущен.

Решение:

[admin@MikroTik] >
# Проверяем доступность RADIUS-сервера
/ping 10.0.0.100 count=4

# Проверяем настройки
/radius/print

# Увеличиваем таймаут
/radius/set [find] timeout=10s

На RADIUS-сервере:

[admin@MikroTik] >
# Проверяем, что сервис запущен
sudo systemctl status freeradius

# Проверяем, что порты слушаются
sudo ss -ulnp | grep -E "1812|1813"

# Проверяем firewall
sudo ufw status
sudo ufw allow 1812/udp
sudo ufw allow 1813/udp

Ошибка: Certificate issues (EAP-TLS)

Симптомы: Клиент отклоняет подключение. В логе FreeRADIUS — TLS Alert: fatal:certificate_unknown или TLS Alert: fatal:unknown_ca.

Причина: Клиент не доверяет CA-сертификату RADIUS-сервера, или RADIUS не доверяет клиентскому сертификату.

Решение:

  1. Убедитесь, что корневой CA-сертификат установлен на клиентском устройстве как доверенный
  2. Проверьте, что клиентский сертификат подписан тем же CA, который настроен в FreeRADIUS
  3. Проверьте срок действия всех сертификатов
[admin@MikroTik] >
# Проверка сертификатов на MikroTik
/certificate/print detail

На клиенте Windows: certmgr.msc → Trusted Root Certification Authorities → проверьте наличие корневого CA.

Ошибка: клиент попадает в Guest VLAN вместо основного

Симптомы: Устройство с корректными учётными данными попадает в Guest VLAN. В логах нет ошибок RADIUS.

Причина: Supplicant на клиенте не настроен или не запущен. Без EAPOL-ответов MikroTik считает устройство «немым» и помещает в Guest VLAN после auth-timeout.

Решение:

На Windows убедитесь, что:

  1. Служба "Wired AutoConfig" запущена: services.msc → найти → запустить
  2. В свойствах адаптера включена аутентификация IEEE 802.1X
[admin@MikroTik] >
# На MikroTik — проверяем, что dot1x видит EAPOL от клиента
/interface/dot1x/server/state/print
# Если status=unauthorized и client-mac пуст — supplicant не отправляет EAPOL

Ошибка: VLAN не назначается динамически

Симптомы: Аутентификация проходит успешно, но клиент остаётся в PVID (default VLAN) вместо назначенного RADIUS.

Причина: На bridge не настроен VLAN filtering, или VLAN не добавлен в таблицу bridge VLAN.

Решение:

[admin@MikroTik] >
# Включаем VLAN filtering
/interface/bridge/set bridge vlan-filtering=yes

# Добавляем все используемые VLAN
/interface/bridge/vlan/print
# Убедитесь, что VLAN 10, 20, 99 присутствуют с tagged=bridge

# Проверяем настройки порта
/interface/bridge/port/print detail where interface=ether2

Ошибка: 802.1X не работает на bridge-портах

Симптомы: Dot1x настроен на интерфейсе, но EAPOL-фреймы не обрабатываются.

Причина: В RouterOS 7 dot1x работает на bridge-портах, но необходимо правильно сконфигурировать bridge.

Решение:

[admin@MikroTik] >
# Убедитесь, что порт добавлен в bridge
/interface/bridge/port/print where interface=ether2

# Dot1x должен быть настроен на физическом интерфейсе, не на bridge
/interface/dot1x/server/print
# interface должен быть ether2, а не bridge

Рекомендации по внедрению 802.1X

  1. Начинайте с мониторинга — включите 802.1X в режиме auth-types= с Guest VLAN, чтобы увидеть, какие устройства поддерживают 802.1X, а какие нет
  2. Настройте Guest VLAN — для устройств без supplicant (принтеры, IP-телефоны, IoT)
  3. Используйте PEAP для начала — проще в развёртывании, чем EAP-TLS
  4. Переходите на EAP-TLS — для критичных сегментов (финансы, серверные порты)
  5. Ведите учёт — включайте RADIUS Accounting для аудита подключений
  6. Резервный RADIUS — добавьте второй RADIUS-сервер для отказоустойчивости:
[admin@MikroTik] >
/radius/add service=dot1x address=10.0.0.101 secret="MyR4d1usS3cret!" \
  timeout=3s comment="Backup RADIUS"
  1. Мониторьте логи — настройте отправку syslog с MikroTik и RADIUS-сервера на центральный сервер логирования

Правильно настроенный 802.1X превращает сеть из «плоской и открытой» в контролируемую среду, где каждое подключение идентифицировано, каждое устройство находится в правильном сегменте, а несанкционированный доступ блокируется на уровне порта коммутатора.

[admin@MikroTik] >
Supplicant              Authenticator (MikroTik)         RADIUS Server
    |                          |                              |
    |--- EAPOL-Start -------->|                              |
    |<-- EAP-Request/Id ------|                              |
    |--- EAP-Response/Id ---->|                              |
    |                          |--- Access-Request --------->|
    |                          |<-- Access-Challenge ---------|
    |<-- EAP-Request ----------|                              |
    |--- EAP-Response ------->|                              |
    |                          |--- Access-Request --------->|
    |                          |<-- Access-Accept ------------|
    |<-- EAP-Success ----------|                              |
    |                          |                              |
    [Порт открыт, доступ получен]
sudo apt update && sudo apt install -y freeradius freeradius-utils

# Проверяем запуск
sudo systemctl status freeradius
client mikrotik-switch {
    ipaddr = 203.0.113.1
    secret = MyR4d1usS3cret!
    shortname = mikrotik
    nastype = other
}
testuser Cleartext-Password := "TestPass123!"
    Tunnel-Type = VLAN,
    Tunnel-Medium-Type = IEEE-802,
    Tunnel-Private-Group-Id = 10
sudo systemctl restart freeradius
# Для отладки запуск в режиме debug:
sudo freeradius -X
/radius/add service=dot1x address=10.0.0.100 secret="MyR4d1usS3cret!" \
  timeout=3s authentication-port=1812 accounting-port=1813 \
  comment="FreeRADIUS server"
/radius/print
# Включаем dot1x на портах для сотрудников
/interface/dot1x/server/add interface=ether2 auth-types=eap-tls,eap-peap \
  accounting=yes interim-update=5m reauth-period=3600s \
  comment="Employee port"

/interface/dot1x/server/add interface=ether3 auth-types=eap-tls,eap-peap \
  accounting=yes interim-update=5m reauth-period=3600s \
  comment="Employee port"

/interface/dot1x/server/add interface=ether4 auth-types=eap-tls,eap-peap \
  accounting=yes interim-update=5m reauth-period=3600s \
  comment="Employee port"

/interface/dot1x/server/add interface=ether5 auth-types=eap-tls,eap-peap \
  accounting=yes interim-update=5m reauth-period=3600s \
  comment="Employee port"
/interface/dot1x/server/set [find where interface=ether2] \
  guest-vlan-id=99 auth-timeout=30s
# Создаём VLAN-интерфейсы на bridge
/interface/vlan/add name=vlan10-employees interface=bridge vlan-id=10
/interface/vlan/add name=vlan20-guests interface=bridge vlan-id=20
/interface/vlan/add name=vlan99-quarantine interface=bridge vlan-id=99

# Назначаем IP-адреса
/ip/address/add address=10.10.10.1/24 interface=vlan10-employees
/ip/address/add address=10.20.20.1/24 interface=vlan20-guests
/ip/address/add address=10.99.99.1/24 interface=vlan99-quarantine

# DHCP-серверы для каждого VLAN
/ip/pool/add name=pool-vlan10 ranges=10.10.10.100-10.10.10.254
/ip/pool/add name=pool-vlan20 ranges=10.20.20.100-10.20.20.254
/ip/pool/add name=pool-vlan99 ranges=10.99.99.100-10.99.99.254

/ip/dhcp-server/add name=dhcp-vlan10 interface=vlan10-employees address-pool=pool-vlan10
/ip/dhcp-server/add name=dhcp-vlan20 interface=vlan20-guests address-pool=pool-vlan20
/ip/dhcp-server/add name=dhcp-vlan99 interface=vlan99-quarantine address-pool=pool-vlan99

/ip/dhcp-server/network/add address=10.10.10.0/24 gateway=10.10.10.1 dns-server=10.10.10.1
/ip/dhcp-server/network/add address=10.20.20.0/24 gateway=10.20.20.1 dns-server=10.20.20.1
/ip/dhcp-server/network/add address=10.99.99.0/24 gateway=10.99.99.1 dns-server=10.99.99.1
/interface/bridge/set bridge vlan-filtering=yes

/interface/bridge/vlan/add bridge=bridge tagged=bridge vlan-ids=10
/interface/bridge/vlan/add bridge=bridge tagged=bridge vlan-ids=20
/interface/bridge/vlan/add bridge=bridge tagged=bridge vlan-ids=99

# Порты с dot1x — untagged, VLAN назначается динамически
/interface/bridge/port/set [find where interface=ether2] pvid=1
/interface/bridge/port/set [find where interface=ether3] pvid=1
# Создаём Security Profile с EAP
/interface/wifi/security/add name=sec-enterprise \
  authentication-types=wpa2-eap,wpa3-eap \
  eap-methods=eap-tls,passthrough \
  tls-mode=no-certificates

# Создаём конфигурацию Wi-Fi
/interface/wifi/configuration/add name=cfg-corporate \
  ssid="Corp-WiFi" security=sec-enterprise \
  country="Russia"

# Применяем к интерфейсу
/interface/wifi/set wifi1 configuration=cfg-corporate disabled=no
# Гостевой Security Profile — можно PEAP с простыми учётными данными
/interface/wifi/security/add name=sec-guest \
  authentication-types=wpa2-eap \
  eap-methods=passthrough

/interface/wifi/configuration/add name=cfg-guest \
  ssid="Guest-WiFi" security=sec-guest \
  country="Russia"

# Virtual AP на том же радио
/interface/wifi/add name=wifi1-guest master-interface=wifi1 \
  configuration=cfg-guest disabled=no
# Сотрудники по сертификатам (EAP-TLS) — в VLAN 10
DEFAULT EAP-Type == TLS
    Tunnel-Type = VLAN,
    Tunnel-Medium-Type = IEEE-802,
    Tunnel-Private-Group-Id = 10,
    Reply-Message = "Welcome, employee"

# Гости по логину/паролю (PEAP) — в VLAN 20
guest01 Cleartext-Password := "GuestPass2026!"
    Tunnel-Type = VLAN,
    Tunnel-Medium-Type = IEEE-802,
    Tunnel-Private-Group-Id = 20,
    Session-Timeout = 28800,
    Reply-Message = "Welcome, guest. Session limit: 8 hours"

guest02 Cleartext-Password := "GuestPass2026!"
    Tunnel-Type = VLAN,
    Tunnel-Medium-Type = IEEE-802,
    Tunnel-Private-Group-Id = 20,
    Session-Timeout = 28800
# Корневой CA
/certificate/add name=corp-ca common-name="Corp CA" \
  key-size=4096 days-valid=3650 key-usage=key-cert-sign,crl-sign
/certificate/sign corp-ca

# Сертификат RADIUS-сервера (если RADIUS на MikroTik User Manager)
/certificate/add name=radius-cert common-name="radius.corp.local" \
  key-size=2048 days-valid=1825 key-usage=digital-signature,key-encipherment,tls-server
/certificate/sign radius-cert ca=corp-ca

# Клиентский сертификат для сотрудника
/certificate/add name=employee-ivanov common-name="ivanov@corp.local" \
  key-size=2048 days-valid=365 key-usage=tls-client
/certificate/sign employee-ivanov ca=corp-ca

# Экспорт для установки на ноутбук сотрудника
/certificate/export-certificate employee-ivanov \
  file-name=ivanov-cert type=pkcs12 export-passphrase="TempPass123"
# Устанавливаем пакет (если не установлен)
# Загрузите user-manager-7.20.npk и перезагрузите

# Включаем User Manager
/user-manager/set enabled=yes

# Добавляем MikroTik как NAS-клиент
/user-manager/router/add name=local-switch address=127.0.0.1 \
  shared-secret="LocalSecret123"

# На самом MikroTik — RADIUS указывает на себя
/radius/add service=dot1x address=127.0.0.1 secret="LocalSecret123"

# Создаём профиль для сотрудников
/user-manager/profile/add name=employee name-for-users="Employee Access" \
  validity=unlimited

# Создаём пользователей
/user-manager/user/add name=ivanov password="SecurePass1!" group=employee
/user-manager/user/add name=petrov password="SecurePass2!" group=employee
/interface/dot1x/server/print detail
# Все dot1x сессии
/interface/dot1x/server/state/print

# Подробности по конкретному порту
/interface/dot1x/server/state/print where interface=ether2
# Статистика RADIUS
/radius/print detail

# Лог RADIUS-запросов
/log/print where topics~"radius"
/system/logging/add topics=radius,dot1x,debug action=memory
# Установка
sudo apt install -y eapoltest

# Тест PEAP аутентификации
cat > peap-test.conf << 'EOF'
network={
    ssid="Corp-WiFi"
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="testuser"
    password="TestPass123!"
    phase2="auth=MSCHAPV2"
}
EOF

eapol_test -c peap-test.conf -a 10.0.0.100 -s "MyR4d1usS3cret!"
netsh lan show interfaces
netsh lan show profiles
# Лог событий: Event Viewer → Windows Logs → Security → Event ID 5632 (успех) или 5633 (отказ)
# Проверяем секрет на MikroTik
/radius/print detail

# Устанавливаем заново
/radius/set [find] secret="MyR4d1usS3cret!"
# Проверяем доступность RADIUS-сервера
/ping 10.0.0.100 count=4

# Проверяем настройки
/radius/print

# Увеличиваем таймаут
/radius/set [find] timeout=10s
# Проверяем, что сервис запущен
sudo systemctl status freeradius

# Проверяем, что порты слушаются
sudo ss -ulnp | grep -E "1812|1813"

# Проверяем firewall
sudo ufw status
sudo ufw allow 1812/udp
sudo ufw allow 1813/udp
# Проверка сертификатов на MikroTik
/certificate/print detail
# На MikroTik — проверяем, что dot1x видит EAPOL от клиента
/interface/dot1x/server/state/print
# Если status=unauthorized и client-mac пуст — supplicant не отправляет EAPOL
# Включаем VLAN filtering
/interface/bridge/set bridge vlan-filtering=yes

# Добавляем все используемые VLAN
/interface/bridge/vlan/print
# Убедитесь, что VLAN 10, 20, 99 присутствуют с tagged=bridge

# Проверяем настройки порта
/interface/bridge/port/print detail where interface=ether2
# Убедитесь, что порт добавлен в bridge
/interface/bridge/port/print where interface=ether2

# Dot1x должен быть настроен на физическом интерфейсе, не на bridge
/interface/dot1x/server/print
# interface должен быть ether2, а не bridge
/radius/add service=dot1x address=10.0.0.101 secret="MyR4d1usS3cret!" \
  timeout=3s comment="Backup RADIUS"
IP / 802.1X и RADIUS аутентификация на MikroTik