PPTP (Point-to-Point Tunneling Protocol)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 12:27, 28 июня 2016.

PPTP (Point-to-Point Tunneling Protocol) – это туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой сети.


Описание

Протокол PPTP поддерживает шифрование и инкапсуляцию многопротокольного трафика с использованием IP-заголовка для отправки по IP-сети или общедоступной IP-сети, например по Интернету. Протокол PPTP может использоваться для подключений удаленного доступа и VPN-подключений типа «сеть-сеть». При использовании Интернета в качестве общедоступной сети для VPN-подключений PPTP-сервер представляет собой VPN-сервер с поддержкой PPTP, один интерфейс которого находится в Интернете, а второй - в интрасети.

Протокол PPTP инкапсулирует PPP-кадры в IP-датаграммы для передачи по сети. Протокол PPTP использует TCP-соединение для управления туннелем и измененную версию протокола GRE с целью инкапсуляции PPP-кадров для туннелированных данных. Полезные данные инкапсулированных PPP-кадров могут быть шифрованными, сжатыми или и теми, и другими одновременно.

Кадр PPP (IP-, IPX- или Appletalk-датаграмма) заключается в оболочку с заголовком GRE (Generic Routing Encapsulation) и заголовком IP. В заголовке IP-адреса источника и приемника соответствуют VPN-клиенту и VPN-серверу.

Заголовок GRE состоит из 2 частей по 2 байта: 1-2 байты — флаги:

  1. ChecksumPresent – бит 0, если равен 1, то в заголовке GRE присутствует необязательное поле контрольной суммы – Checksumfield;
  2. Key Present – бит 2, если равен 1, то в заголовке GRE присутствует необязательное поле, содержащее ключ – Key field;
  3. Sequence Number Present – бит 3, если равен 1, то в заголовке GRE присутствует необязательное поле порядкового номера – SequenceNumberfield;
  4. Version Number – биты 13–15. Данное поле обозначает версию реализации GRE. Значение 0 обычно используется для GRE. Point-To-Point протокол (PP2P) использует версию 1.

3-4 байты, в свою очередь, содержат тип протокола (ethertype) инкапсулированного пакета.

PPTP является наиболее часто используемым протоколом для построения VPN многие годы. Он опирается на различные методы аутентификации для обеспечения безопасности (как правило, MS-CHAP v.2). Является стандартным протокол почти во всех операционных системах и устройствах, поддерживающих VPN. Его главное преимущество заключается в том, что он использует меньше вычислительных ресурсов, следовательно обладает высокой скоростью работы.

Обычно используется со 128-битным шифрованием, в следующие несколько лет после включения этого протокола в состав Windows 95 OSR2 в 1999 году были найдены ряд уязвимостей. Наиболее серьезной из которых явилась уязвимость протокола аутентификации MS-CHAP v.2. Используя эту уязвимость, PPTP был взломан в течение 2 дней. Microsoft сама рекомендовала к использованию в качестве VPN проколов L2TP или SSTP.

Реализация

Cisco первой реализовала PPTP и позже лицензировала эту технологию корпорации Microsoft.

PPTP удалось добиться популярности благодаря тому что это первый VPN протокол, поддерживаемый корпорацией Microsoft. Все версии Microsoft Windows, начиная с Windows 95 OSR2, включают в свой состав PPTP-клиент, однако существует ограничение на два одновременных исходящих соединения. А сервис удалённого доступа для Microsoft Windows включает в себя PPTP сервер.

До недавнего времени в Linux-дистрибутивах отсутствовала полная поддержка PPTP из-за опасения патентных претензий по поводу протокола MPPE. Впервые полная поддержка MPPE появилась в Linux 2.6.13. Официально поддержка PPTP была начата с версии ядра Linux 2.6.14.

Операционная система FreeBSD поддерживает PPTP протокол, используя в качестве сервера PPTP порт mpd (/usr/ports/net/mpd), используя подсистему netgraph. В качестве клиента PPTP в системе FreeBSD может выступать либо порт pptpclient (/usr/ports/net/pptpclient), либо порт mpd, работающий в режиме клиента.

Mac OS X поставляется со встроенным PPTP клиентом. Cisco и Efficient Networks продают реализации PPTP клиента для более старых версий Mac OS. КПК Palm, имеющие поддержку Wi-Fi, поставляются с PPTP клиентом Mergic.

Настройка (отдельные шаги)

Настройка VPN-сервера

VPN-серверы можно настроить с помощью мастера настройки сервера маршрутизации и удаленного доступа. Этот мастер позволяет настроить следующие параметры:

  1. базовый брандмауэр на общем интерфейсе;
  2. метод адресации клиентов удаленного доступа VPN-сервером (либо с помощью адресов, получаемых VPN-сервером от DHCP-сервера, либо с помощью адресов из указанного диапазона адресов, настроенного вручную на VPN-сервере);
  3. пересылку сообщений авторизации и проверки подлинности на сервер службы RADIUS (Remote Authentication Dial-In User Service — служба проверки подлинности удаленных пользователей), т. е. настройку VPN-сервера как клиента RADIUS.

После выполнения этого мастера автоматически настраиваются следующие параметры маршрутизации и удаленного доступа:

  1. сетевые интерфейсы;
  2. порты PPTP и L2TP (пять или 128 для каждого протокола, в зависимости от параметров, выбранных в мастере);
  3. поддержка многоадресной рассылки на основе протокола IGMP (Internet Group Management Protocol, протокол управления группами Интернета);
  4. IP-маршрутизация;
  5. установка агента ретранслятора DHCP.
Настройка политики удаленного доступа

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

  1. В поле Имя политики введите имя политики, например VPN-доступ.
  2. Для атрибута NAS-Port-Type выберите тип Virtual (VPN), а для атрибутаTunnel-Type — тип Point-to-Point Tunneling Protocol.
  3. Установите переключатель в положение Предоставить право удаленного доступа.
  4. В параметрах профиля выберите необходимые параметры проверки подлинности и шифрования.

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

Чтобы различать пользователей подключений удаленного доступа к сети и пользователей виртуальных частных сетей удаленного доступа, выполните следующие действия. Создайте группу Active Directory, члены которой могут создавать виртуальные частные подключения к VPN-серверу, например, группу «Пользователи_VPN». Добавьте в эту новую группу Active Directory соответствующие учетные записи пользователей.

Создайте новую политику удаленного доступа и настройте ее свойства следующим образом.

  1. Введите в поле Имя политики имя новой политики, например Разрешить VPN-доступ членам группы Пользователи_VPN.
  2. Для атрибута Windows-Groups выберите группу, например Пользователи_VPN, для NAS-Port-Type выберите тип Virtual (VPN), а для Tunnel-Type — тип Point-to-Point Tunneling Protocol.
  3. Установите переключатель в положение Предоставить право удаленного доступа.
  4. Разместите политики удаленного доступа, используемые по умолчанию, после новой политики.

Установленные по умолчанию параметры шифрования позволяют использовать все уровни шифрования, в том числе и отсутствие шифрования. Чтобы потребовать использования шифрования, снимите флажок Без шифрования и выберите нужные уровни на вкладке Шифрование в окне параметров профиля политики удаленного доступа.

Дополнительно

  1. Пример настройки протокола на роутере
  2. Установка - MSDN
  3. Netwild