Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 47 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
47
Dung lượng
11,68 MB
Nội dung
284 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ и возврат всех деталей конфигурации клиенту, который будет предоставлять пользо- вателю определенные сервисы. Кроме того, RADIUS-сервер может выступать в виде proxy-клиента для других RADIUS-серверов или иных серверов аутентификации; о сетевая безопасность. Во время аутентификации пользователя обмен данными меж- ду клиентом и сервером шифруется с помощью разделяемого секрета, который ни- когда не передается по сети в открытом виде. Пароли пользователей клиент переда- ет RADIUS-серверу также в зашифрованном виде, чтобы исключить возможность прослушивания; о гибкие механизмы аутентификации. RADIUS-сервер допускает различные методы аутентификации пользователей. Получив имя пользователя и его пароль, он может аутентифицировать его по протоколу РАР или CHAP, выполнить стандартную проце- дуру входа в ОС UNIX или поискать информацию в иных хранилищах, например РАМ, LDAP, SQL и т.д.; о расширяемый протокол. Все данные передаются в виде троек переменной длины: атрибут-длина-значение (Attribute-Length-Value - ALV). Можно добавлять новые зна- чения атрибутов, не нарушая корректность работы существующей реализации, за счет чего протокол становится более гибким и динамичным, способным к расширению. Форматы пакетов Пакеты протокола RADIUS инкапсулированы в поток данных протокола UDP без состоя- ния. Для этого протокола зарезервированы порты 1812, 1813 и 1814, предназначенные соответственно для доступа, учета и организации proxy. Ради совместимости и по истори- ческим причинам некоторые серверы продолжают работать через порты 1645 и 1646. Так повелось еще со времен ранних этапов разработки RADIUS, а теперь вступает в противоре- чие со службой «метрик данных». В RFC специфицирована структура пакета протокола RADIUS (рис. 13.1). Рис. 13.1. Структура пакета протокола RADIUS Ниже описаны отдельные элементы этого пакета: о код. Поле кода длиной в один октет определяет тип пакета. Получив пакет с некор- ректным значением кода, сервер игнорирует его без каких-либо уведомлений. До- пустимые типы пакетов рассматриваются в следующем разделе; о идентификатор. Это поле длиной также в один октет позволяет клиенту RADIUS сопоставить полученный от сервера ответ с ранее посланным запросом; о длина. Это поле занимает два октета. В нем хранится длина сообщения, то есть сум- ма длин полей кода, идентификатора, длины, аутентификатора и атрибутов; о аутентификатор. Длина поля равна 16 октетам, оно используется для аутентифи- кации и верификации ответа от RADIUS-сервера, а также как механизм сокрытия паролей. В поле могут передаваться значения двух типов: запрос (Request) и ответ RADIUS 285 (Response). Поле запроса может встречаться в пакетах типа Access (Доступ) и Accounting Request (Запрос учетной информации), его значение должно быть слу- чайно и уникально. Поле ответа встречается в пакетах типа Access-Accept (Доступ разрешен), Access-Reject (Доступ запрещен) и Access-Challenge (Запрос). Оно долж- но содержать одностороннюю МБ5-свертку, вычисленную по значениям полей кода, идентификатора, длины, аутентификатора, атрибутов и по разделяемому секрету; о атрибуты. В этом поле передаются различные характеристики службы, обычно для анонсирования конкретных предлагаемых или запрашиваемых возможностей. Шесть атрибутов и их допустимые значения представлены в табл. 13.1. Таблица 13.1. Типы атрибутов в протоколе RADIUS ТИПЫ пакетов RADIUS-сервер идентифицирует типы сообщений по значению поля кода. Возможные коды описаны в табл. 13.2. Мы не будем вдаваться в подробности, поскольку считаем, что назва- ния понятны без пояснений. Но, если хотите, можете прочитать раздел «Packet Types» (Типы пакетов) в RFC 2138. 286 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ 11 Access-Challenge (Запрос) 12 Status-Server (Состояние сервера) - экспериментальный 13 Status-Client (Состояние клиента) - экспериментальный 255 Зарезервирован Инсталляция FreeRADIUS Мы уже обсудили модель ААА, лежащую в основе протокола RADIUS, а также структуру протокола, допустимые типы и значения полей. Теперь займемся более практическим воп- росом - инсталляцией сервера FreeRADIUS. На официальном сайте проекта FreeRADIUS (http://www.freeradius.org) читаем: «Проект FreeRADIUS - это попытка создать высокопро- изводительный и конфигурируемый в широких пределах RADIUS-сервер, распространяе- мый по лицензии GPL. Сервер аналогичен продукту Livingston 2.O. FreeRADIUS - это вари- ант сервера Cistron RADIUS, но общего у них мало. FreeRADIUS имеет гораздо больше возможностей, чем Cistron или Livingston, и при этом намного лучше конфигурируется». Для промышленной эксплуатации мы рекомендуем устанавливать стабильную версию продукта, в момент работы над книгой это была версия FreeRADIUS 0.8.1. Но, возможно, вы сочтете, что последняя версия в CVS-хранилище лучше отвечает вашим потребностям, по- скольку поддерживает больше функций. И стабильную, и CVS-версию можно скачать со страницы http://www.freeradius.org/getting.html. Далее мы будем говорить о версии, взя- той из CVS-хранилища 26 мая 2003 года. Процедура инсталляции последней стабильной версии не должна сильно отличаться. Для того чтобы начать процедуру сборки и инсталляции из исходных текстов, скачайте и разверните дистрибутив FreeRADIUS: arhontus:~$ wget -с ftp://ftp.freeradius.org/pub/radius/CVS-snapshots/ freeradius-snapshot-20030526.tar.gz arhontus:~$ tar -xvzf freeradius-snapshot-20030526.tar.gz arhontus:~$ cd freeradius-snapshot-20030526 Чтобы настроить FreeRADIUS под свои нужды, вы, возможно, захотите отредактировать файл Makefile или указать дополнительные флаги сценарию configure. Подробно об имею- щихся возможностях можно узнать, набрав команду arhontus:$ ./configure help Затем выполните конфигурирование и запустите компиляцию: arhontus:$ ./configure arhontus:$ make Для инсталляции FreeRADIUS вам потребуются привилегии пользователя root. Выпол- ните команды: arhontus:$ su arhontus:# make install Чтобы настроить FreeRADIUS под свои нужды, вы, возможно, захотите отредактировать файл Makefile или указать дополнительные флаги сценарию configure. Подробно об имею- щихся возможностях можно узнать, набрав команду Затем выполните конфигурирование и запустите компиляцию: Для инсталляции FreeRADIUS вам потребуются привилегии пользователя root. Выпол- ните команды: ИНСТАЛЛЯЦИЯ FREERADIUS 287 Чтобы инсталлировать двоичный пакет в Debian Linux, выполните команду arhontus:# dpkg -i radiusd-freeradius_O.8.I_i386.deb или arhontus:# dpkg -i radiusd-freeradius_O.8.1+0.9pre20030526-l_i386.deb в зависимости от того, хотите вы установить стабильную или CVS-версию. Кроме того, мож- но установить различные дополнительные модули к серверу, реализующие такие схемы аутентификации, как Kerberos V, SQL или LDAP. По завершении инсталляции переходите к следующему разделу, в котором описывают- ся процедуры конфигурирования RADIUS-сервера. Конфигурирование Во время работы над этой книгой конфигурационные файлы для стабильной версии на- ходились в каталоге /etc/raddb, а для CVS-версии - в каталоге /etc/freeradius, так что, возможно, ваши действия будут слегка отличаться от описанных ниже. Предлагаем вам сразу познакомиться со структурой каталогов и наиболее важными конфигурационны- ми файлами. 288 А ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ clients, conf Информация, хранящаяся в этом файле, более приоритетна, чем та, что находится в файлах clients или naslist. Конфигурация включает все данные из этих двух файлов, а также до- полнительные возможности. Чтобы сконфигурировать сервер с учетом особенностей ва- шей сети, редактируйте именно файл clients.conf. Вот пример одной записи: Файл /etc/freeradius/radiusd.conf - это сердце RADIUS-сервера. Именно в нем прописыва- ется большая часть параметров и директив. Ниже для иллюстрации приведен небольшой фрагмент этого файла. Его необходимо отредактировать в соответствии с вашими требова- ниями. Можете также посмотреть наш пример файла radiusd.conf, в котором прописаны многие возможности FreeRADIUS, в том числе аутентификация посредством LDAP, EAP-TLS или паролей UNIX. Настоятельно рекомендуем в качестве разделяемого секрета выбирать строки, отсут- ствующие в словаре, и употреблять в них символы разных типов: буквы, цифры, знаки препинания и др. Если вы не измените принятые по умолчанию значения, то поставите безопасность сети под угрозу! naslist Далее отредактируйте файл /etc/freeradius/naslist, указав в нем канонические названия, сокращенные названия и типы всех NAS-серверов, которые будут обращаться к данному RADIUS-серверу. Полный перечень поддерживаемых видов NAS-серверов можно узнать на странице руководства или из самого файла naslist. Ниже приведен пример: realms Файл /etc/freeradius/realms будет полезен, если вы захотите развернуть несколько RADIUS- серверов и потребовать, чтобы мобильные пользователи переходили с одного на другой. В последних версиях FreeRADIUS этот файл уже не используется и заменен файлом proxy.conf, в котором хранятся настройки для организации proxy. users В этом файле описываются методы и процедуры аутентификации пользователей. Мы по- местим сюда разных пользователей вместе с указанием тех сервисов, к которым у них есть доступ, а также применяемых по умолчанию механизмов аутентификации. Более подроб- ную информацию об этом файле можно найти на странице руководства man 5 users. Ниже приведен пример: Если вы работаете на платформе Microsoft Windows, то можете скачать утилиту NTRadPing для тестирования RADIUS-сервера со страницы http://www.mastersoft-group.com/download/. Окно утилиты показано на рис. 13.2. Успешно завершив тестирование сервера, можете переходить к следующему разделу, в котором речь идет об основах мониторинга и учета в RADIUS. Это важно знать для по- вседневного администрирования, а также на случай, если все-таки произойдет вторже- ние в сеть. В протоколе сервера должна появиться запись об авторизации такого вида: Успешно запустив FreeRADIUS-сервер, вы сможете протестировать аутентификацию пользователя, причем несколькими разными способами. Первый способ - воспользо- ваться утилитой radtest, которая пытается установить соединение с сервером, отпра- вив ему указанные «верительные грамоты», и выводит полученный от сервера ответ. Вот пример: Если это не так, запустите FreeRADIUS в режиме отладки, чтобы из диагностических сообщений понять, в чем причина ошибки: Если сервер запустился успешно, то, выполнив показанную ниже команду, вы увидите что-то типа: arhontus:~# /etc/init.d/freeradius start УЧЕ Г РАБОТЫ ПОЛЬЗОВАТЕЛЕЙ 291 Учет работы пользователей В документе RFC 2139 перечислены основные возможности службы учета RADIUS Accounting: о модель клиент-сервер. NAS-сервер работает как клиент учетного RADIUS-сервера. Клиент передает учетную информацию о пользователе учетному серверу. Учетный сервер принимает запрос и возвращает клиенту отве г о том, что запрос получен. Учет- ный сервер может выступать в роли proxy-клиента ^ля других учетных серверов; о сетевая безопасность. Транзакции между клиенток и сервером аутентифицируют- ся с помощью разделяемого секрета, который никогда не передается по сети; о расширяемый протокол. В ходе любой транзакции [передается тройка атрибут-дли- на-значение переменной длины. Новые значения! атрибутов можно добавлять, не нарушая работу существующей реализации протокола. Любой вид оборудования, входящий в состав сервера доступа к сети (NAS), должен под- держивать учетные функции RADIUS. Должна быть возможность сконфигурировать его так, чтобы протоколировалась информация о типичных для Пользователя способах доступа в сеть. Ниже приведен пример учетной информации о сеансе с точки доступа Orinoco, но ясно, что в реальности картина будет зависеть от вида обррудования NAS и способа учета, заданного администратором. Прочитать об утилитах для анализа учетных данных и формирования отчетов на их основе можно ниже в разделе «Инструменты, относящиеся к RADIUS». Уязвимости RADIUS Известен целый ряд слабостей RADIUS, причиной которых является как сам протокол, так и неудачная реализация клиентов. Сам по себе протокол UDP, не имеющий состояния, по- зволяет подделывать пакеты. Уязвимости, о которых пойдет речь в этом разделе, не исчер- пывают весь список проблем протокола, а призваны лишь продемонстрировать несколько способов обойти аутентификацию пользователя. Атаки можно отнести к следующим кате- гориям: о подбор «верительных грамот» пользователя методом полного перебора; о DoS-атака; о повтор сеанса; о внедрение поддельных пакетов. Атака на аутентификатор ответа Аутентификатор ответа (Response Authenticator) - это, по существу, МО5-свертка. Если противник сумел перехватить корректную последовательность пакетов типа Access-Request, Access-Accept или Access-Reject, то он может, уже не находясь в сети, попробовать вскрыть разделяемый секрет путем полного перебора. Противник может вычислить МО5-свертку от комбинации полей кода+идентификатора+длины+аутентификатора+атрибутов, посколь- ку большая часть составных частей аутентификатора известны, а затем повторять эту свер- тку при каждой попытке угадать разделяемый секрет. Атака на разделяемый секрет на основе атрибута Password Мандат, содержащий пару имя-пароль, является защищенным, но противник может полу- чить информацию о разделяемом секрете, если будет следить за попытками аутентифика- ции. Если взломщик предпримет попытку аутентифицироваться с известным паролем, а затем перехватит отправляемый в результате пакет Accept-Request, то он сможет выпол- нить XOR между защищенной частью атрибута User-Pas sword с паролем, который он сообщил клиенту ранее. Поскольку аутентификатор ответа известен (его можно увидеть в пакете Accept-Request), то противник получает возможность провести атаку методом пол- ного перебора на разделяемый секрет, уже не находясь в сети. 292 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ ИНСТРУМЕНТЫ, ОТНОСЯЩИЕСЯ К RADIUS 293 Атака на пароль пользователя Она аналогична предыдущей: зная разделяемый секрет, противник может пробовать раз- личные пароли путем модификации и воспроизведения пакетов типа Access-Request. Если сервер не ограничивает число безуспешных попыток аутентификации одного пользовате- ля, то атакующий сумеет выполнить полный перебор всех паролей, пока не отыщет пра- вильный. Не забывайте, что применение стойкой схемы аутентификации в пакете Access- Request сделает такую атаку почти невозможной. Атаки на аутентификатор запроса Безопасность пакета в протоколе RADIUS зависит от содержимого поля аутентификатора зап- роса (Request Authenticator). Оно должно быть уникальным и непредсказуемым. Однако в спецификациях протокола важности способа генерирования этого поля не уделено долж- ного внимания, поэтому существует много реализаций, в которых алгоритм оставляет же- лать лучшего. Если клиент пользуется генератором псевдослучайных чисел с коротким периодом, то желаемый уровень безопасности протокола не будет достигнут. Вспомните, что говорилось в главах о прикладной криптографии по поводу работы и тестирования генераторов псевдослучайных чисел. Повтор ответов сервера Противник может создать базу данных с аутентификаторами запросов, идентификатора- ми и соответствующими им ответами сервера, если будет периодически прослушивать и перехватывать трафик между клиентом и сервером. Увидев запрос с уже встречавшимся ранее аутентификатором, противник замаскирует себя под сервер и повторит наблюдав- шийся ранее ответ. Кроме того, противник может воспроизвести похожий на правду от- вет сервера типа Access-Accept и тем самым аутентифицироваться, не представив кор- ректных «верительных грамот». Проблемы, связанные с разделяемым секретом Стандарт протокола RADIUS допускает использование одного и того же разделяемого секрета многими клиентами. Это небезопасно, так как позволяет некорректно реализованным клиен- там скомпрометировать сразу много машин. Мы рекомендуем задавать разные разделяемые секреты для каждого клиента, причем выбирать слова, отсутствующие в словаре, чтобы их не- возможно было угадать. При этом позаботьтесь и о физической безопасности клиентов. Инструменты, относящиеся к RADIUS Ниже перечислен ряд альтернативных RADIUS-серверов, а также несколько утилит для администрирования и мониторинга работы пользователей: о Cistron. Этот бесплатный сервер, написанный Мигелем ван Смуренбургом (Miquel van Smoorenburg) на базе исходных текстов сервера Livingston, нашел широкое [...]... библиотеку, которая позволяет Windows-клиентам аутентифицироваться в LDAP-сервере СЛУЖБА КАТАЛОГОВ LDAP 3 1 7 Мы снова возвращаемся к программному обеспечению, созданному группой PADL, а именно к библиотекам pam_ldap и nss_ldap, которые можно загрузить со страниц ftp://ftp.padl.com/ pub/pam_ldap.tgz и ftp://ftp.padl.com/pub/nss_ldap.tgz Библиотека pam_ldap обеспечивает LDAP-аутентификацию для операционных... /lib/security/pam_ldap.so /lib/security/pam_unix_auth.so sufficient required required sufficient required /lib/security/pam_ldap.so /lib/security/pam_unix_acct.so /lib/security/pam_cracklib.so /lib/security/pam_ldap.so /lib/security/pam_pwdb.so required /lib/security/pam_unix_session.so А вот как он должен выглядеть: # $FreeBSD: src/etc/pam.d/sshd,v 1.9 2002/12/03 15:48:11 desc Exp $ # # Р М configuration for... каталоге pam.d в ОС FreeBSD ч.х и 5.x После инсталляции pam_ldap из репозитария Ports оказалось необходимо изменить во всех pam-файлах местоположение библиотек, относящихся к безопасности Вот, например, как выглядит стандартный файл рат для sshd: # %РАМ-1.0 auth auth auth try_first_pass account account password password password use_first_pass session required sufficient required /lib/security/pam_nologin.so... инсталляции очень проста и сводится к следующим командам: arhontus:$ /configure arhontus:$ make arhontus:$ make i n s t a l l Собрав и установив библиотеки, скопируйте файл Idap.conf в каталог /etc/openldap или /usr/local/etc/openldap в зависимости от ваших настроек и отредактируйте его Кроме того, в случае модуля pam_ldap нужно будет скопировать файлы pam.d и pam.conf в каталог /etc, сохранив резервную копию... В дистрибутиве Debian Linux серверная и клиентская части OpenLDAP уже имеются в виде готового пакета Их можно скачать из Internet и установить на свою машину следующим образом: arhontus:~$ apt-get install slapd Iibldap2 ldap-utils Если нужна только клиентская часть, выполните такую команду: arhontus:~$ apt-get install Iibldap2 ldap-utils Вы увидите сценарий начальной настройки slapd, предлагающий ввести... собрать и установить пакет: arhontus:~$ arhontus:~$ arhontus:~$ arhontus:~$ arhontus:~$ tar zxvf xsupplicant-0.б.tar gz cd xsupplicant /configure make make install Успешно завершив установку, скопируйте файл /etc/lx.conf в каталог /etc/lx и отредактируйте его, как показано ниже, заменив < c l i e n t n a m e > точно той строкой, которая была указана в качестве значения поля Common Name при создании сертификата... ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ А теперь рассмотрим более подробно утилиты PADL MigrationTools Скачав файл http://www.padl.com/download/MigrationTools.tgz и распаковав его, вы должны будете изменить некоторые переменные в файле migrate_common.ph, а именно: $DEFAULT_MAIL_DOMAIN $DEFAULT_MAIL_HOST fDEFAULT_BASE Закончив редактировать этот файл, можете запустить специальную утилиту для конвертирования... Microsoft (http://www.microsoft.com/Windows2000/downloads/recommended/q313664/download.asp) После установки и перезапуска компьютера можно будет активизировать этот сервис, открыв Панель управления (Control Panel), выбрав пункты Administrative Tasks => Services (Административные задачи => Сервисы) и установив для сервиса Wireless Configuration автоматический режим запуска (Automatic) Затем этот сервис надо... makefile: arhontus:~$ /configure Сгенерируйте список зависимостей: arhontus:~$ make depend Наконец запустите компиляцию и сборку (на медленной машине это может занять немало времени): arhontus:~$ make Можно еще проверить работоспособность собранного пакета, выполнив команду: arhontus:~$ make t e s t После завершения сборки выполните инсталляцию от имени пользователя root: arhontus:~$ make i n s t a. .. строк: # Extensible Authentication Protocol # # For all ЕАР related authentications eap { 802.1Х: НА СТРАЖЕ БЕСПРОВОДНОЙ КРЕПОСТИ 2 9 9 Затем отредактируйте раздел Authentication и раскомментарьте все ссылки на ЕАР Прежде чем приступать к редактированию файла users, нужно будет создать два файла со случайными данными и сделать их доступными для чтения процессу FreeRADIUS В файле radiusd.conf пути к . дистрибутив FreeRADIUS: arhontus:~$ wget -с ftp://ftp.freeradius.org/pub/radius/CVS-snapshots/ freeradius-snapshot-20030526.tar.gz arhontus:~$ tar -xvzf freeradius-snapshot-20030526.tar.gz arhontus:~$. собрать и установить пакет: arhontus:~$ tar zxvf xsupplicant-0.б.tar. gz arhontus:~$ cd xsupplicant arhontus:~$ ./configure arhontus:~$ make arhontus:~$ make install Успешно завершив установку,. Extensible Authentication Protocol # # For all ЕАР related authentications eap { 802.1Х: НА СТРАЖЕ БЕСПРОВОДНОЙ КРЕПОСТИ 299 Затем отредактируйте раздел Authentication и раскомментарьте все ссылки на