Тема настройки карантина для доступа к корпоративной сети уже неоднократно рассматривалась в нашем журнале, в частности мы рассказывали об основных методах проверки конфигурации компьютера перед тем, как открыть ему доступ ко внутренней сети через RRAS-сервер Windows Server 2003 Service Pack 1 (SP1)/Release 2 (R2). Продолжая тему, хочу дать несколько практических советов по управлению карантином при доступе к сети (Network Access Quarantine Control, NAQC) для VPN-клиентов Windows XP SP2. Цель данной публикации — предоставить решение исключительно на основе продуктов Microsoft, для которого не требуется применять продукты независимых поставщиков. Ради простоты мы рассмотрим только VPN-решение PPTP с проверкой подлинности MS-CHAP v2. Но могут применяться и другие методы, например туннелирование L2TP и проверка подлинности с использованием смарт-карт и цифровых сертификатов.
Что такое NAQC
NAQC — это метод анализа конфигурации компьютера клиента при удаленном доступе перед тем, как ему будет разрешено обращаться к компьютерам в защищенной сети. Среди проверок, которые проходит клиент, — контроль своевременного обновления сигнатур вирусов, наличие пароля для хранителя экрана и обновления для брандмауэра XP. В данной статье в качестве критерия безопасности используется число установленных исправлений. Критерий безопасности можно дополнить другими проверками, но при этом возрастает сложность решения. Механизм реализации NAQC следующий:
-
VPN-клиент XP SP2 подключается к RRAS-серверу с использованием PPTP, и выполняется проверка подлинности.
-
Клиент помещается в карантин. Карантин представляет собой набор фильтров клиентского трафика на основе IP-адресов и протоколов. Фильтры могут обслуживать конкретные протоколы и порты или разрешать трафик по адресам.
-
Клиент загружает подготовленный администратором список необходимых исправлений с защищенного сервера, доступного через фильтры карантина.
-
Клиент обрабатывает список с помощью сценария, проверяя установленные обновления. Если все обновления установлены, клиенту предоставляется доступ к защищенной сети. Если обновления отсутствуют, то соединение клиента завершается тайм-аутом в карантине.
Можно усовершенствовать метод и настроить NAQC так, чтобы предоставить отправленному в карантин клиенту доступ к обновлениям, которые требуется установить. Ниже будут приведены советы по организации такого доступа.
Тестовая установка
В данной реализации используется три компьютера: контроллер домена (DC) Windows 2003 SP1/ R2, RRAS-сервер Windows 2003 SP1/R2 с несколькими сетевыми интерфейсами, функционирующий как пограничный сервер, и клиент XP SP2. В таблице показаны настроенные сетевые интерфейсы. Сеть 10.0.0.0 имитирует общедоступное пространство IP-адресов; на практике XP-клиент и внешний интерфейс RRAS будут иметь общедоступные IP-адреса. Трафик не проходит из XP-клиента в DC, если клиент не выведен из карантина.
Для контроллера домена Windows 2003 не требуется специальной настройки, за исключением создания тестовых учетных записей пользователей и групп. В данной статье тестовому пользователю дано имя VPNTest, а группа получила название VPNUsers. Тестовый пользователь введен в тестовую группу; установлен флажок Allow access в разделе Remote Access Permission (Dial-in or VPN) на вкладке Dial-in диалогового окна свойств учетной записи (экран 1).
Чтобы выполнить проверку подлинности для соединения VPN, компьютер, функционирующий в качестве RRAS-сервера, должен быть членом домена DC. Чтобы настроить RRAS на сервере, который является членом домена, необходимо выполнить следующие действия:
-
Зарегистрироваться на сервере, члене домена, с учетной записью из группы Domain Admins. Это упростит процесс авторизации RRAS-сервера после завершения настройки.
-
Из меню Administrative Tools открыть консоль Routing and Remote Access.
-
Щелкнуть на имени сервера, а затем на Configure and Enable Routing and Remote Access, чтобы запустить мастер Routing and Remote Access Wizard.
-
На экране Configuration оставить параметры по умолчанию — Remote access (dial-up or VPN) — и щелкнуть на кнопке Next.
-
На странице Remote Access должен быть установлен флажок VPN. Щелкните на кнопке Next.
-
На странице VPN Connection выбрать сетевой интерфейс, обращенный в Internet, и нажать кнопку Next.
-
На странице IP Address Assignment установить флажок From a specified range of addresses и нажать Next. Назначать IP-адреса можно с использованием DHCP, но в ходе тестирования можно указать определенный диапазон.
-
На странице Address Range Assignment щелкнуть на кнопке New, чтобы добавить диапазон IP-адресов для клиентов удаленного доступа. Этот диапазон должен находиться внутри подсети в диапазоне адресов защищенной сети. Следует нажать Next.
-
На странице Managing Multiple Remote Access Servers щелкнуть на No, use Routing and Remote Access to authenticate connection requests и на кнопке Next. NAQC можно настроить на работу с RADIUS, но при этом процедура немного усложняется.
-
Закройте мастер, щелкнув на кнопке Finish. Может появиться сообщение о ретрансляции DHCP-сообщений. Поскольку DHCP не используется, следует убрать сообщение, нажав OK.
После установки RRAS на сервере, члене домена, необходимо установить службу Remote Access Quarantine Service и комплект Connection Manager Administration Kit (CMAK). Для установки этих компонентов нужно выполнить следующие действия:
-
В панели управления запустить утилиту Add or Remove Programs и перейти на вкладку Add/Remove Windows Components.
-
В разделе Management and Monitoring Tools выбрать Connection Manager Administration Kit.
-
В диалоговом окне Networking Services выбрать Remote Access Quarantine Service (экран 2). Служба Remote Access Quarantine Service доступна в Windows 2003 SP1 и входит в состав R2.
По завершении этой операции следует установить режим автоматической начальной загрузки Remote Access Quarantine Service, а затем применить инструмент Services из меню Administrative Tools, чтобы запустить службу.
Следующий этап настройки NAQC — создать и изменить политику удаленного доступа. Чтобы подготовить базовую политику удаленного доступа, требуется выполнить следующие действия:
-
Из меню Administrative Tools открыть Routing and Remote Access.
-
Щелкнуть правой кнопкой мыши на Remote Access Policies и выбрать пункт New Remote Access Policy, чтобы запустить мастер New Remote Access Policy.
-
Ввести имя политики VPN Quarantine Policy и щелкнуть на кнопке Next.
-
На странице Access Method выбрать VPN и щелкнуть на кнопке Next.
-
На странице User or Group Access выбрать Group, щелкнуть на кнопке Add и ввести VPNUsers (или группу, созданную ранее) в диалоговом окне. Закрыть диалоговое окно и щелкнуть на кнопке Next.
-
На странице Authentication Methods выбрать только MS-CHAP v2 и щелкнуть на кнопке Next.
-
На странице Policy Encryption Level необходимо убедиться, что выбран только пункт Strongest encryption. Щелкните на кнопке Next, а затем на кнопке Finish, чтобы закрыть мастер.
После того как будет создана политика, нужно выполнить следующие действия, чтобы активизировать карантин удаленного доступа:
-
Щелкнуть правой кнопкой мыши на новой политике и выбрать пункт Properties.
-
Щелкнуть на кнопке Edit Profile, перейти на вкладку Advanced и щелкнуть на кнопке Add.
-
Прокрутить экран вниз до атрибута MS-Quarantine-Session-Timeout и щелкнуть на кнопке Add.
-
Ввести значение 45 секунд. Это значение определяет период времени, в течение которого клиент может ожидать окончания проверки. Если карантин не снят спустя 45 секунд, система автоматически разрывает соединение клиента с RRAS-сервером. 45-секундного интервала достаточно, чтобы выполнить начальную проверку и при необходимости принудительно загрузить одобренные обновления с серверов Windows Update компании Microsoft. Ниже этот процесс будет описан подробнее.
-
Выбрать атрибут MS-Quarantine-IPFilter и щелкнуть на кнопке Add. От настройки этого фильтра зависит, какой трафик можно передавать и получать от клиентов, находящихся в карантине. В данном примере фильтр разрешает весь трафик для компьютеров с IP-адресами 192.168.10.1 и 192.168.10.2. Администратор может установить по этому адресу FTP-сервер и разместить в нем обновления. Клиент в карантине сможет обратиться к этому FTP-серверу и загрузить новейший список необходимых исправлений. Конечно, можно подготовить более строгие фильтры, позволив клиентам в карантине обращаться только по определенным IP-адресам через заданные протоколы (например, TCP, UDP) и конкретные порты.
Сценарии и обновления
Чтобы помочь администраторам в развертывании NAQC, компания Microsoft предоставляет несколько примеров сценариев, один из которых проверяет реестр, чтобы выяснить, установлены ли в локальном компьютере те или иные обновления. Чтобы получить этот файл, следует обратиться к статье «VPN Quarantine Sample Scripts for Verifying Client Health Configurations» (http://www.microsoft.com/downloads/details.aspx?FamilyID=a290f2ee-0b55-491e-bc4c-8161671b2462&DisplayLang=en ). Для примера, приведенного в этой статье, требуется файл checkhotfixes.vbs. Загрузив файл, отредактируйте его, чтобы заменить
dim sInstalledQFE(40),
sReqdQFE(40)
на
dim sInstalledQFE(100),
sReqdQFE(100)
В результате сценарий будет пригоден для обработки большего числа исправлений. Без этого изменения сценарий не будет функционировать на компьютере с XP SP2. Вместо прилагаемого файла hotfixidlist.txt нужно создать собственный файл с тем же именем и ввести идентификационные номера KB911564, KB911565 и KB873339.
Придется изменить файл, чтобы охватить все требуемые исправления перед развертыванием и применять новые по мере выпуска. Однако для тестирования компьютера XP SP2 эти три идентификатора подойдут. Полный список одобренных исправлений будет весьма длинным. Чтобы проверить, насколько эффективно сценарий удерживает клиентов в карантине, следует создать фиктивный идентификационный номер Knowledge Base или Quickfix и добавить его в список. После его загрузки в клиентский компьютер и выполнения проверки клиент не выйдет из карантина, так как в нем отсутствует фиктивное исправление.
Необходимо создать базовый сценарий, чтобы вызвать сценарий проверки исправлений и оценить его результаты. Базовый сценарий не обязательно должен быть сложным; в листинге приведен пример работоспособного сценария. С помощью привычного текстового редактора следует подготовить файл с именем hotquar.cmd и внести в него исходный текст листинга. Сценарий выполняет следующие действия:
-
изменяет каталог, в котором находится профиль CMAK;
-
загружает новейший список исправления из FTP-сервера в защищенной сети;
-
вызывает сценарий CheckHotFixes.vbs компании Microsoft, чтобы проверить, был ли установлен новейший список исправлений.
Дальнейшие действия определяются кодами ошибок сценария. ERRORLEVEL 1 или 2 указывают, что установлены не все требуемые исправления; ERRORLEVEL 0 свидетельствует о том, что все исправления установлены. Если код ошибки — ERRORLEVEL 0, то система вызывает компонент слушателя карантина удаленного доступа, и клиент изымается из карантина. Если код ошибки — ERRORLEVEL 1 или 2, то предпринимается попытка принудительного обновления WSUS. Основы этого процесса будут объяснены в конце статьи.
Принципы работы RQC.exe
RCQ.exe — клиентский компонент службы Remote Access Quarantine Service. После того как будет активизирована служба Remote Access Quarantine Service, клиенты отправляются в карантин на время, указанное в политике удаленного доступа. Клиенту разрешается покинуть карантин, только если RCQ.exe пересылает определенную строку RQS-слушателю на RRAS-сервере. Эта строка хранится в разделе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices qsAllowedSet реестра RRAS-сервера. Значение по умолчанию — RASQuarantineConfigPassed.
Строка передается в RCQ.exe из профиля Connection Manager Profile. В реестр можно ввести несколько строк, поэтому может существовать несколько профилей Connection Manager Profile и сценариев. Каждая строка привязана к Connection Manager Profile, поэтому можно удалить устаревшие строки из реестра, чтобы помешать пользователям с устаревшими профилями выйти из карантина. В строке
CALL RCQ.EXE /CONN %2 /DOMAIN
%4 /USER %5 /SIG %3
используются переменные, переданные в нее из профиля Connection Manager Profile. Эти переменные — имя соединения (%2), имя домена (%4), имя пользователя (%5) и строка выхода из карантина (%3). Далее о строке будет рассказано при настройке Connection Manager Profile.
Чтобы изъять клиент из карантина, достаточно предоставить имя соединения и строку выхода. Необходимость в других полях объясняется тем, что с их помощью можно просмотреть системный журнал RRAS-сервера и выяснить, какие пользователи не выпущены из карантина. Если информация о пользователе или домене отсутствует, то видно, что чей-то компьютер не выпущен из карантина, но неизвестно, чей именно.
FTP и распространение списка исправлений
Компания Microsoft выпускает новые исправления по крайней мере один раз в месяц, поэтому администраторам необходимо обновлять список исправлений и пересылать его клиентам. Сценарий в листинге 1 позволяет выполнить эту задачу, используя фиксированный набор команд FTP, чтобы извлечь файл HotFixIDList.txt из FTP-сервера, доступного для клиента в карантине. В данном случае FTP-сервер установлен на внешнем интерфейсе RRAS-сервера. Если ограничить FTP защищенной сетью, то обращаться к FTP-серверу смогут только клиенты в защищенной сети и в карантине. В строке сценария
CALL FTP A s:gethotfixlist.txt
192.168.10.1
используется список команд из файла gethotfixlist.txt. Типичный файл gethotfixlist.txt содержит такие команды, как ascii, gethotfixidlist.txt и bye. Возможно, список команд придется изменить, если файл gethotfixlist.txt находится в папке корневого каталога FTP-сервера.
Создание профиля Connection Manager Profile
Для настройки клиента требуется установить Connection Manager Profile на RRAS-сервере, а затем установить профиль на клиенте.
-
Следует щелкнуть на Connection Manager Administration Kit в меню Administrative Tools на RRAS-сервере (с установленным CMAK), чтобы запустить мастер CMAK. Щелкните на кнопке Next.
-
На странице Service Profile Selection следует выбрать New Profile, а затем нажать Next.
-
В диалоговом окне Service and File Names следует ввести имя службы VPNTest и имя файла VPNTest. Щелкните на кнопке Next.
-
Установите флажок Do not add a realm name to the user name и нажмите Next.
-
На странице Merging Profile Information нужно щелкнуть на кнопке Next.
-
На странице VPN Support необходимо выбрать параметр Phone book from this profile. Установите флажок Always use the same VPN server и введите IP-адрес внешнего интерфейса пограничного сервера. Щелкните на кнопке Next.
-
На странице VPN Entries нажмите Next.
-
На странице Phone Book снимите флажок Automatically download phone book updates и щелкните на кнопке Next.
-
На странице Dial-Up Networking Entries щелкните на кнопке Next.
-
На странице Routing Table Update щелкните на кнопке Next.
-
На странице Automatic Proxy Configuration нажмите Next.
-
На странице Custom Actions щелкните на кнопке New. В диалоговом окне New Custom Action (экран 3) нужно ввести следующие параметры:
-
Description: QUARANTINE
-
Program to run: hotquar.cmd
-
Parameters: %ServiceDir% %Tunnel RasEntry% RASQuarantineConfig-Passed %Domain% %UserName%
-
Action type: Post-connect
-
Run this custom action for: All connections
-
-
Убедитесь, что установлен флажок Include the custom action program with this service profile and Program interacts with the user. Нажмите OK, а затем Next.
-
На странице Logon Bitmap нажмите Next.
-
На странице Phone Book Bitmap щелкните на кнопке Next.
-
На странице Icons щелкните на кнопке Next.
-
На странице Notification Area Menu Shortcut нажмите Next.
-
На странице Help File щелкните на кнопке Next.
-
На странице Support Information щелкните на кнопке Next.
-
На странице Connection Manager Software щелкните на кнопке Next.
-
На странице License Agreement щелкните на кнопке Next.
-
На странице Additional Files нужно добавить файлы CheckHotFixes.vbs, gethotfixlist.txt, hotfixidlist.txt, hotquar.cmd и rqc.exe. Файл rqc.exe находится в папке ProgramFilesCmakSupport на RRAS-сервере с установленным CMAK. Нажмите Next.
-
На странице Ready to Build the Service Profile нажмите Next.
-
Щелкните на кнопке Finish.
Профили Connection Manager Profile распространяются как самоустанавливающиеся файлы. После того как профиль установлен, клиент может использовать его для подключения. После проверки подлинности пользователя на клиентский компьютер загружается обновленный список исправлений, а сценарий CheckHotfixes.vbs применяется для сверки списка. Клиент, успешно прошедший тест, изымается из карантина. Администраторы обновляют список исправления, редактируя текстовый файл в соответствующем каталоге FTP.
Отладка NAQC
Для диагностики в случае неполадок можно воспользоваться файлом rqc.log на клиентском компьютере с помощью команды
netsh ras set tracing * enabled
После того как журнал будет активизирован, следует попытаться заново установить VPN-соединение на клиенте и найти файл rqc.log в каталоге windows racing. Он может быть полезен для устранения проблем с карантином на клиентском компьютере. Для диагностики NAQC на сервере следует отыскать в системном журнале события из источника RQS.
Получение исправлений для клиента
Один из способов исправить состояние клиентов — применить принудительное обновление WSUS. Запустить принудительное обновление WSUS можно с помощью команды wuauclt.exe /detectnow (применяется в листинге). При выполнении этой команды загружаются и устанавливаются все обновления в одобренном списке сервера WSUS.
Клиенты пребывают в карантине недолго, поэтому загружать обновления через VPN-соединение смысла нет. Отправленных в карантин клиентов VPN можно настроить на получение одобренного списка обновлений из защищенной сети, а сервер WSUS настроить на принудительную загрузку этих обновлений на удаленные клиенты из Internet.
Защита доступа к сети в Longhorn
В Longhorn Server появилась технология защиты доступа к сети (Network Access Protection, NAP), похожая на NAQC. Однако механизм принудительного соответствия требованиям состояния системы в ней иной. В основе NAP лежат не сценарии, а политики, которые применяются ко всем сетевым соединениям (не только организованным с участием сервера удаленного доступа). NAP заменит NAQC в следующей версии Windows. Этот метод не требует размещения сценариев на клиентах, поэтому применить NAP в Longhorn должно быть легче, чем NAQC в Windows 2003.
Проблемы удаленного доступа
Клиенты удаленного доступа всегда доставляли много хлопот администраторам. С применением NAQC уменьшается опасность, что зараженный клиент получит доступ к защищенной сети, но такая возможность не исключается полностью. На данном этапе применить технологию сложно; большинство предприятий не будет ее внедрять, пока процедура использования не станет проще.
Орин Томас (orin@windowsitpro.com ) — редактор Windows IT Pro