TACACS+ на Windows Server: единый логин админов в Cisco, Mikrotik и Eltex через AD — АйТи Фреш
· 11 мин чтения

TACACS+ на Windows: единый логин админов в Cisco, Mikrotik и Eltex через Active Directory

TACACS+ на Windows: единый логин админов в Cisco, Mikrotik и Eltex через Active Directory

Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. Почти у каждого клиента, к которому я прихожу на аудит, одна и та же картина: 15-40 сетевых устройств (свитчи, роутеры, Wi-Fi-контроллеры), на каждом локальная учётка admin с паролем из шаблона вроде AdminPass2024!. При увольнении сисадмина никто эти пароли не меняет — потому что это 40 устройств руками. При аудите нельзя сказать, кто какую команду вводил — журналов нет, аккаунт общий. Лечится одним сервером TACACS+ на Windows, который интегрируется с Active Directory. Расскажу, как собрать это за день.

Почему локальные учётки — плохая идея

Типичная сеть на 30-50 рабочих мест — это граничный роутер, пара L3-свитчей, L2-свитчи по этажам, Wi-Fi контроллер с точками доступа, IP-АТС. Плюс принтсервер, NAS, может ещё что-то. Итого: 15-30 устройств с SSH/telnet/HTTPS-интерфейсом, на каждом свой пароль.

Локальная учётка на каждом устройстве — это три проблемы, которые рано или поздно выйдут боком:

TACACS+ решает всё разом: один сервер, один логин для каждого сотрудника, полный журнал команд. Уволили человека — отключили один аккаунт, и он больше никуда не зайдёт.

Чем TACACS+ лучше RADIUS

Путаница с RADIUS возникает постоянно — оба протокола про аутентификацию, но работают по-разному. Ключевые отличия:

ХарактеристикаTACACS+RADIUS
ШифрованиеВесь обменТолько пароль
ТранспортTCP/49UDP/1812-1813
Разделение AAAAuthentication / Authorization / Accounting по отдельностиВ одном ответе
Command authorizationДа, покомандноНет
Accounting командДетальный (каждая enter/exit)Только вход/выход
Типичное применениеАдминистрирование сетевого оборудованияWi-Fi 802.1X, VPN, Dial-up

На практике разграничение простое: TACACS+ — для сетевых администраторов, RADIUS — для Wi-Fi-клиентов и VPN. Нередко оба сервера живут на одной Windows-машине с NPS, и это нормально.

TACACS.NET — что это и кому подходит

TACACS.NET — бесплатная реализация TACACS+ под Windows Server. Free tier: до 5 устройств и 3 пользователей. Платная версия обходится примерно в 120 долларов в год и снимает все лимиты. Подходит, если у вас:

Не подходит:

Для последних случаев ставим Cisco ISE или TACACS на Linux (tac_plus). В этой статье — путь малого и среднего бизнеса.

Установка и базовый конфиг

Установка проста: скачиваем инсталлятор с tacacs.net, запускаем, отвечаем на пару вопросов, получаем службу TACACS.NET Engine. По умолчанию слушает на 0.0.0.0:49/tcp.

Настройка идёт через четыре XML-файла. Разбираться с ними придётся, деваться некуда:

ФайлЧто описывает
tacplus.xmlАдрес и порт прослушивания сервера
clients.xmlСписок сетевых устройств + shared secret
authentication.xmlУчётки пользователей (локально или через AD)
authorization.xmlГруппы и уровни привилегий

Минимальный рабочий конфиг — два администратора и один оператор с ограниченными правами:

<!-- authentication.xml -->
<userGroup name="NetAdmin">
  <user name="evgeniy">
    <password hash="sha256">a7f5...e9c</password>
  </user>
  <user name="petrov">
    <password hash="sha256">b3e1...c42</password>
  </user>
</userGroup>
<userGroup name="NetOps">
  <user name="sidorov">
    <password hash="sha256">c9d2...a78</password>
  </user>
</userGroup>
<!-- authorization.xml -->
<!-- Админам — privilege 15 (full) -->
<authGroup name="NetAdmin">
  <priv-lvl>15</priv-lvl>
  <shell/>
</authGroup>
<!-- Операторам — privilege 9 (show/read) -->
<authGroup name="NetOps">
  <priv-lvl>9</priv-lvl>
  <command name="show"> permit .*</command>
  <command name="ping"> permit .*</command>
  <command name="traceroute"> permit .*</command>
  <command name=".*"> deny .*</command>
</authGroup>

Интеграция с Active Directory

Из коробки TACACS.NET с Active Directory не интегрируется. Но есть два способа это обойти, оба рабочие.

Вариант 1 — синхронизация через PowerShell. Скрипт раз в час экспортирует участников AD-группы и обновляет authentication.xml. Я использую такой:

# /Scripts/sync-tacacs-users.ps1
Import-Module ActiveDirectory
$groups = @(
  @{AD="IT-NetworkAdmins"; TACACSGroup="NetAdmin"},
  @{AD="IT-NetworkOperators"; TACACSGroup="NetOps"}
)
$xml = [xml](Get-Content "C:\Program Files\TACACS.NET\authentication.xml")
foreach ($g in $groups) {
  $users = Get-ADGroupMember -Identity $g.AD -Recursive |
    Where-Object { $_.objectClass -eq "user" }
  # (далее — удаление старых и добавление новых узлов в XML)
}
$xml.Save("C:\Program Files\TACACS.NET\authentication.xml")
Restart-Service "TACACS.NET Engine"

Синхронизация запускается через Windows Task Scheduler раз в час. Пароль для входа в TACACS при этом проверяется отдельно — подробнее в варианте 2.

Вариант 2 — ADAM/LDS-адаптер. Поднимаем Active Directory Lightweight Directory Services рядом, настраиваем password-pass-through на основной AD. TACACS.NET ходит в LDS через LDAP и получает актуальный пароль. Сложнее, но не требует перезапуска службы при смене пароля сотрудником.

На практике у большинства наших клиентов хватает первого варианта с часовой синхронизацией. За год работы с таким решением не было ни одного инцидента по причине «не прошёл логин после смены пароля в AD».

Конфиги на железе: Cisco, Eltex, Mikrotik, Huawei

Сервер настроен — теперь нужно прописать его адрес на каждой железке. Ниже примеры конфигов для распространённого оборудования.

Cisco IOS

aaa new-model
tacacs-server host 10.10.0.15 single-connection
tacacs-server key SharedSecret123
aaa authentication login default group tacacs+ local
aaa authorization exec default group tacacs+ local if-authenticated
aaa authorization commands 15 default group tacacs+ local if-authenticated
aaa accounting exec default start-stop group tacacs+
aaa accounting commands 15 default start-stop group tacacs+
line vty 0 15
 login authentication default
 authorization commands 15 default

Eltex ESR (MES switches)

aaa tacacs-server host 10.10.0.15 port 49 key "SharedSecret123"
aaa authentication login default tacacs+ local
aaa authorization commands default tacacs+ local
aaa accounting commands default tacacs+
ip tacacs-server source interface Mgmt0

Mikrotik RouterOS

/user aaa set use-radius=no
# TACACS+ в RouterOS нет штатно, но есть совместимая реализация
# через RADIUS+VSA, либо наш скрипт-прокси RADIUS→TACACS на 10.10.0.15
/radius add service=login address=10.10.0.15 secret=RadiusSecret
/radius incoming set accept=yes
/user aaa set use-radius=yes default-group=full

Mikrotik — отдельная история. Честного TACACS+ там нет, и это факт. Варианты: либо RADIUS, либо RADIUS-to-TACACS прокси. Мы на своих проектах обычно делаем проще: отдельный RADIUS через Windows NPS, привязанный к тем же группам AD.

Huawei VRP

hwtacacs-server template ITFRESH-TACACS
 hwtacacs-server authentication 10.10.0.15
 hwtacacs-server authorization 10.10.0.15
 hwtacacs-server accounting 10.10.0.15
 hwtacacs-server shared-key cipher SharedSecret123
aaa
 authentication-scheme tacacs-auth
  authentication-mode hwtacacs local
 authorization-scheme tacacs-auth
  authorization-mode hwtacacs local
 accounting-scheme tacacs-acct
  accounting-mode hwtacacs
 domain default
  authentication-scheme tacacs-auth
  authorization-scheme tacacs-auth
  accounting-scheme tacacs-acct
  hwtacacs-server ITFRESH-TACACS

Кейс: 54 устройства в торговой сети

В октябре 2025 к нам обратилась торговая сеть — центральный офис плюс 12 магазинов по Москве и области. Оборудование: 3 Cisco Catalyst 9300 в центре, 12 Eltex MES-1124M в магазинах, 14 точек Aruba, 5 Mikrotik CCR на внешних каналах и 15 L2-свитчей по этажам. Итого 49 устройств с admin-доступом плюс 5 сервисных аккаунтов мониторинга. До нашего прихода — локальные учётки с одинаковым паролем на всём, журналов ноль.

Что сделали за 4 рабочих дня:

  1. Установили TACACS.NET Pro — купили лицензию на 50 устройств и развернули на их Windows Server 2022 рядом с контроллером домена.
  2. Создали в AD две группы: IT-NetworkAdmins (3 админа) и IT-NetworkOperators (5 дежурных).
  3. Настроили PowerShell-скрипт синхронизации AD-групп в authentication.xml раз в час, автоматический перезапуск службы.
  4. Прописали TACACS на всех 49 устройствах по шаблонным конфигам. Два дня работы одного инженера.
  5. Mikrotik подключили через RADIUS и Windows NPS с маппингом на те же AD-группы — схема отработанная.
  6. Включили accounting по командам — теперь все действия пишутся в SQL-базу TACACS.NET.
  7. Настроили Grafana-дашборд с выборкой из SQL: кто зашёл, когда, на какое устройство, что ввёл. Алерты на критичные команды — shutdown, erase, no service.

Результат: через месяц у клиента один из инженеров случайно ввёл delete flash: на Eltex — команда была заблокирована authorization-правилом, инженер получил «permission denied». При анализе оказалось, что он перепутал окна SSH. Без TACACS это был бы простой сети магазина на 2-3 часа. Стоимость проекта — 72 000 руб. за настройку + 10 000 руб. лицензия TACACS.NET Pro. Окупилось в тот самый раз, когда команда delete была заблокирована.

Грабли, которые я уже собрал

Настроим TACACS+ с AD-интеграцией — от 65 000 руб.

Я лично разворачиваю TACACS+ (TACACS.NET или tac_plus на Linux) для компаний с 15+ сетевыми устройствами в Москве и области. Интеграция с Active Directory, разделение ролей admin/operator/monitoring, журналирование всех команд, алерты на опасные действия. Типовой проект — 2-5 рабочих дней в зависимости от количества железа.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — TACACS+ на Windows

Чем TACACS+ лучше RADIUS для сетевого оборудования?
TACACS+ шифрует весь обмен, а не только пароль. Поддерживает command authorization — каждую команду можно отдельно разрешать или запрещать. Поддерживает accounting с деталями всех команд. RADIUS для Wi-Fi и VPN лучше, для admin-доступа на коммутаторы — TACACS+ однозначно.
Почему TACACS.NET, а не Cisco ISE или TACPlusPy?
TACACS.NET — бесплатная Windows-реализация (до 5 устройств и 3 пользователей), подходит для тестовых стендов и офисов 30-50 рабочих мест с одним админом. Cisco ISE — мощный, но дорогой (от 800 тыс руб/год лицензия). TACPlusPy — Linux, приходится поднимать отдельный сервер. Мы ставим TACACS.NET там, где AD уже есть и сеть до 30 устройств.
Что делать с лимитом 5 устройств/3 пользователей в TACACS.NET?
Переходить на платную версию (~120 долл/год) или на OpenSource-альтернативу на Linux (tac_plus или tacacsgui). Для крупных заказчиков (от 40 устройств) мы ставим tac_plus на Debian — он бесплатный и без лимитов. Для небольшого офиса бесплатный TACACS.NET с четырьмя устройствами — жизнеспособно.
Как интегрировать с Active Directory?
TACACS.NET читает учётки из файла authentication.xml, но его можно настроить на проброс в AD через PAM/LDAP-адаптер или поднять рядом фреймовое LDAP-промежуточное звено. Для простоты мы делаем синхронизацию: PowerShell-скрипт раз в час экспортирует участников AD-группы IT-Network и обновляет authentication.xml.
Сколько стоит настройка TACACS+ для офиса из 20-40 сетевых устройств?
Базовое развёртывание на Windows Server + интеграция с AD + настройка 20 устройств (Cisco/Eltex/Mikrotik) + аудит прав — 65 000 руб. Коммерческая лицензия TACACS.NET ~10 000 руб/год или tac_plus Linux бесплатно. Включает обучение администратора, шаблоны конфигов, процедуру onboarding новых устройств.

Подпишитесь на рассылку ITfresh

Каждую неделю мы выпускаем практические гайды для руководителей IT и системных администраторов. Это не просто теория! Здесь вы найдёте всё: безопасность, 1С, миграции, резервные копии и проверенные лайфхаки из наших реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.