RADIUS

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

RADIUS (Remote Authentication Dial-In User Service) — расширенный протокол удаленной аутентификации пользователей, представляет собой ключевой элемент в обеспечении безопасности и управлении доступом в сетях. RADIUS был разработан для управления аутентификацией, авторизацией и учетом (AAA — Authentication, Authorization and Accounting) пользователей, предоставляя стандартизированный метод для проверки подлинности и предоставления доступа к сетевым ресурсам.

ААА Описание
Аутентификация (Authentication) Процесс аутентификации включает в себя передачу учетных данных (обычно имя пользователя и пароля) серверу RADIUS. Сервер RADIUS затем проверяет эти данные с помощью методов аутентификации, таких как PAP (Password Authentication Protocol), CHAP (Challenge Handshake Authentication Protocol) или EAP (Extensible Authentication Protocol). Эти протоколы обеспечивают безопасную передачу учетных данных и защищают их от несанкционированного доступа.
PAP (Password Authentication Protocol) обеспечивает передачу учетных данных безопасным образом.
CHAP (Challenge Handshake Authentication Protocol) предотвращает передачу пароля в открытом виде.
EAP (Extensible Authentication Protocol) обеспечивает гибкость и поддержку различных методов аутентификации.
Авторизация (Authorization) После успешной аутентификации RADIUS сервер принимает решение об авторизации пользователя. Это включает в себя определение прав доступа пользователя к определенным сетевым ресурсам или услугам. Авторизация может быть базирована на ролях пользователя, временных параметрах или других критериях.
Учет (Accounting) Учет в RADIUS относится к записи информации о использовании ресурсов пользователем. Это включает в себя информацию о времени подключения, длительности сеанса, объеме переданных данных и другие параметры. Эти данные могут быть использованы для аудита, мониторинга и выставления счетов.

Протокол RADIUS играет ключевую роль в сфере сетевой безопасности и управления доступом. Его расширяемость позволяет внедрять новые методы аутентификации и авторизации, обеспечивая высокий уровень защиты от несанкционированного доступа.

В контексте аутентификации, протокол EAP, используемый в RADIUS, поддерживает различные механизмы, такие как EAP-TLS (Transport Layer Security), EAP-PEAP (Protected Extensible Authentication Protocol) и другие. Это расширенные протоколы обеспечивают дополнительные уровни шифрования и безопасности, что особенно важно в чувствительных к безопасности сетях и приложениях.

Система учета (Accounting) в RADIUS обеспечивает не только аудит использования ресурсов, но и базу для выставления счетов за предоставленные услуги. Эта функциональность является ключевой для провайдеров услуг, позволяя им эффективно управлять и фактурировать предоставляемые ресурсы.

История[править | править код]

Протокол RADIUS был разработан Карлом Ригни (англ. Carl Rigney) в фирме Livingston Enterprises для их серверов доступа (Network Access Server) серии PortMaster к сети интернет, и позже, в 1997, был опубликован как RFC 2058 и RFC 2059 (текущие версии RFC 2865 и RFC 2866). На данный момент существует несколько коммерческих и свободно распространяемых RADIUS-серверов. Они несколько отличаются друг от друга по своим возможностям, но большинство поддерживает списки пользователей в текстовых файлах, LDAP, различных базах данных. Учётные записи пользователей могут храниться в текстовых файлах, различных базах данных, или на внешних серверах. Часто для удаленного мониторинга используется SNMP. Существуют Прокси-серверы для RADIUS, упрощающие централизованное администрирование и/или позволяющие реализовать концепцию интернет-роуминга. Они могут изменять содержимое RADIUS-пакета на лету (в целях безопасности или для выполнения преобразования между диалектами). Популярность RADIUS-протокола, во многом объясняется: открытостью к наполнению новой функциональностью при сохранении работоспособности с устаревающим оборудованием, чрезвычайно высокой реактивностью при обработке запросов ввиду использования UDP в качестве транспорта пакетов, а также хорошо параллелизуемым алгоритмом обработки запросов; способностью функционировать в кластерных (Cluster) архитектурах (например OpenVMS) и мультипроцессорных (SMP) платформах (DEC Alpha, HP Integrity[en]) — как с целью повышения производительности, так и для реализации отказоустойчивости.

В настоящее время (с середины 2003 года) разрабатывается протокол DIAMETER (текущие версии RFC 3588 и RFC 3589), который призван заменить RADIUS, предоставляя механизм миграции.

Возможности[править | править код]

Аутентификация и авторизация через RADIUS-сервер

RADIUS представляет собой клиент-серверный протокол, используемый для аутентификации и авторизации пользователей, а также для учета их использования сетевых ресурсов. В сценариях, где множество пользователей требуют доступ к сетевым службам, таким как интернет или корпоративные ресурсы, RADIUS обеспечивает централизованное управление этим доступом.

  • Client (NAS) Устройство, требующее аутентификации, например, маршрутизатор или коммутатор.
  • RADIUS Server Ответственен за аутентификацию, авторизацию и учет. Сервер может быть самостоятельным или интегрирован в сетевую инфраструктуру.
  • User Database: Хранит информацию о пользователях, необходимую для аутентификации (например, имя пользователя и пароль).

RADIUS обычно использует порты UDP 1812 для аутентификации и 1813 для учета. Эти порты могут варьироваться в зависимости от конфигурации.

RADIUS широко используется в различных сетевых сценариях, включая:

При предоставлении доступа к интернету провайдеры часто используют RADIUS для аутентификации пользователей и управления их доступом.

В офисных средах RADIUS применяется для обеспечения безопасного доступа сотрудников к корпоративным ресурсам и службам.

RADIUS используется для аутентификации устройств и пользователей, подключающихся к беспроводным сетям, что обеспечивает дополнительный уровень безопасности.

При использовании виртуальных частных сетей (VPN) RADIUS гарантирует безопасность и контроль доступа.

Будучи частью биллинговой системы, RADIUS-сервер является интерфейсом взаимодействия с телекоммуникационной системой или сервером (например маршрутизатором или коммутатором) и может реализовывать для такой системы следующие сервисы:

Онлайн учёт через RADIUS-сервер

Общие[править | править код]

  • Создание и хранение учётных записей пользователей (абонентов)
  • Управление учётной записью пользователя (абонента) из персонального интерфейса (например веб-кабинета)
  • Создание карточек доступа (логин или PIN-код) для предоставления услуг, с некоторым лимитом действия (Dial-Up доступа в Интернет и карточной IP-телефонии)
  • Ручная и автоматическая блокировка учётной записи абонента по достижении заданного критерия или лимита
  • Сбор и анализ статистической информации о сессиях пользователя и всей обслуживаемой системы (в том числе CDR)
  • Создание отчётов по различным статистическим параметрам
  • Создание, печать и отправка счетов к оплате
  • Аутентификация всех запросов в RADIUS-сервер из обслуживаемой системы (поле Secret)

RADIUS оперирует поверх протокола транспортного уровня UDP (User Datagram Protocol), который является протоколом без установления соединения. Эта особенность влияет на его производительность и реактивность.

Принятие UDP в качестве транспортного протокола обеспечивает высокую скорость обработки запросов, поскольку нет необходимости в установлении и поддержании постоянного соединения. Тем не менее, из-за отсутствия механизмов подтверждения и повторной передачи пакетов, RADIUS может потерять некоторые запросы в сетевых условиях с высоким уровнем загрузки или шума. Это требует внимательного управления сетью и обеспечения надежности на других уровнях стека сетевых протоколов.

Таким образом, RADIUS не привязан к конкретному сетевому уровню, а его функционирование зависит от сетевых услуг, предоставляемых протоколом UDP, который работает на четвертом уровне модели OSI.

Каждый пакет UDP состоит из следующих полей:

Поле Размер (байты) Описание
Code 1 Тип пакета (Access Request, Access Accept, Access Reject)
Identifier 1 Уникальный идентификатор пакета
Length 2 Длина пакета в байтах, включая все поля и атрибуты
Authenticator 16 Используется для аутентификации пакета и обеспечения целостности данных
Attributes Переменная Набор пар «атрибут-значение» для аутентификации и авторизации

В настоящее время протокол RADIUS используется для доступа к виртуальным частным сетям (VPN), точкам беспроводного (Wi-Fi) доступа, Ethernet-коммутаторам, DSL и другим типам сетевого доступа. Благодаря открытости, простоте внедрения, постоянному усовершенствованию, протокол RADIUS сейчас является фактически стандартом для удаленной аутентификации.

Процесс аутентификации и авторизации[править | править код]

Для определения принципа работы протокола RADIUS необходимо рассмотреть рисунок, приведённый выше[где?]. Ноутбуки и IP-телефон представляют устройства пользователя, с которых необходимо выполнить аутентификацию и авторизацию на сетевых серверах доступа (NAS): точке Wi-Fi доступа, маршрутизаторе, VPN-сервере и IP АТС. На рисунке приведены несколько из возможных вариантов NAS, существуют и другие сетевые устройства доступа. RADIUS реализуется в виде интерфейса между NAS (RADIUS-клиент) и RADIUS-сервером — программным обеспечением, устанавливаемым на компьютере (сервере) или ином специализированном устройстве. Сервер взаимодействует с устройством пользователя не напрямую, а только через сетевой сервер доступа.

Пользователь отправляет запрос на сетевой сервер для получения доступа к определённому сетевому ресурсу, используя сертификат доступа. Сертификат отправляется на сервер через сетевой протокол канального уровня (например, PPP в случае коммутируемого доступа, DSL в случае использования соответствующих модемов и т. д.). NAS, в свою очередь, посылает сообщение запроса доступа на RADIUS-сервер (RADIUS Access Request). Запрос включает сертификаты доступа, представленные в виде имени пользователя и пароля или сертификата безопасности, которые получены от пользователя. Запрос может содержать дополнительные параметры: сетевой адрес устройства пользователя, телефонный номер, информацию о физическом адресе, с которого пользователь взаимодействует с NAS.

Сервер проверяет информацию на корректность, используя схемы аутентификации:

  • PAP (Password Authentication Protocol) (RFC 1334) — простой аутентификационный протокол, который используется для аутентификации пользователя по отношению к сетевому серверу доступа (NAS). РАР используется РРР протоколом. Практически все сервера доступа поддерживают РАР. РАР передает зашифрованный пароль через сеть и, следовательно, при перехвате трафика пароль может быть подвержен атаке перебора. Поэтому РАР, обычно, используется в том случае, когда сервер не поддерживает защищенные протоколы, такие как СНАР, ЕАР и т. п.
  • CHAP (англ. Challenge Handshake Authentication Protocol) (RFC 1994) — широко распространённый алгоритм проверки подлинности, предусматривающий передачу не самого пароля пользователя, а косвенных сведений о нём. При использовании CHAP сервер удаленного доступа отправляет клиенту строку запроса. На основе этой строки и пароля пользователя клиент вычисляет хеш-код MD5 и передает его серверу. Хеш-функция является алгоритмом одностороннего (необратимого) шифрования, поскольку значение хеш-функции для блока данных вычислить легко, а определить исходный блок по хеш-коду с математической точки зрения невозможно за приемлемое время. Сервер, которому доступен пароль пользователя, выполняет те же самые вычисления и сравнивает результат с хеш-кодом, полученным от клиента. В случае совпадения учётные данные клиента удалённого доступа считаются подлинными.
  • MD5 (Message-Digest algorithm 5) (RFC 1321) — широко используемая криптографическая функция с 128 битовым хешем. В алгоритме найден ряд уязвимостей, в силу чего Министерство внутренней безопасности США не рекомендует использование MD5 в будущем, и для большинства правительственных приложений c 2010 года США требуется перейти на семейство алгоритма SHA-2[источник не указан 2286 дней].
  • EAP (Extensible Authentication Protocol) (RFC 3748) позволяет проверять подлинность при подключениях удаленного доступа с помощью различных механизмов проверки подлинности. Точная схема проверки подлинности согласовывается клиентом удаленного доступа и сервером, выполняющим проверку подлинности (им может быть сервер удаленного доступа или RADIUS сервер). По умолчанию в маршрутизацию и удаленный доступ включена поддержка протоколов EAP-TLS и MD5-Challenge (MD5-задача). Подключение других модулей ЕАР к серверу, использующему маршрутизацию и удаленный доступ, обеспечивает поддержку других методов ЕАР. Протокол EAP позволяет вести свободный диалог между клиентом удаленного доступа и системой проверки подлинности. Такой диалог состоит из запросов системы проверки подлинности на необходимую ей информацию и ответов клиента удаленного доступа. Например, когда протокол EAP используется с генераторами кодов доступа, сервер, выполняющий проверку подлинности, может отдельно запрашивать у клиента удаленного доступа имя пользователя, идентификатор и код доступа. После ответа на каждый такой запрос клиент удаленного доступа проходит определенный уровень проверки подлинности. Когда на все запросы будут получены удовлетворительные ответы, проверка подлинности клиента удаленного доступа успешно завершается.

Схемы проверки подлинности, использующие протокол EAP, называются типами EAP. Для успешной проверки подлинности клиент удаленного доступа и сервер, выполняющий проверку подлинности, должны поддерживать один и тот же тип EAP.

Теперь вернемся к RADIUS серверу, который проверяет информацию, полученную от NAS. Сервер проверяет идентичность пользователя, а также корректность дополнительной информации, которая может содержаться в запросе: сетевой адрес устройства пользователя, телефонный номер, состояние счета, его привилегии при доступе к запрашиваемому сетевому ресурсу. По результатам проверки RADIUS сервер посылает NAS один из трех типов откликов:

  • Access-Reject показывает, что данный пользовательский запрос неверный. При желании сервер может включить текстовое сообщение в Access-Reject, которое может быть передано клиентом пользователю. Никакие другие атрибуты (кроме Proxy-State) не разрешены в Access-Reject.
  • Access-Challenge. Запрос дополнительной информации от пользователя, например, второй пароль, пин-код, номер карты и т. п. Этот отклик также используется для более полного аутентификационного диалога, где защитный туннель выполняется между устройством пользователя и RADIUS сервером, так что сертификаты доступа скрываются от NAS.
  • Access Accept. Пользователю разрешен доступ. Поскольку пользователь аутентифицирован, то RADIUS сервер проверяет авторизацию на использование запрошенных пользователем ресурсов. Например, пользователю может быть разрешён доступ через беспроводную сеть, но запрещен доступ к VPN сети. Таким образом, работа RADIUS протокола может в общем случае быть представлена, как показано на таблице ниже.

Стандарты[править | править код]

Определён в

  • RFC 2865 Remote Authentication Dial In User Service (RADIUS)
  • RFC 2866 RADIUS Accounting

Также имеет отношение к

  • RFC 2548 Microsoft Vendor-specific RADIUS Attributes
  • RFC 2607 Proxy Chaining and Policy Implementation in Roaming
  • RFC 2618 RADIUS Authentication Client MIB
  • RFC 2619 RADIUS Authentication Server MIB
  • RFC 2620 RADIUS Accounting Client MIB
  • RFC 2621 RADIUS Accounting Server MIB
  • RFC 2809 Implementation of L2TP Compulsory Tunneling via RADIUS
  • RFC 2867 RADIUS Accounting Modifications for Tunnel Protocol Support
  • RFC 2868 RADIUS Attributes for Tunnel Protocol Support
  • RFC 2869 RADIUS Extensions
  • RFC 2882 Network Access Servers Requirements: Extended RADIUS Practices
  • RFC 3162 RADIUS and IPv6
  • RFC 3575 IANA Considerations for RADIUS
  • RFC 3576 Dynamic Authorization Extensions to RADIUS
  • RFC 4672 RADIUS Dynamic Authorization Client MIB
  • RFC 4673 RADIUS Dynamic Authorization Server MIB
  • RFC 3579 RADIUS Support for EAP
  • RFC 3580 IEEE 802.1X RADIUS Usage Guidelines
  • RFC 4014 RADIUS Attributes Suboption for the DHCP Relay Agent Information Option

См. также[править | править код]

Примечания[править | править код]