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.
Локальная учётка на каждом даёт три гарантированных проблемы:
- Утечка пароля. Админ уходит из компании — чтобы поменять пароль на 30 устройствах, нужно войти в каждое. Никто этого не делает. Через месяц человек может спокойно зайти в сеть бывшего работодателя.
- Слабые пароли. Админы не любят вбивать длинные пароли каждый день, ставят короткие. На сетевом железе
admin/ciscoдо сих пор не редкость. - Нет журнала. Кто и когда ввёл команду «shutdown» на порту? В логах свитча написано «user admin», а под этим логином ходили трое. Расследование зависает.
TACACS+ закрывает все три проблемы: один сервер, один логин каждого сотрудника, журнал всех команд, мгновенная деактивация уволенного.
Чем TACACS+ лучше RADIUS
Вопрос часто возникает, потому что RADIUS тоже используется для аутентификации. Разница:
| Характеристика | TACACS+ | RADIUS |
|---|---|---|
| Шифрование | Весь обмен | Только пароль |
| Транспорт | TCP/49 | UDP/1812-1813 |
| Разделение AAA | Authentication / 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 долл/год снимает лимит. Подходит для:
- Тестовых стендов и лабораторий.
- Небольших офисов (до 4-5 устройств).
- Компаний, у которых 20+ устройств, но готовы купить лицензию.
Не подходит:
- Enterprise с 100+ устройствами и сложными ролевыми моделями.
- Требованиями ФСТЭК на сертифицированные SIEM/AAA.
Для последних случаев ставим 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 рабочих дня:
- Поставили TACACS.NET Pro (купили лицензию на 50 устройств) на их Windows Server 2022 рядом с контроллером домена.
- Создали в AD две группы:
IT-NetworkAdmins(3 админа) иIT-NetworkOperators(5 дежурных). - Настроили PowerShell-скрипт синхронизации AD-групп в
authentication.xmlраз в час, автоматический перезапуск службы. - Прописали TACACS на всех 49 устройствах через шаблонные конфиги (два дня работы одного инженера).
- Для Mikrotik — RADIUS через Windows NPS с маппингом на те же AD-группы.
- Включили accounting-команды — все действия логируются в SQL базу TACACS.NET.
- Настроили Grafana-дашборд с выборкой из SQL: кто, когда, куда зашёл, какую команду ввёл. Алерты на подозрительное (shutdown, erase).
Результат: через месяц у клиента один из инженеров случайно ввёл delete flash: на Eltex — команда была заблокирована authorization-правилом, инженер получил «permission denied». При анализе оказалось, что он перепутал окна SSH. Без TACACS это был бы простой сети магазина на 2-3 часа. Стоимость проекта — 72 000 руб. за настройку + 10 000 руб. лицензия TACACS.NET Pro. Окупилось в тот самый раз, когда команда delete была заблокирована.
Грабли, которые я уже собрал
- На Cisco не закрыта local fallback. Если TACACS-сервер упал, Cisco откатится на локальную учётку. Обязательно имейте 1-2 локальные emergency-учётки с длинным паролем, иначе останетесь без доступа.
- Single-connection TCP. Некоторые старые Cisco IOS держат отдельный TCP для каждой команды. У меня на 9300 была пила нагрузки на TACACS-сервер в пиковые моменты. Параметр
single-connectionрешает. - Deprecated local учётки. Если раньше на свитче был
username admin privilege 15 password 0 cisco, после включения TACACS он формально не нужен, но иногда через него заходят. Проверьте и уберите. - Нет журнала — нет аккаунтинга. Включайте
aaa accounting commands 15обязательно, иначе весь смысл теряется. - Shared secret в открытом виде. Всегда
key cipherилиenable password-encryption, чтобы в running-config не видно пароля. - Часы должны совпадать. NTP на TACACS-сервере и на всех устройствах — иначе accounting записи разойдутся по времени.
Настроим 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 новых устройств.