Главная » Статьи » Статті по диплому

Протокол RADIUS

Свойства RADIUS

В соответствии со стандартом RADIUS, это:

  • Базирующийся на UDP протокол, который не использует прямых соединений
  • Использует модель безопасности hop-by-hop
  • Без состояний (stateless)
  • Поддерживает аутентификацию PAP и CHAP по PPP
  • Использует MD5 для скрытия паролей
  • Предоставляет более 50 пар атрибут/значение с возможностью создавать специфичные для производителя пары
  • Поддерживает модель AAA
  • Поддерживается большинством коммерческих устройств удалённого доступа

Ограничения RADIUS

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

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

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

В-четвертых, RADIUS имеет не всегда достаточный уровень масштабируемости. На первой странице RFC замечание от IESG: "Experience has shown that [RADIUS] can suffer degraded performance and lost data when used in large scale systems, in part because it does not include provisions for congestion control. Readers of this document may find it beneficial to track the progress of the IETF's AAA Working Group, which may develop a successor protocol that better addresses the scaling and congestion control issues."


Доступные RADIUS-серверы

Существует огромнейшее количество RADIUS-серверов, отличающихся своими возможностями и лицензией, по которой они распространяются.

Свободно распространяемые RADIUS-серверы:

Коммерческие RADIUS-серверы:

  • IAS - Internet Authentication Service - RADIUS-сервер от MS


Кроме того существует множество RADIUS-серверов, встроенных в биллинговые системы. Например, такие как:

Далее рассматривается FreeRADIUS. Это один из самых популярных и самых мощых RADIUS-серверов, существующих сегодня. Это хорошо масштабируемый, гибкий, настраиваемый и надёжный RADIUS-сервер.


Инсталляция и настройка FreeRADIUS


Инсталляция и настройка FreeRADIUS

Запуск RADIUS-сервера в режиме отладки:

# radiusd -sfxxyz -l stdout

В версии, поставляющейся в debian, файл называется freeradius (/usr/sbin/freeradius), а запуск в отладочном режиме, согласно официальной документации [1] осуществляется опцией -X, т.е.

# freeradius -X

Проверка конфигурационного файла FreeRadius-сервера:

# radiusd -c

[править]Конфигурационные файлы FreeRADIUS

FreeRADIUS использует несколько конфигурационных файлов. У каждого файла есть свой man, который описывает формат файла и примеры конфигураций.

radiusd.conf

Главный конфигурационный файл в котором указываются пути к другим конфигурационным файлам, log файлы, устанавливаются различные параметры контролируемые администратором.

dictionary

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

clients.conf

В файле содержится описание клиента. Синтаксис записей следующий:

client <hostname|ip-address|ip-network> { <attribute> = <value> }

Обязательные атрибуты secret и shortname, опционально можно задать атрибут nastype, который определяет тип клиента (все возможные типы описаны в man clients.conf)

Пример задания клиента:

client 192.168.0.0/16 {
 secret = password
 shortname = my-network
}

hints

Определяет префикс/суффикс для пользовательских имен - атрибут user-name. Используется для отсечения префикса/суффикса в ситуациях когда:

  1. Атрибут user-name перед авторизацией/тарификацией нужно избавить от имени домена и т.п., переданного клиентом, таким образом препроцессор трансформирует 'user@domain.com' в 'user'
  2. Необходимо одному и тому же пользователю предоставлять разные сервисы и/или использовать разные схемы авторизации/аутентификации. Тогда для пользователя 'user' при входе как 'user.ppp' или 'user.telnet' можем определить разные схемы авторизации и при входе как 'user.telnet' можем добавить проверку вхождения в группу telnet-пользователей.

huntgroups

Позволяет определить разные группы NAS, к сожалению критерий для включения в группу один - IP-адрес NAS (дополнительно можно указывать порт или диапазон портов). При разборе users файла конфигурации позволяет использовать различные схемы авторизации/аутентификации/учета исходя из значения атрибута Huntgroup-Name

Пример:

# CISCO group 
ciscogrp NAS-IP-Address == 192.168.10.1
ciscogrp NAS-IP-Address == 192.168.10.2
ciscogrp NAS-IP-Address == 192.168.10.3

# Apache
apache NAS-IP-Address == 192.168.11.4

# HP group
hpgroup NAS-IP-Address == 192.168.12.1
hpgroup NAS-IP-Address == 192.168.12.2


> I configure /etc/raddb/users as follows:
> test Auth-Type := Local, User-Password == "testing"

That should be

 test Auth-Type = Local, User-Password := "testing"

See the "man" page for the "users" file, and other posts to this list.

Alan DeKok. 

Настройка атрибутов FreeRADIUS для динамического размещения порта коммутатора в VLAN'е по результатам аутентификации

Для динамического размещения порта коммутатора в VLANе по результатам аутентификации используются туннельные атрибуты (tunnel attributes):

  • [64] Tunnel-Type=VLAN (type 13)
  • [65] Tunnel-Medium-Type=802 (type 6)
  • [81] Tunnel-Private-Group-ID=VLANID (или VLAN name)

RADIUS-сервер включает туннельные атрибуты в Access-Accept сообщение.

Это основные атрибуты, которые нужны для динамического размещения порта в VLAN'е по результатам аутентификации. Другие атрибуты RADIUS относящиеся к использованию 802.1x перечислены в RFC 3580.

Значения этих атрибутов для конкретного пользователя указываются в файле users (/etc/freeradius/users):

nata Cleartext-Password := "password"
 Tunnel-Type = 13,
 Tunnel-Medium-Type = 6,
 Tunnel-Private-Group-Id = 30

Инсталляция и настройка dialupadmin

Программа dialupadmin предназначена для администрирования RADIUS-сервера через Web.

[править]Совместное использование ActiveDirectory и FreeRADIUS

В отличие от других LDAP-серверов, active directory не возвращает ничего в атрибуте userPassword. Из-за этого нельзя использовать Active Directory для выполнения аутентификации CHAP, MS-CHAP или EAP-MD5. Можно использовать только аутентификацию PAP. Для этого в секции "authenticate" нужно указать "ldap".

Для выполнения аутентификации MS-CHAP с помощью домена Active Directory, необходимо использовать NTLM-аутентификацию. Для этого потребуется проинсталлировать Samba.

Подробнее об этом в конфигурационном файле radiusd.conf и здесь RLM_LDAP.

Шаги по инсталляции и настройке:

  1. Проинсталлировать FreeRADIUS
  2. Проинсталлировать Samba-сервер
  3. Включить Samba-сервер в домен Active Directory
    • Убедиться, что wbinfo -u и wbinfo -g работает
  4. Изменить настройки FreeRADIUS для использования модуля NTLM-аутентификации

Auth_using_WinXP.pdf

Note: By default, Windows XP can take up to two minutes to prompt for 802.1x authentication credentials. This process can be expedited by modifying the registry using the following procedure:

  1. Click on Start, Select Run, and run regedit.exe
  2. Navigate to the key
     HKEY_LocalMachine/Software/Microsoft/EAPOL/Parameters/General/Global
  3. Right-click on Global and select New and DWORD Value
  4. Name the new value SupplicantMode
  5. Once created, Right click this new option and select Modify
  6. Change the Value data to 3
  7. Reboot the system for the new registry changes to take effect.


[3] I am assuming your domain is uing Internet Authentication Server (IAS) and 802.1x to authenticate the access by wireless user. In this case where 802.1x authentication is enabled, there is a registry key that controls how your wireless client authenticates to the backend IAS server. If you set the registry key HKEY_LOCAL_MACHINE\Software\Microsoft\EAPOL\Parameters\General\Global\AuthMo de to 1, what will happen is that the machine will authenticate to the domain before any user log on using machine credential (Machine Authentication) so that it will pull down any security setting the domain enforces, assuming the authentication succeeds. When the user logs on later, the user will need to do User Authentication as you normally do. By the way, if this reg key is not present, by default it is already to set to 1 and you already get the above behavior.

Заодно хочу поделиться мнением по разделу "Совместное использование 
ActiveDirectory и FreeRADIUS" статьи "RADIUS": 
по-моему не самый красивый подход пользовать NTLM-аутентификацию через вызов 
скриптом внешней утилиты ntlm_auth, 
после ввода Samba в AD домен (вариант из "FreeRADIUS. Tutorial for AD 
Integration"). 
 
Более изящных решений вижу 3: 
1. (nss_krb5 + pam_krb5 + rlm_pam) или (nss_krb5 + rlm_krb5) если уж хотите 
Kerberos, модуль rlm_krb5 есть не во 
всех freeRADIUS 1.6 готовых сборках - часто нужно собирать руками и кажется 
(не помню) не работает без nss_krb5 
(пока клиент ОС не видит пользователя своим, или патчить модуль) - по моему 
опыту прикрутки вообще поведение такой 
схемы странное krb5-клиент авторизируется, rlm_krb5 - нет. Плюс Kerberos 
требует синхронизации времени на клиенте 
и AD KDC. 
2. (nss_ldap + pam_ldap + rlm_pam) или просто и красиво (rlm_ldap), в любом 
случае нужен SSL (а то странная схема 
авторизации с голыми паролями в запросах), что в общем не проблема (правда 
AD не понимает tls_start, пользуемся 
только ldaps://) 
3. (nss_winbind + pam_winbind + rlm_pam), что по-сути есть аналогом 
предложенного в "FreeRADIUS. Tutorial for 
AD Integration" способа но без скрипта и запуска ntlm_auth. 
 
 
--- 
Яцюта М.В. 


cisco VPN-сервер и RADIUS

Данный пример описывает настройку маршрутизаторов cisco для организации pptp-доступа (да и других тунелирующих протоколов - pppoe, l2tp) из внешней сети (злых интернетов) в локальный сегмент сети. Основное назначение - доступ сотрудников к рабочему месту, доступ администратора к локальной сети предприятия из неожиданных мест. В качестве базы паролей используется файл users с паролями в plain-text (авторизация пользователей при этом происходит по ms-chap/ms-chap-v2). Пользователи получают при подключении ip-адрес, однозначно привязанный к их логину

Предполагаемая конфигурация полностью совместима с обычным windows-режимом создания VPN-соединения (т.е. может быть организована без дополнительного ПО). Доступ с linux-машин осуществляется с помощью пакета ppptp-linux (и команды pon).

Условные адреса:

192.168.1.1 - radius-сервер 192.168.2.2 - cisco 192.168.3.0/24 - сегмент для vpn-соедиенний

Конфигурация циски (только часть, относящаяся к конфигурированию VPN):

 aaa new-model ''(включить aaa)''
 aaa authentication ppp OUR-VPN-NAME group radius ''(aaa для идентификации ppp пользователей группы OUR-VPN-NAME использовать
 данные радиус-сервера)''
 aaa authorization network OUR-VPN-NAME group radius ''(aaa авторизовать пользователей из группы OUR-VPN-NAME на пользование
 ресурсами сети (пересылку данных) исходя из того, что ответит радиус)''
 !
 vpdn enable ''(ключить vpdn, то бишь включить VPN-сервер)''
 vpdn-group 1 ''(настройки первой группы, то бишь настройки по-умолчанию)''
 accept-dialin ''(настройки приёма соединения)''
 protocol pptp ''(используем протокол PPTP)''
 virtual-template 1 ''(каждому пришедшему пользователю создаётся виртуальный интерфейс, который и устанавливает 
ppp-соединение с пользователем, эта опция указывает, исходя из какого шаблона создаётся этот виртуальный интерфейс)''
 !
 interface Virtual-Template1 ''(собственно, декларация шаблона)''
 ip unnumbered FastEthernet0/0 ''(пакеты выбрасываются в интерфейс без машрутизации)''
 no peer default ip address ''(У пира нет адреса по-умолчанию (адрес говорит радиус))''
 ppp encrypt mppe auto ''(если можно, то включить шифрование)''
 ppp authentication ms-chap-v2 ms-chap OUR-VPN-NAME ''(для аутоидентификации PPP использовать протоколы ms-chap 
(обоих версий) и использовать OUR-VPN-NAME (см секцию aaa выше))''
 ppp authorization OUR-VPN-NAME ''(аналогично для авторизации - см секцию aaa)''
 !
 radius-server host 192.168.1.1 auth-port 1812 acct-port 1813 ''(адрес и порты RADIUS-сервера)''
 radius-server key myradiuspassword ''(пароль для связи с сервером).''

Отладка процесса может быть включена командами debug ppp (см варианты подсказки по ?) и debug radius (аналогично). Выключение дебага no debug all. Просмотр лога - sh log, сброс лога - clear log.

Конфигурация сервера

После установки freeradius (положение и имена файлов конфигурации для версии в составе debian lenny).

/etc/freeradius/clients.conf, дописать:

client 192.168.2.2 {
 secret = myradiuspassword
 shortname = vpngate
}

/etc/freeradius/sites-enabled/default: закомментировать все строчки со словом 'unix' (отключает unix-авторизацию)

/etc/freeradius/users, добавить пользователей:

user1 Cleartext-Password := "pass1"
 Framed-IP-Address = 192.168.3.101

user2 Cleartext-Password := "pass2"
 Framed-IP-Address = 192.168.3.102

Перезапуск радиуса /etc/init.d/freeradius restart, запуск в отладочном режиме (после выполнения /etc/init.d/freeradius stop): freeradius -X

(не забудте прописать на маршрутизаторах сети (не циско!) маршрут для сегмента, в котором выдаются адреса (в нашем случае, 192.168.3.0/24).


Книги

RADIUS By Jonathan Hassell, O'Reilly, October 2002, ISBN: 0-596-00322-6

Настройка Internet Authentication Service (IAS)


Категория: Статті по диплому | Добавил: Andre99 (08.02.2011) W
Просмотров: 122445 | Теги: диплом | Рейтинг: 10.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]