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

Users на MikroTik — учётные записи и права доступа

RouterOS 7.xSystem8 мин630 мар. 2026 г.
TelegramVK

Пользователи и группы на MikroTik — права доступа и SSH-ключи

Управление пользователями — критически важный аспект безопасности MikroTik. По умолчанию RouterOS создаёт единственного пользователя admin с полными правами и пустым паролем. В production-среде это недопустимо: каждый администратор должен иметь свою учётную запись, права должны быть ограничены по принципу наименьших привилегий, а доступ — защищён SSH-ключами. В этом руководстве разберём систему пользователей и групп RouterOS, настроим разграничение доступа и аутентификацию по ключам.

Руководство актуально для RouterOS 7.20+.

Описание

Модель безопасности RouterOS

RouterOS использует ролевую модель доступа (RBAC): каждый пользователь принадлежит к группе, а группа определяет набор разрешённых действий (policies). Пользователь не может выполнить действие, если его группа не имеет соответствующей политики.

Стандартные группы

RouterOS создаёт три группы по умолчанию:

ГруппаНазначениеКлючевые политики
fullПолный доступ ко всем функциямВсе политики включены, включая policy (управление пользователями)
writeЧтение и запись конфигурации, но без управления пользователямиНет policy, reboot, sensitive
readТолько чтение конфигурацииТолько read, winbox, web, api, test

Политики (policies)

Каждая группа — это набор политик. Вот полный список доступных политик в RouterOS 7.20:

ПолитикаОписание
readЧтение конфигурации
writeИзменение конфигурации (кроме пользователей)
policyУправление пользователями и группами
rebootПерезагрузка устройства
ftpДоступ по FTP и загрузка/скачивание файлов
sensitiveПросмотр паролей и ключей в конфигурации
localДоступ через консольный порт
telnetДоступ по Telnet
sshДоступ по SSH
winboxДоступ через WinBox
webДоступ через WebFig
apiДоступ через API
rest-apiДоступ через REST API
sniffЗапуск packet sniffer
testВыполнение команд диагностики (ping, traceroute, bandwidth-test)
romonДоступ через RoMON
dudeДоступ к The Dude
tikappДоступ через мобильное приложение MikroTik

Важно: политика policy даёт право управлять другими пользователями и группами. Назначайте её только главным администраторам. Пользователь с policy может создать себе полные права или удалить других админов.

Ограничение по IP-адресу

Каждому пользователю можно задать поле allowed-address — список IP-адресов или подсетей, с которых разрешён вход. Если пользователь попытается подключиться с другого адреса — RouterOS откажет в доступе, даже если пароль верный.

Настройка

Создание пользователей

Начнём с создания структуры пользователей для типовой компании: главный администратор, младший администратор и учётная запись для мониторинга.

Главный администратор

[admin@MikroTik] >
/user/add name=ivanov group=full password="Str0ng!P@ssw0rd" \
  allowed-address=10.0.0.0/8 comment="Иванов И.И. — главный сетевой администратор"

Администратор с ограниченными правами

[admin@MikroTik] >
/user/add name=petrov group=write password="An0th3r!P@ss" \
  allowed-address=10.0.0.0/8 comment="Петров П.П. — младший администратор"

Учётная запись для мониторинга (только чтение)

[admin@MikroTik] >
/user/add name=zabbix group=read password="M0nit0ring!Key" \
  allowed-address=10.0.1.50/32 comment="Zabbix monitoring — read only"

Отключение или удаление стандартного admin

После создания администратора с полными правами отключите стандартную учётную запись admin:

[admin@MikroTik] >
# Отключить (рекомендуется — можно включить обратно при необходимости)
/user/set [find name=admin] disabled=yes

# Или удалить полностью (необратимо)
/user/remove [find name=admin]

Внимание: не удаляйте admin, пока не убедитесь, что можете войти под новым пользователем с группой full. Иначе потеряете доступ к устройству.

Создание пользовательских групп

Стандартных групп не всегда достаточно. Создадим специализированные группы для разных задач.

Группа для мониторинга (расширенная)

[admin@MikroTik] >
/user/group/add name=monitoring policy=read,api,rest-api,test,winbox,web \
  comment="Monitoring systems — read + API + diagnostics"

Эта группа позволяет читать конфигурацию, выполнять диагностику (ping, traceroute) и подключаться через API — всё, что нужно для мониторинга, и ничего лишнего.

Группа для младших администраторов

[admin@MikroTik] >
/user/group/add name=junior-admin \
  policy=read,write,test,winbox,web,ssh,ftp,local,tikapp \
  comment="Junior admins — no reboot, no user management, no sensitive"

Пользователи этой группы могут менять конфигурацию, но не могут: перезагружать устройство, управлять пользователями, видеть пароли в конфигурации.

Группа для Wi-Fi администраторов

[admin@MikroTik] >
/user/group/add name=wifi-admin \
  policy=read,write,test,winbox,web \
  comment="Wi-Fi admins — config changes via WinBox/WebFig only"

Применение пользовательской группы

[admin@MikroTik] >
/user/add name=monitoring-svc group=monitoring password="M0n!t0rSvc" \
  allowed-address=10.0.1.0/24 comment="Service account for monitoring"

/user/add name=sidorov group=junior-admin password="Jun!0r@dmin" \
  allowed-address=10.0.0.0/8 comment="Сидоров С.С. — младший администратор"

Аутентификация по SSH-ключам

Парольная аутентификация уязвима для brute-force атак. SSH-ключи значительно безопаснее: приватный ключ остаётся на компьютере администратора, а публичный загружается на роутер.

Генерация SSH-ключа (на компьютере администратора)

На Linux/macOS/Windows (в терминале):

code
ssh-keygen -t ed25519 -C "ivanov@company.ru"

Это создаст два файла:

  • ~/.ssh/id_ed25519 — приватный ключ (хранить в секрете!)
  • ~/.ssh/id_ed25519.pub — публичный ключ (загружается на роутер)

Для RSA (если ed25519 не поддерживается):

code
ssh-keygen -t rsa -b 4096 -C "ivanov@company.ru"

Загрузка публичного ключа на роутер

Сначала загрузите файл публичного ключа на роутер:

[admin@MikroTik] >
# С компьютера администратора
scp ~/.ssh/id_ed25519.pub ivanov@192.168.88.1:id_ed25519.pub

Затем импортируйте ключ на роутере:

[admin@MikroTik] >
/user/ssh-keys/import public-key-file=id_ed25519.pub user=ivanov

Проверьте, что ключ импортирован:

[admin@MikroTik] >
/user/ssh-keys/print

Импорт ключей для нескольких пользователей

[admin@MikroTik] >
# Загрузите все публичные ключи на роутер, затем:
/user/ssh-keys/import public-key-file=ivanov-ed25519.pub user=ivanov
/user/ssh-keys/import public-key-file=petrov-ed25519.pub user=petrov
/user/ssh-keys/import public-key-file=sidorov-ed25519.pub user=sidorov

Отключение парольной аутентификации SSH

После настройки ключей для всех администраторов можно отключить парольную аутентификацию по SSH. Это исключит brute-force атаки:

[admin@MikroTik] >
/ip/ssh/set always-allow-password-login=no

Осторожно: после этого вход по SSH возможен ТОЛЬКО с ключом. Убедитесь, что:

  1. У всех администраторов есть рабочие ключи.
  2. Вы можете войти через WinBox (как резервный вариант).
  3. У вас есть доступ через консольный порт (serial) на случай проблем.

Дополнительные настройки SSH

[admin@MikroTik] >
# Изменить порт SSH (по умолчанию 22)
/ip/ssh/set strong-crypto=yes

# Просмотр текущих настроек
/ip/ssh/print

Включение strong-crypto=yes отключает устаревшие алгоритмы шифрования и обмена ключами, оставляя только современные (AES-256, ChaCha20, Ed25519).

Ограничение доступа по IP

Настройте allowed-address для каждого пользователя, чтобы ограничить подключение только из доверенных сетей:

[admin@MikroTik] >
# Разрешить только из management-подсети
/user/set [find name=ivanov] allowed-address=10.0.100.0/24

# Разрешить из нескольких подсетей
/user/set [find name=petrov] allowed-address=10.0.100.0/24,192.168.88.0/24

# Мониторинг — только с конкретного сервера
/user/set [find name=zabbix] allowed-address=10.0.1.50/32

Настройка таймаута сессии

По умолчанию сессия WinBox/WebFig не имеет таймаута бездействия. Это опасно — оставленная открытой сессия может быть использована злоумышленником. Настройте автоматическое отключение:

[admin@MikroTik] >
/ip/service/set www-ssl address=10.0.0.0/8
/ip/service/set winbox address=10.0.0.0/8
/ip/service/set ssh address=10.0.0.0/8

# Отключить ненужные сервисы
/ip/service/disable telnet
/ip/service/disable ftp
/ip/service/disable www
/ip/service/disable api
/ip/service/disable api-ssl

Проверка

Список пользователей

[admin@MikroTik] >
/user/print detail

Убедитесь, что:

  • У каждого пользователя задан allowed-address.
  • Стандартный admin отключён или удалён.
  • Нет пользователей без пароля (кроме тех, кто использует только SSH-ключи).
  • Каждый пользователь в правильной группе.

Список групп

[admin@MikroTik] >
/user/group/print

Проверьте, что политики каждой группы соответствуют задачам.

Список SSH-ключей

[admin@MikroTik] >
/user/ssh-keys/print

Убедитесь, что у всех администраторов импортированы актуальные ключи.

Проверка доступа

Проверьте вход для каждого пользователя:

[admin@MikroTik] >
# Тест SSH с ключом (с компьютера администратора)
# ssh ivanov@192.168.88.1

# Тест SSH с паролем (должен быть отклонён, если парольная аутентификация отключена)
# ssh petrov@192.168.88.1 (ввести пароль — должен получить отказ)

# Тест подключения с неразрешённого IP
# ssh ivanov@192.168.88.1 (с IP вне allowed-address — должен получить отказ)

Аудит подключений

Проверьте, кто и когда подключался к роутеру:

[admin@MikroTik] >
/log/print where topics~"system"

В логах будут записи вида:

code
user ivanov logged in from 10.0.100.5 via ssh
user petrov logged in from 10.0.100.12 via winbox
login failure for user admin from 85.214.xx.xx via ssh

Для более детального аудита включите расширенное логирование:

[admin@MikroTik] >
/system/logging/add topics=system,info action=remote \
  prefix="auth"

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

[admin@MikroTik] >
# Активные пользователи
/user/active/print

# Кто сейчас подключён через какой протокол
/user/active/print detail

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

1. Работа под стандартным пользователем admin

Проблема: все администраторы входят под одной учётной записью admin. Невозможно отследить, кто и когда вносил изменения. При компрометации пароля — полный доступ к устройству.

Решение: создайте персональные учётные записи для каждого администратора. Отключите или удалите admin:

[admin@MikroTik] >
# Создать персонального пользователя
/user/add name=ivanov group=full password="Str0ng!P@ss" \
  allowed-address=10.0.0.0/8

# Войти под новым пользователем, убедиться в работоспособности

# Отключить admin
/user/set [find name=admin] disabled=yes

2. Пользователь без ограничения по IP

Проблема: пользователь может подключиться с любого IP-адреса, включая интернет. При утечке пароля или ключа злоумышленник получит доступ откуда угодно.

Решение: всегда задавайте allowed-address. Даже для пользователей с SSH-ключами — это дополнительный уровень защиты:

[admin@MikroTik] >
/user/set [find name=ivanov] allowed-address=10.0.100.0/24

3. Группа full для всех пользователей

Проблема: все пользователи в группе full, включая мониторинг и младших администраторов. Нарушен принцип наименьших привилегий — любой пользователь может удалить других, перезагрузить роутер или просмотреть пароли.

Решение: создайте специализированные группы. Мониторинг — только read, младшие администраторы — write без policy и reboot:

[admin@MikroTik] >
/user/group/add name=monitoring policy=read,api,rest-api,test,winbox
/user/set [find name=zabbix] group=monitoring

4. Потеря доступа после отключения admin

Проблема: отключили admin, а новый пользователь не может войти — неправильный пароль, неверный allowed-address или не та группа.

Решение: перед отключением admin убедитесь в работоспособности нового пользователя:

  1. Создайте нового пользователя в группе full.
  2. Откройте вторую сессию WinBox/SSH и войдите под новым пользователем.
  3. Убедитесь, что всё работает.
  4. Только после этого отключайте admin из первой сессии.

Если доступ всё же потерян — используйте сброс через кнопку Reset на устройстве (пароли будут сброшены).

5. Забыли отключить парольную аутентификацию после настройки SSH-ключей

Проблема: SSH-ключи настроены, но парольная аутентификация по-прежнему включена. Злоумышленник может пытаться подобрать пароль brute-force.

Решение: после проверки работоспособности ключей отключите пароли:

[admin@MikroTik] >
/ip/ssh/set always-allow-password-login=no

Дополнительно настройте firewall для защиты от brute-force на SSH-порт:

[admin@MikroTik] >
/ip/firewall/filter
add chain=input protocol=tcp dst-port=22 src-address-list=ssh-blocklist \
  action=drop comment="Drop SSH brute-force"
add chain=input protocol=tcp dst-port=22 connection-state=new \
  src-address-list=ssh-stage3 action=add-src-to-address-list \
  address-list=ssh-blocklist address-list-timeout=1d
add chain=input protocol=tcp dst-port=22 connection-state=new \
  src-address-list=ssh-stage2 action=add-src-to-address-list \
  address-list=ssh-stage3 address-list-timeout=1m
add chain=input protocol=tcp dst-port=22 connection-state=new \
  action=add-src-to-address-list address-list=ssh-stage2 \
  address-list-timeout=1m

6. Не логируются попытки входа

Проблема: невозможно отследить неудачные попытки входа — нет данных для расследования инцидентов.

Решение: убедитесь, что логирование системных событий включено:

[admin@MikroTik] >
# Проверить текущие правила логирования
/system/logging/print

# Добавить логирование в память (по умолчанию включено)
/system/logging/add topics=system,info,warning,error action=memory

# Для централизованного логирования — отправка на syslog-сервер
/system/logging/action/add name=remote-syslog target=remote \
  remote=10.0.1.100 remote-port=514
/system/logging/add topics=system,info,warning action=remote-syslog

Регулярно проверяйте логи на предмет подозрительных попыток входа:

[admin@MikroTik] >
/log/print where message~"login failure"
[admin@MikroTik] >
/user/add name=ivanov group=full password="Str0ng!P@ssw0rd" \
  allowed-address=10.0.0.0/8 comment="Иванов И.И. — главный сетевой администратор"
/user/add name=petrov group=write password="An0th3r!P@ss" \
  allowed-address=10.0.0.0/8 comment="Петров П.П. — младший администратор"
/user/add name=zabbix group=read password="M0nit0ring!Key" \
  allowed-address=10.0.1.50/32 comment="Zabbix monitoring — read only"
# Отключить (рекомендуется — можно включить обратно при необходимости)
/user/set [find name=admin] disabled=yes

# Или удалить полностью (необратимо)
/user/remove [find name=admin]
/user/group/add name=monitoring policy=read,api,rest-api,test,winbox,web \
  comment="Monitoring systems — read + API + diagnostics"
/user/group/add name=junior-admin \
  policy=read,write,test,winbox,web,ssh,ftp,local,tikapp \
  comment="Junior admins — no reboot, no user management, no sensitive"
/user/group/add name=wifi-admin \
  policy=read,write,test,winbox,web \
  comment="Wi-Fi admins — config changes via WinBox/WebFig only"
/user/add name=monitoring-svc group=monitoring password="M0n!t0rSvc" \
  allowed-address=10.0.1.0/24 comment="Service account for monitoring"

/user/add name=sidorov group=junior-admin password="Jun!0r@dmin" \
  allowed-address=10.0.0.0/8 comment="Сидоров С.С. — младший администратор"
ssh-keygen -t ed25519 -C "ivanov@company.ru"
ssh-keygen -t rsa -b 4096 -C "ivanov@company.ru"
# С компьютера администратора
scp ~/.ssh/id_ed25519.pub ivanov@192.168.88.1:id_ed25519.pub
/user/ssh-keys/import public-key-file=id_ed25519.pub user=ivanov
/user/ssh-keys/print
# Загрузите все публичные ключи на роутер, затем:
/user/ssh-keys/import public-key-file=ivanov-ed25519.pub user=ivanov
/user/ssh-keys/import public-key-file=petrov-ed25519.pub user=petrov
/user/ssh-keys/import public-key-file=sidorov-ed25519.pub user=sidorov
/ip/ssh/set always-allow-password-login=no
# Изменить порт SSH (по умолчанию 22)
/ip/ssh/set strong-crypto=yes

# Просмотр текущих настроек
/ip/ssh/print
# Разрешить только из management-подсети
/user/set [find name=ivanov] allowed-address=10.0.100.0/24

# Разрешить из нескольких подсетей
/user/set [find name=petrov] allowed-address=10.0.100.0/24,192.168.88.0/24

# Мониторинг — только с конкретного сервера
/user/set [find name=zabbix] allowed-address=10.0.1.50/32
/ip/service/set www-ssl address=10.0.0.0/8
/ip/service/set winbox address=10.0.0.0/8
/ip/service/set ssh address=10.0.0.0/8

# Отключить ненужные сервисы
/ip/service/disable telnet
/ip/service/disable ftp
/ip/service/disable www
/ip/service/disable api
/ip/service/disable api-ssl
/user/print detail
/user/group/print
/user/ssh-keys/print
# Тест SSH с ключом (с компьютера администратора)
# ssh ivanov@192.168.88.1

# Тест SSH с паролем (должен быть отклонён, если парольная аутентификация отключена)
# ssh petrov@192.168.88.1 (ввести пароль — должен получить отказ)

# Тест подключения с неразрешённого IP
# ssh ivanov@192.168.88.1 (с IP вне allowed-address — должен получить отказ)
/log/print where topics~"system"
user ivanov logged in from 10.0.100.5 via ssh
user petrov logged in from 10.0.100.12 via winbox
login failure for user admin from 85.214.xx.xx via ssh
/system/logging/add topics=system,info action=remote \
  prefix="auth"
# Активные пользователи
/user/active/print

# Кто сейчас подключён через какой протокол
/user/active/print detail
# Создать персонального пользователя
/user/add name=ivanov group=full password="Str0ng!P@ss" \
  allowed-address=10.0.0.0/8

# Войти под новым пользователем, убедиться в работоспособности

# Отключить admin
/user/set [find name=admin] disabled=yes
/user/set [find name=ivanov] allowed-address=10.0.100.0/24
/user/group/add name=monitoring policy=read,api,rest-api,test,winbox
/user/set [find name=zabbix] group=monitoring
/ip/ssh/set always-allow-password-login=no
/ip/firewall/filter
add chain=input protocol=tcp dst-port=22 src-address-list=ssh-blocklist \
  action=drop comment="Drop SSH brute-force"
add chain=input protocol=tcp dst-port=22 connection-state=new \
  src-address-list=ssh-stage3 action=add-src-to-address-list \
  address-list=ssh-blocklist address-list-timeout=1d
add chain=input protocol=tcp dst-port=22 connection-state=new \
  src-address-list=ssh-stage2 action=add-src-to-address-list \
  address-list=ssh-stage3 address-list-timeout=1m
add chain=input protocol=tcp dst-port=22 connection-state=new \
  action=add-src-to-address-list address-list=ssh-stage2 \
  address-list-timeout=1m
# Проверить текущие правила логирования
/system/logging/print

# Добавить логирование в память (по умолчанию включено)
/system/logging/add topics=system,info,warning,error action=memory

# Для централизованного логирования — отправка на syslog-сервер
/system/logging/action/add name=remote-syslog target=remote \
  remote=10.0.1.100 remote-port=514
/system/logging/add topics=system,info,warning action=remote-syslog
/log/print where message~"login failure"
System / Users на MikroTik — учётные записи и права доступа