
2. Система tacacs.
Рассмотрим особенности централизованного контроля удаленного доступа на примере протокола TACACS (рис. 3).
Система TACACS выполнена в архитектуре клиент-сервер. В компьютерной сети, включающей несколько серверов удаленного доступа, устанавливается один сервер аутентификации, который называют сервером TACACS (обычно это программа, работающая в среде универсальной ОС, чаще всего UNIX).
На сервере TACACS формируется центральная база учетной информации об удаленных пользователях, включающая их имена, пароли и полномочия. В полномочиях каждого пользователя задаются подсети, компьютеры и сервисы, с которыми он может работать, а также различные виды ограничений, например временные ограничения. На этом сервере ведется база данных аудита, в которой накапливается регистрационная информация о каждом логическом входе, продолжительности сессии, а также времени использования ресурсов сети.
Клиентами сервера TACACS являются серверы удаленного доступа, принимающие запросы на доступ к ресурсам сети от удаленных пользователей. В каждый такой сервер (УД) встроено программное обеспечение, реализующее стандартный протокол, по которому они взаимодействуют с сервером TACACS. Этот протокол также называется TACACS.
Протокол TACACS стандартизует схему взаимодействия серверов удаленного доступа с сервером TACACS на основе задания возможных типов запросов, ответов и соединений. Определены запросы, с которыми клиенты могут обращаться к серверу TACACS. Сервер на каждый запрос должен ответить соответствующим сообщением. Протокол задает несколько типов соединений, каждое из которых определяется как последовательность пар запрос-ответ, ориентированная на решение отдельной задачи.
Определено три типа соединений:
1) AUTH - выполняется только аутентификация;
2) LOGIN - выполняется аутентификация и фиксируется логическое соединение с пользователем;
3) SLIP - выполняется аутентификация, фиксируется логическое соединение,
подтверждается IP-адрес клиента.
С помощью соединения AUTH серверы удаленного доступа перенаправляют серверу TACACS поток запросов на логическое подключение пользователей к сети в целом. Соединение LOGIN служит для перенаправления запросов серверу TACACS на логическое подключение пользователей к отдельным компьютерам локальной сети.
При соединении AUTH сервер удаленного доступа посылает на сервер TACACS только одно сообщение - пакет AUTH, на который сервер TACACS отвечает сообщением REPLY. Пакет AUTH имеет формат (username, password, line, style), где:
username - имя пользователя;
password - пароль пользователя (открытый текст);
line - номер порта сервера удаленного доступа, по которому пользователь установил соединение;
style - способ аутентификации.
Сервер TACACS на основании имеющихся у него данных проверяет пароль и возвращает ответ в виде пакета REPLY, где сообщает об успехе или неуспехе аутентификации. Сервер TACACS может выполнять аутентификацию самостоятельно, а может обращаться к другим системам аутентификации, например к системам аутентификации ОС UNIX, системе NDS ОС NetWare, системе Directory Services ОС Windows NT и т.п. В соответствии с протоколом TACACS, пароль передается между сервером удаленного доступа и сервером аутентификации в открытом виде. Поэтому протокол TACACS необходимо применять совместно с протоколом аутентификации по одноразовым паролям, например с протоколом S/Key.
Соединение LOGIN состоит в следующем обмене пакетов:
1) при установлении логического соединения:
клиент отправляет пакет LOGIN;
сервер отвечает пакетом REPLY;
2) при подключении к конкретному компьютеру:
клиент отправляет пакет CONNECT;
сервер отвечает пакетом REPLY;
3) для завершения сессии:
клиент отправляет пакет LOGOUT;
сервер отвечает пакетом REPLY.
Запрос LOGIN имеет следующий формат (username, password, line). Значения полей те же, что и в запросе AUTH. Ответ сервера всегда имеет вид (result1, result2, result3), где все три поля - это целые числа, значение которых в протоколе не оговаривается. Эти числа могут интерпретироваться в соответствии с соглашением, принятым конкретным типом сервера удаленного доступа и сервером TACACS. Например, на серверах удаленного доступа Cisco поле result3 интерпретируется как номер списка прав доступа (ACL), который нужно применить к данному пользователю. На основании полученных от сервера TACACS указаний сервер удаленного доступа выполняет процедуру аутентификации и разрешает или не разрешает удаленному пользователю логически войти в сеть.
При работе в сети пользователь может захотеть подключиться к разным компьютерам и приложениям. Каждый раз при этом сервер удаленного доступа обращается с запросом CONNECT к серверу TACACS. Запрос CONNECT имеет вид (username, password, line, destination IP, destination Port), где назначение первых трех полей — то же, что и в предыдущих запросах. Два последних поля идентифицируют IP-адрес компьютера назначения и TCP-порт приложения, с которым устанавливается связь. Запрос CONNECT передается при уже установленном соединении с пользователем и поэтому пароль в нем обычно не указывается. Запрос нужен для получения разрешения пользователю подключиться к указанному компьютеру по указанному IP-адресу. Ответ сервера имеет тот же вид, что и для запроса LOGIN.
Запрос LOGOUT передается для уведомления сервера TACACS о завершении сессии пользователя. Сервер ответом подтверждает прием уведомления.
С помощью приведенных сообщений серверы удаленного доступа перенаправляют поток запросов серверу TACACS на логическое подключение пользователей к сети в целом или к отдельным ее ресурсам.
Сервер TACACS может выполнять аутентификацию и авторизацию удаленных пользователей различными способами:
1) использование встроенного механизма аутентификации той ОС, под управлением которой работает сервер;
2) использование централизованных справочных систем ОС: NIS или NIS+ для ОС UNIX, NDS ОС NetWare, Directory Services ОС Windows NT и др.;
3) использование систем аутентификации, основанных на одноразовых паролях (например, системы SecurID);
4) передача запросов другим системам аутентификации, например системе Kerberos.
Следует отметить, что недостатки протокола TACACS, связанные с открытой передачей пароля по сети, устранены компанией Cisco в версии, названной TACACS+.
В соответствии с протоколом TACACS+, пароль для передачи по сети шифруется с помощью алгоритма MD5.
TACACS+ – это простой протокол управления доступом, основанный на стандартах UDP. TACACS+ представляет собой приложение сервера защиты, позволяющее на основе соответствующего протокола реализовать централизованное управление доступом пользователей к услугам. Информация о сервисах TACACS+ и пользователях хранится в базе данных, обычно размещенной на компьютере под управлением UNIX или Windows NT. TACACS+ позволяет с помощью одного сервера управления приложениями реализовать независимую поддержку сервисов ААА (Аутентификация, Авторизация, Аудит).
Протокол TACACS+ работает по технологии клиент-сервер.
Часть TCP-пакета, содержащая данные протокола TACACS+, шифруется с целью защиты трафика между сервером доступа и сервером защиты. Тело пакета шифруется с помощью симметричного алгоритма шифрования 3-DES. Пакеты TACACS+ передаются по сети и хранятся сервером TACACS+ в зашифрованном виде. Когда это необходимо, пакет дешифруется сервером доступа и приложением TACACS+ путем обращения алгоритма шифрования.
При аутентификации TACACS+ используется три типа пакетов: START (начало), CONTINUE (продолжение) и REPLY (ответ).
В процессе авторизации TACACS+ используется два типа пакетов: REQUEST (запрос) и RESPONSE (ответ). Данный процесс авторизации пользователя контролируется посредством обмена парами «атрибут/значение» между сервером защиты TACACS+ и сервером доступа.
Аудит (или учет) обычно следует за аутентификацией и авторизацией. Учет представляет собой запись действий пользователя. В системе TACACS+ учет может выполнять две задачи. Во-первых, он может использоваться для учета использованных услуг. Во-вторых, его можно использовать в целях безопасности.
В процессе аудита TACACS+ использует два типа пакетов – REQUEST (запрос) и RESPONSE (ответ). Данный процесс во многом подобен процессу авторизации. В процессе аудита создаются записи с информацией об активности пользователя в отношении заданных сервисов. Записи, регистрирующие выполненные сетевым оборудованием действия, могут сохраняться в некотором стандартном формате, на сервере защиты с целью дальнейшего анализа.
TACACS+ предусматривает раздельное хранение баз данных аутентификационной, авторизационной и учетной информации, в том числе и на разных серверах. Улучшено взаимодействие с системой Kerberos. Компания Cisco поддерживает в настоящее время в своих маршрутизаторах и серверах удаленного доступа усовершенствованную версию протокола TACACS+ .
Процесс аутентификации TACACS+
Заголовок пакета TACACS+ содержит поле типа, являющееся признаком того, что пакет представляет собой часть процесса ААА. Аутентификация TACACS+ различает три типа пакетов: START (начало), CONTINUE (продолжение) и REPLY (ответ). Рассмотрим процесс аутентификации TACACS+, в котором сервер сетевого доступа обменивается пакетами аутентификации с сервером TACACS+ (рис. 1).
Рис. 1. Процесс аутентификации TACACS+
Сервер сетевого доступа посылает пакет START серверу защиты TACACS+, чтобы начать процесс аутентификации.
Процесс аутентификации на сервере защиты TACACS+ обычно возвращает серверу сетевого доступа пакет GETUSER, содержащий запрос имени пользователя.
Сервер сетевого доступа запрашивает имя пользователя и посылает введенное имя серверу защиты TACACS+ в пакете CONTINUE.
Сервер защиты TACACS+ посылает серверу сетевого доступа пакет GETPASS, содержащий запрос пароля. Сервер сетевого доступа выдает запрос пароля пользователю.
Сервер сетевого доступа посылает серверу защиты TACACS+ пакет CONTINUE, содержащий пароль, введенный пользователем.
Сервер защиты TACACS+ проверяет пароль, используя для этого информацию из файла конфигурации TACACS+, и решает, успешно ли завершен процесс аутентификации данного пользователя. В результате серверу сетевого доступа возвращается либо пакет PASS (успех), либо пакет FAIL (неудача), указывающий результат аутентификации.
Процесс авторизации TACACS+
В процессе авторизации TACACS+ используется два типа пакетов: REQUEST (запрос) и RESPONSE (ответ). Данный процесс авторизации пользователя контролируется посредством обмена парами "атрибут/значение" между сервером защиты TACACS+ и сервером сетевого доступа. Рассмотрим процесс авторизации TACACS+, в котором сервер сетевого доступа обменивается пакетами авторизации с сервером TACACS+ (рис. 2).
Рис. 2. Процесс авторизации TACACS+
1.Сервер сетевого доступа посылает пакет REQUEST серверу защиты TACACS+. Данный пакет содержит фиксированный набор полей, идентифицирующих пользователя или процесс, а также переменный набор аргументов, описывающих сервисы и параметры, необходимые для авторизации.
2.Сервер защиты TACACS+ возвращает серверу сетевого доступа пакет RESPONSE, содержащий переменный набор аргументов ответа (пары "атрибут/значение"). Эти пары строятся на основе ранее заданных разрешений для данного пользователя, хранимых в файле конфигурации TACACS
3.Сервер сетевого доступа использует пары "атрибут/значение" для того, чтобы за претить, разрешить или модифицировать возможности использования команд и сервисов, запрашиваемых пользователем.
Процесс аудита TACACS+
В процессе аудита TACACS+ используется два типа пакетов - REQUEST (запрос) и RESPONSE (ответ). Данный процесс во многом подобен процессу авторизации. В процессе аудита создаются записи с информацией об активности пользователя в отношении заданных сервисов. Записи, регистрирующие выполненные сетевым оборудованием действия, могут сохраняться в некотором стандартном формате, например в файле .csv (comma-separated value - разделенные запятыми значения), на сервере защиты с целью дальнейшего анализа.
В рамках TACACS+ аудит ААА не является средством надежной защиты и обычно используется только для учета или управления. Однако с помощью аудита ААА можно контролировать действия пользователя, чтобы, например, вовремя заметить его необычное поведение при работе с сетевым оборудованием.
Рассмотрим процесс аудита TACACS+, в котором сервер сетевого доступа обменивается пакетами аудита с сервером TACACS+ (рис. 3).
Рис. 3. Процесс аудита TACACS+
Сервер сетевого доступа посылает серверу защиты TACACS+ пакет REQUEST аудита, содержащий фиксированный набор полей, идентифицирующих пользователя или процесс.
Этот пакет содержит запись, состоящую из переменного набора полей (пар "атрибут/значение"), описывающих сервисы, для которых должны создаваться записи аудита в зависимости от определенных событий и методов аудита. Пары "атрибут/значение" аналогичны тем, которые используются для авторизации, но дополнительно применяются пары, характеризующие время начала и окончания записи аудита, а также общее время, затраченное на ее создание.
Сервер защиты TACACS+ посылает серверу доступа пакет RESPONSE и подтверждает получение контрольной записи. Этот пакет указывает, что функция аудита на сервере защиты TACACS+ выполнена и что запись создана и сохранена.