«Сравнение RADIUS и TACACS+ часто сводится к открытому стандарту против проприетарного, но реальный выбор — это компромисс между детальным учётом сетевых сессий и максимальной безопасностью админ-доступа к инфраструктуре. Первый протокол создан для учёта миллионов подключений, второй — для контроля каждого введённого администратором символа.»
В инфраструктуре управления доступом к сетевым устройствам и сервисам централизованные системы аутентификации, авторизации и учёта (AAA) вытеснили локальные базы пользователей на каждом устройстве. Подход AAA обеспечивает единую точку контроля, упрощает управление учётными записями и позволяет вести консолидированный журнал действий. Для взаимодействия устройств с AAA-сервером используются два основных протокола: RADIUS и TACACS+.
Архитектурные отличия: учёт сессий против контроля команд
Ключевое различие между RADIUS и TACACS+ лежит в их исходном предназначении, которое определило архитектуру.
RADIUS (Remote Authentication Dial-In User Service) изначально проектировался для массовой аутентификации удалённых пользователей, подключающихся по dial-up. Его задача — проверить логин и пароль, выдать параметры сессии (например, IP-адрес) и аккуратно записать факт начала и окончания соединения. Поэтому RADIUS объединяет этапы аутентификации и авторизации в едином запросе, но выделяет учёт в отдельный поток. Это сделало протокол эффективным для учёта большого количества сетевых сессий, но менее гибким для сложных сценариев контроля доступа.
TACACS+ (Terminal Access Controller Access-Control System Plus), в свою очередь, был создан для контроля доступа к сетевым устройствам, таким как маршрутизаторы и коммутаторы. Его архитектура строго разделяет три функции AAA. Аутентификация (кто вы?), авторизация (что вам можно делать?) и учёт (что вы сделали?) выполняются независимыми сессиями. Это позволяет, например, использовать один источник для проверки пароля (Active Directory), а другой — для проверки прав на выполнение конкретных команд (локальная база TACACS+). Главное преимущество — гранулярный контроль на уровне каждой команды.
Безопасность передачи данных
С точки зрения конфиденциальности передаваемых данных TACACS+ обеспечивает более высокий уровень защиты. Он шифрует всё тело пакета (payload), за исключением минимального стандартного заголовка. Под защитой оказываются не только учётные данные, но и информация об авторизации, передаваемые команды и параметры учёта.
RADIUS шифрует только поле с паролем в пакете запроса на доступ (Access-Request). Имя пользователя, назначенные атрибуты сервиса (например, VLAN, ACL), а также все сообщения учёта передаются в открытом виде. Это делает протокол уязвимым к пассивному прослушиванию трафика, когда злоумышленник может узнать, кто из администраторов и к каким устройствам подключается.
Детальное сравнение протоколов
| Критерий | TACACS+ | RADIUS |
|---|---|---|
| Модель AAA | Полное разделение аутентификации, авторизации и учёта. Независимые сессии. | Совмещение аутентификации и авторизации. Учёт выделен отдельно. |
| Транспортный протокол | TCP (порт 49). Гарантированная доставка, управление сессией. | UDP (порты 1812/1813 или 1645/1646). Меньшие накладные расходы, но нет гарантий доставки. |
| Шифрование | Всё тело пакета. | Только атрибут с паролем в запросе доступа. |
| Гранулярность авторизации | Контроль на уровне команд (command authorization). Можно разрешить или запретить конкретные команды для пользователя или группы. | Авторизация на уровне сессии. Нет контроля выполнения отдельных команд на устройстве. |
| Поддержка CHAP | Двусторонняя аутентификация (mutual challenge-response). | Односторонняя аутентификация (сервер проверяет клиента). |
| Учёт (Accounting) | Менее развит, ориентирован на логирование фактов доступа и введённых команд. | Очень развит. Оптимизирован для детального учёта параметров сетевых сессий (время, трафик, сервисы). |
| Стандартизация | Фактический стандарт Cisco (опубликован как открытая спецификация IETF draft). | Открытый стандарт (RFC). Широкая поддержка у вендоров. |
Контекст выбора для российских реалий
Выбор протокола часто определяется не только техническими особенностями, но и регуляторными требованиями. При построении систем защиты информации, подпадающих под действие 152-ФЗ и приказов ФСТЭК, ключевыми становятся требования к контролю доступа привилегированных пользователей и учёту их действий.
TACACS+ с его разделением AAA и шифрованием всего пакета лучше соответствует принципу минимальных привилегий и необходимости защиты журналов аудита. Возможность авторизации на уровне команд позволяет реализовать политику, при которой рядовой администратор может выполнять только оперативные команды (show, ping), а на изменение конфигурации требуется отдельное разрешение или участие второго администратора.
RADIUS, несмотря на слабое шифрование, остаётся незаменим для сценариев массового доступа: аутентификации пользователей корпоративного Wi-Fi, VPN или портала самообслуживания. Его развитые возможности учёта (Network Accounting) идеально подходят для биллинга или анализа сетевой активности.
В современных реалиях часто используется гибридный подход: TACACS+ для административного доступа к критической инфраструктуре (маршрутизаторы, коммутаторы, межсетевые экраны), а RADIUS — для контроля доступа конечных пользователей к сетевым сервисам.
Учёт (Accounting) как основа для аудита
Функция учёта в AAA — это основа для анализа инцидентов и проверок. Она не просто регистрирует факт входа, но и детально фиксирует действия пользователя внутри сессии. Это критически важно для соответствия требованиям регуляторов по хранению и защите журналов аудита.
AAA-учёт можно разделить на несколько типов, каждый из которых фиксирует определённый слой активности:
- Учёт сессий (EXEC Accounting): записывает начало и окончание сеанса пользователя на устройстве (например, подключение по SSH), имя пользователя, IP-адрес.
- Учёт команд (Command Accounting): фиксирует каждую команду, введённую в интерфейсе командной строки, с отметкой времени и уровнем привилегий. Это ключевой тип учёта для TACACS+.
- Сетевой учёт (Network Accounting): собирает данные по сетевым соединениям (PPP, VPN) — объём переданных данных, длительность сессии.
- Учёт соединений (Connection Accounting): логирует установление всех исходящих соединений с устройства (например, Telnet с маршрутизатора на внешний хост).
- Системный учёт (System Accounting): фиксирует события уровня системы, такие как перезагрузка или изменение конфигурации протокола учёта.
Централизованный сбор этих журналов с помощью AAA-сервера позволяет создать единую и защищённую ленту аудита для всей сетевой инфраструктуры, что упрощает расследование инцидентов и доказывает эффективность мер контроля при проверках.