TACACS+
Что такое TACACS+?
TACACS+ (Terminal Access Controller Access-Control System Plus) — это протокол, разработанный Cisco для централизованного управления доступом к сетевым устройствам.
Протокол используется в основном для аутентификации, авторизации и учета (AAA) действий администраторов и пользователей при подключении к маршрутизаторам, коммутаторам, фаерволам и другим сетевым элементам.
Цель и назначение TACACS+
🎯 Основные задачи:
- Аутентификация: Проверка личности пользователя
- Авторизация: Определение, какие команды может выполнять пользователь
- Учет (Accounting): Логирование всех выполненных команд и действий
В отличие от RADIUS, TACACS+ особенно хорошо подходит для сценариев, где требуется детальная авторизация на уровне CLI (командной строки).
Как работает TACACS+?
[Пользователь] → [SSH / Telnet / Console] → [Network Device] → Отправляет запрос на TACACS+ сервер
[TACACS+ Server] ←→ [User DB / LDAP / AD] → Проверяет учетные данные
[TACACS+ Server] → Ответ: Accept / Reject + политики доступа
[Network Device] → Разрешает или запрещает действия в зависимости от политики
Этапы работы:
- Пользователь пытается войти через SSH или консоль.
- Устройство отправляет запрос на TACACS+ сервер.
- Сервер проверяет учетные данные и возвращает ответ:
- Аутентификация успешна?
- Какой уровень привилегий у пользователя?
- Можно ли выполнять конкретные команды?
- Устройство предоставляет доступ согласно политике.
Архитектура TACACS+
+------------------+ +------------------+ +------------------+
| Клиент | | Network Device| | TACACS+ Server |
| (Пользователь, | <----> | (Router/Switch) | <----> | (AAA Server) |
| администратор) | | | | |
+------------------+ +------------------+ +------------------+
Компоненты:
- Клиент — человек или автоматизированная система, пытающаяся получить доступ к сетевому устройству
- Network Device — маршрутизатор, коммутатор, точка доступа и т. д., выступающий как NAS (Network Access Server)
- TACACS+ Server — сервер, обрабатывающий AAA-запросы и предоставляющий политики доступа
Сообщения и атрибуты TACACS+
Основные типы сообщений:
| Сообщение |
Описание |
| Authentication START |
Начало процесса аутентификации |
| Authentication CONTINUE |
Продолжение многошаговой аутентификации |
| Authentication REPLY |
Результат аутентификации |
| Authorization REQUEST |
Запрос на выполнение команды или вход |
| Authorization RESPONSE |
Ответ с разрешением или запретом |
| Accounting REQUEST / RESPONSE |
Передача данных о действиях пользователя |
Часто используемые атрибуты:
| Атрибут |
Описание |
| user |
Имя пользователя |
| password |
Пароль (шифруется) |
| priv_lvl |
Уровень привилегий (например, 0–15 в Cisco) |
| service |
Тип сервиса (login, enable и т. д.) |
| cmd |
Конкретная команда, которую пользователь хочет выполнить |
| acct_status_type |
Тип события (start/stop) |
| elapsed_time |
Время сессии |
Протокол TACACS+: особенности и отличия от RADIUS
| Характеристика |
TACACS+ |
RADIUS |
| Уровень модели OSI |
Прикладной |
Прикладной |
| Протокол передачи |
TCP (порт 49) |
UDP (1812/1813) |
| Функциональность |
AAA, но каждая часть может быть разделена |
AAA в одном протоколе |
| Шифрование |
Полное шифрование всего сообщения |
Только пароль шифруется |
| Авторизация на уровне команд |
✅ |
❌ |
| Поддержка EAP |
❌ |
✅ |
| Гибкость политики |
Выше, особенно для CLI |
Ниже |
| Совместимость |
Cisco-ориентированный |
Общий стандарт IETF |
| Распространённость |
В корпоративных и операторских сетях |
В Wi-Fi, Ethernet, PPP, VoWiFi |
Где применяется TACACS+?
| Сценарий |
Описание |
| Консольный доступ |
Управление маршрутизаторами и коммутаторами |
| SSH / Telnet |
Аутентификация администраторов |
| Enable-режим |
Защита перехода к привилегированному режиму |
| CLI-команды |
Авторизация выполнения конкретных команд |
| Безопасность инфраструктуры |
Централизованное управление доступом к сетевым устройствам |
| Облачные и виртуальные среды |
Управление виртуальными маршрутизаторами и SDN |
| Интеграция с Active Directory / LDAP |
Единая система управления учетными записями |
Преимущества TACACS+
| Преимущество |
Описание |
| Детальная авторизация |
Возможность ограничения выполнения конкретных команд |
| Шифрование всего трафика |
Защита от прослушивания и MITM |
| Разделение AAA-функций |
Можно использовать только нужную часть (например, только авторизацию) |
| Поддержка сложных политик |
Гибкая настройка прав доступа |
| Высокая безопасность |
Защита административного доступа к сетевой инфраструктуре |
| Интеграция с существующими системами |
LDAP, Active Directory, Radius (через мосты) |
| Масштабируемость |
Поддерживает сотни и тысячи сетевых устройств |
Недостатки и ограничения TACACS+
| Недостаток |
Описание |
| Cisco-зависимость |
Хотя открыт, чаще используется в Cisco-сетях |
| Ограниченная поддержка не-Cisco оборудования |
Не все производители поддерживают TACACS+ |
| Сложность внедрения |
Требует настройки клиентов, серверов, политик |
| TCP-соединение |
Может быть медленнее и менее отказоустойчивым |
| Нет встроенного механизма MFA |
Для двухфакторной аутентификации нужны дополнительные модули |
| Ограничения в мобильных и беспроводных сценариях |
Меньше подходит для Wi-Fi, VPN, IoT по сравнению с RADIUS |
TACACS+ vs RADIUS
| Критерий |
TACACS+ |
RADIUS |
| Уровень модели OSI |
Прикладной |
Прикладной |
| Протокол передачи |
TCP |
UDP |
| Функциональность |
AAA, можно разделить |
AAA в одном протоколе |
| Шифрование |
Полное |
Только пароль |
| Авторизация команд |
✅ |
❌ |
| Поддержка EAP |
❌ |
✅ |
| Использование |
Управление сетевыми устройствами |
Wi-Fi, Ethernet, PPP, VoWiFi |
| Распространённость |
В основном в Cisco-сетях |
Широко |
| Безопасность |
Выше |
Ниже |
Перспективы развития TACACS+
| Направление |
Описание |
| Открытые реализации |
Такие как Cisco Tacacs+, FreeTACACS, tac_plus и др. |
| Интеграция с DevOps |
Использование TACACS+ в CI/CD, автоматизации сетей |
| Поддержка MFA |
Интеграция с OTP, YubiKey, DUO Security |
| Cloud TACACS+ |
Работа как SaaS или PaaS сервис |
| API-first подход |
Управление через REST API и автоматизацию |
| Виртуализация и контейнеризация |
Запуск серверов в Docker/Kubernetes |
| Поддержка Zero Trust Architecture |
Интеграция с ZTA для строгого контроля доступа |