Туннелирование пакетов по протоколу IPSec средствами ISA Server

По прогнозам некоторых исследовательских компаний, в частности IDC, уже к 2005 г. почти 100% данных, передаваемых по Internet, будет предварительно зашифровываться. Конечно, какая-то часть трафика будет состоять из транзакций по кредитным картам, закодированных с помощью программы PGP (Pretty Good Privacy) сообщений электронной почты и зашифрованных файлов. Но все же подавляющая часть трафика будет защищена потому, что на различных участках каналов связи — между сайтами компаний, деловыми партнерами или между офисами и квартирами служащих — все чаще станет использоваться технология виртуальных частных сетей (Virtual Private Networks, VPN). Сотрудники многих компаний, в которых пакет Microsoft Internet Security and Acceleration (ISA) Server 2000 применяется в качестве сетевого экрана и сервера-посредника, нередко задают мне один и тот же вопрос: можно ли на основе этого продукта создать Internet-VPN? Да, он позволяет быстро установить виртуальные частные сети типа «клиент — шлюз» или «шлюз — шлюз». Но надо сказать, что для организации VPN на базе ISA Server необходимо выполнить целый ряд операций, в частности настроить Certificate Services, DHCP, DNS и RRAS. Иначе говоря, придется иметь дело с более сложным процессом, нежели тривиальная установка сетевого экрана.

Туннелирование через VPN

Тем, кому еще не доводилось создавать виртуальные частные сети, принципы их функционирования могут показаться необычными. Сначала нужно создать аппаратные или программные конечные точки — один или несколько клиентов VPN и сервер VPN. Обычно существует возможность установления физического и канального уровней VPN (т. е. уровней 1 и 2 модели OSI) по коммутируемой линии или по высокоскоростной выделенной цифровой линии. Конечные точки не обязательно оснащать оборудованием от одного и того же поставщика — важно, чтобы они использовали один и тот же протокол туннелирования. Как разъясняется во врезке «VPN-протоколы, реализованные в ISA Server», обычно в виртуальных частных сетях применяется протокол Layer Two Tunneling Protocol over IP Security (L2TP/IPSec) и потому такие сети могут взаимодействовать друг с другом. Впрочем, конфликты с точки зрения совместимости встречаются довольно часто; особенно это касается VPN на базе ISA Server. Как правило, сетевые компоненты стандарта L2TP от различных производителей имеют по меньшей мере небольшие отличия; так, различаются диалекты одного языка. Для обеспечения интероперабельности обе конечные точки должны быть оснащены средствами для работы с одним и тем же протоколом IPSec и иметь идентичные настройки конфигурации. Протоколы IPSec описаны во врезке «Протоколы и режимы IPSec». Можно создать VPN «клиент — шлюз» между клиентом и сервером или виртуальную сеть «шлюз — шлюз» (именуемую иначе сетью «узел — узел») между двумя или более конечными точками сетей VPN (серверами либо клиентами). С помощью частных виртуальных сетей на базе ISA Server чаще всего объединяют клиента Windows и ISA Server (в сети «клиент — шлюз») и два сервера ISA (в сети «шлюз — шлюз»). Клиенты по обе стороны VPN «шлюз — шлюз» сохраняют свои имена и домены трафика, но удаленные клиенты VPN «клиент — шлюз» становятся виртуальными хост-машинами в сети сервера VPN. В процессе установления VPN-соединений таким клиентам часто назначаются новые IP-адреса, в результате чего на упомянутые клиенты направляется такой же трафик, как и на физические компьютеры локальной сети. Таким образом, удаленные клиенты часто теряют свои локальные сетевые службы и даже возможность подключиться к локальным серверам, принтерам или к Internet-службам. Такой тип конфигурации известен как туннельный режим VPN. В туннельных VPN удаленные клиенты имеют доступ лишь к сетевым серверам и принтерам и часто — доступ к Internet через VPN. Сервер DHCP или RRAS можно настроить таким образом, чтобы удаленным клиентам назначались действительные сетевые IP-адреса. Когда применяется первый метод, диапазон адресов для передачи клиентам VPN RRAS получает от DHCP; при использовании второго метода RRAS назначает адреса, взятые из собственного пула адресов DHCP. Если же требуется передать удаленным клиентам дополнительные элементы диапазона DHCP, нужно на компьютере RRAS установить агент коммутации сообщений DHCP. Клиентов VPN я рекомендую помещать в специализированную подсеть; это позволяет легко отличить клиенты VPN от клиентов локальной сети.

Другой тип VPN, VPN разделяемого режима, предоставляет удаленным клиентам одновременный доступ как к локальным, так и к сетевым ресурсам. Однако клиенты таких сетей могут стать незащищенными шлюзами, впускающими в VPN «чужой» трафик. Некоторые клиенты VPN, в том числе клиент Windows Network Connection VPN, могут работать как в туннельном, так и в разделяемом режиме. Выбор режима зависит от поставленных задач, а также от компонентов сети VPN.

Клиенты по обе стороны VPN передают данные в незашифрованном виде; шифрование осуществляется, как показано на рис. 1, на конечных точках (обычно это маршрутизаторы, сетевые экраны или системы ISA Server). Приложение, в котором пользователь создает данные, обычно не имеет совместимости с технологией VPN. Инкапсулированные данные расшифровываются с помощью аппаратных или программных средств на другом конце VPN, так что, если злоумышленники и попытаются организовать перехват инкапсулированного трафика, в лучшем случае они смогут читать заголовки IP-пакетов, да и то эти заголовки обычно видоизменяются. Протокол IPSec защищает заголовки пакетов TCP и UDP, а также адреса отправителя и получателя и содержательную часть пакетов.

Чтобы система могла работать с протоколом L2TP/IPSec, возможно, придется открыть некоторые порты всех защищающих сеть брандмауэров. Вероятно, потребуется открыть UDP-порт 1701 для трафика L2TP, UDP-порт 500 для трафика Internet Key Exchange (IKE) и, если используется протокол NAT-T, то UDP-порт 4500 для трафика Network Address Translation Transversal (NAT-T). Более подробная информация о NAT-T содержится во врезке «Преобразование NAT». Путем настройки соединений IPSec на сервере ISA Server можно создать соответствующие фильтры для входящих и исходящих через эти порты пакетов, хотя, возможно, придется открывать и другие порты для доступа дополнительных клиентов (например, DHCP, DNS и NetBIOS). Возможно, еще нужно будет разрешить обмен IP-пакетами Encapsulating Security Payload (ESP) типа 50 и IP-пакетами Authentication Header (AH) типа 51. Наконец, следует быть готовым к использованию заранее установленных сертификатов компьютеров или к установке таких сертификатов. Информацию о сертификатах можно найти во врезке «Центр сертификатов». Теперь, когда мы имеем общее представление о том, как работают построенные на базе ISA Server сети VPN «клиент — шлюз» и «шлюз — шлюз», давайте посмотрим, какие действия необходимо предпринять для установки этих VPN.

VPN «клиент — шлюз»

Сетями VPN «клиент — шлюз», объединяющими удаленного клиента Windows и систему ISA Server, часто пользуются сотрудники компаний, работающие дома, находящиеся в разъездах владельцы портативных компьютеров и пользователи служб терминалов с доступом через Internet.

Экран 1. Настройка свойств VPN

Если соответствующий сервер ISA входит в состав домена, удаленные клиенты могут пользоваться установленными учетными записями пользователя домена; если же этот сервер ISA является автономным сервером, для каждого пользователя VPN на сервере ISA необходимо создать учетную запись.

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

  • С помощью мастера Certificate Import Wizard или оснастки Certificate Store консоли Microsoft Management Console (MMC) установить машинный сертификат ISA Server X.509 (подробнее об этом рассказано во врезке «Центр сертификатов»). Чтобы запустить мастер Certificate Import Wizard, следует открыть окно оснастки Certificates в MMC и щелкнуть правой клавишей мыши на объекте Personal Certificate. В открывшемся меню нужно выбрать пункты All Tasks, затем Import — и мастер будет запущен. Далее следует нажать на кнопку Next, перейти к имени файла сертификата компьютера (или ввести его с клавиатуры) и вновь щелкнуть Next. Выберите пункт Automatically select the certificate store based on the type of certificate, затем нажмите Next и Finish. На экране появится сообщение о том, что операция по импорту сертификата завершилась успешно.
  • Открыть оснастку ISA Management в MMC.
  • Открыть окно объекта ISA Server и правой клавишей мыши щелкнуть на узле Network Configuration. Затем следует выбрать пункт Allow VPN client connections. В результате будет запущена программа Local ISA VPN Wizard. Нажмите Next, затем Finish, и мастер автоматически добавит к RRAS 128 соединений для входящих сообщений.
  • Если служба RRAS еще не запущена, система предложит это сделать; нажмите Yes.

VPN-соединение удаленного клиента с сервером ISA, в сущности, представляет собой два соединения. Первое соединение устанавливает физический канал связи (обычно с Internet-провайдером клиента); второе соединение устанавливает канал связи с сервером ISA. Для настройки VPN-клиента Windows XP или Windows 2000 нужно выполнить на системе удаленного клиента следующие операции.

  • Установить сертификат X.509 данного клиента.
  • В меню Start выбрать пункты Settings и Network and Dialup Connections.
  • Щелчком на значке Make a New Connection запустить мастер Network Connection Wizard.
  • В окне Network Connection Type выбрать элемент Connect to a private network through the Internet и нажать Next.
  • В окне Destination Address ввести IP-адрес или имя домена удаленной конечной точки VPN; щелкнуть Next.
  • Выбрать соответствующий элемент в окне Connection Availability и щелкнуть Next.
  • Ввести имя соединения VPN, при желании установить флажок Add a shortcut to my desktop и нажать Finish.
  • На экране появится диалоговое окно Virtual Private Connection, в нем нужно щелкнуть на значке Properties.
  • На закладке Networking, показанной на рис. 2, в списке Type of VPN server I am calling следует выбрать пункт Layer-2 Tunneling Protocol (L2TP). Щелкните OK, чтобы снова оказаться в диалоговом окне Connection.
  • Чтобы протестировать соединение VPN, нужно ввести имя пользователя, применяемое при регистрации в системе, и пароль (возможно, программа предложит сначала завершить процедуру регистрации в системе Internet-провайдера). С помощью ping-теста необходимо удостовериться, что VPN-соединение установлено, затем запустить программу Ipconfig /all; таким образом вы сможете убедиться, что DHCP, DNS, WINS и принимаемые по умолчанию IP-адреса шлюза установлены правильно.

Если клиенты функционируют под управлением более ранних версий Windows, придется установить и настроить клиент Microsoft L2TP/IPSec VPN Client. При установке данного клиента на системах Windows NT устанавливается также новое устройство удаленного доступа RASL2TPM, а на системах Windows Me и Windows 98 — устройство Microsoft L2TP/IPSec VPN Adapter. На системах Windows NT должен быть установлен пакет обновлений Service Pack 6a (SP6a), Microsoft Internet Explorer (IE) 5.01 или более поздней версии, а также PPTP и RAS. На системах Windows 98 должен быть установлен браузер IE 5.01 или более поздней версии, а также обновленный вариант клиента коммутируемого доступа DUN 1.4. На системах Windows Me должен быть установлен браузер IE 5.5 или более поздней версии, а также сетевой компонент VPN, обозначенный в окне Network properties как VPN network adapter. Браузер IE должен присутствовать на упомянутых системах, но не обязательно должен быть активным или выбранным в качестве браузера, используемого по умолчанию.

VPN «шлюз — шлюз»

Для того чтобы создать VPN «шлюз — шлюз» между двумя системами ISA Server, нужно настроить обе системы; к счастью, настройка второй (удаленной) системы упрощается в связи с тем, что при выполнении этой процедуры может использоваться файл конфигурации, создаваемый в ходе установки первой (локальной) системы. Необходимо выполнить следующие действия.

  • Установить машинный сертификат в соответствии с рекомендациями, данными мною в разделе о VPN «клиент — шлюз».
  • Открыть оснастку ISA Management.
  • Распахнуть окно объекта ISA Server и щелкнуть правой клавишей мыши на узле Network Configuration. Затем следует выбрать пункт Set Up Local ISA VPN Server, это приведет к запуску мастера Local ISA VPN Wizard. Должен предупредить, что небольшие ошибки в настройках конфигурации часто приводят к тому, что данный мастер прекращает работу немедленно, без сохранения введенной информации. Нажмите Next.
  • Если служба RRAS еще не запущена, мастер предложит это сделать. Если на экране появится соответствующее сообщение, нужно щелкнуть Yes.
  • В окне ISA Virtual Private Network (VPN) Identification появится приглашение ввести короткие имена для локальных и удаленных систем ISA Server. Можно использовать NetBIOS-имена этих машин или ввести уникальные идентификаторы. Совокупная длина обоих имен не должна превышать 20 знаков, поэтому многие используют короткие уникальные идентификаторы. Как показано на экране 2, мастер идентифицирует новое VPN-соединение путем объединения двух имен. Нажмите Next.
  • В окне ISA Virtual Private Network (VPN) Protocol следует выбрать пункт Use L2TP over IPSec, затем щелкнуть Next.
  • В окне Two-way Communication нужно выбрать пункт Both the local and remote ISA VPN computers can initiate communication. В первом поле необходимо ввести IP-адрес или полностью определенное доменное имя (Fully Qualified Domain Name, FQDN) удаленного сервера ISA, а во втором NETBIOS-имя (т. е. «плоское» имя) удаленного компьютера ISA Server. Щелкните Next.
  • В окне Remote Virtual Private Network (VPN) Network следует ввести диапазон IP-адресов удаленной сети. Щелкните OK, затем Next.
  • В окне Local Virtual Private Network (VPN) Network нужно проверить IP-адрес локального сервера ISA и схему IP-адресов локальной сети; при необходимости требуется внести в них соответствующие изменения. Щелкните на кнопке Next.
  • В окне ISA VPN Computer Configuration File, представленном на экране 3, следует ввести имя и с помощью кнопки Browse указать, где следует расположить файл конфигурации VPN, содержащий данные, которые могут пригодиться в ходе настройки удаленного сервера ISA. По умолчанию этот файл имеет расширение .vpc. Необходимо защитить его паролем и сохранить либо сам файл, либо его копию в таком месте, откуда удаленный сервер ISA сможет с легкостью его извлечь. Щелкните Next, затем Finish.

Файл конфигурации и сертификат X.509 сервера ISA нужно сделать доступными для удаленного компьютера ISA Server или создать копии файла и сертификата на удаленной системе. Затем требуется выполнить на удаленном компьютере ISA Server следующие операции.

  • Установить машинный сертификат с помощью мастера Certificate Import Wizard или оснастки Certificate Store.
  • Открыть оснастку ISA Management.
  • Открыть окно объекта ISA Server и правой клавишей мыши щелкнуть на узле Network Configuration. Далее следует выбрать в раскрывшемся меню пункт Set Up Remote ISA VPN Server. В результате будет запущен мастер Remote ISA VPN Wizard. Щелкните на кнопке Next.
  • Мастер предложит запустить службу RRAS, если это еще не сделано. В случае вывода такого сообщения на экран следует нажать Yes.
  • В окне ISA VPN Computer Configuration File нужно ввести имя файла и путь к файлу конфигурации, созданному на первом сервере ISA. Необходимо ввести пароль файла конфигурации и щелкнуть на кнопке Next, затем нажать Finish.
  • Проверить готовность каждой сети, направляя ей ping-сообщения из другой сети. Первый ping-сигнал придет с некоторым запозданием, поскольку в этом случае будет запущен первоначальный процесс ассоциации системы безопасности. Если в ходе установки к существующей конфигурации RRAS добавляются новые соединения (именуемые портами), обнаружить увеличение числа соединений можно будет только после перезагрузки компьютера ISA Server.

Меры по обеспечению безопасности

При подключении частной сети компании к виртуальным частным сетям в Internet корпоративная сеть открывается внешнему миру, и риск посягательств на ее конфиденциальность возрастает. Ранние версии ISA Server (выпущенные до выхода пакета обновлений SP1) всегда доверяют VPN-клиентам и потому не обеспечивают фильтрации трафика между удаленным клиентом и сетью. Следовательно, перед всякой угрозой, исходящей от клиента VPN, фильтры брандмауэра ISA Server будут бессильны, и локальная сеть окажется незащищенной. Обновление ISA Server SP1 обеспечивает фильтрацию пакетов, проходящих практически по всем соединениям VPN, но VPN-интерфейсы коммутируемых соединений RRAS остаются без этих средств защиты. Перед тем как приступать к реализации VPN на базе ISA Server, следует изучить связанные с этим проблемы в области безопасности и прочитать подготовленную специалистами Microsoft статью «How to Configure IPSec Tunneling in Windows 2000» (http://support.microsoft.com/?kbid=252735); в ней подробно описывается фильтрация пакетов, проходящих между конечными точками VPN.

ISA Server — популярное средство организации VPN в Internet; для соединения двух сетей или для подключения удаленных компьютеров к корпоративным сетям этот продукт использует протокол L2TP/IPSec, который завоевывает статус признанного во всем мире стандарта аутентификации и шифрования в сфере VPN. Значительная часть работы по установке VPN выполняется с помощью мастеров пакета ISA Server, но все же администратор должен иметь представление о функционировании ISA Server, DHCP, DNS, RRAS и VPN. А для организации защиты сети необходимо позаботиться о фильтрации трафика VPN в более широких масштабах, нежели это предусмотрено стандартом.


Роджер Граймз — консультант по антивирусной защите. Имеет сертификаты CPA, MCSE, CNE, A+ и является автором книги «Malicious Mobile Code: Virus Protection for Windows» (изд-во O?Reilly & Associates). Его адрес: roger@rogeragrimes.com


VPN-протоколы, реализованные в ISA Server

Пакет Microsoft Internet Security and Acceleration (ISA) Server 2000 оснащен средствами для работы с протоколами PPTP и Layer Two Tunneling Protocol (L2TP). Из этих двух пакетов наименее защищенным является PPTP. Он включен в изделие главным образом для обеспечения совместимости с клиентами, которые были разработаны до появления Windows 2000, а именно — с клиентами Windows NT и Windows 98, а также с сетями, которые пользуются средствами трансляции сетевых адресов (Network Address Translation, NAT).

В качестве компонентов, препятствующих доступу к передаваемой информации со стороны непрошеных гостей, выдающих себя за полноправных пользователей, в протоколе PPTP применяются пользовательские идентификаторы и пароли. Но если злоумышленник сможет разгадать имя пользователя и пароль, у него появится возможность читать электронную почту данного пользователя с удаленной машины. L2TP, который специалисты Microsoft считают наиболее интересным протоколом аутентификации и шифрования, представляет собой расширение протокола PPTP over IP; он использует порт UDP 1701. Протокол L2TP позволяет отделить физическую и связанную с данными точку соединения от аппаратных и программных средств туннелирования. По протоколу L2TP могут передаваться пакеты TCP/IP, IPX и AppleTalk. Совместное использование протоколов IP Security (IPSec) и L2TP обеспечивает комплексную аутентификацию и конфиденциальность данных. Протокол L2TP over IPSec (L2TP/IPSec) стандартно устанавливается в системах Windows Server 2003, Windows XP и Windows 2000 Server. Кроме того, Microsoft выпустила обновленную версию VPN-клиента L2TP/IPSec, который совместим с Windows NT, Windows Me и Windows 98.

Для взлома VPN-соединения по протоколу L2TP/IPSec злоумышленнику понадобится идентификатор пользователя и пароль, а также физический доступ к компьютеру пользователя, ибо протокол L2TP/IPSec требует, помимо прочего, предъявления действующего сертификата машины.

Поскольку протокол L2TP/IPSec наделен более мощными средствами защиты и обладает совместимостью почти со всеми клиентами Windows, я использую его в качестве протокола туннелирования. В протоколе IPSec, который описывается в RFC 2662 комитета IETF, для защиты коммуникационных средств используется стандарт Internet Key Exchange (IKE). Этот стандарт, описанный в RFC 2409, предусматривает применение UDP-порта 500, а также стандартов IPSec, IP Type 50 Encapsulating Security Payload (ESP) и IP Type 51 Authentication Header (AH).

В версии протокола IPSec, предложенной Microsoft, для установления доверительных отношений между конечными точками IPSec стандарт IKE предусматривает использование одного из трех методов аутентификации:

  • Kerberos (применяется для организации отношений между клиентами одного домена);
  • заранее переданные ключи;
  • сертификаты открытых/секретных ключей X.509 (применяются для расширения коммуникаций за пределы домена).

Стандарт IKE использует один из упомянутых выше методов аутентификации и один из двух режимов переговоров IKE — основной режим или быстрый режим — в двух фазах для установления между конечными точками IPSec ассоциаций системы безопасности (security associations, SA). В основном режиме IKE функционирует чуть медленнее, чем в быстром, зато в первом случае обеспечивается защита от атак прослушиванием, поскольку используется шифрование по стандартам Data Encryption Standard (DES) или Triple DES (3DES). Быстрый режим IKE (известный также как «агрессивный» режим) часто применяется в сетях с ограниченной пропускной способностью, но он менее защищен от взломов, поскольку не предусматривает шифрования данных о первоначальных ключах. В фазе 1 устанавливается защищенный аутентифицируемый канал связи; можно работать в любом режиме IKE, но я рекомендую всегда, когда только возможно, работать в основном режиме. После того как в фазе 1 устанавливается первоначальный защищенный канал, фаза 2 использует быстрый режим для согласования типов и размеров ключей, а также протоколов. Заботу о том, чтобы защищенные ассоциации SA регулярно обновлялись, как предписано политикой IPSec, берет на себя протокол IPSec. По умолчанию разработанная Microsoft версия IPSec обновляет SA основного режима раз в 8 часов, тогда как SA быстрого режима согласовываются ежечасно.

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

Для автоматического и транспарентного согласования обмена данными по протоколу IPSec клиенты Windows IPSec локально используют протокол Kerberos. Реализованный в протоколе Kerberos 5.0 центр распределения ключей KDC (Key Distribution Center) обслуживает каждый домен или серию объединенных доверительными отношениями доменов в одном лесу. Внутри «родных» доменов Windows 2000 Kerberos применяется по умолчанию, но VPN, как правило, создаются между доменами или в Internet, так что для аутентификации по протоколу IPSec нередко приходится использовать заранее переданные ключи или сертификаты X.509.

Заранее переданные ключи — это незашифрованные парольные фразы, которые вводятся с клавиатуры в каждой конечной точке линии связи по протоколу IPSec или распределяются с помощью политики IPSec. Такие фразы чаще всего используются для выполнения быстрого тестирования и для достижения совместимости с клиентами независимых поставщиков, не наделенными средствами для обработки сертификатов Kerberos X.509. В домене Windows 2000 эти парольные фразы могут быть прочитаны всеми, кто обладает действительной для данного домена учетной записью пользователя. Читателям, заинтересованным в получении более подробной информации об использовании заранее переданных секретов, рекомендую ознакомиться со статьями Microsoft «How to Configure a L2TP/IPSec Connection Using Pre-shared Key Authentication» (http://support.microsoft.com/?kbid=240262) и «HOW TO: Configure a Preshared Key for Use with Layer Two Tunneling Protocol Connections in Windows XP» (http://support.microsoft.com/ ?kbid=281555).

Аутентификация с использованием сертификатов

Для выполнения процедур аутентификации в виртуальной частной сети на базе пакета Microsoft Internet Security and Acceleration (ISA) Server 2000, функционирующей в Internet, необходимы сертификаты серверов X.509. Сертификат требуется для каждого сервера ISA Server и для каждого клиента. Стороны, участвующие в создании VPN, должны доверять главному центру сертификации Certificate Authority (CA) или нескольким таким центрам, выпускающим сертификаты.

Если все конечные точки принадлежат одному и тому же домену, следует рассмотреть возможность установки службы Microsoft Certificate Services и введения авторазвертывания; это позволит облегчить процедуру распределения сертификатов. Задача установки Certificate Services и генерации пригодных к использованию сертификатов уровня предприятия может оказаться сложной. Если участники располагаются в разных доменах, придется приобретать сертификаты (для) независимых компаний у основной организации, ведающей выдачей сертификатов и пользующейся доверием, например, у фирмы VeriSign. В этом случае устанавливать службы сертификатов и генерировать сертификаты не придется, что облегчает работу с внешними интерфейсами. Но с другой стороны, более трудоемкой становится процедура распределения сертификатов, ведь каждая машина запрашивает и устанавливает сертификат.

Сертификаты должны быть привязаны не к пользователям, а к компьютерам, поскольку в VPN аутентификацию проходят именно компьютеры. Для управления сертификатами используется оснастка Certificates консоли Microsoft Management Console (MMC). Более подробную информацию о сертификатах можно найти в статьях Microsoft «HOW TO: How to Install/Uninstall a Public Key Certificate Authority for Windows 2000» и «HOW TO: Install a Certificate for Use with IP Security» или в серии материалов Тома Шиндера «Configuring Gateway to Gateway L2TP/IPSec VPNs»; они размещены по адресу http://www.isaserver.org/thomas_shinder.

Протоколы и режимы IPSec

Существует два основных типа протоколов IP Security (IPSec): IP Type 50 Encapsulating Security Payload (ESP) и IP Type 51 Authentication Header (AH). ESP поддерживает аутентификацию и шифрование, AH обеспечивает только аутентификацию. Версия протокола IPSec, разработанная специалистами Microsoft, предусматривает шифрование на основе стандартов Data Encryption Standard (DES) или Triple DES (3DES).

По протоколу ESP шифруются заголовки пакетов TCP или UDP, а также собственно передаваемые данные. Протокол IPSec может модифицировать первоначальные заголовки IP или оставлять их без изменений; это зависит от режима протокола IPSec. Предусмотрено два режима функционирования данного протокола — транспортный и туннельный; в обоих случаях могут использоваться либо пакеты ESP, либо пакеты AH. При передаче в транспортном режиме обеспечивается защита пакетов на всем пути следования между двумя конечными точками — обычно это клиент и шлюз. Оригинальные IP-заголовки при этом остаются неизменными. При передаче в туннельном режиме IP-заголовки и собственно передаваемые данные инкапсулируются в новые пакеты IPSec, которые и передаются из одной конечной точки в другую (как правило, это два шлюзовых устройства IPSec). В любом режиме расположенные в конечных точках IPSec-устройства согласовывают детали аутентификации по протоколу Internet Key Exchange (IKE). При необходимости оба устройства шифруют данные согласно спецификации ESP. В соответствии со схемой взаимодействия протоколов Layer Two tunneling Protocol (L2TP) и IPSec содержательные данные — пакет L26P — помещаются в пакет IPSec. При этом механизмы шифрования и аутентификации компьютеров обеспечиваются протоколом IPSec, а протокол L2TP берет на себя аутентификацию пользователей и организацию взаимодействия с другими протоколами.

IPSec, встроенный в Windows Server 2003, Windows XP и Windows 2000, интегрирован со службой Active Directory (AD). Для реализации политик IPSec в системе Windows 2000 используются групповые и локальные политики. Задействовать протокол L2TP over IPSec (L2TP/IPSec) можно лишь в том случае, если все конечные точки партнеров по соединению смогли «договориться» об использовании того или иного протокола (AH или ESP), о режиме работы (транспортном или туннельном) и о методе аутентификации (Kerberos, заранее переданные ключи или сертификаты). В основной статье описан сценарий, в котором для шифрования VPN применяется протокол ESP, а при работе с различными VPN используются разные режимы: для сетей «клиент — шлюз» — транспортный режим и для сетей «шлюз — шлюз» — туннельный режим.

NAT Transversal

Задача протокола трансляции сетевых адресов (Network Address Translation, NAT) заключается в том, чтобы обеспечить функционирование частных сетей в условиях нехватки общедоступных IP-адресов. NAT-устройство берет указанный в пакете частный IP-адрес отправителя, преобразует его в собственный общедоступный IP-адрес (или в общедоступный IP-адрес, определяемый каким-либо иным образом) и отправляет пакет к месту назначения по каналам Internet. Преобразования фиксируются во внутренних таблицах NAT-устройств, что позволяет отслеживать, с какого именно внутреннего адреса тот или иной пакет был отправлен в глобальную сеть.

Служба NAT манипулирует оригинальным IP-заголовком пакета и тем самым отменяет аутентичность базовых пакетов Layer Two Tunneling Protocol over IP Security (L2TP/IPSec). До последнего времени в ситуациях, когда хотя бы на одной стороне соединения использовались средства NAT, применение протокола L2TP/IPSec было затруднено, а то и вовсе невозможно. Но вот недавно специалисты группы по проектированию Internet Engineering Task Force (IETF) разработали решение Nat Transversal (NAT-T), описанное в документе IETF Request for Comments (RFC) 3193. NAT-T использует UDP-порт 4500.

Если планируется осуществлять обмен данными между двумя конечными точками NAT с помощью протокола IPSec, необходимо убедиться, что имеющиеся программные и аппаратные средства VPN совместимы со стандартом NAT-T. Сервер Microsoft Internet Security and Acceleration (ISA) Server 2000 может функционировать в качестве VPN-шлюза NAT-T. Обновление Windows XP NAT-T было отозвано уже вскоре после выпуска — были обнаружены проблемы с совместимостью, однако корпорация Microsoft планирует позднее подготовить новую версию этого пакета. Новый Microsoft IPSec NAT-T можно загрузить для клиентов Windows 2000 Service Pack 3 (SP3) и Windows XP с помощью Windows Update.

Если сеть оснащена средствами NAT и возникла потребность создать VPN на базе ISA Server, но при этом невозможно задействовать решение NAT-T (такое решение предлагают не все поставщики), можно использовать вместо L2TP протокол PPTP: он совместим с ISA Server, NAT, а также почти со всеми клиентами и серверами. Желающим более подробно ознакомиться с VPN, использующими NAT или NAT-T, я рекомендую прочитать посвященную ISA Server и NAT-T статью Стефаана Пусееля, которая размещена по адресу http://www.isaserver.org/articles/ ipsec_passthrough.html.