div.main {margin-left: 20pt; margin-right: 20pt} Выбираем протокол VPN
Райан
Норман Windows 2000 Magazine
Windows NT 4.0 может выступать в роли простого VPN-сервера с
ограниченными возможностями, который поддерживает только протокол PPTP
(Virtual Private Network, VPN — виртуальная частная сеть; Point-to-Point
Tunneling Protocol, PPTP, Layer 2 Tunneling Protocol, L2TP). Windows 2000
обеспечивает не только более высокую надежность и новые возможности
масштабирования и управления, но и поддержку двух VPN-протоколов — PPTP и
L2TP. Чтобы решить, какой из протоколов предпочтительней использовать при
установке VPN-сервера, следует рассмотреть их способы аутентификации и
шифрования. L2TP имеет больше функциональных возможностей, чем PPTP.
Напомню, что с середины 90-х гг. две компании развивали свои собственные
VPN-протоколы: Microsoft PPTP и Cisco L2F. В дальнейшем Microsoft и Cisco
объединили PPTP и L2F в общий протокол L2TP, ставший затем открытым
стандартом. Чтобы успешно применять L2TP, следует познакомиться с его
расширенными возможностями поближе. Знание протоколов PPTP и L2TP поможет
выбрать оптимальную конфигурацию для того или иного случая.
VPN создает защищенный канал связи через Internet между компьютером
удаленного пользователя и частной сетью его организации. Если представить
Internet в виде трубы, то VPN создает внутри нее трубу меньшего диаметра,
доступную только для пользователей организации. VPN обеспечивает
пользователю защищенный доступ к его частной сети практически через любой
тип соединения с Internet. Наличие IP-сети между клиентом и сервером VPN
является единственным требованием для реализации Microsoft VPN.
Достаточно, чтобы и клиент и сервер были подключены к Internet.
Технология VPN позволяет компаниям избежать расходов на организацию или
аренду прямых соединений: например, каналов E1, ISDN, frame relay, а также
на содержание собственных модемных пулов. Взамен всего этого можно
использовать имеющийся у компании канал в Internet. Лишь небольшие
административные затраты требуются для соединения расположенных в любых
точках планеты офисов компании при помощи защищенного канала. Организация
виртуальных частных сетей является сегодня одним из самых актуальных
направлений в области сетевых технологий. Специалисты Microsoft проделали
большую работу, чтобы облегчить реализацию виртуальных частных сетей в
Windows 2000.
В чем сходство и различие между PPTP и L2TP? Если рассмотреть структуру
пакетов, станет очевидно, что и PPTP и L2TP основываются на протоколе
Point-to-Point Protocol (PPP) и являются его расширениями. Данные верхних
уровней модели OSI сначала инкапсулируются в PPP, а затем в PPTP или L2TP
для туннельной передачи через сети общего доступа.
В Таблице 1 показаны протоколы и соответствующие им уровни модели OSI.
PPP, расположенный на канальном уровне, первоначально был разработан для
инкапсуляции данных и их доставки по соединениям типа точка-точка. Если
организация использует какой-либо тип соединения точка-точка, например
линию E1, то, скорее всего, интерфейсы маршрутизатора применяют
инкапсуляцию PPP. Этот же протокол служит для организации асинхронных
(например, коммутируемых) соединений. В настройках коммутируемого доступа
удаленных систем Windows 2000 или Windows 9x обычно указывается
подключение к серверу по PPP.
PPP обладает несколькими преимуществами по сравнению со своим старшим
собратом Serial Line Internet Protocol (SLIP). В качестве примера можно
привести аутентификацию с использованием CHAP и сжатие данных. В набор PPP
входят протокол Link Control Protocol (LCP), ответственный за
конфигурацию, установку, работу и завершение соединения точка-точка, и
протокол Network Control Protocol (NCP), способный инкапсулировать в PPP
протоколы сетевого уровня для транспортировки через соединение
точка-точка. Это позволяет одновременно передавать пакеты Novell IPX и
Microsoft IP по одному соединению PPP.
Безусловно, PPP является важной частью PPTP и L2TP. Благодаря PPP стало
возможным использование PPTP и L2TP для выполнения удаленных приложений,
зависящих от немаршрутизируемых протоколов. На физическом и канальном
уровнях PPTP и L2TP идентичны, но на этом их сходство заканчивается, и
начинаются различия.
Для доставки конфиденциальных данных из одной точки в другую через сети
общего пользования сначала производится инкапсуляция данных с помощью
протокола PPP, затем протоколы PPTP и L2TP выполняют шифрование данных и
собственную инкапсуляцию.
В соответствии с моделью OSI протоколы инкапсулируют блоки данных
protocol data unit (PDU) по принципу матрешки: TCP (транспортный уровень)
инкапсулируется протоколом IP (сетевой уровень), который затем
инкапсулируется PPP (на канальном уровне).
После того как туннельный протокол доставляет пакеты из начальной точки
туннеля в конечную, выполняется деинкапсуляция.
PPTP инкапсулирует пакеты IP для передачи по IP-сети. Клиенты PPTP
используют порт назначения 1723 для создания управляющего туннелем
соединения. Этот процесс происходит на транспортном уровне модели OSI.
После создания туннеля компьютер-клиент и сервер начинают обмен служебными
пакетами.
В дополнение к управляющему соединению PPTP, обеспечивающему
работоспособность канала, создается соединение для пересылки по туннелю
данных. Инкапсуляция данных перед пересылкой через туннель происходит
несколько иначе, чем при обычной передаче (например, при работе telnet).
Инкапсуляция данных перед отправкой в туннель включает два этапа. Сначала
создается информационная часть PPP. Данные проходят сверху вниз, от
прикладного уровня OSI до канального. Затем полученные данные отправляются
вверх по модели OSI и инкапсулируются протоколами верхних уровней.
Таким образом, во время второго прохода данные достигают транспортного
уровня. Однако информация не может быть отправлена по назначению, так как
за это отвечает канальный уровень OSI. Поэтому PPTP шифрует поле полезной
нагрузки пакета и берет на себя функции второго уровня, обычно
принадлежащие PPP, т. е. добавляет к PPTP-пакету PPP-заголовок (header) и
окончание (trailer). На этом создание кадра канального уровня
заканчивается. Далее, PPTP инкапсулирует PPP-кадр в пакет Generic Routing
Encapsulation (GRE), который принадлежит сетевому уровню. GRE
инкапсулирует протоколы сетевого уровня, например IPX, AppleTalk, DECnet,
чтобы обеспечить возможность их передачи по IP-сетям. Однако GRE не имеет
возможности устанавливать сессии и обеспечивать защиту данных от
злоумышленников. Для этого используется способность PPTP создавать
соединение для управления туннелем. Применение GRE в качестве метода
инкапсуляции ограничивает поле действия PPTP только сетями IP.
После того как кадр PPP был инкапсулирован в кадр с заголовком GRE,
выполняется инкапсуляция в кадр с IP-заголовком. IP-заголовок содержит
адреса отправителя и получателя пакета. В заключение PPTP добавляет PPP
заголовок и окончание. На Рисунке 1 показана структура данных для
пересылки по туннелю PPTP.
|
Рисунок 1. Структура данных для пересылки по
туннелю PPTP. |
Система-отправитель посылает данные через туннель. Система-получатель
удаляет все служебные заголовки, оставляя только данные PPP.
L2TP появился в результате объединения протоколов PPTP и Layer 2
Forwarding (L2F). PPTP позволяет передавать через туннель пакеты PPP, а
L2F-пакеты SLIP и PPP. Во избежание путаницы и проблем взаимодействия
систем на рынке телекоммуникаций, комитет Internet Engineering Task Force
(IETF) рекомендовал компании Cisco Systems объединить PPTP и L2F. По
общему мнению протокол L2TP вобрал в себя лучшие черты PPTP и L2F.
Главное достоинство L2TP в том, что этот протокол позволяет создавать
туннель не только в сетях IP, но и в таких, как ATM, X.25 и frame relay. К
сожалению, реализация L2TP в Windows 2000 поддерживает только IP.
L2TP применяет в качестве транспорта протокол UDP и использует
одинаковый формат сообщений как для управления туннелем, так и для
пересылки данных. L2TP в реализации Microsoft использует в качестве
контрольных сообщений пакеты UDP, содержащие шифрованные пакеты PPP.
Надежность доставки гарантирует контроль последовательности пакетов.
Сообщения L2TP имеют поля Next-Received и Next-Sent. Эти поля выполняют те
же функции, что и поля Acknowledgement Number и Sequence Number в
протоколе TCP.
Как и в случае с PPTP, L2TP начинает сборку пакета для передачи в
туннель с того, что к полю информационных данных PPP добавляется сначала
заголовок PPP, затем заголовок L2TP. Полученный таким образом пакет
инкапсулируется UDP. Протокол L2TP использует UDP-порт 1701 в качестве
порта отправителя и получателя. В зависимости от выбранного типа политики
безопасности IPSec, L2TP может шифровать UDP-сообщения и добавлять к ним
заголовок и окончание Encapsulating Security Payload (ESP), а также
окончание IPSec Authentication. Затем производится инкапсуляция в IP.
Добавляется IP-заголовок, содержащий адреса отправителя и получателя. В
завершение L2TP выполняет вторую PPP-инкапсуляцию для подготовки данных к
передаче. На Pисунке 2 показана структура данных для пересылки по туннелю
L2TP.
Компьютер-получатель принимает данные, обрабатывает заголовок и
окончание PPP, убирает заголовок IP. При помощи IPSec Authentication
проводится аутентификация информационного поля IP, а ESP-заголовок IPSec
помогает расшифровать пакет.
Далее компьютер обрабатывает заголовок UDP и использует заголовок L2TP
для идентификации туннеля. Пакет PPP теперь содержит только полезные
данные, которые обрабатываются или пересылаются указанному получателю.
Обеспечение безопасности является основной функцией VPN. Все данные от
компьютеров-клиентов проходят через Internet к VPN-серверу. Такой сервер
может находиться на большом расстоянии от клиентского компьютера, и данные
на пути к сети организации проходят через оборудование множества
провайдеров. Как убедиться, что данные не были прочитаны или изменены? Для
этого применяются различные методы аутентификации и шифрования.
Для аутентификации пользователей PPTP может задействовать любой из
протоколов, применяемых для PPP, включая Extensible Authentication
Protocol (EAP), Microsoft Challenge Handshake Authentication Protocol
(MSCHAP) версии 1 и 2, Challenge Handshake Authentication Protocol (CHAP),
Shiva Password Authentication Protocol (SPAP) и Password Authentication
Protocol (PAP). Лучшими считаются протоколы MSCHAP версии 2 и Transport
Layer Security (EAP-TLS), поскольку они обеспечивают взаимную
аутентификацию, т. е. VPN-сервер и клиент идентифицируют друг друга. Во
всех остальных протоколах только сервер проводит аутентификацию
клиентов.
Шифрование с помощью PPTP гарантирует, что никто не сможет получить
доступ к данным при пересылке через Internet. Протокол шифрования MPPE
(Microsoft Point-to-Point Encryption) совместим только с MSCHAP (версии 1
и 2) и EAP-TLS и умеет автоматически выбирать длину ключа шифрования при
согласовании параметров между клиентом и сервером. MPPE поддерживает
работу с ключами длиной 40, 56 или 128 бит. Старые операционные системы
Windows поддерживают шифрование с длиной ключа только 40 бит, поэтому в
смешанной среде Windows следует выбирать минимальную длину ключа.
PPTP изменяет значение ключа шифрации после каждого принятого пакета.
Протокол MMPE разрабатывался для каналов связи точка-точка, в которых
пакеты передаются последовательно, и потеря данных очень мала. В этой
ситуации значение ключа для очередного пакета зависит от результатов
дешифрации предыдущего пакета. При построении виртуальных сетей через сети
общего доступа эти условия соблюдать невозможно, так как пакеты данных
часто приходят к получателю не в той последовательности, в какой были
отправлены. Поэтому PPTP использует для изменения ключа шифрования
порядковые номера пакетов. Это позволяет выполнять дешифрацию независимо
от предыдущих принятых пакетов.
Хотя PPTP обеспечивает достаточную степень безопасности, но все же L2TP
поверх IPSec надежнее. L2TP поверх IPSec обеспечивает аутентификацию на
уровнях «пользователь» и «компьютер», а также выполняет аутентификацию и
шифрование данных.
На первом этапе аутентификации клиентов и серверов VPN, L2TP поверх
IPSec использует локальные сертификаты, полученные от службы сертификации.
Клиент и сервер обмениваются сертификатами и создают защищенное соединение
ESP SA (security association).
После того как L2TP (поверх IPSec) завершает процесс аутентификации
компьютера, выполняется аутентификация на уровне пользователя. Для
аутентификации можно задействовать любой протокол, даже PAP, передающий
имя пользователя и пароль в открытом виде. Это вполне безопасно, так как
L2TP поверх IPSec шифрует всю сессию. Однако проведение аутентификации
пользователя при помощи MSCHAP, применяющего различные ключи шифрования
для аутентификации компьютера и пользователя, может усилить защиту.
L2TP поверх IPSec обеспечивает более высокую степень защиты данных, чем
PPTP, так как использует алгоритм шифрования Triple Data Encryption
Standard (3DES). 3DES был разработан для защиты особо секретных данных, и
его применение разрешено только в Северной Америке. Если столь высокий
уровень защиты не нужен, можно использовать алгоритм DES с одним
56-разрядным ключом, что позволяет снизить расходы на шифрование (3DES
использует три 56-разрядных ключа).
L2TP поверх IPSec выполняет шифрование данных и аутентификацию на
уровнях компьютера и пользователя. Кроме того, при помощи алгоритма Hash
Message Authentication Code (HMAC) Message Digest 5 (MD5) L2TP
обеспечивает аутентификацию данных. Для аутентификации данных этот
алгоритм создает хеш длиной 128 разрядов.
Функциональные возможности PPTP и L2TP различны. L2TP может
использоваться не только в IP-сетях, служебные сообщения для создания
туннеля и пересылки по нему данных используют одинаковый формат и
протоколы. PPTP может применяться только в IP-сетях, и ему необходимо
отдельное соединение TCP для создания и использования туннеля. L2TP поверх
IPSec предлагает больше уровней безопасности, чем PPTP, и может
гарантировать почти 100-процентную безопасность важных для организации
данных.
Особенности L2TP делают его очень перспективным протоколом для
построения виртуальных сетей. Очень многие IT-специалисты уже сделали
выбор в пользу L2TP поверх IPSec. Разработчики Microsoft упростили
установку L2TP до нескольких щелчков мышью, так почему бы не попробовать
L2TP, тем более что вы уже заплатили за это при покупке лицензии на
Windows 2000?
Райан Норман – IT-менеджер в компании Core-change из Бостона.
Имеет сертификаты MCSE+I, CCNA, и CCDA. С ним можно связаться по адресу:
ryan.norman@corechange.com. |