Московский Физико-Технический Институт (ГУ) Эссе по курсу "Защита информации", кафедра радиотехники, Московский физико-технический институт (ГУ МФТИ), http://www.re.mipt.ru/infsec Протокол аутентификации RADIUS. Принципы работы и реализация. Сахаров Петр группа 413 Долгопрудный, 2008 Remote Authentication Dial-In User Service (RADIUS) – протокол защиты от несанкционированного доступа типа клиент/сервер, разработанный компанией Lucent Remote Access. RADIUS является открытым Internet протоколом, так что в RFC 2138 и 2139 хранится его подробное описание. В больших телекоммуникационных сетях информация о безопасности может быть сильно разбросана по различным устройствам. Поэтому одним из основных преимуществ RADIUS является то, что при помощи этого протокола вся информация об аутентификации и доступа пользователей к ресурсам сети хранится на одном хосте, работающим как RADIUS сервер, который в свою очередь взаимодействует с несколькими RADIUS клиентами (PortMaster) или NAS (Network Access Server). Таким образом, информация о пользователях хранится на RADIUS сервере в виде текстового файла, и системный администратор может добавлять новых пользователей или регулировать права доступа к тем или иным сервисам сети уже существующих пользователей редактирую только этот текстовый файл. Основные принципы работы RADIUS. Основные функции RADIUS – это аутентификация, авторизация и аккаунтинг. Аутентификация (Authentication) – процесс проверки имени пользователя и пароля. На рисунке показан процесс аутентификации и авторизации. К примеру, когда user 1 подключается к NAS (PortMaster) имеет место следующая аутентификационная последовательность. 1. PortMaster вводит user 1 в качестве имени и пароля пользователя, а затем сравнивает логин-пароль с собственной таблицей о пользователях. 2. PortMaster посылает access-request сообщение на RADIUS сервер при следующих условиях. access-request сообщение содержит всю необходимую для RADIUS сервера информацию, чтобы аутентифицировать пользователя. - имя пользователя не найдено в таблице пользователей. - безопасность включена на порте NAS - сделаны необходимые настройки RADIUS на PortMaster. 3. RADIUS сервер проверяет свой файл о пользователей, с тем чтобы удостовериться, есть ли в нём информация о пользователе user 1. Для user 1 аутентификация пройдёт успешно если таковая запись присутствует либо DEFAULT запись должна быть найдена в файле. 4. Пользователь user 1 либо получает доступ, либо нет: - Если совпадение найдено в пользовательском файле RADIUS сервера, если существует требуемый пароль и если все проверяемые атрибуты (check items) в пользовательском файле совпадают с дополнительными атрибутами в accessrequest сообщении, RADIUS сервер посылает access-accept сообщение PortMaster, информируя тем самым, что пользователь user 1 успешно аутентифицирован. Сервер также посылает авторизационную информацию – reply items – о доступных user 1 сервисах а также конфигурационную информация о соединении с ним. - Если не совпадает пароль или хотя один из check items не совпадает, RADIUS сервер посылает access-reject сообщение PortMaster и соединение с пользователем разрывается. Авторизация (Authorization) – процесс проверки пользователя на предмет возможности использования какого-либо сервиса. К примеру пользователю user 1 может быть разрешено соединение по Point-to-Point Protocol (PPP), с назначенным IP адресом 192.168.200.4 и должна происходить фильтрация его трафика при помощи std.ppp.in и std.pp.out. Аккаунтинг ( Ассounting ) – процесс учета используемого сервиса. Эта информация чаще всего используется в системе оплаты сервиса. Когда пользователь аутентифицируется и сессия настроена в соответствии информации авторизации, начинается процесс записи аккаунтинга. Когда пользователь разрывает соединение, запись прекращается. Структура RADIUS директории. Файлы RADIUS сервера хранятся в raddb (RADIUS database) директории, используемой по умолчанию. users файл содержит информацию о пользователях (user profiles) , которая включает информацию о аутентификации и авторизации всех пользователей, использующих RADIUS. dictionary файл содержит информацию, используемую для анализа access-request и генерации access-response. Здесь находится лист атрибутов с соответствующими номерами, именами и также типом данных, ожидаемым в качестве значения данного атрибута. Этот лист включает как стандартные атрибуты, описанные в RFC 2138, 2139, так и так называемые vendor specific attribute, присущие отдельным производителям сетевого оборудования (Cisco, H3C ect). Атрибуты присутствуют в процессе взаимодействия клиента с сервером и записи аккаунтинга, и используются при создании user profiles. После редактирования данного файла необходимо перезапустить RADIUS для применения изменений. client файл содержит IP адреса всех RADIUS клиентов, а также ключи (shared secret) , используемые при взаимодействии между клиентом и сервером. builddbm утилита позволяет конвертировать user файл в DBM формат для более быстрого поиска. menus сабдириктория содержит индивидуальную информацию меню. Администратор может опционально использовать меню, предоставляя различные опции логина для каждого отдельно аутентифицированного пользователя. proxy файл содержит информацию об удалённом сервере, к которому локальный сервер может направлять запрос аутентификации, что включает в себя имя сервера, его IP адрес, shared secret. vports файл содержит Called-Station-IDs а также число подключений, разрешенных для каждого телефонного номера. config.aeg файл содержит конфигурационные настройки, указывающие, каким образом RADIUS сервер устанавливает соединение с ActivСard сервером. Это опциональный файл и необходим, только если используется ActivEngine с RADIUS. RADIUS сервер использует User Datagram Protocol (UDP) и следующие UDP порты: порт 1645 для аутентификации порт 1646 для аккаунтинга порт 1650 и 1651 для proxy. Также зарезервированы порты 1812 и 1813 для RADIUS аутентификации и аккаунтинга соответственно. Конфигурация информации о пользователях (users файл). RADIUS users файл хранится в виде текстового файла на RADIUS сервере. Этот файл содержит полную информацию об аутентификации и авторизации всех пользователей, аутентифицированных при помощи RADIUS. Каждый пользователь должен быть представлен в виде профиля profile который состоит из трёх частей: имя пользователя username, набор check items, и набор reply items. Ниже приведён пример Пользовательские профили должны быть разделены между собой пустой строкой. Первая строка содержит имя пользователя и набором check items. Имя пользователя и check items разделены пробелом или табуляцией. Check Items отображаются в первой строке после имени пользователя, причём вся первая строка не должна превосходить 255 символов. Атрибуты записываются через запятую и пробел, причем после последнего запятая не ставится. Пример ann Password = “8f4kv$s”, NAS-Port = 23, Group = “engineer” Reply Items помещаются каждый на новой строке через запятую. Эти атрибуты дают RADIUS клиенту информацию об авторизации пользователя. Если все check items в профиле совпадают с атрибутами, присланными в access-request, пользователь аутентифицируется и RADIUS сервер отправляет набор reply items RADIUS клиенту для конфигурации соединения. Существует также понятие DEFAULT пользователя, который помещается как правило в конце user файла. Особенность этого пользователя заключается в том, что здесь нет имени пользователя, и в случае отказа в аутентификации, незарегистрированный пользователь всегда сможет использовать минимальный набор сервисов сети. Пример конфигурации NAS. Реализация RADIUS клиента на примере коммутатора H3C S3100: <H3C>dis cur # sysname H3C # local-server nas-ip 192.168.234.24 key 123 # MAC-authentication MAC-authentication domain system MAC-authentication authmode usernameasmacaddress usernameformat with-hyphen upper case # radius scheme system primary authentication 192.168.234.25 1812 primary accounting 192.168.234.25 1813 key authentication 123 key accounting 123 # domain system scheme radius-scheme system vlan-assignment-mode string # vlan 1 to 3 # vlan 10 # vlan 20 # interface Vlan-interface2 ip address 192.168.234.24 255.255.255.0 # interface Aux1/0/0 # interface Ethernet1/0/1 MAC-authentication # interface Ethernet1/0/2 port access vlan 2 MAC-authentication # interface Ethernet1/0/3 port access vlan 2 MAC-authentication # interface Ethernet1/0/4 MAC-authentication MAC-authentication guest-vlan 10 # interface NULL0 # management-vlan 2 # user-interface aux 0 user-interface vty 0 4 authentication-mode scheme # return <H3C> Материалы: RADIUS for UNIX Administrator’s Guide Refer For Comments 2138, 2139