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 для строгого контроля доступа |