Надежность и масштабируемость удаленного доступа к службе удаленного доступа (RADIUS).

Просмотр категорий

Надежность и масштабируемость удаленного доступа к службе удаленного доступа (RADIUS).

7 min read

Обзор #

РАДИУС or Служба удаленного подключения по телефонной линии пользователя это сетевой протокол, обеспечивающий централизованное управление аутентификацией, авторизацией и учетом пользователей и устройств. Он широко используется интернет-провайдерами и предприятиями для управления доступом к Интернету, местным службам, беспроводным сетям через точки доступа Wi-Fi и т. Д.

Протокол RADIUS реализован на уровне приложений с архитектурой клиент-сервер, которая может использовать TCP или UDP в качестве транспортного уровня и обмениваться данными с пользовательской базой данных, такой как Active Directory, Служба LDAP or Система учета Linux, Наиболее популярными решениями RADIUS являются FreeRadius или Microsoft NPS Radius Server.

RADIUS Протокол обмена сообщениями #

Обмен сообщениями протокола основан на запросе клиента и способе ответа сервера, как показано ниже.

1. Клиент отправляет Access-Request на сервер для каждого пользователя или устройства для аутентификации на порт сервера TCP / UDP 1812 (старые версии сервера будут использовать 1645 для проверки подлинности).
2. Сервер отвечает в соответствии с политикой Access-Accept если аутентификация разрешена, Access-Reject если доступ не разрешен или Access-Challenge если серверу требуется дополнительная информация для определения доступа (например, вторая проверка: PIN-код, пароль, сертификат и т. д.)

При желании, клиент и сервер могут обмениваться сообщениями учета, например, Accounting-Request и Accounting-Response для того, чтобы поддерживать уникальный идентификатор сеанса.

3. Клиент отправляет Accounting-Request на сервер через порт TCP / UDP 1813 для управления учетными сессиями (старые версии сервера будут использовать 1646 для проверки подлинности).
4. Сервер отвечает с Accounting-Response сообщение для подтверждения нового сеанса.

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

Балансировка нагрузки RADIUS и среда высокой доступности #

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

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

Конфигурация виртуальной службы RADIUS #

Природа протокола RADIUS основана на пакетах UDP, поэтому конфигурация надежной среды RADIUS строится с LSLB ферма с L4xNAT профиль на слое 4, порты 1812 и 1813тип протокола UDP и предпочтительный ДТА для того, чтобы иметь прозрачность и получить IP-адрес клиента на стороне сервера (хотя NAT должно работать отлично, а также).

В Услугипостоянство не требуется по умолчанию, если не требуется некоторая привязка между сервером клиентского радиуса.

Если RADIUS используется через TCP вместо UDP, его можно изменить в поле типа протокола. Это может быть установлено также BCE протоколы, позволяющие одновременно использовать TCP и UDP с одного и того же виртуального IP.

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

Конфигурация расширенной проверки работоспособности RADIUS #

Расширенная проверка включена в RELIANOID с именем check_radius в папке по умолчанию / USR / местные / zenloadbalancer / приложение / libexec /.

Справка этой команды может быть перечислена:

root@noid5# /usr/local/zenloadbalancer/app/libexec/check_radius --help Проверяет, принимает ли сервер RADIUS соединения. Использование: check_radius -H хост -F файл_конфигурации -u имя пользователя -p пароль [-P порт] [-t тайм-аут] [-r повторы] [-e ожидать] [-n nas-id] [-N nas-ip-адрес ] Опции: -h, --help Распечатать экран подробной справки -V, --version Распечатать информацию о версии --extra-opts=[section][@file] Считать параметры из ini-файла. См. https://www.monitoring-plugins.org/doc/extra-opts.html для использования и примеров. -H, --hostname=ADDRESS Имя хоста, IP-адрес или сокет unix (должен быть абсолютным путем) -P, --port=INTEGER Номер порта (по умолчанию: 1645) -u, --username=STRING Пользователь, которому нужно аутентификация -p, --password=STRING Пароль для аутентификации (РИСК БЕЗОПАСНОСТИ) -n, --nas-id=STRING Идентификатор NAS -N, --nas-ip-address=STRING IP-адрес NAS -F, --filename= STRING Файл конфигурации -e, --expect=STRING Ожидаемая строка ответа от сервера -r, --retries=INTEGER Количество повторов неудачного соединения -t, --timeout=INTEGER Секунды до истечения времени соединения (по умолчанию: 10) Этот плагин проверяет сервер RADIUS, принимает ли он соединения. При вызове должен быть указан сервер для тестирования, а также имя пользователя и пароль. Также может присутствовать файл конфигурации. Формат файла конфигурации описан в исходниках библиотеки radiusclient. Параметр пароля представляет собой существенную проблему безопасности, поскольку пароль можно определить путем внимательного просмотра командной строки в списке процессов. Этот риск усугубляется тем, что плагин обычно запускается через регулярные и предсказуемые промежутки времени. Убедитесь, что используемый пароль не разрешает доступ к конфиденциальным системным ресурсам.

Во-первых, давайте проверим, правильно ли он работает, выполнив следующий пример команды (пожалуйста, используйте свои собственные параметры конфигурации клиента радиуса из RELIANOID):

root@noid5# cd /usr/local/zenloadbalancer/app/libexec/ root@noid5# ./check_radius -H -П -у -п -Ф

Тест будет проводиться с RELIANOID устройство к одному определенному серверу RADIUS с фиктивной проверкой пользователя и, при необходимости, файлом конфигурации клиента для определенных параметров клиента. Давайте проверим команду, а затем, когда мы получим OK с сервера и тому FAILURE когда он не работает, мы можем настроить расширенную проверку работоспособности в Услуги раздел нашего только что созданного виртуального сервиса.

Не забывайте использовать ВЕДУЩИЙ токен при настройке расширенных проверок работоспособности в RELIANOID как указано ниже.

check_radius -H HOST -P 1812 -u johndoe -p johnspass -F /etc/radius_client.cfg

Смотрите ниже Услуги Конфигурация раздела.

Параметры безопасности RADIUS #

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

Развертывания RADIUS прошли IPsec or Internet Protocol Security были широко распространены, но этот вариант имеет некоторые трудности, поскольку уровень приложений не знает о политиках безопасности, поскольку они неявно заложены на сетевом уровне. Чтобы использовать этот подход с RELIANOID требуется некоторая ручная настройка, поскольку она еще не интегрирована.

Спецификация DTLS or Безопасность дейтаграммы на транспортном уровне позволяет обеспечивать шифрование, отслеживать и контролировать политики безопасности такого трафика.

Другим вариантом будет RADIUS более TLS это обеспечивает возможности TCP надежности и упорядоченного транспортного уровня.

Для такого рода подходов IANA создал официальную запись для RadSec (RADIUS Безопасность) использовать UDP 2083 порт для RADIUS / TLS Реализации.

Другим вариантом будет улучшение уровня дайджеста и авторизации с помощью EAP (Расширяемый протокол аутентификации), который не используется на уровне установления канала, но на этапе аутентификации соединения, избегая использования слабых дайджестов MD5.

Кроме того, с RELIANOID, службы RADIUS можно защитить с помощью модуля IPDS от вредоносных пакетов и хостов, DoS-атак, попыток перебора и многого другого.

Возможности RADIUS Proxy #

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

Наслаждайтесь своими высокодоступными и масштабируемыми услугами доступа к сети!

📄 Загрузите этот документ в формате PDF #

    EMAIL: *

    Powered by BetterDocs