802.1X и RADIUS аутентификация на MikroTik
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
Система состоит из трёх компонентов:
- Supplicant (Клиент) — устройство, запрашивающее доступ. Встроен в Windows, macOS, Linux, iOS, Android
- Authenticator (Аутентификатор) — сетевое устройство (коммутатор, точка доступа), контролирующее доступ к порту. В нашем случае — MikroTik
- Authentication Server — RADIUS-сервер, хранящий базу пользователей и принимающий решение о допуске. FreeRADIUS, NPS (Windows), или User Manager v5 (встроенный в RouterOS)
Процесс аутентификации:
codeSupplicant 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-SIM | SIM-карта | Оператор | Высокая | Специфичная |
Рекомендации по выбору:
- Сотрудники с корпоративными ноутбуками — EAP-TLS (сертификаты), максимальная безопасность
- Сотрудники с личными устройствами (BYOD) — PEAP (MSCHAPv2), логин/пароль из Active Directory
- Гости — PEAP или Captive Portal (Hotspot), временные учётные данные
Настройка
Подготовка: RADIUS-сервер
Перед настройкой 802.1X на MikroTik необходим RADIUS-сервер. Есть два варианта:
- FreeRADIUS — полноценный RADIUS-сервер на Linux, максимальная гибкость
- User Manager v5 — встроенный в RouterOS 7, проще в настройке
В этом разделе покажем настройку с FreeRADIUS. User Manager v5 описан в отдельном руководстве.
Установка FreeRADIUS на Ubuntu
bashsudo apt update && sudo apt install -y freeradius freeradius-utils # Проверяем запуск sudo systemctl status freeradius
Настройка клиента (MikroTik) в FreeRADIUS
Отредактируйте файл /etc/freeradius/3.0/clients.conf:
codeclient mikrotik-switch { ipaddr = 203.0.113.1 secret = MyR4d1usS3cret! shortname = mikrotik nastype = other }
Добавление тестового пользователя
В файле /etc/freeradius/3.0/users:
codetestuser 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:
bashsudo 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
Параметры:
| Параметр | Значение | Описание |
|---|---|---|
service | dot1x | Тип сервиса (dot1x, hotspot, ppp, login, wireless) |
address | 10.0.0.100 | IP-адрес RADIUS-сервера |
secret | MyR4d1usS3cret! | Общий секрет (shared secret) — должен совпадать на обеих сторонах |
timeout | 3s | Таймаут ожидания ответа |
authentication-port | 1812 | Порт аутентификации (стандартный) |
accounting-port | 1813 | Порт учёта (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— интервал промежуточных отчётов accountingreauth-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 = VLANTunnel-Medium-Type = IEEE-802Tunnel-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
Ключевые поля:
| Поле | Описание |
|---|---|
status | authorized — клиент аутентифицирован, unauthorized — нет |
client-mac | MAC-адрес подключённого устройства |
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:
- Для проводного подключения: Службы → "Wired AutoConfig" → запустить и включить автозапуск
- Свойства сетевого адаптера → вкладка "Проверка подлинности" → включить IEEE 802.1X → выбрать метод (PEAP или EAP-TLS)
- Настроить параметры EAP (выбрать корневой CA, ввести учётные данные)
Диагностика на Windows:
codenetsh 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 не доверяет клиентскому сертификату.
Решение:
- Убедитесь, что корневой CA-сертификат установлен на клиентском устройстве как доверенный
- Проверьте, что клиентский сертификат подписан тем же CA, который настроен в FreeRADIUS
- Проверьте срок действия всех сертификатов
[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 убедитесь, что:
- Служба "Wired AutoConfig" запущена:
services.msc→ найти → запустить - В свойствах адаптера включена аутентификация 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
- Начинайте с мониторинга — включите 802.1X в режиме
auth-types=с Guest VLAN, чтобы увидеть, какие устройства поддерживают 802.1X, а какие нет - Настройте Guest VLAN — для устройств без supplicant (принтеры, IP-телефоны, IoT)
- Используйте PEAP для начала — проще в развёртывании, чем EAP-TLS
- Переходите на EAP-TLS — для критичных сегментов (финансы, серверные порты)
- Ведите учёт — включайте RADIUS Accounting для аудита подключений
- Резервный RADIUS — добавьте второй RADIUS-сервер для отказоустойчивости:
[admin@MikroTik] >/radius/add service=dot1x address=10.0.0.101 secret="MyR4d1usS3cret!" \ timeout=3s comment="Backup RADIUS"
- Мониторьте логи — настройте отправку syslog с MikroTik и RADIUS-сервера на центральный сервер логирования
Правильно настроенный 802.1X превращает сеть из «плоской и открытой» в контролируемую среду, где каждое подключение идентифицировано, каждое устройство находится в правильном сегменте, а несанкционированный доступ блокируется на уровне порта коммутатора.
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"