Виды VPN-соединений (PPTP, L2TP, IPSec, SSL). PPTP соединение – что это такое и безопасно ли его использовать

Pptp-порты — это протоколы (набор правил связи), которые позволяют корпорациям расширять собственную корпоративную сеть через частные каналы и общедоступный интернет. Благодаря данному методу корпорация использует Глобальную сеть в качестве одной большой локальной сети. Компания не нуждается в аренде собственных линий для широкополосной связи, но может надежно использовать общедоступные сети. Такой вид соединения называется

Pptp порты — что это?

Благодаря PPTP, который является расширением интернет-протокола «точка-точка» (PPP), любой пользователь ПК с поддержкой PPP-клиентов может использовать независимого поставщика услуг (ISP) для безопасного подключения к серверу в другом месте (то есть через удаленный доступ) . Pptp-порты являются одними из наиболее вероятных предложений в качестве основы для нового стандарта Internet Engineering Task Force (IETF).

Описание технологии

Спецификация впервые была представлена публике в июле 1999 года и разработана дочерней компанией Microsoft Ascend Communications (сегодня часть Alcatel-Lucent). PPTP не была принята и стандартизирована Целевой группой Internet Engineering. Протокол создается путем связи с одноранговым узлом по PPTP порту 1723. Это TCP-соединение затем применяется с целью инициирования и управления одноранговым узлом.

Формат пакета PPTP GRE не является стандартным, в том числе новое поле номера подтверждения, заменяющее типичное поле маршрутизации. Однако, как и в обычном соединении GRE, эти модифицированные GRE-пакеты напрямую инкапсулируются в IP-пакеты и рассматриваются как IP-номер 47 протокола. GRE-туннель используется для переноса PPP-пакетов. В реализации Microsoft туннелированный трафик PPP может быть аутентифицирован с помощью PAP, CHAP, MS-CHAP v1 / v2.

Pptp: какие порты наиболее безопасны?

PPTP был предметом многих анализов безопасности, и в протоколе были выявлены серьезные уязвимости безопасности, которые относятся к базовым протоколам проверки подлинности PPP, разработке протокола MPPE, а также к интеграции между аутентификацией MPPE и PPP для установления сеанса.

PPTP имеет ряд известных уязвимостей. Он более не считается безопасным, так как взломать первоначальную аутентификацию MS-CHAPv2 можно через взлом одного 56-битного ключа DES. Он подвержен атакам MITM, где злоумышленник может выполнить атаку в автономном режиме, чтобы получить ключ RC4 и расшифровать трафик. PPTP также уязвим для атак с переворачиванием бит. Злоумышленник может изменять пакеты PPTP без возможности обнаружения. OpenVPN с AES-шифрованием - гораздо более безопасный выбор.

Обзор уязвимостей набор правил связи

MS-CHAP-v1 принципиально небезопасен. Существуют известные инструменты для тривиального извлечения хэшей NT Password из захваченного обмена MSCHAP-v1.
MS-CHAP-v1 MPPE использует один и тот же ключ сеанса RC4 для шифрования в обоих направлениях потока связи. Здесь может быть проведет криптоанализ стандартными способами посредством XORing потоков из каждого направления вместе.
MS-CHAP-v2 уязвим для атак на словарях для захваченных пакетов ответа на вызов. Существуют базовые инструменты для быстрого выполнения этого процесса.

В 2012 году была также продемонстрирована онлайн-служба, которая способна дешифровать кодовую фразу MS-CHAP-v2 MD4 за 23 часа. MPPE использует шифр потока RC4. Нет способа аутентификации потока зашифрованного текста, и поэтому он оказывается уязвимым для атаки с переворачиванием бит. Злоумышленник может изменять поток в пути и настраивать отдельные биты для изменения выходного потока без возможности обнаружения. Эти битовые флипсы могут быть обнаружены самими протоколами посредством контрольных сумм или других средств.

EAP-TLS рассматривается как лучший выбор аутентификации для PPTP. Однако для этого требуется реализация инфраструктуры открытого ключа для сертификатов клиентов и серверов. Таким образом, он не может быть жизнеспособным вариантом аутентификации для некоторых установок удаленного доступа.

, и как его можно использовать? На сегодняшний день немногие современные пользователи знает что это.

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

А узнают о его существовании просто случайно, не задаваясь даже целью понять что это, и чем оно так полезно.

Введение в теорию PPTP

Название подключения или соединения PPTP происходит от имени протокола, на основе какового и построено такое подключение.

Полная расшифровка его англоязычной аббревиатуры звучит как point to point tunneling protocol. Что, по сути, означает туннельный протокол от точки к точке.

Точками в этом случае обозначены пара абонентов, которые связываются путем передачи данных зашифрованных в пакеты и передающихся посредством незащищенных сетей, построенных по принципам TCP/IP.

Для кого-то такое определение покажется чересчур сложным, но это всего лишь вершина айсберга.

Если рассматривать соединение PPTP более подробно, окажется, что оно позволяет преобразовывать кадры PPP в IP-пакеты привычного типа.

А именно они передаются по каналу связи, например, по интернету или другой проводной, а также беспроводной сети.

Важно, что PPTP сложно назвать идеальным, и в ряде случаев, этот способ проигрывает в сравнении с другими моделями типа IPSec, поскольку имеет меньший уровень безопасности.

Впрочем, это не мешает его использовать повсюду и достаточно широко. От такого не стоит отказываться, и сейчас рассмотрим почему.

рис. 1 – Схематическое изображение PPTP соединения

Что дает соединение PPTP

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

В частности, его можно с успехом использовать для осуществления дальних звонков с ощутимой экономией.

Происходит это потому как этот протокол не требует прямого соединения между двумя абонентами. Оно производится по защищенной линии в интернете, которая и называется туннелем.

Что касается туннеля, то он используется исключительно в роли посредника.

В то же время PPTP с успехом применяется при формировании клиент-серверных соединений. В этом случае соединение происходит несколько иначе.

Абонент, т. е. пользователь подключает свой терминал – рабочее устройство к серверу посредством того же защищенного канала.

Базовые правила подключения PPTP

Но прежде чем начать работу с подключением PPTP, его следует настроить и соблюсти несколько важных условий.

К особенностям настройки используемого туннелирования стоит отнести следующее:

  • порт TCP № 1723;
  • порт IP GRE №

При этом чтобы данные настройки работали соответствующим образом параметры встроенного брандмауэра (или сетевого экрана) не должны ограничивать поток IP-пакетов.

Их отправка и прием должна быть свободной.

Впрочем, даже если эти правила будут соблюдены при настройке подключения локально, не факт, что PPTP будет работать корректно.

Важно: Для правильной работы протокола провайдер должен обеспечить полную свободу пересылки туннелированных данных.

Детализация процесса подключения

Упомянутые выше точки соединяются посредством PPP-сессии, которая формируется на платформе протокола GRE.

Его аббревиатура расшифровывается как Generic Routing Encapsulation.

За его менеджмент и инициализацию несет ответственность второе подключение порта TCP.

Информация в форме пакета IPX который передается от точки к точке называется полезной нагрузкой, а дополняется он управляющей информацией.

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

Постобработку производятся встроенными средствами системы соответственно указанному протоколу.

Стоит отметить, что взлом данных возможен только в процессе получения. В остальном безопасность обеспечивается за счет туннеля - защитного коридорах.

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

рис. 4 – Уязвимые места PPTP

Обеспечение защиты соединения

Как отмечалось выше, данные передаются в форме шифрованного пакета.

Для его шифрования используются специальные средства, полный список которых можно просмотреть в настройках подключений.

Мы же выделим те которые характеризуются высокой степенью защищенности, в частности это:

  • MSCHAP-v1;
  • MSCHAP-v2;
  • EAP-TLS;
  • MPPE.

Чтобы обеспечить повышенный уровень защиты можно дополнительно использовать дозвоны - звонки ответа, реализованные программным путем.

Они позволяют удостовериться в том, был ли пакет данных передан полностью, и был ли поврежден в процессе пересылки.

А пока рассмотрим, чем выделяются представленные выше варианты.

Стоит отметить, что MSCHAP-v1 не отличается своей надежностью.

Для извлечения парольных хешей из него можно использовать специальные утилиты перехваченного обмена.

MSCHAP-v2 в этом смысле отличается от предшественника, но является уязвимым к словарным атакам на перехваченные пакеты данных, для чего также используются специальные программы, скорость обработки данных в которых может составить всего сутки на расшифровку.

Криптоаналитики могут расшифровать данные и из MPPE, который базируется на использовании потока RC4.

К примеру, расшифровать его можно используя метод подмены битов.

Впрочем, при желании такую уязвимость можно обнаружить, используя соответствующие методы, которые считают контрольные суммы.

Таким образом, становится понятно, что установленную на PPTP защиту можно обойти. И именно поэтому приходится использовать дополнительные средства безопасности.

рис. 5 – Упрощенная схема защищенного PPTP канала

Вам это может быть интересно:

Пример настройки параметров PPTP в OS MS WINDOWS 7

Чтобы понять все тонкости PPTP-соединения стоит попытаться самостоятельно провести настройки такого подключения.

Мы рассмотрим, как этот процесс происходит в системе , в частности, в популярной седьмой ее версии. Сделать это несложно следуя нашим рекомендациям.

Изначально потребуется запустить Панель управления . Произвести это проще всего из меню Пуск .

В ней понадобится выбрать категорию Центр управления сетями .

Попасть туда можно и минуя описанную цепочку. В таком случае следует выбрать из контекстного меню, вызванного сетевому подключению, тот же пункт.

Найти его можно в области уведомлений, расположенной справа в нижней части экрана.

После запуска Центра управления можно будет вносить изменения в свойства сетевого адаптера.

С этой целью понадобится в левой области окна выбрать команду Изменение параметров сетевого адаптера .

Затем можно вызывать пункт Свойства из контекстного меню для имеющегося локального подключения.

При этом большая часть провайдеров позволяет устанавливать адреса на рабочих станциях для DNS и IP серверов в автоматическом режиме.

По завершении внесения изменений в настройки понадобится активизировать подключение.

С этой целью в основном окне Центра управления нужно выделить настроенное ранее подключение и вызвать для него меню правой кнопкой мыши.

В нем следует выбрать пункт Включить .

Вероятно, многие пользователи слышали о таком термине, как «соединение PPTP». Что это такое, некоторые не представляют себе даже отдаленно. Однако, если описывать принципы установки соединения на основе этого протокола простым языком, понять их совершенно нетрудно.

Соединение PPTP: что это?

Подключение такого типа строится на основе одноименного протокола, сокращение в названии которого происходит от английского point-to-point tunneling protocol, что дословно можно перевести как «туннельный протокол типа «точка-точка». Иными словами, это соединение между двумя абонентами посредством передачи пакетов данных в зашифрованном виде через незащищенные сети на основе TCP/IP.

Тип соединения PPTP позволяет преобразовывать так называемые кадры PPP в стандартные IP-пакеты, которые и передаются, например, посредством того же интернета. И хотя, как считается, протокол PPTP по уровню безопасности уступает некоторым другим вариантам вроде IPSec, он сегодня имеет достаточно большое распространение, ведь, по сути, пользователь имеет дело с одной из разновидностей VPN-подключений (беспроводное соединение).

Соединение PPTP: для чего нужно его использование?

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

Кроме того, этот протокол бывает очень часто незаменим при обеспечении связи между двумя локальными сетями именно посредством передачи пакетов в интернете по защищенной линии (туннелю) без задействования прямого соединения между ними. То есть, непосредственного контакта две локальные сети не имеют и используют туннель в качестве посредника.

С другой стороны, туннелирование на основе PPTP может применяться и при создании соединения типа «клиент-сервер», когда пользовательский терминал подключается к серверу по защищенному каналу.

Реализация PPTP в разных ОС

Теперь немного отвлечемся и с другой стороны посмотрим на соединение PPTP. Что это такое, с момента разработки протокола корпорацией Microsoft, тогда мало кто понимал. И впервые в полноценном варианте он был реализован компанией Cisco.

Тем не менее и специалисты Microsoft не отставали. Начиная с версии Windows 95 OSR2, возможности создания подключения на основе PPTP появились и в более поздних программных продуктах, причем даже со встроенными средствами настройки PPTP-сервера. Далее в качестве примера будет рассмотрено PPTP-соединение Windows 7, тем более что именно эта система на сегодняшний день остается наиболее популярной у большинства пользователей.

В системах Linux до недавнего времени полной поддержки этой технологии не было. Она появилась только в модификации 2.6.13, а официально была заявлена в версии ядра 2.6.14.

Системы FreeBSD и Mac OS X поставляются со встроенными PPTP-клиентами. КПК Palm, имеющие поддержку беспроводного соединения Wi-Fi, оборудованы клиентом Mergic.

Начальные условия для корректного соединения

Использование туннелирования является достаточно специфичным. Настройка PPTP-соединения предполагает использование TCP-порта 1723 и в обязательном порядке - протокола IP GRE с номером 47.

Из этого следует, что настройка если таковой имеется, или встроенного брэндмауэра Windows должна быть такой, чтобы IP-пакеты могли проходить свободно и без ограничений. Это касается не только пользовательских машин или локальных сетей. В равной степени такая свободная передача туннелированных данных должна обеспечиваться и на уровне провайдера.

В случае использования NAT на промежуточной стадии передачи данных соответственно должна быть настроена обработка VPN в этом сегменте.

Общие принципы работы и подключения

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

Итак, соединение между двумя точками устанавливается на основе обычной PPP-сессии на основе протокола GRE (инкапсуляция). Второе подключение непосредственно на порте TCP отвечает за управление GRE и инициацию.

Сам передаваемый пакет IPX состоит собственно из данных, иногда называемых полезной нагрузкой, и дополнительной управляющей информации. Что происходит при получении пакета на другом конце линии? Соответствующая программа для PPTP-соединения как бы извлекает содержащуюся в цельном пакете IPX информацию и отправляет ее на обработку при помощи средств, соответствующих собственному протоколу системы.

Кроме того, одной из важных составляющих туннельной передачи и приема основной информации является обязательное условие использования доступа при помощи комбинации «логин-пароль». Конечно, взломать логины и пароли на стадии получения можно, но вот в процессе передачи информации через защищенный коридор (туннель) - никак.

Средства защиты соединения

Как уже говорилось, туннелирование на основе протокола PPTP защищенным абсолютно во всех аспектах не является. Однако, если учесть, что при применяются такие средства, как EAP-TLS, MSCHAP-v2 или даже MPEE, можно говорить о достаточно высокой степени защиты.

Иногда для повышения уровня безопасности могут применяться ответные звонки (дозвоны), при которых передающая или принимающая сторона производит подтверждение подключения и передачи информации программным способом.

Настройка PPTP собственными средствами Windows 7: параметры сетевого адаптера

Настроить PPTP-соединение в любой системе Windows достаточно просто. Как уже говорилось, в качестве примера берем «семерку».

Сначала нужно зайти в «Центр управления сетями и общим доступом». Сделать это можно либо из «Панели управления». Либо из меню, вызываемого правым кликом на значке интернет- или сетевого подключения.

Слева в меню имеется строка изменения параметров сетевого адаптера, которую и нужно задействовать, после чего правым кликом на подключении по локальной сети вызвать контекстное меню и выбрать строку свойств.

В новом окне используем свойства протокола TCP/IPv4. В окне настроек следует прописать параметры, предоставленные провайдером при подключении (в большинстве случаев устанавливается автоматическое получение адресов для IP и DNS-серверов).

Сохраняем изменения и возвращаемся к подключению по локальной сети, где нужно проверить, активно ли оно в данный момент. Для этого используется правый клик. Если в самой верхней строке указано «Отключить», значит соединение активно. В противном случае включаем его.

Создание и настройка параметров VPN

На следующем этапе нужно создать VPN-подключение. Для этого в разделе «Центра управления» в правой части окна используем строку создания нового подключения.

После этого выбираем подключение к рабочему месту, а затем - использование существующего подключения к интернету.

Далее откладываем настройку-интернет-соединения, а в следующем окне указываем интернет-адрес оператора VPN и вводим произвольное имя (обязательно внизу ставим галочку напротив строки «Не подключаться сейчас»).

После этого вводим логин и пароль, если таковые предусмотрены договор на предоставление услуг, и жмем кнопку «Создать».

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

  • тип VPN: автоматический;
  • шифрование данных: необязательное;
  • разрешения протоколов: CHAP и CHAP версии 2.

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

Стоит ли использовать сторонние утилиты?

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

Можно, конечно, инсталлировать что-то вроде пакета pfSense, представляющего собой межсетевой экран-маршрутизатор, однако его «родной» клиент Multilink PPP Daemon имеет множество проблем с использованием Windows-серверов на основе PPTP в плане распределения использования протокола аутентификации между клиентом и сервером в хотя на домашних пользовательских терминалах таких проблем замечено не было. В настройке эта утилита, равно как и любые другие, гораздо сложнее, и без специальных знаний указать правильные параметры или исправить постоянный «слет» пользовательского IP-адреса не представляется возможным.

Можно попробовать и некоторые другие клиентские или серверные утилиты, предназначенные для установки соединения PPTP, однако какой смысл загружать систему ненужными программами, когда в любой ОС Windows есть собственные средства? Более того, некторые программы не только сложны в настройке, но еще и могут вызывать конфликты на программном и физическом уровне. Так что лучше ограничиться тем, что есть.

Вместо послесловия

Вот, собственно, и все, что касается протокола PPTP, а также создания, настройки и использования туннельного соединения на его основе. Что касается его использования, для рядового пользователя оно не оправдано. Просто возникают законные сомнения в том, что кому-то может понадобиться защищенный канал связи. Если уж и требуется защитить свой IP, лучше использовать анонимные прокси-серверы в интернете или так называемые анонимайзеры.

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

Руководство по решению проблем: прокладываем VPN через брандмауэры NAT

Популярность телекоммуникаций продолжает возрастать, при этом вопросы защиты информации не теряют свою актуальность. Поэтому маленькие и большие компании используют виртуальные частные сети (VPN). К счастью, информационные отделы компаний осознают, что многие сотрудники подключены по выделенным линиям и широкополосным соединениям с использованием маршрутизаторов потребительского уровня. ИТ-отделы могут намного облегчить жизнь пользователей, применяя "дружественные к NAT" шлюзы VPN и клиентов VPN, которые не требуют внесения изменений в конфигурацию домашних маршрутизаторов для установки туннеля VPN.

Если же вам не так повезло, вы всё-таки можете исправить ситуацию. Во-первых, следует проверить, поддерживает ли ваш маршрутизатор функцию сквозного прохождения PPTP или IPSEC PPTP/IPsec "pass through." Подобная функция повсеместно встречается в маршрутизаторах Linksys , так что можете поискать эти модели. На Рис. 1 показана нижняя часть экрана фильтров Linksys BEFSR41, которая содержит опции для раздельного включения сквозного прохождения PPTP или IPsec.

Рис. 1. Сквозное прохождение VPN Linksys BEFSR41.

Всё, что вам нужно, - включить поддержку используемого VPN протокола, перезагрузить маршрутизатор. Если всё пройдёт нормально, то ваша VPN сразу же заработает.

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

Не работает? Тогда следует попытаться открыть некоторые порты в брандмауэре вашего маршрутизатора для поддержки VPN-соединения. Вам следует открывать порты (и протокол) только для IP-адреса компьютера, на котором будет работать клиент VPN. Имейте в виду, что функция перенаправления портов работает только с одним компьютером одновременно . Если вам необходимо обеспечить поддержку нескольких клиентов VPN, которые требуют одновременной работы в сети, ваш маршрутизатор должен изначально поддерживать используемый VPN протокол.

Если вы используете протокол Microsoft PPTP , то необходимо настроить перенаправление порта TCP 1723 для прохождения трафика PPTP. На Рис. 2 показан экран Перенаправление/ Forwarding маршрутизатора Linksys BEFSR41, где выставлено перенаправление порта на клиента с IP-адресом 192.168.5.100 .


Рис. 2. Перенаправление портов VPN Linksys BEFSR41.

PPTP также требует поддержку протокола IP 47 (Generic Routing Encapsulation) для прохождения трафика VPN. Имейте в виду, что необходима поддержка протокола , а не порта. Поддержка этого протокола должна быть встроена в "движок" NAT, как это и сделано на большинстве современных маршрутизаторов.

Открываем брандмауэр, продолжение

Для поддержки VPN на базе IPsec VPNs необходимо открыть порт UDP 500 для переговоров ключа ISAKMP , протокол IP 50 для трафика Authentication Header (используется не всегда), и протокол IP 51 для передачи самих данных. И вновь единственный перенаправляемый порт здесь UDP 500, который мы тоже запрограммировали на Рис. 2 к той же клиентской машине в локальной сети; поддержка протоколов 50 и 51 должна быть встроена в ваш маршрутизатор.

Не все маршрутизаторы одинаковы! Некоторые поддерживают открытие только одного туннеля VPN и единственного клиента. Другие поддерживают несколько туннелей, но только одного клиента на туннель. К сожалению, большинство производителей не слишком ясно указывают в документации способ поддержки сквозного прохождения VPN своих продуктов, да и служба технической поддержки часто не обладает должной квалификацией для решения этого вопроса. В большинстве случаев вам придётся протестировать маршрутизатор в вашей сети и вернуть его, если он не заработает.

Не работает?

Заставить некоторые маршрутизаторы поддерживать VPN на базе IPsec без шаманской пляски с бубном бывает практически невозможно. Дело в том, что производители любят реализовывать свои собственные механизмы этой поддержки. Впрочем, по мере "взросления" технологии, поддержка IPsec становится всё более близкой к идеалу, и ваша компания может использовать старые продукты, которые создавались вообще без всякого учёта существования NAT или которые требуют открытия дополнительных портов в брандмауэре.

Если вы знаете английский, то мы рекомендуем ознакомиться с руководствами Тина Бёрда по IPsec и PPTP , которые содержат готовые конфигурации для многих продуктов. Также вы можете заглянуть и в нашу англоязычную секцию VPN Links & Tools , где приведена дополнительная информация.

Настройка VPN-канала типа PPTP в *nix-системах традиционно считается нетривиальной задачей, связанной с кучей различных проблем, неправильной настройкой и т.д. В этой статье я постараюсь собрать воедино все проблемы, которые могут возникнуть, и подскажу что делать в каждой ситуации.

1. Попингуйте PPTP-сервер

Убедитесь, что PPTP-сервер возвращает ответ на ICMP echo запрос. Если ответ приходит, то уже хорошо – вы можете связаться с сервером. Если же ответа не приходит, то это еще ни о чем не говорит – ICMP-пакеты могут фильтроваться файрволлом сервера.

# ping pptpserver

2. Сделайте трейс до PPTP-сервера

Убедитесь, что traceroute до сервера проходит. Если и правда проходит, то аналогично с пингом – у вас есть связь на уровне сети. Если же трассировка не проходит, опять же, это ни о чем не говорит, т.к. может фильтровать файрволл.

# traceroute pptpserver

3. Проверьте порт 1723 на PPTP-сервере

Убедитесь, что можно подключиться на служебный TCP/IP-порт PPTP-сервера. Если telnet проходит нормально, то полдела сделано. Если же подключение “висит”, нужно чинить именно эту проблему (например, настройки своего файрволла). Вот так выглядит нормальный рабочий вывод telnet:

# telnet pptpserver 1723 Trying 91.229.176.7... Connected to pptpserver. Escape character is "^]".

4. Проверьте работу протокола GRE

Проверьте, что вы можете обмениваться GRE-пакетами между PPTP-сервером и клиентом (т.е. вами). Для этого запустите сниффер пакетов, например tcpdump, в момент создания туннеля. Вы должны увидеть соединение на порт 1723, за которым последует обмен GRE-пакетами в обеих направлениях. Если вы новичок в tcpdump, вот .

Чтобы определить, в какой точке маршрута GRE-пакеты теряются;

  • утилита hping2 может делать traceroute протокола GRE [http://www.hping.org/ ], а вот
  • версия программы traceroute, работающая на GRE [http://lists.debian.org/debian-isp/2001/debian-isp-200103/msg00175.html ]

Обратите внимание: при сегодняшнем засилье дешевых маршрутизаторов потребительского класса, утилиты hping2 и GRE-трейс могут работать некорректно. Причина этого – то, что большинство NAT-маршрутизаторов используют контроль трафика с учетом состояний управляющего PPTP-соединения для определения перенаправления GRE-пакетов. Вам лучше сконцентрироваться на анализе GRE-трафика в конечных точках 🙂

Наиболее распространенными причинами, по которым не работает GRE, являются:

  • Файрволлы и шлюзы
    Промежуточные хосты на пути между клиентом и сервером могут быть настроены на блокировку протокола GRE. Использование traceroute программ GRE-протокола, упомянутых выше, может выявить хост, ставшего причиной блокировки.
    В некоторых версиях Linux поможет загрузка модуля nf_nat_pptp: # modprobe nf_nat_pptp
  • Локальные правила фильтрации
    На самом клиенте может быть настроена блокировка приема или отправки GRE-пакетов. Проверьте правила iptables (или какой там у вас файрволл).
  • Несколько одновременных подключений через NAT
    Если у вас NAT-маршрутизатор, например, DSL-роутер, который в глобальной сети представляет один IP-адрес, тогда активным может быть лишь одно PPTP-соединение. PPTP-сервер примет лишь одно соединение.
    Запуск второго туннеля на другой IP-адрес (т.е. на другой PPTP-сервер) также может не состояться, если система NAT на маршрутизаторе не в состоянии различить два отдельных PPTP-соединения. От этого может даже упасть первое соединение.
  • Неправильные настройки PPTP-сервера
    Если PPTP-сервер не может запустить демона pppd, по причине синтаксической ошибки в конфигурационном файле или в аргументах командной строки, внешне это выглядит как потеря GRE-пакетов со стороны сервера. Внимательно просмотрите логи сервера. Для проверки настроек полезно запускать pppd на сервере вручную.

5. Проверьте поддержку MPPE

Поддержка шифрования MPPE необходима, если вы собираетесь подключаться, например, к Microsoft Windows VPN Server, либо просто хотите иметь зашифрованный канал. Для версий PPP 2.4.2 и более поздних MPPE поставляется в виде модуля ядра Linux, и в виде патча для PPP 2.4.0. Чтобы шифрование MPPE корректно работало, необходимо выполнение обеих следующих пунктов.

6. Поддержка MPPE в ядре

Проверьте, что модуль MPPE загружен:

# modprobe ppp-compress-18 # modprobe ppp_mppe

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

  • Вы не запустили команду depmod -a после загрузки RPM-файла kernel-mppe
  • Модуль MPPE не существует в соответствующем каталоге /lib/modules
  • Существующий модуль MPPE не может быть загружен по причине конфликта версий
  • В системе остался старый файл mppe.o , поэтому новый файл ppp_mppe.o не может загрузиться (выводимая ошибка “init_module: File exists”)
  • Модуль ppp_generic не может активировать модуль MPPE, хотя и нашел его. Возможно, у вас используется PPP-MPPE 2.4.0, а в файле /etc/modules.conf отсутствует запись alias ppp-compress-18 mppe
  • Модули PPP статически скомпилированы в ядро (чтобы MPPE работал как модуль, они также должны быть скомпилированы в виде модулей)
  • Не загружен модуль ppp_async (хотя pptp в своей работе не использует последовательный порт, но модуль ppp_async необходим для передачи данных по псевдо-терминалам)

7. Поддержка MPPE в pppd

Проверьте, что программа pppd поддерживает MPPE. Это можно сделать, поискав строки, содержащие ключевое слово mppe. Если таких строк не наблюдается, нужно найти версию pppd с поддержкой MPPE.

# strings `which pppd`|grep -i mppe|wc --lines

Если поддержки MPPE нет, то в консоль выведется число 0. Если же поддержка есть, то число будет в районе 40.

Это вольный перевод статьи