Функция карантина в Windows 2003 повышает безопасность внутренней сети при удаленном доступе
Большинство специалистов в области безопасности считают, что клиенты удаленного доступа представляют собой слабое звено в любой корпоративной сети. Несмотря на все удобства современных реализаций удаленного доступа через быстрые соединения, наличие требований, в число которых входит использование антивирусного программного обеспечения и персональных брандмауэров, делает обеспечение удаленного доступа не такой простой задачей. Даже в хорошо продуманной и управляемой сети с централизованным администрированием удаленные пользователи, которые соединяются с офисом с помощью своих персональных компьютеров, часто не рассматриваются как объект корпоративной политики безопасности. Следовательно, точки удаленного доступа следует считать потенциальной лазейкой для проникновения вирусов в корпоративную сеть.
Многие пытаются решать подобные проблемы с помощью политики компании, которая требует, чтобы антивирусное программное обеспечение и персональные брандмауэры использовались на каждой машине, подключаемой к сети. Но сама по себе политика без надлежащих средств ее реализации и контроля вряд ли принесет успех.
Для решения проблем с удаленным доступом такие производители средств удаленного доступа, как Check Point Software Technologies и Cisco Systems, начали предлагать продукты, которые гарантируют выполнение минимальных требований работы в удаленном доступе, прежде чем клиент сможет подсоединиться к корпоративной сети. В настоящее время и разработчики Microsoft реализовали аналогичную функциональность в серверах Windows Server 2003. С помощью Network Access Quarantine Control, новой функции Windows 2003, можно «закрыть на карантин» клиента удаленного доступа, пока на его станции не отработает некий специализированный сценарий. Этот сценарий может содержать ряд тестов. Например, он может проверить, имеются ли на станции некоторые специальные файлы, антивирусное программное обеспечение или персональный брандмауэр, Internet Connection Firewall (ICF).
Network Access Quarantine Control может использоваться с Windows 2003, Windows XP, Windows 2000, Windows Me и Windows 98 Second Edition (Win98SE). Чтобы оценить все преимущества работы с новой функцией, необходимо установить Windows 2003 Connection Manager Administration Kit (CMAK) и с его помощью создать профиль соединения (connection profile), в состав которого входит сценарий, запускаемый на удаленных клиентах.
Перед тем как я продемонстрирую, как настраивать функцию карантина, давайте познакомимся с карантинной средой RRAS. На рис. 1 показан пример сети. Сервер IAS1 и сервер VPN1 работают под управлением Windows 2003. IAS1 является контроллером домена (DC), на котором функционирует Internet Authentication Service (IAS). VPN1 — это сервер VPN. Необходимо настроить VPN-сервер для работы со службой Remote Authentication Dial-In User Service (RADIUS) и использовать недоменные учетные данные для аутентификации пользователей.
Модель сети с карантином |
Хочу отметить, что на рис. 1 показаны две сети. Сеть 172.16.0.x — это внутренняя корпоративная сеть, а 10.0.0.x — сеть, подключенная к Internet. Тестовый клиент работает на станции XP и является удаленным клиентом, который подключается через Internet. Чтобы познакомиться с возможностями функции карантина, я советую на своем рабочем месте развернуть аналогичную тестовую конфигурацию, как это показано на схеме. Подробные инструкции для создания такой тестовой сети можно найти в статье Microsoft «Step-by-Step Guide for Setting Up VPN-Based Remote Access in a Test Lab» (http://www.microsoft.com/technet/prodtechnol/ windowsserver2003/deploy/confeat/rmotevpn.asp).
Надо отметить, что сетевые адреса в данном тесте присвоены в соответствии с комментариями Internet Engineering Task Force (IETF) Request for Comments (RFC) 1918, которые требуют, чтобы для частных сетей использовалось адресное пространство IPv4. Эти сети могут быть частью существующей сети, поэтому нужно убедиться, что все лабораторные тесты будут проводиться в сегменте, изолированном от рабочих ресурсов компании. Если же предстоит переместить тестовую сеть в общую сеть, необходимо перенумеровать одну или обе сети в настройках карантина, чтобы поддерживать уже назначенное ранее адресное пространство ISP и существующую корпоративную сеть.
Как работает карантин
Новая карантинная функция зависит от установки CMAK, которая предоставляет возможность запуска сценариев на клиенте до или после удаленного подключения. После создания профиля Connection Manager у вас появится единственный установочный .exe-файл, с помощью которого распространяется необходимый файл сценария, устанавливается телефонная книга, а также дополнительные файлы, необходимые для исполнения карантинных функций. Сценарий карантина использует утилиту Remote Access Quarantine Client utility (rqc.exe), которая входит в состав пакета Microsoft Windows Server 2003 Resource Kit.
Когда новый клиент пытается подключиться к серверу VPN, на котором работает RRAS с активизированной функцией Network Access Quarantine Control, сервер VPN (на рисунке — VPN1) передает полномочия пользователя с удаленного клиента на сервер IAS (на рисунке — IAS1) для проведения аутентификации. Полномочия имеют форму сообщений RADIUS Access-Request. Сервер IAS проверяет полномочия пользователя с учетом соответствующей политики удаленного доступа, в которой указывается, какие пользователи могут выполнять регистрацию, когда это можно делать и какой тип соединений разрешается. Кроме того, политика удаленного доступа может требовать, чтобы клиент был на карантине до тех пор, пока сценарий карантина не будет успешно отработан на станции клиента.
Если политика удаленного доступа требует, чтобы клиент был помещен на карантин, сервер IAS использует два атрибута RADIUS: MS-Quarantine-IPFilter, который описывает ограничения по IP, накладываемые на клиента, и MS-Quarantine-Session-Timeout, ограничивающий время, которое клиент проведет на карантине.
После успешного завершения сценария карантина rqc.exe возвращает сообщение серверу VPN, который запускает компонент, называемый Remote Access Quarantine Agent (rqs.exe). Таким образом проверяется, во-первых, что сообщение получено от rqc.exe, и, во-вторых, что сценарий карантина успешно завершен, то есть клиент полностью соответствует всем предъявляемым требованиям. Если сценарий успешно завершен и клиент соответствует требованиям, сервер RAS снимает карантин, а пользователь получает доступ к ресурсам, которые описаны в политике удаленного доступа. Если же клиент не соответствует требованиям политики, клиент остается на карантине, пока либо пользователь не отключится сам, либо не истечет время, заданное атрибутом MS-Quarantine-Session-Timeout, и в этом случае сервер VPN самостоятельно сбросит клиентское подключение. Необходимо предварительно организовать ресурсы, к которым клиент сможет обратиться, если его конфигурация не удовлетворяет предъявляемым требованиям.
Когда будет решено, какие ресурсы должны быть доступны для обращения пользователя, необходимо определить, следует ли предоставить клиентам несложную Web-страницу в качестве пояснения, почему они помещаются на карантин и что нужно предпринять для устранения возникших проблем с подключением к удаленным ресурсам. Если в списке требований числится использование антивирусного программного обеспечения и клиент оказался на карантине именно потому, что на его компьютере такое программное обеспечение не установлено, нужно подумать, каким образом сделать доступным для клиента тот или иной антивирусный пакет или его обновление. При этом следует учитывать корпоративную политику в области безопасности и лицензионную политику.
Настройка карантина
Первая настройка карантина состоит из четырех этапов. Во-первых, нужно установить программу rqs.exe на сервер VPN. Во-вторых, необходимо составить сценарий карантина, который будет исполняться на клиенте. В-третьих, с помощью CMAK следует создать профиль Connection Manager. И наконец, на сервере IAS требуется создать политику удаленного доступа.
Установка Rqs.exe
Первая задача — установка rqs.exe на сервер VPN. Необходимо загрузить Windows Server 2003 Resource Kit Tools, в состав которого входят программы rqs.exe и rqc.exe. Затем требуется выполнить следующие действия.
- Открыть окно командной строки.
- Установить в качестве текущего каталог C:Program FilesWindows Resource KitsTools.
- cd program fileswindows resource kits ools
- Выполнить команду
rqs_setup.bat /install
для запуска сценария установки rqs.exe. Этот сценарий копирует нужные файлы и создает карантинную службу Remote Access Quarantine Agent Service. Для работы данной службы должна быть запущена служба Routing and Remote Access Service, поэтому после перезапуска RRAS необходимо запускать и Remote Access Quarantine Agent Service. В настройках установленной службы поставлен флажок автоматического запуска, за исключением самого первого раза непосредственно после установки. Если попробовать запустить эту службу сразу после установки, появится сообщение об ошибке, поскольку сценарий еще недоступен для клиентов.
- Открыть редактор реестра и перейти в раздел HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesRQS. Далее следует создать новый параметр AllowedSet (тип — Multi-String) и добавить номера версий сценариев, которые будут запускаться на станциях клиентов. В рассматриваемом примере надо добавить только одно значение: Version1, которое является номером версии сценария карантина CheckFile.bat (приведен в листинге 1). Следует обратить внимание на строку с меткой А — самый последний параметр содержит номер версии сценария. Этот номер, передаваемый в rqc.exe как переменная, должен соответствовать записи в реестре для успешного подключения клиента. Номер версии позволяет обновлять сценарий в определенные моменты времени, гарантируя тем самым, что посторонние лица не смогут воспользоваться старыми сценариями и покинуть зону карантина.
Получение сценария карантина
Как уже отмечалось, в сценарии карантина могут быть помещены различные тесты клиентского программного обеспечения. В приведенном примере сценария CheckFile.bat проверяется наличие файла access.txt в каталоге WindowsSystem32. Если файл найден, сценарий запускает rqc.exe. Rqc.exe в свою очередь вызывает программу rqs.exe на сервере VPN и устанавливает флажок, означающий, что сценарий был успешно запущен и клиент содержит требуемый файл, после чего посылает запрос на снятие карантина. Сценарий обязан запустить rqc.exe в рамках отведенного временного интервала (о нем будет сказано ниже), чтобы сервер VPN снял ограничения карантина; в противном случае сервер VPN закроет соединение.
Создание профиля CM
Вместе с установкой сценария карантина и программы rqs.exe необходимо установить CMAK на любом сервере Windows 2003 и настроить профиль CM. Для этого нужно выполнить следующие действия.
- Открыть в Control Panel приложение Add or Remove Programs.
- Щелкнуть Add/Remove Windows Components в окне Add or Remove Programs для запуска мастера Windows Components Wizard.
- В секции Components в окне Windows Components Wizard установить флажок Management and Monitoring Tools. Щелкнуть Details.
- Установить флажок Connection Manager Administration Kit в списке Subcomponents of Management and Monitoring Tools в окне Management and Monitoring Tools. Щелкнуть ОК и Next. Мастер Windows Components Wizard попросит вставить оригинальный носитель Windows 2003 для завершения установки.
- Выбрать All Programs, Administrative Tools и Connection Manager Administration Kit в меню Start для запуска мастера CMAK. Щелкнуть Next. Еще раз нажать Next.
- В поле Service name указать имя для профиля CM. Например, hotcert.com. Затем следует нажать клавишу Tab.
- В поле File Name указать имя программы, которую необходимо развернуть на компьютерах удаленных пользователей. Имя программы не должно превышать восемь символов. Расширение можно не указывать. Мастер установки самостоятельно добавит расширение .exe в конец имени программы. В нашем примере необходимо набрать hotcert, затем нажать Next три раза.
- В окне VPN Support мастер CMAK предлагает развернуть телефонные книги — phone books. С их помощью можно распространять данные и соответствующие обновления на большое число серверов коммутируемого доступа и VPN. Телефонные книги, кроме того, содержат список телефонов для обращения к серверам коммутируемого доступа и VPN, что дает пользователям несколько дополнительных вариантов подключения, если сервер RAS становится недоступным. Чтобы воспользоваться телефонной книгой, требуется установить внешний Web-сервер, с помощью которого клиенты станут получать необходимые обновления.
В нашем примере имеется только один сервер VPN, поэтому для него нужен только один IP-адрес. Следует выбрать флажки Phone Book from this profile и Always use the same VPN Server. Определите внешний IP-адрес для сервера VPN. В качестве примера нужно указать 10.0.0.2, затем щелкнуть Next два раза.
- В окне Phone Book необходимо очистить флажок Automatically download phone book updates. Для рассматриваемой тестовой среды нет необходимости вносить изменения в телефонную книгу. Прежде чем использовать карантин в производственной среде, целесообразно обработать содержимое телефонных книг для автоматического обновления удаленных клиентов. CMAK имеет ссылку на секцию «Testing the Quarantine», в которой поясняется, каким образом создавать телефонные книги. Следует щелкнуть Next четыре раза, чтобы открыть окно Custom Actions.
- Щелкнуть New в окне Custom Actions, чтобы открыть следующее диалоговое окно New Custom Action (изображено на экране 1). Большинство настроек, связанных с карантином, выполняется именно в этом окне.
- В поле Description окна New Custom Action набрать Quarantine Script.
- В поле Program to run набрать название сценария карантина, который должен быть запущен на станции клиента. Можно указать любой тип исполняемого файла — .dll, .exe, .bat или .cmd
- В поле Parameters указываются передаваемые в сценарий переменные. Кроме того, здесь же можно задать переменные CMAK. О названиях этих переменных можно прочитать в справочнике CMAK. На странице Incorporating custom actions в секции How to specify a custom action приводится полный список переменных, которые могут быть использованы в этом поле. Добавьте в поле Parameters следующие пять записей:
- %DialRasEntry% (имя службы или название удаленного коммутируемого подключения);
- %TunnelRasEntry% (имя службы или название удаленного туннельного подключения);
- %Domain% (домен подключения удаленного пользователя);
- %UserName% (имя удаленного пользователя);
- %ServiceDir% (путь к каталогу профиля).
Важно убедиться, что две соседние переменные разделены пробелом, как показано на экране 1.
- В списке Action type выбрать Post-connect.
- В списке Run this custom action for выбрать All connections.
- Убедиться, что два флажка в самом низу окна New Custom Action установлены, затем нажать ОК. Щелкнуть Next девять раз, на экране должно остаться диалоговое окно Additional Files.
- Окно Additional Files позволяет указать, какие файлы следует «привязать» к профилю CM. Следует щелкнуть Add, перейти в каталог, в котором располагается сценарий, и добавить его в список. Затем нужно проделать то же самое с программой rqc.exe, размещенной в %SYSTEMDRIVE%Program FilesWindows Resource KitsTools. Для нашего примера этого достаточно и больше добавлять ничего не надо. CMAK распространяет .exe-файлы, копируя их в каталог клиента %SYSTEMDRIVE%Documents and SettingsAll UsersApplication DataMicrosoft NetworkConnectionsCmServiceName, где ServiceName — это имя, которое было назначено для CM-профиля на шаге 6. Щелкните Next.
Экран 1. Настройка параметров службы карантина |
Каталог, созданный на этом шаге, имеет атрибут hidden. Это может предотвратить незаконное использование сценария и скроет его содержимое. Однако существует вероятность того, что сторонники собственной разработки сценария забудут установить флажок hidden для каталога и внести в сценарий необходимые изменения для запуска на клиенте, а кто-то может решить, что новая функция Windows 2003 и XP — это политика ограничения использования программного обеспечения. Если реализовать соответствующие политики, операционная система не сможет запустить batch-файлы (и файлы многих других типов), которые были изменены. Или же вместо обычного batch-файла можно было воспользоваться шифрованным сценарием, написанным на Windows Script Host (WSH). Дополнительную информацию об использовании политик ограничения программного обеспечения можно найти в статье Microsoft «Using Software Restriction Policies to Protect Against Unauthorized Software» (http://www.microsoft.com/technet/ treeview/default.asp?url=/technet/prodtechnol/ winxppro/maintain/rstrplcy.asp).
В окне Ready to Build the Service Profile следует снять флажок Advanced Customization и щелкнуть Next. На короткое время появится окно командной строки — CMAK построит профиль CM и создаст исполняемые модули. После завершения процесса нажмите Finish.
Чтобы взглянуть на созданный профиль CM, нужно открыть Windows Explorer и перейти в каталог %SYSTEMDRIVE%Program FilesCMAKProfiles. Здесь расположен подкаталог, имя которого совпадает с названием CM-профиля, заданного в п. 6. В нем хранится несколько файлов, включая .exe-файл, имя которого было задано в п. 7. Этот исполнительный файл следует распространить среди удаленных пользователей, чтобы они установили его на клиентских станциях.
Настройка политики удаленного доступа
До этого момента карантин еще не создавался. Далее сервер IAS пошлет запрос на сервер VPN, чтобы создать карантин на время аутентификации, и сервер VPN это сделает. Ниже перечисляются шаги, необходимые для настройки сервера IAS в связи с установлением карантина.
- В меню Start на сервере IAS выбрать All Programs, Internet Authentication Service.
- Открыть контекстное меню Remote Access Policies и выбрать New Remote Access Policy для запуска мастера New Remote Access Policy Wizard. Щелкнуть Next для пропуска страницы Welcome.
- В появившемся окне следует набрать Quarantine Policy в поле Policy Name и щелкнуть Next. Убедитесь, что переключатель VPN выбран, и щелкните Next. Если требуется создать раздельные карантины для клиентов коммутируемого и беспроводного доступа, можно повторить запуск этого же мастера, но уже для другого типа подключения.
- В окне User or Group Access необходимо указать, на какие группы пользователей должна распространяться политика удаленного доступа. Как вариант можно создать отдельную группу пользователей, чтобы поэкспериментировать с карантином. Для нашего примера следует щелкнуть Add и набрать Domain Users в поле Object Names для внесения всех пользователей домена в политику карантина. Щелкните ОК и дважды Next.
- Необходимо, чтобы клиенты удаленного доступа всегда использовали самый сильный и практичный метод шифрования, поэтому важно убедиться, что в окне Policy Encryption Level установлен флажок Strongest Encryption. Но если клиент более старый, чем требуется для метода шифрования, не стоит выбирать этот вариант. Щелкните Next и Finish. Теперь у вас заведена новая политика удаленного доступа под названием Quarantine Policy.
- Чтобы установить специфические атрибуты для карантина, нужно открыть контекстное меню только что созданной политики Quarantine Policy и выбрать Properties. Следует щелкнуть Edit Profile и перейти на вкладку Advanced. В окне Add Attribute нужно найти секцию, в которой в колонке Vendor указано Microsoft, как показано на экране 2. Здесь имеется несколько атрибутов, но основное внимание необходимо уделить двум — MS-Quarantine-Session-Timeout (указывает число секунд, в течение которых на клиенте должен быть запущен сценарий) и MS-Quarantine-IPFilter (позволяет добавлять множество входящих и исходящих фильтров).
- Выберите атрибут MS-Quarantine-Session-Timeout и щелкните Add для запуска окна Attribute Information (или просто дважды щелкните имя атрибута). Нужно установить такое значение этого атрибута, чтобы дать клиенту достаточно времени на запуск сценария карантина. В нашем примере следует указать 60 в поле Attribute value, т. е. клиенту дается минута для запуска сценария карантина. Щелкните ОК.
- Выберите MS-Quarantine-IPFilter и щелкните Add. Щелкните Input Filters в диалоговом окне IP Filter Attribute Information для запуска диалогового окна Inbound Filters. Как минимум необходимо завести два входящих фильтра: один для взаимодействия rqc.exe и rqs.exe и еще один — для связи с DHCP. Продолжая наш пример, настроим входящие фильтры для порта TCP 7250. По данному порту программа rqs.exe по умолчанию прослушивает сообщения от rqc.exe и порты UDP 67 и 68, которые используются DHCP. Дополнительно можно рассмотреть возможность работы DNS через порт UDP 53 и взаимодействие с WINS через порт UDP 137, если это необходимо. Если нужно разрешить своим пользователям подключаться к Web-серверу, следует добавить также фильтр по TCP для порта 80.
- В окне Inbound Filters щелкните New. В появившемся диалогом окне Add IP Filter нужно выбрать TCP в выпадающем списке Protocol. В поле Destination Port введите значение 7250. Остальные поля следует оставить пустыми и щелкнуть ОК.
- Чтобы добавить второй фильтр для DHCP, нужно снова щелкнуть New в диалоговом окне Inbound Filters. В списке Protocol выберите UDP. В поле Destination Port введите 67. В поле Source Port укажите 68. Щелкните ОК. Теперь карантин создан. Щелкните ОК два раза, чтобы закрыть окно Inbound Filters и окно IP Filter Attribute Information. Щелкните Close, чтобы закрыть окно Add Attribute.
- Щелкните Apply и затем дважды ОК для применения новой политики удаленного доступа. Все подключающиеся клиенты должны теперь запускать CheckFile.bat и оставаться на карантине, пока не отработает сценарий. После подключения клиента сервер VPN наложит соответствующие IP-фильтры на выполненные подключения.
Экран 2. Добавление специфических параметров для политики карантина |
Тестирование карантина
Итак, настало время провести тестирование новой функции Network Access Quarantine Control. Перед этим необходимо установить на станции клиента исполняемые модули, созданные с помощью CMAK в п. 7 (см. выше в разделе «Создание профиля CM»). Эти модули следует скопировать с сервера VPN на клиентскую рабочую станцию и запустить их. Используя параметры, специфицированные в CMAK, запущенные программы создадут сетевые коммутируемые подключения. После установки исполняемых модулей нужно попробовать подключиться к тестируемой сети. Если в процессе подключения возникает сбой, следует внимательно проверить все, что было настроено, обращаясь к журналам событий на серверах VPN и ISA. Возможно, придется воспользоваться дополнительными ресурсами для описания CMAK и функции Network Access Quarantine Control:
- "Deploying Remote Access Clients Using Connection Manager" (http://www.microsoft.com/technet/ prodtechnol/windowsserver2003/proddocs/ deployguide/dnsbg_rac_overview.asp)
- "Network Access Quarantine Control in Windows Server 2003" (http://www.microsoft.com/ windowsserver2003/techinfo/overview/ quarantine.mspx)
- "Network Access Quarantine Control" (http://www.microsoft.com/technet/ columns/cableguy/cg0203.asp)
- TechNet Webcast: "Secure Mobile Access Using Wireless and VPN Technologies in Windows Server 2003" (http://www.microsoft.com/usa/webcasts/ ondemand/1767.asp)
Безопасная сеть
Убедившись, что сценарий карантина заработал, можно приступать к составлению дополнительных требований к клиентам. Но нужно иметь в виду, что, если сценарий будет изменен, придется использовать CMAK для повторной компиляции профиля, заново его распространять и устанавливать исполняемые модули на каждом клиенте. Альтернатива этому — прямое редактирование сценария на каждом клиенте, тогда не придется рекомпилировать сценарий. Выполнив некоторые специальные настройки, вы увидите, насколько мощной является новая функция Windows 2003 и как с ее помощью сделать работу в сети безопасной.
Ален Джонс (aj@io.com) - независимый автор из Сиэтла, имеет сертификаты MCSE+Internet, MCT, CCNA, CISSP, автор нескольких книг