1. 1 История tcpIP
Скачать 340.83 Kb.
|
Методы аутентификации PPTP наследует от протокола PPP: PAP, CHAP, MS-CHAP, EAP. Для шифрования кадров PPP используется протокол MPPE. Шифрование, также как и аутентификация, являются необязательными опциями. При PPTP-подключении к провайдеру шифрование кадров обычно не используется, т. к. за пределами соединения клиент-провайдер данные будут передаваться в открытом виде, а дополнительные операции по шифрованию будут снижать производительность. При создании PPTP-подключения к удаленной сети рекомендуется включать шифрование, т. к. по этому соединению могут передаваться конфиденциальные данные. Следует отметить, что шифруется не весь кадр, а полезная нагрузка PPP, т. е. IP-пакет, первоначально инкапсулированный в кадр PPP. Как уже упоминалось ранее, протокол MPPE имеет известные принципиальные уязвимости, позволяющие взломать его. Поэтому он обеспечивает слабую защиту и его не рекомендуется использовать для шифрования критически важных данных. 2.12 Протокол L2TPПротокол Layer Two Tunneling Protocol (L2TP) является комбинацией протоколов PPTP и Layer 2 Forwarding (L2F), технологии предложенной компанией Cisco Systems. IETF объединила в протоколе L2TP лучшие характеристики этих протоколов. В настоящее время существует две реализации протокола L2TP – L2TP версии 2 (RFC 2661) и L2TP версии 3 (RFC 3931). L2TP версии 2 (L2TPv2) определяет инкапсуляцию кадров PPP и их передачу через IP-сеть. L2TP версии 3 (L2TPv3) определяет инкапсуляцию кадров любых протоколов L2 (PPP, Ethernet, ATM и т. д.) и их передачу через IP-сеть. В данном разделе будет рассмотрена работа L2TPv2. Протокол L2TP расширяет возможности протокола PPP. Он позволяет конечным точкам соединения канального уровня и сессии PPP находиться на разных устройствах, соединенных между собой IP-сетью. Другими словами, когда пользователи подключаются к концентратору доступа (например, к IP DSLAM при использовании ADSL), сессия PPP не обязательно должна на нем заканчиваться. Она может закончиться на другом устройстве, подключение к которому выполняется через разделяемую сетевую инфраструктуру, такую как Интернет. L2TP может использоваться несколькими способами: для подключения к сети провайдера с целью получения доступа в Интернет и других услуг; для подключения удаленных пользователей к корпоративной сети; для соединения удаленных локальных сетей одной организации.
Протокол L2TP определяет создание туннелей между LAC и LNS и последующую инкапсуляцию туннелируемых РРР-сессий. На рисунке 2.68 показаны типичные случаи использования L2TP. В первом случае удаленная система (на рисунке — ADSL-маршрутизатор) инициирует PPP-соединение к LAC, роль которого исполняет BRAS, расположенный в сети провайдера. Затем LAC туннелирует PPP-соединение через Интернет к LNS, роль которого исполняет маршрутизатор или межсетевой экран, стоящий на границе корпоративной и публичной сети. Удаленная система получает IP-адреса и другие параметры из корпоративной сети с целью получения доступа к ее внутренним ресурсам. Аутентификация, авторизация и регистрация пользователя, подключившегося к корпоративной сети, выполняется ее администратором. LNS может поддерживать функцию NAT для трансляции частных IP-адресов в публичные. Описанный сценарий может использоваться, когда абонентские устройства удаленных пользователей/сетей не поддерживают функционал клиента L2TP. Провайдеры могут оказывать таким абонентам услуги по созданию VPN-сетей на основе своих магистральных сетей. При этом абонентское устройство пользователя может подключаться к провайдеру любым способом. В установлении туннеля к LNS может участвовать клиент LAC. Клиентом LAC может быть компьютер с установленным программным обеспечением L2TP, маршрутизатор или межсетевой экран с поддержкой функции клиента L2TP. Эту функцию поддерживают маршрутизаторы D-Link серий DIR-xxx, DSR-xxx, межсетевые экраны DFL-xxx. Оборудование с клиентом L2TP должно иметь подключение в Интернет. В этом случае создается виртуальное PPP-соединение, и клиент напрямую устанавливает туннель к LNS. Аутентификация, авторизация и регистрация пользователя, как и в предыдущем случае, будет выполняться администратором корпоративной сети. Некоторые провайдеры используют L2TP в качестве метода доступа. Клиент L2TP подключается к LNS сети провайдера. Все функции по назначению IP-адресов и аутентификации пользователей выполняет провайдер. LAC (клиент LAC) устанавливает L2TP-соединение с LNS на основе информации об имени пользователя, передаваемого в кадрах PPP. Он может создать множество туннелей к различным LNS для изоляции потоков данных. LNS может быть точкой завершения множества туннелей от различных LAC. Он выполняет аутентификацию подключаемых к нему LAC с помощью локальной базы данных или сервера аутентификации. Сообщения L2TP Протокол L2TP использует два типа сообщений: Управляющие сообщения. Они служат для установления, обслуживания и завершения туннелей и вызовов. Контрольные сообщения используют надежный управляющий канал внутри L2TP, чтобы гарантировать доставку. В IP-сетях управляющие сообщения L2TP инкапсулируются в дейтаграммы протокола UDP. Сообщения данных. Они используются для инкапсуляции кадров PPP, передаваемых через туннель. Сообщения данных передаются через ненадежный канал. Когда пакеты теряются, эти сообщения повторно не передаются. Кадры PPP инкапсулируются в пакет L2TP, а затем в пакет протокола, служащего в качестве транспорта. В IP-сетях пакеты L2TP инкапсулируются в дейтаграммы протокола UDP. Управляющие сообщения и сообщения данных используют одинаковый формат заголовка пакета L2TP. Заголовок содержит идентификатор туннеля (Tunnel ID) и идентификатор сессии (Session ID). Идентификатор туннеля определяет управляющее соединение. Туннелям L2TP присваиваются идентификаторы, которые имеют только локальное значение, т. е. один и тот же туннель на каждом из концов будет иметь различные значения Tunnel ID. В сообщениях L2TP в поле Tunnel ID указывается идентификатор получателя. Стороны выбирают Tunnel ID и обмениваются ими в процессе создания туннеля. Идентификатор сессии определяет сессию внутри туннеля. Сессиям L2TP присваиваются идентификаторы, имеющие только локальное значение. Одна и та же сессия на разных концах туннеля будет иметь разные идентификаторы. В сообщениях L2TP в поле Session ID указывается идентификатор получателя. Стороны выбирают Session ID и обмениваются ими в процессе создания сессии. Пакеты с одинаковым идентификатором туннеля, но разными идентификаторами сессии передаются через один туннель. В IP-сетях пакеты L2TP инкапсулируются в UDP-дейтаграммы. Хорошо известный номер порта UDP для L2TP — 1701. Этот номер порта используется в начальной стадии установки туннеля. Инициатор L2TP-туннеля выбирает доступный UDP-порт источника (который может отличаться от 1701) и отправляет пакет получателю на порт 1701. Получатель выбирает свободный порт в своей системе (который может отличаться от 1701) и отправляет ответ инициатору на его произвольно выбранный UDP-порт. После того, как адреса и порты инициатора и получателя установлены, они остаются постоянными в течение всего времени жизни канала. Так как получатель может выбрать произвольный порт источника (в отличие от порта назначения в пакете, инициирующем туннель, который должен быть 1701), это может вызвать проблемы, связанные с прохождением NAT. UDP-дейтаграмма, содержащая пакет L2TP помещается в IP-пакет, адресами источника и назначения которого являются IP-адреса LAC и LNS. Этот IP-пакет помещается в кадр канального уровня. Туннели и сессии Процесс туннелирования PPP-сессий с помощью протокола L2TP состоит из двух шагов: Установление управляющего соединения для туннеля. Установление сессии путем отправки запросов входящих и исходящих вызовов. Туннель и соответствующее управляющее соединение должны быть установлены до того как будут инициированы входящие и исходящие вызовы. Сессия L2TP должна быть установлена до того как туннель начнет передавать кадры PPP. Между парой LAC и LNS может быть установлено множество туннелей. Туннель состоит из управляющего соединения и одной или нескольких сессий. L2TP-сессия может быть установлена только после успешного создания туннеля. Сессия соответствует одному потоку данных PPP между LAC и LNS. Через туннель передаются и управляющие сообщения, и сообщения данных. Для проверки соединения LAC и LNS периодически отправляют друг другу сообщения Hello. Если от противоположной стороны в течение определенного периода времени не получен ответ, туннель разрывается. Установление управляющего соединения Управляющее соединение является начальным соединением, которое должно быть установлено до того, как между LAC и LNS будут установлены сессии. Установление управляющего соединения включает обеспечение безопасности идентификаций участников и т. п. Установление управляющего соединения начинается с обмена LAC и LNS управляющими сообщениями. Инициировать процесс может и LAC, и LNS. Инициатор установления туннеля отправляет сообщение SCCRQ)'>Start-Control-Connection-Request (SCCRQ). В ответ на него противоположная сторона отправляет сообщение Start-Control-Connection-Reply (SCCRP). Оно показывает, что сообщение SCCRQ принято и установка туннеля может продолжаться. В ответ на сообщение SCCRP отправляется сообщение Start-Control-Connection-Connected (SCCCN). Оно завершает процесс установления туннеля. Аутентификация туннеля В процессе установления управляющего соединения L2TP выполняет простую, не обязательную, СНАР-подобную аутентификацию туннеля. Если LAC или LNS хочет аутентифицировать другого участника, в сообщение SCCRQ или SCCRP включается атрибут Challenge AVP. Если получено сообщение SCCRQ или SCCRP с Challenge AVP, то Challenge Response AVP должен быть отправлен в следующем сообщении SCCRP или SCCRN соответственно. Если полученный ответ не соответствует ожидаемому, установление туннеля должно быть прекращено. Аутентификация выполняется с помощью разделяемого между LAC и LNS секрета. Установление L2TP-сессии После успешного установления управляющего соединения могут создаваться отдельные сессии. Каждая сессия соответствует одному потоку РРР между LAC и LNS. В отличие от установления управляющего соединения, установление сессии является направленным применительно к LAC и LNS. LAC запрашивает LNS принять сессию для входящего вызова (incoming call), LNS запрашивает LAC принять сессию для исходящего вызова (outgoing call). Для установления входящего вызова, который инициирует LAC, между ним и LNS выполняется обмен тремя сообщениями. Когда входящий вызов определен, LAC отправляет LNS сообщение Incoming-Call-Request (ICRQ). Оно используется для уведомления о том, что между LAC и LNS для этого вызова устанавливается сессия и передает LNS параметры сессии. В ответ на принятое сообщение ICRQ LNS отвечает сообщением Incoming-Call-Reply (ICRP). Оно позволяет LNS сообщить LAC параметры для данной сессии L2TP. Получив сообщение ICRP, LAC в ответ на него отправляет сообщение Incoming-Call-Connected (ICCN). Оно извещает LNS, что сообщение ICRP принято, вызов обслужен, и сессия L2TP должна перейти в стадию «Установлена». LNS может отправить сообщение ZLB ACK, если в его очереди больше нет сообщений к LAC. При установлении исходящего вызова, который инициирует LNS, он отправляет LAC сообщение Outgoing-Call-Request (OCRQ). Оно используется для уведомления о том, что между LNS и LAC для этого вызова должна быть установлена сессия и передает LAC параметры сессии L2TP и вызова, который должен быть сделан. LAC отвечает LNS сообщением Outgoing-Call-Reply (OCRP). Оно сообщает, что LAC пытается выполнить вызов и содержит определенные параметры, относящиеся к этой попытке вызова. После выполнения вызова, LAC вслед за сообщением OCRP отправляет LNS сообщение Outgoing-Call-Connected (OCCN). Оно сообщает, что запрошенный исходящий вызов успешно выполнен и предоставляет LNS информацию о параметрах, полученных после установления вызова. LNS может отправить сообщение ZLB ACK, если в его очереди больше нет сообщений к LAC. Установление PPP-сессии После завершения установления L2TP-сессии следующими шагами являются переговоры PPP, назначение удаленной системе внутренних IP-адресов и передача данных PPP. В процессе переговоров PPP выполняются протоколы LCP, NCP и необходимые опциональные протоколы, например, протоколы аутентификации. После завершения процесса переговоров начинается передача данных PPP. Кадры РРР передаются как вложенные данные. Они инкапсулируются в пакет L2TP и перенаправляются в соответствующий туннель. LNS получает L2TP-пакет, обрабатывает инкапсулированный кадр РРР как если бы он был получен на локальном РРР-интерфейсе. Напомним, что между парой LAC-LNS может существовать множество туннелей, а в каждом туннеле может быть несколько L2TP-сессий. Отправитель сообщения, связанного с конкретной сессией и туннелем, указывает в полях Session ID и Tunnel ID заголовка пакета L2TP идентификаторы получателя. Таким образом, между LNS и LAC могут передаваться кадры РРР разных туннелей и сессий. Нулевые значения идентификаторов Session ID и Tunnel ID используются только при установлении новой сессии. Когда туннель к LNS устанавливает клиент LAC, перед установкой туннеля должно быть создано виртуальное PPP-соединение. Если клиентом LAC является компьютер с установленным ПО L2TP, на абонентском маршрутизаторе, к которому он подключен, должна быть активизирована функция L2TP pass through (Проброс L2TP). Эта функция разрешает маршрутизатору пропускать L2TP-трафик, позволяя клиентам L2TP из локальной сети устанавливать соответствующие соединения с LNS. Завершение сессии, управляющего соединения и туннеля Завершение сессии, которое может быть инициировано и LAC, и LNS, состоит в отправке управляющего сообщения Call-Disconnect-Notify (CDN). После того, как последняя сессия завершена, управляющее соединение может быть удалено. Завершение управляющего соединения может инициироваться и LAC, и LNS. Оно состоит в отправке единственного управляющего сообщения Stop-Control-Connection-Notification (StopCCN). Получатель StopCCN отвечает сообщением ZLB ACK для подтверждения его получения и поддержания состояния управляющего соединения, если ZLB ACK будет потеряно. Туннель завершается, когда любая из сторон отправляет уведомление Stop-Control-Connection-Notification. Перед тем, как удалить управляющую информацию, связанную с туннелем, отправитель этого уведомления должен ждать подтверждения в течение определенного периода времени. Получатель данного уведомления должен отправить подтверждение и удалить соответствующую управляющую информацию. Обеспечение безопасности L2TP не обеспечивает механизмов безопасности, но позволяет дополнительно выполнять аутентификацию конечных точек при установлении туннеля. Характеристики этой аутентификации такие же, как у СНАР: она защищена от replay-атак и от атак, связанных с подделкой при установлении туннеля. Однако данный механизм не предполагает никакой аутентификации после того, как туннель установлен. Это приводит к тому, что злоумышленнику достаточно просто вставить вредоносные пакеты в передаваемый PPP-поток после того, как выполнена аутентификация конечных точек туннеля. Для выполнения аутентификации LAC и LNS должны разделять общий секрет. Так как используется единственный секрет, атрибуты AVP, аутентифицирующие туннель, содержат различные значения полей CHAP ID, используемые для вычисления хэш-функции, чтобы гарантировать защиту от replay-атак. Для обеспечения безопасности L2TP требуется, чтобы нижележащий транспортный протокол мог предоставлять сервисы шифрования, целостности и аутентификации для всего L2TP-трафика. Этот протокол оперирует со всем L2TP-пакетом и функционально не зависит от РРР и протокола, который доставляется по РРР. Таким образом, L2TP предоставляет сервисы конфиденциальности, целостности и аутентификации L2TP-пакетов между конечными точками туннеля (LAC и LNS). Для обеспечения шифрования, целостности и аутентификации на уровне пакетов L2TP интегрируется с протоколом IPSec (L2TP over IPSec). IPsec (IP Security) — набор протоколов, предназначенный для безопасной передачи пакетов IP через сеть общего пользования. Он использует протоколы безопасности Authentication Header (AH) и Encapsulating Security Payload (ESP). Все управляющие пакеты и пакеты данных L2TP, относящиеся к конкретному туннелю, являются для IPSec однородными UDP/IP пакетами и инкапсулируются в ESP или AH в зависимости от выбранного алгоритма защиты пакетов. Следует отметить, что в настройках L2TP-клиентов доступно шифрование MPPE. Это шифрование опционально и используется только для шифрования нагрузки, помещаемой в первоначальный кадр PPP. Сам пакет L2TP не шифруется. 2.13 Типы подключения к провайдерам В настоящее время существует множество типов подключения к провайдерам. Их можно разбить на три основные группы: Подключение по локальной сети IP over Ethernet (IPoE). VPN-подключение на основе протокола PPP. Комбинированное подключение или Dual Access. Подключение по локальной сети является самым простым способом доступа в Интернет. Пользователь подключается к сети провайдера посредством локальной сети Ethernet. Данный тип подключения дополнительно подразделяется на: Dynamic IP/IPv6 (DHCP) или «Динамический IP/IPv6». Этот тип подключения не требует ввода никаких настроек. Достаточно подключить абонентское устройство кабелем Ethernet к сети провайдера и активизировать на нем эту функцию. Все настройки (IP-адрес WAN-интерфейса, IP-адреса шлюза и DNS-серверов) будут получены от провайдера автоматически. Static IP/IPv6 или «Статический IP/IPv6». При конфигурировании абонентского устройства требуется ручной ввод IP-адреса WAN-интерфейса, маски подсети, IP-адресов шлюза и DNS-серверов согласно настройкам, предоставленным провайдером. Подключение посредством VPN включает следующие методы доступа, основанные на протоколе PPP: PPPoE, PPTP и L2TP. Данные методы доступа требуют настройки на абонентском устройстве имени пользователя и пароля, предоставленных провайдером. Третий тип подключения является комбинированным. Он используется только в России, и суть его сводится к комбинированию подключения по локальной сети (статический или динамический IP) с VPN-подключением (PPPoE, PPTP или L2TP) для предоставления двойного доступа (Dual Access), т. е. одновременного доступа в Интернет и к внутренним ресурсам провайдера (IPTV, доступ к игровым и файлообменным серверам провайдера и т. д). Этот тип подключения является самым сложным. На WAN-интерфейсе абонентского маршрутизатора создаются два виртуальных соединения (интерфейса). Первое соединение (PPPoE, PPTP или L2TP) используется для авторизации пользователей и предоставления им доступа в Интернет, второе виртуальное соединение — для получения доступа к ресурсам провайдера. В маршрутизаторах D-Link используются следующие комбинации подключений: PPPoE + Динамический IP; PPPoE + Статический IP; PPTP + Динамический IP; PPTP + Статический IP; L2TP + Динамический IP; L2TP + Статический IP. Настройка функции Dual Access состоит из настройки соединения PPPoE, PPTP или L2TP для доступа в Интернет и подключения к локальной сети провайдера. При создании соединения PPPoE, PPTP или L2TP требуется указать имя пользователя и пароль, предоставленные провайдером. Если второе соединение типа «Статический IP», провайдер предоставляет информацию об IP-адресе, маске подсети, IP-адресах шлюза и DNS-серверов, которую требуется ввести в настройках маршрутизатора. Если второе соединение типа «Динамический IP», то все необходимые данные автоматически получаются из сети провайдера.
|