RADIUS
RADIUS (Remote Authentication Dial-In User Service) — это протокол прикладного уровня, предназначенный для централизованной аутентификации, авторизации и учёта (AAA — Authentication, Authorization, Accounting) пользователей, подключающихся к сетевым ресурсам. Протокол работает поверх протоколов UDP (User Datagram Protocol) или TCP (Transmission Control Protocol) и использует порты 1812 (аутентификация/авторизация) и 1813 (учёт). RADIUS является стандартом де-факто для управления доступом в корпоративных сетях, сетях провайдеров и беспроводных сетях (Wi-Fi).
История
Протокол RADIUS был разработан в 1991 году компанией Livingston Enterprises (США) как решение для управления доступом к модемным пулам. Изначально он предназначался для аутентификации пользователей, подключающихся через телефонные линии (dial-up). В 1997 году протокол был стандартизирован Инженерным советом Интернета (IETF) в документе RFC 2058, который впоследствии был заменён на RFC 2138 и RFC 2865 (текущая версия для аутентификации и авторизации). RFC 2866 описывает протокол учёта (Accounting). В 2000-х годах RADIUS стал широко применяться в сетях Wi-Fi (стандарт IEEE 802.1X) и VPN (Virtual Private Network), а также в системах IP-телефонии и мобильных сетях 3G/4G.
Архитектура и принцип работы
RADIUS основан на клиент-серверной архитектуре. Клиентом RADIUS (Network Access Server — NAS) выступает устройство, которое инициирует запрос на подключение пользователя: маршрутизатор, точка доступа Wi-Fi, VPN-концентратор, коммутатор или сервер удалённого доступа. Сервер RADIUS (RADIUS server) — это программное обеспечение или аппаратное устройство, которое обрабатывает запросы и принимает решение о предоставлении доступа.
Процесс аутентификации
- Пользователь отправляет учётные данные (логин и пароль, сертификат или токен) на устройство NAS.
- NAS формирует RADIUS-запрос (Access-Request) и отправляет его на сервер RADIUS. Запрос содержит имя пользователя, хеш пароля (или зашифрованный пароль), идентификатор NAS и другую информацию (например, номер телефона для dial-up).
- Сервер RADIUS проверяет учётные данные в своей базе данных (или через внешнюю систему, такую как LDAP, Active Directory, база данных SQL). Если аутентификация успешна, сервер возвращает ответ Access-Accept, который может содержать атрибуты для авторизации (например, IP-адрес, маску подсети, ограничения скорости). Если аутентификация не удалась, возвращается Access-Reject. В случае необходимости дополнительной проверки (например, запрос одноразового пароля) сервер отправляет Access-Challenge.
- NAS на основании ответа сервера либо предоставляет пользователю доступ, либо блокирует его.
Процесс учёта (Accounting)
После успешной аутентификации NAS отправляет на сервер RADIUS запрос Accounting-Start, который фиксирует начало сессии. В процессе сессии могут отправляться промежуточные отчёты (Accounting-Interim-Update). При завершении сессии NAS отправляет Accounting-Stop, который содержит статистику: длительность сессии, объём переданных данных, причину завершения. Сервер RADIUS хранит эти данные для биллинга, аудита и анализа.
Атрибуты и сообщения
RADIUS использует формат сообщений, состоящий из кода (тип сообщения), идентификатора, длины и атрибутов. Атрибуты (Type-Length-Value, TLV) содержат конкретные параметры: имя пользователя (User-Name), пароль (User-Password), IP-адрес (Framed-IP-Address), тип сервиса (Service-Type), длительность сессии (Session-Timeout) и многие другие. Всего определено более 100 стандартных атрибутов (RFC 2865, RFC 2866, RFC 2867, RFC 2868 и др.), а также поддерживаются частные (vendor-specific) атрибуты, позволяющие расширять функциональность.
Основные типы сообщений:
- Access-Request — запрос на аутентификацию/авторизацию.
- Access-Accept — положительный ответ.
- Access-Reject — отказ в доступе.
- Access-Challenge — запрос дополнительной информации (например, одноразового пароля).
- Accounting-Request — запрос учётной информации (Start, Interim-Update, Stop).
- Accounting-Response — подтверждение получения учётного запроса.
Безопасность
Протокол RADIUS изначально не обеспечивает шифрование всего трафика. Шифруется только пароль пользователя (в поле User-Password) с использованием алгоритма MD5 и общего секретного ключа (shared secret). Остальные атрибуты (включая имя пользователя, IP-адреса, атрибуты авторизации) передаются в открытом виде. Это делает RADIUS уязвимым для атак типа «человек посередине» (MITM) и перехвата конфиденциальной информации. Для повышения безопасности рекомендуется использовать RADIUS поверх IPSec (IP Security) или TLS (Transport Layer Security) — протокол RadSec (RFC 6614), который шифрует весь трафик. Также применяются механизмы аутентификации EAP (Extensible Authentication Protocol), которые могут использовать шифрованные туннели (например, EAP-TLS, PEAP). В России, в соответствии с требованиями законодательства, при использовании RADIUS в государственных информационных системах и сетях связи применяются сертифицированные средства криптографической защиты информации (СКЗИ).
Реализации
Существует множество программных и аппаратных реализаций RADIUS-серверов. Наиболее распространённые:
- FreeRADIUS — свободная и открытая реализация (GNU GPL), наиболее популярная в мире. Поддерживает множество баз данных (LDAP, MySQL, PostgreSQL, Active Directory), EAP, VLAN, проксирование и кластеризацию. Широко используется в корпоративных сетях и у провайдеров.
- Microsoft Network Policy Server (NPS) — компонент Windows Server, который выполняет функции RADIUS-сервера. Интегрирован с Active Directory, используется для управления доступом в сетях на базе Windows.
- Cisco ISE (Identity Services Engine) — коммерческая платформа для управления политиками доступа, включающая RADIUS-сервер с расширенными возможностями (профилирование устройств, гостевой доступ, интеграция с NAC).
- RADIUS-серверы от других производителей (Juniper, Huawei, Alcatel-Lucent, Aruba) — поставляются как часть сетевого оборудования или как отдельные программные продукты.
Применение
RADIUS используется в различных сценариях:
- Корпоративные сети Wi-Fi — аутентификация сотрудников и гостей через 802.1X с использованием EAP (PEAP, EAP-TLS, EAP-TTLS). Сервер RADIUS может интегрироваться с Active Directory для проверки учётных данных.
- VPN-доступ — аутентификация пользователей удалённого доступа (PPTP, L2TP/IPsec, OpenVPN, IKEv2). Сервер RADIUS может назначать IP-адреса, ограничивать полосу пропускания и вести учёт трафика.
- Провайдеры интернет-услуг (ISP) — управление доступом абонентов по протоколам PPPoE, DHCP, IPoE. RADIUS используется для биллинга, авторизации и учёта трафика.
- Коммутаторы Ethernet — управление доступом к портам (802.1X) для предотвращения несанкционированного подключения устройств.
- IP-телефония (VoIP) — аутентификация SIP-телефонов и учёт звонков.
- Мобильные сети (3G/4G/5G) — в сетях LTE и 5G RADIUS используется для аутентификации и авторизации абонентов при подключении к сети (в составе HSS/AAA).
Критика и ограничения
Основные недостатки протокола RADIUS:
- Слабая безопасность по умолчанию — отсутствие шифрования всего трафика, уязвимость к атакам на MD5.
- Ограниченная масштабируемость — при большом количестве запросов (сотни тысяч сессий) требуется кластеризация и балансировка нагрузки.
- Отсутствие поддержки современных механизмов аутентификации — для использования EAP требуется дополнительная настройка и поддержка со стороны сервера.
- Зависимость от UDP — потеря пакетов может привести к сбоям аутентификации, хотя протокол предусматривает повторные передачи.
В ответ на эти ограничения был разработан протокол Diameter (RFC 3588, RFC 6733), который является эволюционным развитием RADIUS и лишён многих его недостатков (использует TCP/SCTP, шифрование, лучше масштабируется). Однако RADIUS остаётся широко распространённым благодаря своей простоте, зрелости и огромной установленной базе.
Интересные факты
- Название протокола отражает его первоначальное назначение — обслуживание пользователей удалённого доступа (dial-up).
- В 2012 году была обнаружена уязвимость в реализации MD5 для шифрования паролей, что привело к рекомендациям использовать более стойкие алгоритмы (например, MS-CHAPv2).
- FreeRADIUS является одним из самых популярных проектов с открытым исходным кодом, используемым в том числе в крупных телекоммуникационных компаниях.
- В России RADIUS-серверы часто используются в системах биллинга и управления доступом в сетях связи, что регулируется Федеральным законом «О связи» и подзаконными актами.
Источники
- RFC 2865 — Remote Authentication Dial In User Service (RADIUS)
- RFC 2866 — RADIUS Accounting
- RFC 6614 — Transport Layer Security (TLS) Encryption for RADIUS (RadSec)
- RFC 3579 — RADIUS Support for Extensible Authentication Protocol (EAP)
- «RADIUS: Securing Public Access to Private Resources» — D. R. K. Brown, 2002
- Документация FreeRADIUS (freeradius.org)
- Материалы Microsoft TechNet по Network Policy Server
- Учебное пособие «Сети и телекоммуникации» — В. Г. Олифер, Н. А. Олифер, 2016
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →