· 11 мин чтения

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

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

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

Сеть компании на 30-50 рабочих мест обычно выглядит так: граничный роутер, один-два L3-свитча, несколько L2-свитчей по этажам, Wi-Fi контроллер с 3-8 точками, IP-АТС Asterisk или подобное, принтсервер. Суммарно 15-30 устройств с admin-интерфейсом по 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+. Для Wi-Fi и VPN — RADIUS. Часто в компании стоят оба сервера на одной Windows-машине с NPS.

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

TACACS.NET — бесплатная реализация TACACS+ для Windows Server. Лицензионно: до 5 устройств и 3 пользователей в free tier. Платная версия ~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 из коробки не дружит с AD напрямую, но есть два рабочих обхода.

Вариант 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"

Запускается через systemd timer... то есть через Windows Task Scheduler — раз в час. Пароль для входа в TACACS проверяется отдельно (см. вариант 2).

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

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

Конфиги на железе: 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 прокси. В реальности для Mikrotik проще отдельный 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).

Результат: через месяц у клиента один из инженеров случайно ввёл 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 новых устройств.