Диагностика IPsec обычно сводится к проверке процесса аутентификации
Давайте для начала разберем, как проверить, все ли функционирует нормально, и далее - если обнаружатся какие-либо проблемы - рассмотрим ситуацию в более широком контексте выявления неполадок, связанных с аутентификацией при применении IPsec. При этом я расскажу о некоторых встроенных средствах Windows Server 2003, которые можно использовать для диагностики нарушений в работе IPsec, если обнаружится, что трафик не шифруется. Отметим, однако, что рассматриваемые в данной статье приемы не всегда применимы к специальным приложениям IPsec, таким, как платы IPsec, а также IPsec на базе виртуальных частных сетей.
1. Проверка функционирования IPsec
Даже если вы успешно развернули средства для работы с протоколом IPsec, это не означает, что все будет работать безукоризненно. Когда разрывается сетевое соединение компьютера Windows Server 2003 или Windows XP, операционная система извещает об этом пользователя. К сожалению, аналогичные средства для мониторинга функционирования протокола IPsec не предусмотрены. В зависимости от реализации IPsec при появлении той или иной проблемы возникает одна из двух ситуаций. Либо теряется связь с сетью, либо - что более вероятно и гораздо опаснее - сетевые каналы связи продолжают функционировать, но прекращается шифрование трафика. Можно себе представить состояние администратора, который полагал, что передаваемые по сети данные защищены, и вдруг обнаружил, что они передаются в виде обычного текста.
Самый быстрый способ определить, функционирует ли протокол IPsec, состоит в следующем. С помощью инструментального средства Network Monitor вы фиксируете пакеты данных, поступающие с компьютера, а также на него, и проверяете, зашифрованы ли эти пакеты. Программа Network Monitor поставляется в комплекте с системой Windows 2003. Для ее установки нужно запустить модуль панели управления Add or Remove Programs и открыть окно Add/Remove Windows Components. После установки программы Network Monitor можно начинать регистрацию пакетов, выбрав пункт Start в меню Capture. Затем необходимо инициировать некие сетевые процессы и сгенерировать данные. Выполните типовую процедуру, такую, как просмотр совместно используемой папки на другом компьютере. Наконец, в меню Capture следует выбрать пункты Stop и View.
На экране 1 представлены данные по двум процедурам перехвата пакетов. На левом экране процедура выполняется в условиях, когда настройки компьютера не предусматривают использование протокола IPsec. В столбце Protocols перечислен целый ряд протоколов. На правом экране компьютер настроен на использование протокола IPsec, и в списке присутствует только один протокол: Encapsulating Security Payload (ESP).
Когда система Windows 2003 настроена на использование стандартных политик IPsec, при перехвате пакетов будет фиксироваться только протокол ESP, а также протокол управления сообщениями в сети Internet ICMP (Internet Control Message Protocol). Последнее обстоятельство объясняется тем, что стандартные политики IPsec допускают использование трафика ICMP. Итак, если при перехвате сетевого трафика обнаруживается присутствие целого ряда протоколов, можно смело сделать вывод, что протокол IPsec не функционирует должным образом.
Почти все связанные с функционированием протокола IPsec проблемы обусловлены неполадками, возникающими в процессе аутентификации на этапе обмена Internet-ключами (Internet Key Exchange, IKE). Когда два компьютера пытаются сформировать безопасное соединение (security association, SA), они вступают во взаимодействие, в ходе которого осуществляется взаимная аутентификация. IKE представляет собой алгоритм, управляющий формированием SA. Аутентификация выполняется с помощью одного из трех методов: распределенный ключ, цифровой сертификат или Kerberos. По умолчанию реализованные в Windows 2003 политики IPsec используют метод Kerberos. В подавляющем большинстве случаев диагностика функционирования IPsec сводится к диагностике процесса аутентификации.
2. Повторный запуск службы IPsec
Как только вы убедитесь в том, что протокол IPsec не работает, первым делом попытайтесь перезапустить службу IPsec. Эта процедура позволит полностью прояснить состояние обмена Internet-ключами. Перезапуск службы IPsec часто дает возможность восстановить функционирование протокола IPsec в тех случаях, когда его работа прекращается вследствие существенных изменений в политике. Два преимущества описанного решения состоят в том, что оно не предполагает перезагрузки сервера и на его реализацию уходит всего несколько секунд. На компьютере Windows 2003 можно перезапустить службу IPsec посредством ввода в командной строке следующих команд Net:
net stop policyagent
net start policyagent
Теперь следует повторно выполнить процедуру перехвата сетевых пакетов или запустить один из командных тестов Netsh, о которых я расскажу позднее.
3. Диагностика проблем, связанных с обменом Internet-ключами, в журнале регистрации событий
Если проблема не решается посредством перезапуска службы IPsec, можно переходить к анализу журнала регистрации событий безопасности. Акты создания и удаления безопасных соединений SA фиксируются как события регистрации в сети. Если вы активизируете функцию аудита успешного и неуспешного применения политики Audit Logon Events, эти события будут записываться в файл регистрации. Когда все функционирует нормально, на экране отображаются коды успешного применения политики - 541, 542 и 543. Но поскольку данная статья посвящена действиям администратора в ситуациях, когда протокол IPsec не функционирует, внимательно следите за кодами неудачной регистрации, которые показаны в Таблице 1. На экране 2 показано событие неудачной регистрации с ID 547.
Одна из проблем, возникающих при регистрации событий SA, состоит в том, что эти события могут быстро заполнить регистрационный файл. Если вы обычно отслеживаете события регистрации в системе, но не хотите, чтобы журнал учета событий безопасности заполнялся записями IKE, можете отключить аудит IKE. Для этого в системном реестре нужно создать параметр HKEY_LOCAL _MACHINESYSTEMCurrentCon trolSetControlLsaAuditDisableIKE Audits и установить его значение равным 1.
4. Использование аутентификации по методу распределенного ключа
В отличие от более сложных методов аутентификации, таких, как Kerberos или метод сертификатов, данный метод базируется на использовании разделяемой строки, поэтому его можно задействовать в качестве резервного механизма активизации средств IPsec. Разумеется, если вы уже осуществляете аутентификацию по методу распределенных ключей и при этом у вас возникают проблемы, необходимо проверить, совпадают ли распределенные ключи на каждом из компьютеров. Чтобы протокол IPsec не функционировал, достаточно опечатки хотя бы в одном из ключей.
Если вы умеете восстанавливать работу протокола IPsec на базе аутентификации по методу распределенных ключей, то наверняка знаете, что для реализации механизмов аутентификации Kerberos или с использованием сертификатов требуется более основательная подготовка. Допустим, вы применяете стандартные политики IPsec и метод аутентификации Kerberos. В этой ситуации для перехода к аутентификации по методу распределенных ключей нужно выполнить следующие действия:
- В службе Active Directory (AD) отключите все политики, которые могут повлиять на использование протокола IPsec.
- В меню Start выберите пункт Run и введите gpedit.msc. Теперь можно начинать редактирование локальной политики.
- В окне редактора объектов групповых политик Group Policy Object Editor выберите узел Computer Configuration Windows SettingsSecurity SettingsIP Security Policies.
- Правой клавишей мыши щелкните на политике, вызвавшей проблемы. В открывшемся контекстном меню выберите пункт Properties.
- В списке Filter на вкладке Rules выберите элемент All IP Traffic и нажмите кнопку Edit.
- В диалоговом окне Edit Rule Properties следует перейти на вкладку Authentication Methods и нажать кнопку Add. Добавьте новый метод аутентификации.
- Выберите переключатель Use this string и введите распределенный ключ. Нажмите ОК.
- С помощью кнопки Move Up на вкладке Authentication Methods следует переместить метод Preshared Key в начало списка. Составляя данные инструкции, я исходил из того, что в политики IPsec не вносилось существенных изменений. Общее правило таково: вместо изменения политики всегда целесообразнее создавать новую. Однако в данном случае вы просто добавляете еще один метод аутентификации, и после решения возникшей проблемы сможете задать ему более низкий приоритет. Переход в режим аутентификации с распределенными ключами существенно упрощает процесс аутентификации и с высокой степенью вероятности обеспечивает функционирование протокола IPsec в вашей сети.
5. Определение активной IPsec-политики
Возможно, протокол IPsec не функционирует потому, что на компьютерах сети прописаны несовместимые политики. Скажем, одна политика может подразумевать аутентификацию с помощью сертификатов, тогда как другие предполагают аутентификацию методом распределенных ключей. Чтобы определить, какая IPsec-политика реализуется в настоящее время, можно использовать одно из двух средств. Первое средство - IP Security Monitor. Эта оснастка панели управления Microsoft Management Console (MMC), представленная на экране 3, пришла на смену утилите Ipsecmon.exe, которая поставлялась с Windows 2000. Она дает возможность определить, какая IPsec-политика активна на данном компьютере.
Те же данные можно получить и другим способом, введя в окне командной строки следующую команду Netsh
netsh ipsec dynamic
show all | more
которая помещает в буфер обмена всю информацию о трафике IPsec. В дальнейшем эти данные можно вставить в окно приложения Notepad, как показано на экране 4. В выходном тексте указывается, что некая политика применяется на локальном уровне (т.е. Client: Respond Only) и через службу AD (т.е. Server: Request Security). Получив эти данные, вы можете быстро прийти к заключению: IPsec не функционирует потому, что для данного компьютера либо вообще не назначена политика, либо назначена политика несовместимая. Вполне вероятно, что после устранения несоответствий в политиках IPsec будет функционировать корректно.
6. Анализ проблем аутентификации Kerberos
Аутентификация по методу Kerberos осуществляется через службу AD. Если при этом возникает проблема, скорее всего, она связана с соответствующими учетными записями компьютера. Возможно, для ее решения придется переустановить пароль учетной записи компьютера или повторно активизировать его учетную запись. Если это не поможет, возможно, придется исключить из IPsec трафик Kerberos на контроллере домена. Для этого требуется ввести команду
netsh ipsec dynamic
set config ipsecexempt value=0
В системе Windows 2000 Kerberos может осуществлять аутентификацию трафика, а в среде Windows 2003 - нет. Данная команда Netsh наделяет Windows 2003 возможностями системы Windows 2000.
7. Анализ проблем аутентификации с использованием сертификатов
Если у вас возникают проблемы с аутентификацией на базе сертификатов, по всей вероятности, они объясняются одной из трех причин: сертификат не установлен, срок действия сертификата истек, или список отозванных сертификатов (Certificate Revocation List, CRL) не полон. Стандартный срок действия сертификата IPsec составляет два года; этого вполне достаточно для того, чтобы сотрудники большинства организаций напрочь забыли о том, что существует такая проблема. В отличие от некоторых других шаблонов сертификатов применяемый по умолчанию шаблон сертификатов IPsec не сконфигурирован для автоматического внесения в список регистрации.
Простейший способ получить сведения о том, установлен ли на данном компьютере сертификат, не искажен ли он и не истек ли срок его действия - заглянуть в хранилище сертификатов локального компьютера. Оснастка консоли MMC Certificates также используется для запроса нового сертификата IPsec. Создавая оснастку MMC Certificates для определения даты истечения срока действия установленного сертификата IPsec, будьте внимательны при выборе параметра. Следует выбрать элемент Computer account, как показано на экране 5. Если же выбрать элемент My user account или Service account, вы не сможете отыскать выданный сертификат IPsec.
С точки зрения долгосрочной перспективы лучше всего сформировать новый шаблон сертификатов IPsec, обеспечивающий возможность автоматического внесения в список регистрации (эта функция реализована только в Windows 2003 Enterprise Edition). В результате сертификаты IPsec будут обновляться автоматически, и никому не придется держать в голове сведения о том, что по прошествии двух лет срок действия сертификатов закончится; важно только, чтобы функция автоматического обновления была активизирована.
Во время использования сертификатов IPsec проверяет список отозванных сертификатов, чтобы определить, не был ли отозван тот или иной сертификат. IPsec выделяет для этого определенное время, и возможно, что данное окно закроется еще до того, как IPsec получит результат. Чтобы отключить проверку списка отозванных сертификатов, нужно ввести команду
netsh ipsec dynamic
set config strongcrlcheck 0
8. Проверка использования клиентской политики. Все ли ее применяют?
Администраторы, не имеющие опыта работы с протоколом IPsec, порой применяют ко всем компьютерам сети стандартную политику Client (Respond Only) и потом удивляются, почему трафик не шифруется. Для того чтобы в системе действовали политики IPsec, должна быть реализована политика, либо требующая, либо предусматривающая использование IPsec. Если всем главным компьютерам назначена политика Client (Respond Only), ни один из них не будет требовать использования IPsec. Чтобы решить проблему, попробуйте активировать на своем компьютере одну из серверных политик и запустите программу GPU Update.
9. Проверка журнала IKE
Если ни один из описанных методов не помог устранить неполадки, связанные с обменом Internet-ключами, возможно, придется прибегнуть к более сложному способу. В этом случае потребуется хорошее знание документов RFC 2408 и IKE RFC 2409, в которых речь идет, соответственно, об Internet Security Association и о протоколе управления ключами (Key Management Protocol, ISAKMP). Трассировку согласования IKE можно инициировать, введя команду
netsh ipsec dynamic
set config ikelogging 1
Изменяя значение параметра ikelogging, можно управлять объемом регистрируемой информации. Максимальное значение данного параметра - 7. При таком значении регистрируются все возможные данные. Файл регистрации трассировки IKE размещается по адресу \%systemroot%DebugOakley.log, для его просмотра можно воспользоваться любым текстовым редактором. Отметим, что в регистрационном файле фиксируется множество различных данных, и пользователи, не имеющие опыта работы с IPsec, могут запутаться в его содержимом.
Старайтесь не модифицировать существующие политики
Как правило, политики, входящие в комплект поставки Windows 2003, можно использовать без предварительной настройки. Проблемы могут возникать лишь в тех случаях, когда администратор начинает модифицировать их для аутентификации на базе сертификатов или по методу распределенных ключей. Когда у вас действительно возникнет необходимость изменить метод аутентификации IPsec, не модифицируйте существующую политику - лучше создайте новую. Если вы будете следовать этому совету, то сможете в ходе анализа любой возникшей проблемы быстро переходить к рабочей конфигурации.
Орин Томас (orin@lspace.org) - сотрудник организованного изданием Windows IT Pro учебного и сертификационного Web-сайта CertTutor.net и соавтор вышедшей в издательстве Microsoft Press книги MCSA/MCSE Self-Paced Training Kit (Exam 70-299): Implementing and Administering Security in a Microsoft Windows Server 2003 Network.