Лекция №10
Вопросы:
1. Организация централизованной аутентификации.
2. Система TACACS.
3. Система RADIUS.
Для управления удаленными соединениями небольшой локальной сети вполне достаточно одного сервера удаленного доступа. Однако если локальная сеть объединяет относительно большие сегменты и число удаленных пользователей существенно возрастает, то одного сервера удаленного доступа будет недостаточно.
При использовании в одной локальной сети нескольких серверов удаленного доступа требуется централизованный контроль доступа к компьютерным ресурсам.
Рассмотрим, как решается задача контроля доступа к сети удаленных пользователей в соответствии с обычной схемой, когда удаленные пользователи пытаются получить доступ к сетевым ресурсам, которые находятся под управлением нескольких разных операционных систем.
Рис.1
Пользователь дозванивается до своего сервера удаленного доступа, и служба удаленного доступа RAS (Remote Access Service) серверной операционной системы выполняет для него процедуру аутентификации, например, по протоколу CHAP. Пользователь логически входит в сеть и обращается к нужному серверу, где снова проходит аутентификацию и авторизацию, в результате чего получает или не получает разрешение на выполнение запрошенной операции.
Нетрудно заметить, что такая схема неудобна пользователю, поскольку ему приходится несколько раз выполнять аутентификацию - при входе в сеть на сервере удаленного доступа, а потом еще каждый раз при обращении к каждому ресурсному серверу сети. Пользователь вынужден запоминать несколько разных паролей. Кроме того, он должен знать порядок прохождения разных процедур аутентификации в разных операционных системах. Возникают также серьезные трудности с администрированием такой сети, Администратор должен заводить учетную информацию о каждом пользователе на каждом сервере. Эти разрозненные базы данных трудно поддерживать в корректном состоянии. При увольнении сотрудника сложно исключить его из всех списков. Возникают проблемы при назначении паролей, существенно затрудняется аудит.
Отмеченные трудности и недостатки преодолеваются при установке в сети централизованной службы аутентификации и авторизации. Для централизованного контроля доступа выделяется отдельный сервер, называемый сервером аутентификации. Этот сервер служит для проверки подлинности удаленных пользователей, определения их полномочий, а также фиксации и накопления регистрационной информации, связанной с удаленным доступом. Надежность защиты повышается, если сервер удаленного доступа запрашивает необходимую для аутентификации информацию непосредственно у сервера, на котором хранится общая база данных системы защиты компьютерной сети.
Однако в большинстве случаев серверы удаленного доступа нуждаются в посреднике для взаимодействия с центральной базой данных системы защиты, например со службой каталогов. Это обусловлено тем, что стандартами удаленной аутентификации, поддерживаемыми серверами удаленного доступа, являются протоколы CHAP и РАР, которые не подходят без дополнений для аутентификации с использованием доменной службы Windows NT.
Для проверки ответа на вызов сервера, поступившего от проходящего аутентификацию пользователя, реализация протокола CHAP применяет незашифрованную копию пароля в простой текстовой форме. При аутентификации на основе протокола РАР пароль также используется в открытом виде.
Большинство сетевых операционных систем и служб каталогов сохраняют эталонные пароли пользователей с использованием одностороннего хэширования, что не позволяет серверам удаленного доступа, стандартно реализующим протоколы РАР и CHAP, извлечь открытый эталонный пароль для проверки ответа.
Роль посредника во взаимодействии между серверами удаленного доступа и центральной базой данных системы защиты может быть возложена на сервер аутентификации.
Централизованный контроль удаленного доступа к компьютерным ресурсам с помощью сервера аутентификации выполняется на основе специализированных протоколов. Данные протоколы позволяют объединять используемые серверы удаленного доступа и сервер аутентификации в одну подсистему, выполняющую все функции контроля удаленных соединений на основе взаимодействия с центральной базой данных системы защиты. Сервер аутентификации создает единую точку наблюдения и проверки всех удаленных пользователей и контролирует доступ к компьютерным ресурсам в соответствии с установленными правилами.
К наиболее популярным протоколам централизованного контроля доступа к сети удаленных пользователей относятся протоколы TACACS (Terminal Access Controller Access Control System) и RADIUS (Remote Authentication Dial-In User Service). Системы TACACS и RADIUS предназначены в первую очередь для организаций, в центральной сети которых используется несколько серверов удаленного доступа. В этих системах администратор может управлять базой данных идентификаторов и паролей пользователей, предоставлять им привилегии доступа и вести учет обращений к системным ресурсам.
Протоколы TACACS и RADIUS требуют применения отдельного сервера аутентификации, который для проверки подлинности пользователей и определения их полномочий может использовать не только собственную базу данных, но и взаимодействовать с современными службами каталогов, например с NDS (Novell Directory Services) и Microsoft Windows NT Directory Service.
Серверы TACACS и RADIUS выступают в качестве посредников между серверами удаленного доступа, принимающими звонки от пользователей, с одной стороны, и сетевыми ресурсными серверами, с другой. Реализации TACACS и RADIUS могут также служить посредниками для внешних систем аутентификации.
Рассмотрим особенности централизованного контроля удаленного доступа на примере протокола 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