09.09.2004

Управление карантином доступа к сети (часть 1 из 2)

Самым легким и распространенным способом проникновения в вашу сеть злонамеренных пользователей Интернета и вредоносных программ является не использование брешей в фильтрах или грубый подбор паролей, а перехват соединения ваших пользователей мобильных устройств, когда они соединяются с вашей сетью, находясь в командировке или вне офиса. Управление карантином доступа к сети (Network Access Quarantine Control), или NAQC, запрещает свободный доступ к сети из удаленного места, пока адресат не удостоверится в соответствии настроек удаленного компьютера определенному стандарту.

автор Jonathan Hassell

Самым легким и распространенным способом проникновения в вашу сеть злонамеренных пользователей Интернета и вредоносных программ является не использование брешей в фильтрах или грубый подбор паролей, а перехват соединения ваших пользователей мобильных устройств, когда они соединяются с вашей сетью, находясь в командировке или вне офиса.

Постараемся понять почему. Удостоверение подлинности большинства удаленных пользователей происходит на основе идентичности имени пользователя и пароля; не принимается никаких мер для проверки их оборудования и программного обеспечения на соответствие определенным требованиям. Удаленные пользователи могут не соблюдать следующие правила безопасности:

  • Наличие последнего служебного пакета (service pack) и/или заплаток безопасности.
  • Единое антивирусное ПО установлено и работает, и вирусные базы обновлены.
  • Отключена сетевая или Интернет маршрутизация.
  • Встроенный или какой-либо другой брандмауэр установлен, работает и активно защищает порты компьютера.

Вы думаете, что все подчиненные системы следуют определенной политике, но раньше о пользователях мобильных устройств обычно забывали или делали для них исключение. Однако Windows Server 2003 включает новую функцию в своем Resource Kit, называемую «Управление карантином доступа к сети», которая позволяет вам фильтровать соединения удаленных пользователей, если их системы не соответствуют требованиям безопасности или не имеют последнего обновления.

Как работает Карантин Доступа к Сети

Управление карантином доступа к сети (Network Access Quarantine Control), или NAQC, запрещает свободный доступ к сети из удаленного места, пока адресат не удостоверится в соответствии настроек удаленного компьютера определенному стандарту.

Чтобы использовать NAQC, ваши удаленные компьютеры должны иметь соответствующие ОС: Windows 98 Second Edition, Windows Millennium Edition, Windows 2000, или Windows XP Home или Professional. Эти версии Windows поддерживают модуль соединения, содержащий информацию о соединении, базовый скрипт и компонент оповещения, который можно создать с помощью менеджера соединений (Connection Manager Administration Kit - CMAK). Дополнительно вам понадобится как минимум одна система Windows Server 2003, с проверенным слушающим компонентом, в рамках этой статьи, предположим, что это сервис Remote Access Quarantine Agent (RQS.EXE) из Windows Server 2003 Resource Kit. Наконец, вам понадобится сервер RADIUS, согласующийся с NAQC, например Internet Authentication Service в Windows Server 2003, чтобы ограничить сетевой доступ.

Пошаговый обзор NAQC

Вот подробная схема того, как работают процессы соединения и карантина, имея ввиду, что вы используете RQC.EXE в качестве клиента и RQS.EXE в качестве сервера.

  1. Удаленный пользователь соединяет свой компьютер, используя карантинный профиль менеджера соединений, с точкой связи, имеющей запущенную службу карантина, обычно это компьютер, использующий службу маршрутизации и удаленного доступа (Routing and Remote Access Service – RRAS).
  2. Удаленный пользователь удостоверяется.
  3. RRAS посылает запрос доступа серверу RADIUS, в нашем случае это Server 2003, с запущенной службой Internet Authentication Service (IAS).
  4. Сервер IAS идентифицирует удаленного пользователя, проверяет его политику удаленного доступа и сравнивает ее с политикой карантина.
  5. Соединение устанавливается, но уже с ограничениями карантина. Сервер IAS посылает запрос доступа серверу RADIUS, включая атрибуты MS-Quarantine-IPFilter и MS-Quarantine-Session-Timeout.
  6. Удаленный пользователь завершает фазу подключения к службе RRAS, включая аренду IP-адреса и установление других соединений.
  7. RRAS настраивает MS-Quarantine-IPFilter и MS-Quarantine-Session-Timeout для данного соединения, уже в режиме карантина. На этом этапе удаленный пользователь может посылать только трафик, соответствующий фильтрам карантина – остальной трафик фильтруется.
  8. Профиль CMAK запускает карантин скрипт.
  9. Карантин скрипт выполняется и удостоверяется, что клиент удаленного доступа соответствует политике. Если это требование выполняется, скрипт запускает RQC.EXE с параметрами командной строки, включая версию скрипта.
  10. RQC.EXE посылает сообщение RRAS о том, что скрипт сработал успешно.
  11. Это сообщение получает RQS.EXE.
  12. Слушающий компонент сервера RRAS сверяет версию скрипта с имеющейся в реестре RRAS и возвращает сообщение о его действительности.
  13. Если версия скрипта приемлема, RQS.EXE вызывает MprAdminConnectionRemoveQuarantine() API, которая сообщает службе RRAS, что пора убрать настройки MS-Quarantine-IPFilter и MS-Quarantine-Session-Timeout и настроить сессию для обычного сетевого доступа.
  14. Как только это сделано, удаленный пользователь получает доступ к сетевым ресурсам как обычно.
  15. RQS.EXE создает событие о карантинном соединении в системном журнале.

Установка NAQC

В этом разделе я рассмотрю непосредственно установку NAQC в вашей сети. Ее можно разделить на шесть этапов:

Создание изолированных ресурсов

Первый шаг – создание ресурсов, к которым удаленный пользователь может обращаться через фильтры карантина. Примерами таких ресурсов могут быть серверы DNS и DHCP, чтобы могла передаваться информация об соединении и IP-адресах, файловые серверы, чтобы можно было скачать нужное программное обеспечение и обновления, и web-серверы, описывающие процесс карантина или дающие возможность связаться с администратором.

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

Другой способ – ограничить ресурсы определенным сегментом сети. Таким образом, вам понадобится всего один фильтр карантина, чтобы передавать трафик удаленному пользователю, но вам, скорее всего, придется провести переадресацию этих машин и даже купить новые. Зато этот метод облегчает работу фильтра. Вам только надо будет сделать правило для службы уведомления на 7250 TCP порту, еще одно для DHCP трафика на 68 и 67 UDP портах, а для остального трафика указать сегмент сети, выделенного под карантин. Вы также можете установить любые другие сетевые фильтры и правила.

Как написать базовый скрипт

Следующим шагом будет написание базового скрипта, который будет запускаться клиентом. У каждой организации свой подход к решению этой задачи, но скрипт должен запускать RQC.EXE после проверки совместимость с карантином и содержать следующие параметры:

rqc ConnName TunnelConnName TCPPort Domain Username ScriptVersion

Далее объясняются приведенные выше аргументы:

  • Аргумент ConnName – это имя модуля соединения на удаленном компьютере, чаще всего это значение переменной профиля dial-in %DialRasEntry%.
  • Аргумент TunnelConnName – это имя модуля туннелироавния на удаленном компьютере, чаще всего это значение переменной профиля dial-in %TunnelRasEntry%.
  • Аргумент TCPPort, конечно же, номер порта, используемого компонентом оповещения. По умолчанию это 7250.
  • Аргумент Domain – это windows-домен удаленного пользователя, чаще всего это значение переменной профиля dial-in %Domain%.
  • Аргумент Username, как вы догадываетесь, есть имя удаленного пользователя, всего это значение переменной профиля dial-in %UserName%.
  • Аргумент ScriptVersion – текстовая строка, содержащая версию скрипта для сверки с сервером RRAS. Вы можете использовать любой набор символов клавиатуры, кроме /0.

Установка слушающих компонентов.

Агент карантина удаленного доступа к сети, также известный как RQS.EXE, должен быть установлен на машинах с Windows Server 2003, принимающих запросы с помощью RRAS. RQS можно найти в Windows Server 2003 Resource Kit Tools. Как только вы запустите инсталлятор для этих инструментов, выберите опцию Командная Строка (Command Shell) из группы Программы (Programs) в стартовом меню (Start menu) и запустите RQS_SETUP /INSTALL из нее. Этот загрузочный файл перепишет необходимые бинарные файлы в папку WindowsRoot\System32\RAS и сделает нужные изменения в настройках служб и реестра, чтобы слушающий компонент автоматически начинал работу при загрузке сервера.

Здесь потребуется немного поработать руками: вам надо указать версию базового скрипта. Слушающий компонент сравнит версию, переданную удаленным компьютером, со значением, хранящимся в RRAS, чтобы быть уверенным в том, что клиент использует последнюю версию данного скрипта. Чтобы вручную сделать эти изменения после запуска RQS_SETUP:

  1. Откройте редактор реестра (regedit.exe).
  2. Выберите HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Rqs.
  3. Щелкните правой кнопкой мыши в правой части окна или на сам раздел и выберите Создать -> Строковый Параметр.
  4. Назовите этот параметр AllowedValue.
  5. Затем щелкните по нему правой кнопкой мыши и выберите Изменить. Вставьте соответствующую строку с версией скрипта в открывшемся окне.

В качестве альтернативы вы можете изменить загрузочный файл RQS_SETUP, чтобы автоматизировать этот процесс в будущем. Для этого:

  1. Откройте RQS_SETUP.BAT с помощью Блокнота (Notepad).
  2. Выберите пункт Найти из меню Правка.
  3. В строке поиска наберите Version1\0 и нажмите OK. Курсор должен остановиться на строке с такой информацией:

REM REG ADD %ServicePath% /v AllowedSet /t REG_MULTI_SZ /d Version1\0Version1a\0Test

  1. Чтобы добавить единственно допустимую версию, уберите REM.
  2. Теперь, замените текст “Version1\0Version1a\0Test” строкой с нужной вам версией скрипта.
  3. Чтобы добавить больше допустимых версий, замените текст “Version1\0Version1a\0Test” строками с версиями, разделяя их “\0”.
  4. Сохраните файл и закройте Блокнот.

Два замечания: RQS установлен как зависимый от RRAS. Однако, когда RRAS перезапускается, RQS не запускается автоматически, т.ч. вам придется запускать его вручную. Также, по умолчанию RQS.EXE слушает порт 7250. Чтобы изменить его, выберите HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Rqs/key, создайте новый строковый параметр, назовите его Port и дайте ему значение нужного вам порта.

Создание изолированного профиля соединения

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

В этом разделе предполагается, что вы знакомы с созданием модулей соединения при помощи CMAK Wizard, т.к. этот процесс не входит в рамки нашей статьи. Процесс может разветвляться в разделе Специализированные Действия (Custom Actions), и мы начнем обзор именно с этого момента.

  1. Дойдите до раздела Специализированные Действия (Custom Actions), адекватно заполняя предыдущие разделы.

Figure 1: The Custom Actions screen of the CMAK Wizard
Рис. 1: Раздел Специализированные Действия мастера CMAK

  1. Выберите После Подключения (Post-Connect) из раскрывающегося поля Тип Действия (Action Type), а затем нажмите кнопку Новое (New), чтобы добавить действие. Появляется раздел Новое Специализированное Действие, как показано на Рис. 2:

Figure 2: the New Custom Action dialog box
Figure 2: Раздел Новое Специализированное Действие

  1. Напишите описание действия в поле Описание (Description). В поле Исполняемая Программа (Program to Run) выберите ваш базовый скрипт. Введите аргументы скрипта и воле Параметры (Parameters). Наконец поставьте галочки в нижних двух полях – «Включить программу в данный профиль» и «Взаимодействие программы и пользователя».
  2. Нажмите OK - вы вернетесь в раздел Специализированные Действия. Нажмите Далее (Next) и заполняйте последующие разделы, пока не попадете в раздел Дополнительные Файлы (Additional Files):

Figure 3: the CMAK wizard Additional Files screenx
Figure 3: Раздел Дополнительные Файлы

  1. Нажмите Добавить (Add) и выберите RQC.EXE. Как только закончите, нажмите Next.
  2. Закончите мастер CMAK.

В следующей статье

В следующей части мы рассмотрим распределение профилей удаленным пользователям, настройку политики, которую будет проводить карантин, и как эта технология внедрена в новом Microsoft ISA Server 2004.

или введите имя

CAPTCHA