TACACS

TACACS (англ. Terminal Access Controller Access-Control System) — это протокол для удалённой аутентификации и авторизации, а также связанных с ними сервисов централизованного контроля доступа в компьютерных сетях, который использует централизованный сервер. Оригинальный протокол TACACS был разработан в 1984 году и применялся для взаимодействия с сервером аутентификации, что было распространено в старых сетях UNIX, и изначально предназначался для работы в сети ARPANET. Из TACACS впоследствии были развиты несколько других протоколов:

  • Extended TACACS (XTACACS) — расширенная, проприетарная версия TACACS, внедрённая компанией Cisco Systems в 1990 году. Оба протокола позволяют удалённому серверу взаимодействовать с сервером аутентификации для определения, имеет ли пользователь право доступа к сети. XTACACS добавляет функцию учёта событий, делая протокол соответствующим требованиям AAA, а также поддерживает работу с несколькими серверами XTACACS, что повышает отказоустойчивость системы.
  • TACACS+ (англ. Terminal Access Controller Access-Control System Plus) — протокол, также разработанный Cisco и выпущенный как открытый стандарт с 1993 года. Хотя TACACS+ основан на TACACS, это отдельный протокол, реализующий сервисы аутентификации, авторизации и учёта (AAA). TACACS+ и другие гибкие протоколы AAA значительно вытеснили свои предшественники.

История

TACACS был изначально разработан в 1984 году компанией BBN Technologies для управления сетью MILNET, использовавшейся для неклассифицированного трафика Министерства обороны США и впоследствии заменённой NIPRNet. Первоначально TACACS задумывался для автоматизации аутентификации: зарегистрированный пользователь одного узла сети мог подключаться к другому узлу на той же сети без повторной аутентификации. Формальное описание TACACS представил Брайан А. Андерсон из BBN в декабре 1984 года в RFC 927[1][2]. Cisco Systems реализовала поддержку TACACS в своей сетевой продукции в конце 1980-х годов, предложив несколько расширений протокола. В 1990 году эти расширения превратились в новый проприетарный протокол — Extended TACACS (XTACACS). Несмотря на то, что TACACS и XTACACS не создавались как открытые стандарты, Крейг Финсет (университет Миннесоты) при содействии Cisco опубликовал их описание в RFC 1492 в 1993 году — только в информативных целях[1][3][4].

Технические особенности

TACACS

TACACS определён в RFC 1492 и использует для передачи данных протоколы UDP или TCP, по умолчанию применяется порт 49. Данные между клиентом и сервером передаются в пакетах TACACS (размером от 6 до 516 байт), которые вкладываются в поле данных UDP-пакетов. Имена пользователей и пароли передаются в открытом виде, без шифрования, с нечувствительностью к регистру символов. TACACS позволяет клиенту с именем пользователя и паролем отправить запрос на сервер аутентификации, известный также как TACACS-деймон или TACACSD. Сервер, как правило, представляет собой программу на определённом компьютере; после обработки запроса он разрешает или запрещает доступ. Сервер должен принять решение и отправить соответствующий ответ. Узел распределения (такой как TIP — Terminal Interface Processor для коммутируемого доступа) затем разрешает или запрещает доступ по результату.

TACACS+

В современных сетях TACACS и XTACACS вытеснены протоколами TACACS+ и RADIUS. TACACS+ представляет собой полностью новый протокол, несовместимый с предыдущими версиями. В отличие от RADIUS, TACACS+ использует TCP, тогда как RADIUS работает на базе UDP. Благодаря использованию архитектуры AAA, отдельные компоненты протокола (аутентификация, авторизация и учёт событий) могут обслуживаться раздельно на различных серверах[5].

Так как TCP — это протокол с установлением соединения, TACACS+ не требует собственных механизмов контроля передачи, тогда как RADIUS должен обеспечивать обнаружение и исправление ошибок передачи (например, потеря пакетов или тайм-ауты), поскольку UDP не гарантирует доставку. RADIUS шифрует только пароли, а такие данные, как имя пользователя, параметры авторизации и учёта, передаются в открытом виде, что создаёт уязвимость к различным атакам. TACACS+ шифрует большую часть содержимого своего протокола и тем самым лишён уязвимостей RADIUS. TACACS+ — это расширение TACACS, разработанное компанией Cisco, при котором кодируются все данные каждого пакета. Кроме того, протокол поддерживает детализированное управление командами пользователей, позволяя ограничивать команды, доступные на оборудовании (например, на маршрутизаторах).

Протокол TACACS+ поддерживает работу с различными сетевыми протоколами:

  • AppleTalk Remote Access (ARA);
  • NetBIOS Frame Protocol Control;
  • Novell Asynchronous Services Interface (NASI);
  • X.25 PAD connection.

Сервисы TACACS+

TACACS+ реализует сервисы безопасности класса AAA, предоставляя:

  • Аутентификацию: полный контроль за входом по имени пользователя и паролю, суппорт механизмов вызов-ответ, поддержку сообщений пользователям (например, уведомление о необходимости смены пароля).
  • Авторизацию: тонкую настройку доступа пользователя в течение сессии, включая контроль времени сессии, список разрешённых функций и поддерживаемых протоколов. Авторизация может ограничивать набор доступных команд и операций.
  • Учёт событий: сбор и передача информации, используемой для расчётов, аудита и отчётности на сервер TACACS+. Возможна регистрация идентификаторов пользователей, выполняемых команд, количества пакетов и объёма трафика для мониторинга и биллинга.

Операции TACACS+

Алгоритм работы при аутентификации пользователя с помощью TACACS+ включает несколько этапов:

  1. После установления соединения сетевой сервер связывается с TACACS±деймоном для получения приглашения на ввод имени пользователя, которое выводится пользователю. После ввода имени сервер запрашивает у деймона сообщение для ввода пароля, и пользователь вводит пароль, который также передаётся TACACS±деймону.
  2. Сервер получает один из ответов от TACACS±деймона: ACCEPT — пользователь аутентифицирован, доступ разрешён; REJECT — аутентификация не удалась, доступ запрещён или требуется новая попытка; ERROR — произошла ошибка (на сервере или в соединении), используется альтернативный способ аутентификации; CONTINUE — запрошена дополнительная информации о пользователе.
  3. При аутентификации через PAP имя и пароль передаются не вручную, а находятся внутри пакета PAP.
  4. Если требуется авторизация, сервер снова взаимодействует с TACACS±деймоном и получает ответ (принять/отклонить). В случае ACCEPT в ответе содержатся атрибуты — параметры сессии EXEC или NETWORK, определяющие доступные сервисы (Telnet, rlogin, PPP, SLIP, EXEC и т. д.), а также параметры подключения: хост/адрес клиента, список доступа, тайм-аут.

Примечания

Ссылки