Безопасная аутентификация удаленного пользователя

Программы удаленного доступа и VPN применяются почти во всех организациях, и разработчики Microsoft должны обеспечить безупречную аутентификацию пользователей для продуктов дистанционного доступа других поставщиков, работающих в сетях Microsoft. В средах Windows 2000 и Windows NT 4.0 эта задача решается с помощью Microsoft Internet Authentication Service (IAS). Благодаря службе дистанционной аутентификации пользователей коммутируемых соединений (Remote Authentication Dial-In User Service, RADIUS), IAS может идентифицировать пользователей большинства платформ удаленного доступа, в том числе продуктов VPN и Cisco IOS компании Cisco Systems. В базовой конфигурации IAS реализованы разнообразные возможности. В данной статье рассматривается проблема интеграции IAS с одним из широко распространенных решений, инфраструктурой аутентификации, авторизации и учета (AAA).

Знакомство с RADIUS

Прежде чем рассматривать возможности IAS, следует познакомиться с технологией RADIUS. В соответствии с определением, данным в документах Request for Comments (RFC) 2138 и RFC 2139 рабочей группы IETF, RADIUS обеспечивает связь сервера сетевого доступа (network access server, NAS) с сервером аутентификации (например, Windows 2000 Server с активной службой IAS). Кроме того, RADIUS определяет метод получения аудиторской информации, в том числе продолжительность сеанса связи, имя пользователя и другие полезные статистические данные о трафике. Такое применение термина NAS для многих непривычно. Его можно заменить термином RAS, но в контексте RADIUS предпочтительно использовать NAS.

Согласно документам RFC 2138 и RFC 2139, сервер аутентификации принимает необходимую для аутентификации и учета информацию через порты UDP 1812 и 1813, соответственно. Однако в некоторых серверах аутентификации используются порты UDP 1645 и 1646, как было принято до появления RFC. По умолчанию IAS на платформе Windows 2000 принимает запросы через обе пары портов, но IAS можно настроить на связь по любому порту.

Базовая процедура взаимодействия между NAS и сервером аутентификации проста. После того как NAS получит имя пользователя и пароль от удаленного клиента, NAS посылает серверу аутентификации сообщение Access-Request, содержащее сведения о пароле и имени пользователя. Сервер сверяет учетную информацию с внутренней базой данных. Структуре этой базы данных можно придать любой формат, понятный серверу: например, текстового файла, файла паролей Unix или базы учетных записей Windows; IAS-сервер (в случае с IAS) сравнивает учетную информацию со своей базой учетных записей или Active Directory (AD). Завершив проверку, сервер аутентификации посылает в адрес NAS пакет Access-Reject либо Access-Accept или же отправляет в адрес NAS пакет Access-Challenge, чтобы запросить дополнительную информацию о пользователе. Как правило, пакет Access-Challenge используется для реализации двухфакторных схем аутентификации на основе смарт-карт или программных маркеров. На Рисунке 1 показана удачная попытка аутентификации пользователя по коммутируемому соединению.

Рисунок 1. Успешная попытка аутентификации пользователя коммутируемого соединения.

NAS и сервер аутентификации должны использовать один общий ключ. Этот ключ никогда не пересылается через сеть в простом текстовом формате, и оба устройства задействуют его для шифрования паролей и аутентификации запросов и ответов. В общий ключ может входить до 255 чувствительных к регистру символов. В целях безопасности в общие ключи, как и в пароли, следует вводить специальные символы (отличные от букв и цифр).

Инфраструктура AAA

Познакомившись с технологией RADIUS, можно перейти к другому компоненту, инфраструктуре AAA. Программное обеспечение Cisco IOS обеспечивает полнофункциональную инфраструктуру AAA, с помощью которой можно аутентифицировать пользователей через RADIUS или протокол Terminal Access Controller Access Control System Plus (TACACS+). Помимо аутентификации, AAA позволяет конкретным пользователям применять определенные команды, протоколировать команды и собирать информацию. AAA отличается высокой гибкостью и обеспечивает управление отдельными методами доступа (например, telnet) или всеми методами доступа (например, telnet, PPP и последовательными соединениями).

С помощью списков методов AAA можно указать несколько протоколов или других средств, которые будут применяться системой для аутентификации пользователя. Допустимые элементы списка — RADIUS, TACACS+, локальные имена пользователей и пароли, а также пароль активизации маршрутизатора. Когда пользователь пытается зарегистрироваться, AAA применяет первый метод из списка. Остальные методы используются только в том случае, если первый метод завершается ошибкой. Если после применения метода получено сообщение FAIL, свидетельствующее о неудачной попытке, процесс аутентификации останавливается. Если сервер RADIUS или TACACS+ недоступен или отсутствует, то благодаря списку методов, состоящему из нескольких элементов, можно получить доступ к маршрутизатору через telnet и с консоли с помощью пароля активизации.

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

Установка IAS

Установить и использовать IAS можно на системах Windows 2000 Server и NT Server 4.0. IAS — часть ядра Windows 2000; для NT 4.0 IAS представляет собой один из нескольких компонентов пакета NT 4.0 Option Pack, который можно загрузить с Web-узла Microsoft по адресу: http://www.microsoft.com/ntserver/nts/downloads/ recommended/nt4optpk/default.asp. Пакет Option Pack довольно велик и состоит из многих приложений, но для установки IAS необходимы лишь компоненты Common Program Files и Internet Service Manager (ISM) 4.0. Как и при установке базовых компонентов с компакт-диска NT, после инсталляции любых компонентов Option Pack требуется повторная установка соответствующего пакета обновлений.

В Windows 2000 нужно запустить утилиту Add/Remove Programs из панели управления и выбрать IAS как компонент Networking Services в разделе Windows Components. После установки IAS следует воспользоваться оснасткой Internet Authentication Service консоли управления Microsoft Management Console (MMC). Во время установки система добавляет в папку меню ProgramsAdministrative Tools ярлык для этой оснастки (ias.msc).

Одна из первоочередных задач после установки IAS на платформе Windows 2000 — настроить IAS для взаимодействия с AD. Для этого следует выбрать функцию Register Service in Active Directory из оснастки Internet Authentication Service. После регистрации в AD служба IAS получает доступ к информации о пользователях и группах в AD. В противном случае IAS могла бы проверять информацию о пользователях и составе групп только в локальной базе учетных записей сервера.

В результате этих действий IAS будет зарегистрирована в выбираемом по умолчанию домене AD. Чтобы обеспечить доступ IAS к информации в другом домене AD, достаточно поместить учетную запись компьютера для IAS-сервера в группу RAS and IAS Servers на целевом домене. Группа RAS and IAS Servers должна иметь в AD определенный набор полномочий. Для проверки полномочий следует запустить оснастку MMC Active Directory Users and Computers и выбрать пункт Advanced Features из меню View. В левой панели будет показан объект RAS and IAS Servers Access Check (см. Экран 1). Щелкнув правой кнопкой мыши на объекте, необходимо выбрать пункт Properties из контекстного меню, а затем выбрать вкладку Security, чтобы проверить, имеет ли группа RAS and IAS Servers полномочия Read, Write, Create All Child Objects и Delete All Child Objects (см. Экран 2). В противном случае следует настроить полномочия в соответствии с этими параметрами, чтобы обеспечить корректное функционирование IAS.

Экран 2. Проверка наличия разрешений для группы RAS and IAS Servers.

Настройка IAS для взаимодействия с NAS-устройством Cisco

Служба IAS сможет принимать запросы аутентификации с RADIUS-совместимого NAS, если NAS определен в качестве клиента RADIUS с помощью оснастки Internet Authentication Service. Для назначения клиента RADIUS требуется щелкнуть правой кнопкой мыши на контейнере Clients и выбрать пункт New Client. В диалоговом окне Add Client нужно ввести удобное имя и протокол для работы с этим клиентом (пока выбор ограничен единственным протоколом — RADIUS). Необходимо присвоить NAS подходящее имя, щелкнуть на кнопке Next (имя необязательно должно соответствовать хостимени NAS). Система попросит ввести IP-адрес или DNS-имя для NAS (см. Экран 3).

Экран 3. Добавление клиента RADIUS.

В поле Shared secret (см. Экран 3) можно ввести общий ключ шифрования для двусторонней аутентификации соединения NAS с IAS-сервером и шифровать пароли, передаваемые по сети. Настройка общего ключа на сервере IAS и NAS должна быть одинаковой.

Чтобы добиться совместимости системы удаленного доступа с протоколом Challenge Handshake Authentication Protocol (CHAP) (например, если пароль должен быть зашифрован, а NAS или клиенты удаленного доступа не поддерживают Microsoft Challenge Handshake Authentication Protocol, MSCHAP), необходимо хранить пароли в формате, который может быть расшифрован IAS-сервером. Для правильного хранения паролей следует открыть оснастку Active Directory Users and Computers, щелкнуть правой кнопкой мыши на домене, выбрать из контекстного меню пункт Properties и отредактировать групповую политику Default Domain Policy Group Policy на вкладке Group Policy. В этой политике следует включить режим Store password using reversible encryption for all users in the domain. Или можно выбрать вкладку свойств пользователя Account и установить режим Store password using reversible encryption, чтобы сохранить пароли каждого пользователя отдельно. Для первого сохранения паролей с обратимым шифрованием каждый пользователь должен изменить свой пароль после того, как выбран один из названных режимов.

Чтобы избежать хранения паролей с обратимым шифрованием, следует настроить NAS и политику удаленного доступа, которая будет описана ниже, для использования MSCHAP всегда, когда только можно. Протокол MSCHAP (расширение спецификации RFC 1994) совместим с NT и AD; в нем не требуется хранить пользовательские пароли в простом текстовом формате или с обратимым шифрованием.

Протоколирование и учет

IAS заносит запросы аутентификации в журнал и получает отчетность из NAS. Чтобы просмотреть или изменить текущие параметры журнала, следует открыть оснастку Internet Authentication Service, щелкнуть правой кнопкой на элементе Local File в контейнере Remote Access Logging и выбрать пункт Properties. В этом окне необходимо установить флажки Log account requests и Log authentication requests. Для ввода информации из Cisco NAS после завершения конфигурирования NAS нужно воспользоваться командой

aaa accounting network default start-stop group radius

После того как запущен режим протоколирования, можно управлять созданием и форматировать журнальные файлы IAS на вкладке Local File страницы свойств Local File. Из этой страницы можно указать место хранения журнальных файлов IAS-сервера, частоту создания журналов и формат файла журнала. Я рекомендую вести ежедневные или еженедельные журналы, в зависимости от загруженности сервера, и хранить их на несистемном томе.

Ограничение сетевого доступа с помощью индивидуальных ACL

Благодаря гибкости IAS, протокола RADIUS и инфраструктуры AAA, их можно конфигурировать по-разному. Для корректного применения параметров необходимо дополнить конфигурацию NAS командой

aaa authorization network default group radius

Эта команда заставляет маршрутизатор аутентифицировать пользователей с применением параметров, указанных администратором на сервере аутентификации.

Благодаря специальному атрибуту поставщика (номер 26) протокола RADIUS, перед поставщиками открываются широкие возможности. Одно из самых полезных применений этого атрибута — реализация списков управления доступом (ACL) для отдельных пользователей. С помощью индивидуальных пользовательских ACL можно ограничить доступ на сетевом уровне, открывая для любого пользователя коммутируемых соединений или VPN лишь определенное подмножество сетевых ресурсов. Например, с помощью этих функций можно предоставить поставщику доступ только к его собственному оборудованию или запретить применение коммутируемых соединений компании для выхода в Internet. Гибкость такого подхода проиллюстрирована Рисунком 2: пользовательский ACL ограничивает удаленный доступ одного пользователя, Генри, но не мешает удаленному доступу другого пользователя, Мари.

Рисунок 2. Примерная топология, где используется доступ по ACL.

Для работы с индивидуальными списками ACL в службе IAS используются политики удаленного доступа, которые применяют параметры на основе информации о группах в AD. IAS проверяет условия политики удаленного доступа в том порядке, в каком политики перечислены в оснастке Internet Authentication Service. К пользователям применяется первая подходящая политика, которая может как разрешать, так и запрещать удаленный доступ. Чтобы изменить порядок следования политик, достаточно щелкнуть правой кнопкой мыши на какой-либо политике удаленного доступа и выбрать в контекстном меню пункт Move up или Move down.

Для настройки индивидуальных пользовательских ACL следует составить новую политику удаленного доступа с помощью оснастки Internet Authentication Service. Для этого нужно щелкнуть правой кнопкой мыши на контейнере Remote Access Policies в левой панели и выбрать пункт New. Затем следует ввести имя политики и нажать Next. На следующем экране необходимо указать условия, которые требуется применить к политике. Например, если щелкнуть на кнопке Add и выбрать Windows-Groups, можно применить политику к любой группе, существующей в AD. Важно обратить внимание, что политики удаленного доступа нельзя применять напрямую к индивидуальным пользователям. Однако можно зачислить пользователя в новую группу и применить политику к этой группе. В данном случае определение «индивидуальные пользовательские ACL» не совсем верно, но во всей документации Cisco данная функция называется именно так.

После того как будут указаны условия для новой политики, нужно щелкнуть на кнопке Next и на следующем экране выбрать режим Grant remote access permission. По щелчку на кнопке Edit Profile открывается диалоговое окно Edit Profile, в котором следует выбрать вкладку Advanced. В разделе Parameters указаны стандартные параметры для соединений Point-to-Point Protocol (PPP). Для ввода индивидуальных пользовательских ACL требуется щелкнуть на кнопке Add. В окне Add Attribute нужно выбрать пункт Cisco-AV-Pair. В службе IAS параметр Cisco-AV-Pair изначально настроен на использование атрибута 26 с кодом поставщика Cisco 9. В окне Multivalued Attribute Information следует создать запись ACL, щелкнув на кнопке Add. Для списка ACL необходимо применять следующий формат:

ip:inacl#N=permit

где величина N — инкремент, prot — протокол, source — сеть-источник, smask — шаблонная маска (или инверсная маска), destination — сеть назначения и dmask — шаблонная маска. Например,

ip:inacl#1=permit ip 192.168.254.0 0.0.0.255 192.168.200.0 0.0.0.255

ip:inacl#2=permit ip 192.168.254.0 0.0.0.255 192.168.201.0 0.0.0.255

разрешает доступ к сетям 192.168.200.0 и 192.168.201.0 для коммутируемых клиентов, получивших IP-адреса в подсети 192.168.254.0. Данный пример показывает настройку входного списка ACL, но можно изменить и конфигурацию выходного списка ACL. Достаточно заменить ключевое слово inacl на outacl. При конфигурировании любых ACL для работы с Cisco IOS важно помнить, что весь явно не разрешенный трафик неявно запрещен.

После того как будут сделаны все нужные записи ACL, следует завершить создание политики удаленного доступа, подтвердив каждое диалоговое окно. Более подробно о базовой настройке конфигурации ACL для Cisco IOS рассказано по адресу: http://www.cisco.com/univercd/cc/td/doc/product/ software/ios121/121cgcr/secur_c/scprt3/scdacls.htm.

Применение ограничений по времени

После того как была создана и получила имя новая политика удаленного доступа, можно назначить для нее условия, определяющие время связи для удаленных пользователей. Чтобы ввести новое условие, следует щелкнуть на кнопке Add в диалоговом окне Conditions. В диалоговом окне Select Attribute нужно выбрать раздел Day-And-Time-Restrictions, чтобы открыть диалоговое окно Time of Day Constraints. В нем можно выбрать периоды времени, в течение которых разрешены соединения удаленных пользователей. Важно убедиться, что указано условие Windows-Group или другое, чтобы политика действовала только на пользователей, выбранных администратором.

Неограниченные возможности

IAS и AAA — гибкие инструменты. Если правильно использовать их в качестве сервера аутентификации на базе RADIUS и NAS, можно повысить безопасность и управляемость развернутых коммутируемых сетей и VPN. В одной статье невозможно подробно рассказать обо всех сценариях, но я надеюсь, что приведенные примеры помогут администратору оценить богатство функций IAS и AAA и более эффективно использовать преимущества этих инструментов в своей сети.

Тим Саммут — старший сетевой инженер в компании ExtraTeam. Имеет сертификаты CCIE и CISSP. С ним можно связаться по адресу: tim@extrateam.com.