Нажмите "Enter", чтобы перейти к содержанию

Протокол vpn – 5 основных протоколов VPN — Блог веб-программиста

Содержание

5 основных протоколов VPN — Блог веб-программиста

Подробности
октября 30, 2017
Просмотров: 18730

Вероятно, вы слышали такую фразу: «вам нужно использовать VPN для защиты вашей конфиденциальности». Теперь вы думаете: «Хорошо, но как работает VPN?»

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

 

Что такое VPN?

Прежде чем мы рассмотрим конкретные протоколы VPN, давайте быстро вспомним, что такое VPN.

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

Когда вы используете VPN, все ваши запросы сначала направляются через частный сервер, принадлежащий провайдеру VPN. Ваш запрос направляется от A до C через B. Вы можете получить доступ ко всем ранее доступным вам данным (и в некоторых случаях — к большему числу). Но на веб-сайте или службе есть только данные провайдера VPN: их IP-адрес и т. д.

Существует много применений для VPN, в том числе защитить ваши данные и личность, избежать репрессивной цензуры и шифровать ваши сообщения.

 

Что такое VPN-протоколы?

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

Давайте рассмотрим наиболее распространенные протоколы VPN.


1. OpenVPN

OpenVPN — это протокол VPN с открытым исходным кодом. Это означает, что пользователи могут проверять исходный код на наличие уязвимостей или использовать его в других проектах. OpenVPN стал одним из важнейших протоколов VPN. OpenVPN имеет открытый исходный код и является одним из наиболее безопасных протоколов. OpenVPN позволяет пользователям защищать свои данные с использованием, по существу, нерушимого шифрования ключей AES-256 (среди прочих), с 2048-битной аутентификацией RSA и 160-битным алгоритмом SHA1.

Помимо обеспечения надежного шифрования, OpenVPN также доступен практически для каждой платформы: Windows, MacOS, Linux, Android, iOS, маршрутизаторов и многого другого. Даже Windows Phone и Blackberry могут его использовать!

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


2. L2TP / IPSec

Протокол туннеля уровня 2 — очень популярный протокол VPN. L2TP является преемником обесцененного PPTP (более подробно см. Ниже раздел PPTP), разработанный Microsoft и L2F, разработанный Cisco. Однако L2TP фактически не обеспечивает никакого шифрования или конфиденциальности.

Соответственно, службы, использующие L2TP, часто связаны с протоколом IPsec безопасности. После внедрения L2TP / IPSec становится одним из наиболее безопасных подключений VPN. Он использует шифрование AES-256 бит и не имеет известных уязвимостей (хотя IPSec якобы был скомпрометирован NSA).

Тем не менее, в то время как L2TP / IPSec не имеет известных уязвимостей, он имеет некоторые небольшие недостатки. Например, по умолчанию протокол использует UDP на порту 500. Это упрощает определение и блокировку трафика.


3. SSTP

Протокол Secure Socket Tunneling Protocol является еще одним популярным протоколом VPN. SSTP обладает одним заметным преимуществом: он полностью интегрирован с каждой операционной системой Microsoft с момента установки Windows Vista с пакетом обновления 1 (SP1). Это означает, что вы можете использовать SSTP с Winlogon или для повышения безопасности — смарт-чип. Кроме того, многие поставщики VPN имеют специальные встроенные инструкции SSTP для Windows. Их можно найти на веб-сайте поставщика VPN.

SSTP использует 2048-битные SSL / TLS-сертификаты для аутентификации и 256-битные SSL-ключи для шифрования. В целом, SSTP достаточно безопасен.

SSTP является, по сути, проприетарным протоколом Microsoft. Это означает, что никто не может полностью проверить базовый код. Тем не менее, большинство из них по-прежнему считают SSTP безопасным.

Наконец, SSTP имеет встроенную поддержку систем Windows, Linux и BSD. Android, macOS и iOS поддерживают сторонние клиенты.


4. IKEv2

Internet Key Exchange (Интернет обмен ключами) версии 2 — еще один протокол VPN, разработанный Microsoft и Cisco. IKEv2 сам по себе является протоколом туннелирования, обеспечивающим сеанс обмена безопасными ключами. Поэтому (как и его предшественник), IKEv2 часто сопрягается с IPSec для шифрования и аутентификации.

Хотя IKEv2 не так популярен, как другие протоколы VPN, он имеет множество решений для мобильных VPN. Это связано с тем, что он умеет повторно подключаться в моменты временной потери интернет соединения, а также во время сетевого коммутатора (например, от Wi-Fi до мобильных данных).

IKEv2 — это проприетарный протокол с собственной поддержкой устройств Windows, iOS и Blackberry. Для Linux доступны версии с открытым исходным кодом, а поддержка Android доступна через сторонние приложения.

К сожалению, в то время как протокол ikev2 отлично подходит для мобильной связи, есть веские доказательства того, что американское АНБ активно эксплуатируя его недостатки, чтобы подорвать трафик IPSec.

 

5. PPTP

Протокол туннелирования «точка-точка» является одним из старейших протоколов VPN. Он по-прежнему используется в некоторых местах, но большинство служб давно обновлены до более быстрых и безопасных протоколов.

PPTP был введен еще в 1995 году. Он был фактически интегрирован с Windows 95, разработанный для работы с коммутируемыми соединениями. В то время это было чрезвычайно полезно.

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

Однако он еще не совсем мертв …. Понимаете, некоторые люди считают, что PPTP дает лучшие скорости соединения, именно из-за отсутствия функций безопасности (по сравнению с современными протоколами). Таким образом, он по-прежнему используется, так как пользователи просто хотят смотреть Netflix из другого местоположения.

 

Подведем итог протоколов VPN

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

OpenVPN: имеет открытый исходный код, предлагает самое сильное шифрование, подходящее для всех видов деятельности, имеет немного более медленное время соединения.

L2TP / IPSec: широко используемый протокол, хорошие скорости, но он легко блокируется из-за зависимости от одного порта.

SSTP: хорошая безопасность, трудно блокировать и обнаруживать.

IKEv2: быстрый, удобный для мобильных устройств, с несколькими реализациями с открытым исходным кодом (потенциально подрывается АНБ).

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

 

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


Какой VPN-протокол вы обычно используете? Предлагает ли ваш VPN-провайдер выбор? Расскажите это в комментариях!


Читайте также

 

 

 

 

juice-health.ru

протоколы для удаленного доступа / VAS Experts corporate blog / Habr

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

Как рассказали представители Госдумы, в законе имеется оговорка, согласно которой шифрование сетей можно использовать в корпоративных целях. Это означает, что компаниям не придётся тратить значительные суммы и прокладывать частные сети между своими офисами, так как установка VPN-соединения практически (а в некоторых случаях так и есть) бесплатна. Поэтому сегодня мы решили рассмотреть два способа организации VPN-соединения в корпоративной сети и несколько применяемых для этого протоколов: PPTP, L2TP/IPsec, SSTP и OpenVPN.


/ Flickr / Johannes Weber / CC

PPTP


Спецификация PPTP разрабатывалась консорциумом, основанным Microsoft для организации VPN в dial-up. Поэтому PPTP долгое время оставался стандартом для корпоративных сетей. По этой же причине он использует протокол шифрования Microsoft Point-to-Point Encryption (MPPE).

Идет «по умолчанию» на любой VPN-совместимой платформе и легко настраивается без дополнительного программного обеспечения. Еще одно достоинство PPTP — высокое быстродействие. Но к сожалению, PPTP недостаточно безопасен. С момента включения протокола в состав Windows 95 OSR2 в конце девяностых, раскрылись несколько уязвимостей.

Самая серьезная — это возможность неинкапсулированной аутентификации MS-CHAP v2. Этот эксплойт позволил взломать PPTP за два дня. Microsoft «залатали» дыру, перейдя на протокол аутентификации PEAP, но потом сами предложили использовать VPN-протоколы L2TP/IPsec или SSTP. Еще один момент — PPTP-подключения легко заблокировать, потому что протокол работает с одним портом номер 1723 и использует GRE-протокол.

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

L2TP и IPsec


Layer 2 Tunneling Protocol, или L2TP, также представлен практически во всех современных операционных системах и работает со всеми устройствами, способными «воспринимать» VPN.

L2TP не умеет шифровать проходящий через него трафик, поэтому его часто используют в связке с IPsec. Однако это приводит к появлению негативного эффекта — в L2TP/IPsec происходит двойная инкапсуляция данных, что отрицательно сказывается на производительности. Также L2TP использует пятисотый UDP-порт, который легко блокируется файрволом, если вы находитесь за NAT.

L2TP/IPsec умеет работать с шифрами 3DES или AES. Первый уязвим для атак типа meet-in-the-middle и sweet32, поэтому сегодня редко встречается на практике. При работе с AES-шифром о крупных уязвимостях неизвестно, поэтому в теории этот протокол должен быть безопасен (при правильной реализации). Однако Джон Гилмор (John Gilmore), основатель Electronic Frontier Foundation, указал в своем посте, что IPSec мог быть специальным образом ослаблен.

Наиболее серьезная проблема с L2TP/IPsec заключается в том, что многие VPN-сервисы реализуют его недостаточно хорошо. Они используют pre-shared keys (PSK), которые можно загрузить с сайта. PSK нужны для установки соединения, потому даже если данные оказываются скомпрометированы, они остаются под защитой AES. Но атакующий может использовать PSK, чтобы выдать себя за VPN-сервер и затем подслушать зашифрованный трафик (даже инжектировать вредоносный код).

SSTP


Secure Socket Tunneling Protocol, или SSTP, — это VPN-протокол, который разрабатывала компания Microsoft. Он основывается на SSL и впервые запущен в Windows Vista SP1. Сегодня протокол доступен для таких ОС, как RouterOS, Linux, SEIL и Mac OS X, однако основное применение он все равно находит на платформе Windows. SSTP — проприетарный стандарт, принадлежащий Microsoft, и его код недоступен для публичного обозрения.

Сам SSTP не имеет криптографического функционала за исключением одной функции — речь идет о криптографическом связывании (cryptographic binding), защищающем от атаки MITM. Шифрование же данных выполняет SSL. Описание процедуры установления VPN-соединения можно найти на сайте Microsoft.

Тесная интеграция с Windows упрощает работу с протоколом и повышает его стабильность на этой платформе. Однако SSTP использует SSL 3.0, который уязвим для атаки POODLE, что в теории сказывается на защищённости VPN-протокола.

OpenVPN


OpenVPN — это открытый проект, использующий библиотеку Open SSL, TLS и ряд других технологий. Сегодня он является индустриальным стандартом в коммерческих VPN-сервисах и реализуется на любой платформе с помощью стороннего ПО. Многие провайдеры даже предоставляют кастомные клиенты OpenVPN, однако над ядром кода все равно работают разработчики проекта.

Среди достоинств OpenVPN выделяется его настраиваемость. Его можно настроить для работы на любом порте. Это позволяет пересылать трафик через порт 443, чтобы «замаскировать» его под HTTPS, что усложняет блокирование.

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

Еще одно достоинство протокола — библиотека OpenSSL. Она поддерживает многие криптоалгоритмы — это 3DES, CAST-128, Camelia, AES и Blowfish. Последние два чаще всего используются на практике.

Также плюсом OpenVPN можно считать регулярные аудиты. Последняя проведенная проверка не выявила «дыр», влияющих на безопасность данных пользователей. Тогда были найдены несколько уязвимостей, дающих злоумышленникам возможность проводить DDoS-атаки, но разработчики пропатчили их в версии OpenVPN 2.4.2.

OpenVPN считается одним из самых надёжных VPN-протоколов имеющихся сегодня и широко поддерживается VPN-индустрией. И хотя раньше OpenVPN не работал на мобильных платформах без root-доступа, сегодня есть third-party приложения, которые исправили это «недоразумение».


/ Flickr / Andrew Hart / CC

Типы подключения VPN


В сегодняшнем материале мы поговорим о двух наиболее часто используемых типах подключения к VPN. Речь пойдёт об удаленном доступе к корпоративной сети (remote access) и соединении «точка — точка» (site-to-site)

Удаленный доступ позволяет сотрудникам компании безопасно подключаться к корпоративной сети через интернет. Особенно это важно в том случае, когда сотрудник работает не в офисе и подключается через незащищенные точки доступа, например Wi-Fi в кафе. Для организации этого соединения, устанавливается туннель между клиентом на гаджете пользователя и VPN-шлюзом в сети компании. Шлюз проводит аутентификацию, а затем предоставляет (или ограничивает) доступ к ресурсам сети.

Чтобы защитить соединение чаще всего используются протоколы IPsec или SSL. Также возможно применение протоколов PPTP и L2TP.


/ Wikimedia / Philippe Belet / PD

Site-to-site VPN служит объединения разных локальных сетей. В этом случае устройства пользователей работают без VPN-клиентов — всю работу выполняет шлюз.
Такой тип подключения применяется тогда, когда у компании есть несколько удаленных офисов, которые нужно объединить в одну частную сеть. А также в том случае, если у организации есть партнер, к сети которого требуется подключение. Это позволяет компаниям вместе работать в защищенном общем пространстве.


/ Wikimedia / Philippe Belet / PD

Для защиты соединения «точка – точка» чаще всего используется IPsec. Также применяется вариант операторского MPLS-облака без публичных сетей. В этом случае появляется возможность организовать соединения Layer3 (MPLS IP VPN) или Layer2 (VPLS).

Напоследок хотелось бы отметить, что имеются еще несколько вариантов использования VPN-соединений:

  • Установление соединения между двумя серверами в дата-центрах. Полезно в том случае, если по какой-то причине нет возможности наладить безопасный канал с помощью стандартной корпоративной сети.
  • Подключение к сервису IaaS.
  • Размещение VPN-шлюза в облаке.

Подробнее о них и технологии VPLS мы планируем рассказать в одном из последующих материалов.

P.S. О чем еще мы пишем в нашем корпоративном блоге:

habr.com

Что такое VPN-протокол и какой стоит использовать?

Что такое VPN-протокол?

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

Какие VPN-протоколы используются в VPN?

Поставщики VPN-услуг, как правило, предоставляют своим пользователям следующие протоколы:

  • PPTP
  • L2TP/IPSec
  • OpenVPN
  • IKEv2
  • SSTP
  • SoftEther

Архитектура каждого VPN-протокола значительно отличается от остальных, и поэтому у каждого из них есть свои преимущества и недостатки. То есть, предварительное знакомство может позже сыграть вам на руку.

Сравнение VPN-протоколов

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

ПротоколСкоростьШифрование и безопасный серфингСтабильностьСтриминг медиаресурсовСкачивание торрентовДоступность в приложениях CactusVPNСовместимость
PPTPБыстроПлохоСреднеХорошоХорошоWindowsБольшинство ОС и устройств
L2TP/IPSecБыстроСреднеХорошоХорошоХорошоWindowsБольшинство ОС и устройств
IKEv2/IPSecБыстроХорошоХорошоХорошоХорошоWindows, macOS и iOSБольшинство ОС и устройств
OpenVPN TCPСреднеХорошоХорошоСреднеХорошоWindows и AndroidБольшинство ОС и устройств
OpenVPN UDPБыстроХорошоСреднеХорошоХорошоWindows и AndroidБольшинство ОС и устройств
SSTPСреднеХорошоСреднеСреднеХорошоWindowsWindows
SoftEtherБыстроХорошоХорошоХорошоХорошоНетWindows

Так какой же VPN-протокол использовать?

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

Давайте рассмотрим каждый VPN-протокол в контексте упомянутых выше характеристик.

Какой VPN-протокол самый безопасный?

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

L2TP/IPSec и IKEv2 считаются безопасными, так как шифруют данные дважды.

OpenVPN предоставляет высокий уровень безопасности и позволяет проверять подлинность цифровых сертификатов.

SoftEther поддерживает OpenVPN, EtherIP, L2TP/IPSec и SSTP, а это значит, что он использует преимущества всех протоколов одновременно.

SSTP считается очень безопасным, так как предлагает высокий уровень шифрования и умеет подключаться к HTTPS-сайтам через 443 порт, который используется TLS.

Победитель: OpenVPN

Какой VPN-протокол самый быстрый?

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

Протокол PPTP является одним из самых быстрых VPN-протоколов туннелирования как раз из-за низкого уровня шифрования.

IKEv2, SoftEther и L2TP/IPSec тоже быстрее, а вот OpenVPN считается самым медленным.

SSTP не так впечатляет своей производительностью, как PPTP, но по скорости обходит OpenVPN.

Победитель: PPTP

Какой протокол предлагает лучшее шифрование?

Что такое VPN-шифрование?

Говоря максимально просто, шифрование – это преобразование данных в неразборчивую форму при передаче на другое устройство или для длительного хранения. Вполне очевидно, что VPN-шифрование используется, чтобы исключить несанкционированный доступ к данным. Все виды конфиденциальной информации и данных хранятся в зашифрованном виде; Это защищает организации, предприятия и обычных людей от мошенничества и других неурядиц. Вы можете узнать об этом больше в нашей статье “Что такое VPN-шифрование и почему это так важно?” article.

PPTP использует 128-битное шифрование на базе протокола MPPE, принадлежащего компании Microsoft. Протокол MPPE использует шифрование RC4 от RSA, который поддерживает шифрование до 128 бит.

L2TP/IPSec и IKEv2/IPSec используют 256-битное шифрование на базе стандартизированного протокола IPSec. В нем для шифрования применяются 3DES и AES, используемые АНБ для работы с секретной информацией.

OpenVPN использует библиотеку OpenSSL, которая поддерживает 3DES, а также другие библиотеки, которые поддерживают 160-битное и 256-битное шифрование.
SoftEther также использует 256-битное шифрование, в то время как SSTP использует TLS-подключение с 2048-битным шифрованием.

Победитель: OpenVPN и SoftEther

Какой VPN-протокол самый стабильный?

PPTP используется в большинстве Wi-Fi маршрутизаторах и считается стабильным.

L2TP/IPSec совместим с устройствами, в которых предусмотрена поддержка NAT.

OpenVPN отлично работает даже в ненадежных сетях.

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

SSTP также считается стабильным, и умеет обходить фаерволы NAT.

Протокол IKEv2 действительно очень стабилен при переключении между сетями, как например при переходе от сотовой сети к Wi-Fi соединению.

Победитель: L2TP/IPSec, SoftEther и IKEv2

Какой VPN-протокол поддерживает большинство платформ?

Протокол PPTP поддерживает наибольшее число ОС.

Протокол L2TP/IPsec также поддерживает достаточно много ОС.

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

IKEv2 поддерживается на разных платформах, но что самое главное – на устройствах BlackBerry, тогда как большинство VPN-протоколов не работают на BlackBerry.

SSTP ограничивается лишь ОС Windows, но при этом поддерживает все версии этой платформы.

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

Победитель: PPTP и L2TP/IPSec

Какой VPN-протокол легче всего настроить?

PPTP-протокол самый простой в настройке.

L2TP/IPSec и IKEv2 также легко настраиваются.

OpenVPN хорошо поддается настройке, но для работы со сторонним ПО потребуется некоторый опыт.

SSTP тоже хорошо настраивается и при этом можно рассчитывать на поддержку от Microsoft.

SoftEther – это новый протокол, поэтому будет не так просто найти какую-либо информацию о нем в интернете. Следовательно, процесс настройки несколько сложнее.

Победитель: PPTP

Какой VPN-протокол потребляет меньше всего ресурсов?

Протокол PPTP требует очень мало вычислительной мощности из-за низкого уровня шифрования.

L2TP/IPSec и IKEv2 используют больше мощностей, так как дважды инкапсулируют данные.

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

SSTP использует минимальные ресурсы благодаря значительной интеграции в саму платформу.

Победитель: SSTP

Хотите защитить свои личные данные в сети?

Используйте VPN для повышения конфиденциальности в интернете, защиты соединения и доступа к заблокированным веб-сайтам

Попробуйте CactusVPN бесплатно

Коротко о каждом VPN-протоколе

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

PPTP

PPTP (Point-to-Point Tunnelling Protocol) был разработан и создан компанией Microsoft ещё в 1990-х годах. Благодаря доступности на всех платформах, он очень распространен среди поставщиков VPN-услуг. Самая важная характеристика PPTP – его скорость в сравнении с остальными протоколами шифрования. Его легко настроить, и при этом в большинстве платформ он идет в качестве встроенной функции.

Однако некоторые эксперты считают, что данный протокол может быть менее безопасным, нежели остальные, даже несмотря на то, что все прошлые проблемы безопасности были исправлены. Поэтому, если вас беспокоит ваша безопасность, то для подключения стоит выбрать другой VPN-протокол. Зачастую его используют те, кому нужно только получить контент, ограниченный для конкретного региона так как работает он очень быстро. Если ваши основные потребности – скорость и доступность, то PPTP будет отличным выбором.

Узнайте больше в нашей подробной статье о PPTP.

L2TP/IPSec

Протокол L2TP (Layer 2 Tunneling Protocol) – из-за своей высокой производительности и гораздо более высокого уровня безопасности – предполагался как замена протоколу PPTP. Интересно то, что протокол L2TP сам по себе не поддерживает какое-либо шифрование, и для этих целей использует IPSec. Он также является встроенным протоколом в большинстве современных ОС, что делает его настройку такой же простой, как и в случае с PPTP.

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

Узнайте больше в нашей подробной статье о L2TP.

OpenVPN

OpenVPN – один из самых популярных протоколов, которые используют практически все VPN-Сервисы в мире. Это относительно новая VPN технология, в которой используется комбинация других технологий, таких как протоколы SSLv3 и OpenSSL. Это позволило создать лучшее возможное VPN-решение. Одна и та же библиотека OpenSSL обеспечивает шифрование многим другим алгоритмам, включая AES, Camellia и Blowfish.

Среди преимуществ OpenVPN можно отметить легкий процесс настройки, высокий уровень безопасности, поддержку множества алгоритмов шифрования, а также хорошую производительность против фаерволов и доступность по принципу open source. Но для работы OpenVPN потребуется стороннее ПО, которое может оказаться сложным в настройке. Хотя поддержка мобильных устройств здесь и предусмотрена, она пока что не настолько хороша, как поддержка настольных ПК. Что касается скорости в стандартном UDP-режиме, этот алгоритм должен работать быстрее L2TP, но вряд ли будет быстрее PPTP.

Узнайте больше в нашей подробной статье об OpenVPN.

IKEv2

IKEv2 (Internet key exchange version 2) – это протокол VPN, который был разработан компанией Microsoft в сотрудничестве с Cisco. Это протокол туннелирования на основе IPsec с широким спектром преимуществ. С точки зрения безопасности он приравнивается или даже превосходит протокол L2TP/IPsec, и при этом у него довольно высокая производительность.

Одно из основных преимуществ IKEv2 – поддержка протокола MOBIKE, что делает его невероятно надежным при сменяющихся сетях. Это, в свою очередь, делает протокол IKEv2 одним из лучших для мобильных пользователей, которые переключаются между Wi-Fi и сотовой сетью или просто перемещаются от одной точки доступа в интернет к другой. Еще одной особенностью является то, что при использовании с VPN Connect от Microsoft, протокол IKEv2 может автоматически восстанавливать VPN-подключение после временной потери соединения.

Он совместим с Windows и BlackBerry, а также может быть использован с Linux и другими платформами с открытым исходным кодом. И хотя он доступен на меньшем количестве платформ в сравнении с остальными VPN-протоколами, эксперты считают его достаточно хорошим с точки зрения стабильности, безопасности и производительности.

Узнайте больше в нашей подробной статье об IKEv2.

SSTP

SSTP (Secure Socket Tunneling Protocol) тоже разработан Microsoft и поэтому заточен исключительно под ПК с ОС Windows. Соответственно, его нельзя проверить на наличие бэкдоров, и он вряд ли когда-нибудь будет поддерживать устройства Apple. SSTP очень похож на OpenVPN, потому как использует тот же протокол SSLv3.

Основные преимущества SSTP – его высокий уровень безопасности и способность обходить даже мощные фаерволы. Если вы крутитесь в среде Windows, и вас не заботит вероятность того, что Microsoft сохранила для себя секретные пути к вашим персональным данным, то SSTP, можно сказать, представляет собой хорошо интегрированное VPN-решение с хорошим уровнем безопасности и простой настройкой.

Узнайте больше в нашей подробной статье о SSTP.

SoftEther

SoftEther – относительно новый VPN-протокол, разработанный в 2013 году в качестве open source замены для VPN. Он может похвастаться хорошей скоростью и надежными мерами безопасности, хотя в силу новизны по нему до сих сложно искать документацию. Он поддерживает протоколы SSL-VPN и IPSec, EtherIP, OpenVPN и L2TP, и работает гораздо быстрее OpenVPN.

Кроме значительно лучшей производительности в сравнении с OpenVPN, SoftEther также предлагает множество функций, недоступных в OpenVPN. Например, функцию динамического DNS, фильтрацию пакетов, графический интерфейс управления, управление RPC по HTTPS, функции виртуального DHCP и NAT, а также генератор задержки, погрешности и потери пакетов. Однако SoftEther распространен не так, как и другие протоколы, используемые для VPN-подключений.

Узнайте больше в нашей подробной статье о SoftEther.

Подытожим

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

У каждого протокола есть преимущества и недостатки, и поэтому вам необходимо найти тот, что наиболее вам подходит. Большинство поставщиков VPN-услуг предлагают не более 3 VPN-протоколов, то есть зачастую выбор невелик. Но CactusVPN предлагает 6 VPN-протоколов (OpenVPN, L2TP/IPSec, IKEv2, SSTP, SoftEther и PPTP) на всех серверах, а значит у вас будет возможность выбрать то, что действительно подойдет вам лучше всего.

www.cactusvpn.com

Протоколы VPN — PPTP, L2TP, IKEv2, OpenVPN

В настоящее время существует довольно большое количество протоколов, применяемых для создания VPN-соединений. Какое решение выбрать и на что следует обратить внимание для правильной настройки подключения? Попробуем кратко ответить на эти вопросы.

Протокол туннелирования точка-точка (Point-to-Point Tunneling Protocol) – это протокол, изобретенный компанией Cisco Systems для организации VPN через сети коммутируемого доступа. PPTP является стандартным протоколом для построения VPN уже на протяжении многих лет — впервые его поддержка была реализована в операционных системах Windows NT 4.0 и Windows 95 OSR2.

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

PPTP работает, устанавливая обычную PPP сессию с противоположной стороной с помощью протокола Generic Routing Encapsulation. Для инициации и управления GRE-соединением используется второе соединение на TCP-порте 1723. Из-за необходимости установления двух сетевых сессий, могут возникнуть сложности при настройке PPTP-соединения за сетевым экраном. Кроме того, некоторые Интернет-провайдеры блокируют GRE-протокол, что делает невозможным использование PPTP.

PPTP опирается на различные методы аутентификации для обеспечения безопасности соединения, наиболее часто среди которых используется MS-CHAP v.2. Данные, передаваемые через PPTP, шифруются с помощью протокола MPPE, включающего в себя алгоритм шифрования RSA RC4 с ключом длиной максимум 128 бит.

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

  • клиент PPTP встроен во все операционные системы (за исключением последних версий iOS)
  • очень прост в настройке
  • работает быстро

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

Протокол туннелирования 2 уровня (Layer 2 Tunnel Protocol) – сетевой протокол, в качестве основы использующий протокол PPP канального уровня. Cоздан в 1999 году компаниями Cisco и Microsoft как дальнейшее развитие протокола PPTP, в настоящее время является промышленным стандартом (RFC2661).

Так как сам по себе L2TP не обеспечивает шифрование и конфиденциальность трафика, при построении VPN на основе L2TP для обеспечения безопасности передаваемых данных, как правило, используется протокол шифрования IPSec (IP Security). Комбинацию L2TP и IPSec называют L2TP/IPSec (RFC3193).

Для L2TP/IPSec в качестве транспорта применяется протокол UDP, где порт 1701 используется в качестве порта отправителя и получателя для инициализации туннеля, порт UDP-500 применяется для обмена ключами шифрования, порт UDP-4500 для NAT-операций, протокол 50 (ESP) для передачи зашифрованных данных через IPSec.

L2TP/IPsec встроен во все современные операционные системы и коммуникационные устройства, и может быть настроен так же легко, как и PPTP. Некоторые сложности с настройкой могут возникнуть для операционных систем семейства Linux, где может потребоваться установка дополнительных пакетов из состава ОС.

С точки зрения безопасности, VPN-подключения по протоколу L2TP/IPSec являются достаточно надёжными, так как обеспечивают конфиденциальность, целостность и проверку подлинности данных.

По сравнению с другими VPN-протоколами, L2TP/IPSec более «капризный» в плане обеспечения стабильной и надежной работы. Так, если VPN-клиент находится за сетевым устройством, выполняющим преобразование сетевых адресов (NAT), либо не пропускающим пакеты на UDP-порт 500, сеанс L2TP/IPSec установить не удастся. Кроме того, так как L2TP/IPSec инкапсулирует передаваемые данные дважды, это делает его менее эффективным и более медленным, чем другие VPN-протоколы.

  • высокая безопасность
  • легкость настройки
  • доступен в современных операционных системах
  • работает медленнее, чем другие VPN-протоколы
  • может потребоваться дополнительная настройка роутера

Протокол L2TP/IPSec позволяет обеспечить высокую безопасность передаваемых данных, прост в настройке и поддерживается всеми современными операционными системами. Однако, по сравнению с другими VPN-протоколами, является менее производительным и стабильным.

Протокол обмена ключами (Internet Key Exchange) версии 2 — входящий в набор IPSec протокол туннелирования, разработанный совместно компаниями Microsoft и Cisco. Входит в состав Windows 7 и более поздних версий, поддерживается мобильными устройствами Blackberry и Apple. Имеются решения с открытым исходным кодом для Linux.

Передача данных производится через UDP порты 500 и/или 4500, с шифрованием данных криптоалгоритмами 3DES и AES. Использование UDP обеспечивает хорошую скорость работы и не создает проблем для работы за NAT и межсетевыми экранами.

Благодаря ряду своих возможностей, IKEv2 особенно актуален для мобильных пользователей — IKEv2 позволяет автоматически переустанавливать VPN-туннель в случае временного обрыва Интернет-соединения, например во время поездки в метро. Также протокол хорошо восприимчив к частой смене сетей — например переключению между точками Wi-Fi, или между Wi-Fi и мобильной сетью. Это один из немногих протоколов, поддерживаемых устройствами Blackberry.

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

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

OpenVPN является полнофункциональным решением с открытым иcходным кодом для организации инфраструктуры VPN на основе библиотеки OpenSSL и протоколов SSL/TLS. Благодаря своей бесплатности и открытости, OpenVPN в настоящее время фактически является стандартом в VPN-технологиях, очень гибким в настройках и с богатыми функциональными возможностями.

В стандартной конфигурации OpenVPN использует для передачи данных UDP протокол и порт 1194. Однако, VPN-соединение может быть легко настроено для работы по протоколу TCP на любом порту, например на 443 TCP-порту, что позволяет маскировать трафик OpenVPN под обычный HTTPS, тем самым обходя блокировки на стороне межсетевых экранов.

Использование в качестве основы библиотеки OpenSSL позволяет обеспечить поддержку множества криптографических алгоритмов (например RSA, AES, Blowfish, 3DES и других) для надежной защиты передаваемых данных. Производительность OpenVPN зависит от выбранного алгоритма шифрования, но, как правило, работает быстрее, чем IPSec.

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

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

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

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

Подводя итог нашему обзору, коротко обобщим сделанные выводы:

  • PPTP — небезопасный протокол, ваши данные можно перехватить и расшифровать. Можно применять только для смены текущего географического местоположения и сокрытия реального IP-адреса.
  • L2TP/IPSec — имеет приемлемый уровень защиты, удобен в настройке, не требует установки дополнительного программного обеспечения (за исключением Linux), является хорошей альтернативой PPTP.
  • IKEv2 — современный протокол VPN, обладает хорошей безопасностью и скоростью работы. Прекрасно подходит для пользователей мобильных устройств, особенно Blackberry.
  • OpenVPN — имеет открытый исходный код, работает быстро и безопасно. Обладает гибкими настройками, обеспечивает хорошую стабильность работы. Даже несмотря на необходимость установки дополнительного программного обеспечения, на сегодняшний день является лучшим решением для VPN.

Иными словами — при возможности используйте OpenVPN, для мобильных устройств хорошо подойдет IKEv2. Для быстрых решений, когда нужно только скрыть свой IP-адрес — можно ограничиться L2TP/IPSec или PPTP.

www.securevpn.pro

Как устроен VPN через SSTP / Habr

Нашёл буквально несколько упоминаний о SSTP на Хабре, в связи с чем хочу рассказать про устройство этого протокола. Secure Socket Tunneling Protocol (SSTP) – протокол VPN от Microsoft, основанный на SSL и включённый в состав их ОС начиная с Windows 2008 и Windows Vista SP1. Соединение проходит с помощью HTTPS по 443 порту. Для шифрования используется SSL, для аутентификации — SSL и PPP. Подробнее про устройство — под катом.

Серверная часть протокола включена в ОС Windows Server 2008, 2008 R2, 2012, 2012 R2. Далее рассказывается про текущую (и, кажется, единственную) версию — 1.0.
В основном используется для подключения типа узел-узел или узел-сеть. По умолчанию для соединения используется 443 порт, но можно настроить и на другие порты.
Условная схема пакета с данными

Условно стек протоколов при передаче данных выглядит так (показаны только заголовки, относящиеся к VPN, без подлежащих уровней):

Структура собственно SSTP пакета:

Флаг C = 0 если пакет с данными, и C = 1, если пакет управляющий.
Немного слов об используемой криптографии

SSTP устроен довольно просто за счёт того, что он использует функционал других криптографических протоколов. Собственно, единственная криптографическая функция, реализуемая самим SSTP – это «cryptographic binding», о котором говорится ниже.
Всё шифрование данных осуществляется протоколом SSL. Все пакеты протоколов SSTP, PPP и выше передаются только в зашифрованном виде.
Авторизация проходит сразу по трём протоколам: SSL, PPP и, собственно, сам SSTP.
При установлении SSL соединения проходит авторизация сервера клиентом по SSL сертификату. Аутентификация клиента сервером допускается, однако не поддерживается ни одной из серверных Windows.
На уровне PPP происходит авторизация клиента сервером, и дополнительно может происходить аутентификация сервера. Windows Server поддерживают аутентификацию клиента на уровне PPP с помощью MS-CHAPv2, EAP-TLS, PEAP-MSCHAPv2, PEAP-TLS. Также поддерживаются Password Authentication Protocol (PAP – не шифрованный пароль) и CHAP, однако их использование не рекомендуется, т. к. они не предусматривают обмена ключевой информацией, которая необходима для «cryptographic binding». Собственно, тут те же методы аутентификации, что и в PPTP. Отличие от PPTP в том, что обмен происходит внутри уже созданного шифрованного канала SSL.
Теперь о том, что же такое этот «cryptographic binding». Из-за того, что аутентификация клиента и сервера происходит на разных уровнях, возможна атака человек посередине, когда нарушитель устанавливает SSL соединение с сервером и незащищённое PPP соединение с клиентом.подробнее

Т.е. нарушитель сначала устанавливает HTTPS соединение с сервером. Затем легитимному клиенту предлагает авторизоваться у себя по PPP, представляясь каким-нибудь PPP (но не SSTP) сервером, а дальше шлёт клиенту PPP запросы авторизации, которые получает от SSTP сервера внутри HTTPS соединения, а серверу — полученные от легитимного пользователя ответы.

Для защиты от этого используется подписывание сообщения уровня SSTP об установлении соединения (Call Connected message, см ниже) ключом, выработанным в процессе аутентификации на уровне PPP. Таким образом сервер может убедиться, что тот, кто установил SSL соединение, и тот, кто прошёл PPP авторизацию — это один и тот же клиент. Собственно, это и называют «cryptographic binding».подробнее

В процессе PPP авторизации между легитимным клиентом и сервером вырабатывается общий секрет, который невозможно получить прослушивая PPP соединение. Т.е. нарушитель этот секрет знать не может. Нарушитель также не может заставить клиента подписать SSTP сообщение, т.к. клиент считает, что устанавливал незащищённое PPP соединение и про SSTP соединение ничего не знает.


Порядок установления соединения

1. Клиентом устанавливается TCP соединение на 443-ий порт SSTP сервера.
2. Проходит установление SSL/TLS соединения поверх TCP соединения. Клиент проверяет сертификат сервера.
3. Проходит HTTPS приветствие.
4. Начинается установление SSTP соединения. Все SSTP пакеты идут внутри HTTPS. Клиент посылает запрос на установление соединения (Call Connect Request message). В этом сообщении передаётся номер протокола, который будет использоваться внутри SSTP; в текущей версии стандарта это всегда PPP.
5. Сервер проверяет запрос и, если всё ОК, отвечает на него подтверждением (Call Connect Acknowledge message), в котором сообщает 32-битное случайное число (ClientNonce), используемое в следующем ответе клиента для защиты от повторения, а так же список хэш-функций для подписи следующего ответа (SHA1 и/или SHA256).
6. Происходит PPP авторизация. Все пакеты PPP вложены в SSTP пакеты и, соответственно, зашифрованы SSL.
7. Клиент посылает Call Connected message, в которое включаются ClientNonce и Хэш сертификата сервера (ClientCertificateHash), полученного при установлении SSL соединения.
Это сообщение подписывается с помощью указанной сервером хэш-функции (точнее HMAC на её основе) и ключа, полученного в процессе PPP авторизации. Таким образом осуществляется cryptographic binding. Если для авторизации в PPP используется протокол, не поддерживающий генерацию ключей для MPPE (PAP или CHAP), то HMAC вычисляется с использованием ключа, равного нулю; т. е. фактически cryptographic binding не производится и описанная выше атака человек посередине возможна.
8. Сервер проверяет Call Connected message, на этом SSTP считается установленным.
9. Заканчивается установление параметров PPP.
Всё, соединение установлено. Дальше стороны обмениваются пакетами с данными.
Обрыв соединения

Что бы отличить простой канала от разрыва связи стороны «пингуют» друг друга. Если в течение 60 секунд обмена пакетами не было, посылается Echo Request (управляющий пакет протокола SSTP). Если в течение следующих 60 секунд нет ответа, соединение разрывается.
Завершение соединения

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

Подробное описание протокола.
Очень краткое описание протокола.

habr.com

Выбираем протокол VPN | Windows IT Pro/RE

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

VPN создает защищенный канал связи через Internet между компьютером удаленного пользователя и частной сетью его организации. Если представить Internet в виде трубы, то VPN создает внутри нее трубу меньшего диаметра, доступную только для пользователей организации. VPN обеспечивает пользователю защищенный доступ к его частной сети практически через любой тип соединения с Internet. Наличие IP-сети между клиентом и сервером VPN является единственным требованием для реализации Microsoft VPN. Достаточно, чтобы и клиент и сервер были подключены к Internet.

Технология VPN позволяет компаниям избежать расходов на организацию или аренду прямых соединений: например, каналов E1, ISDN, frame relay, а также на содержание собственных модемных пулов. Взамен всего этого можно использовать имеющийся у компании канал в Internet. Лишь небольшие административные затраты требуются для соединения расположенных в любых точках планеты офисов компании при помощи защищенного канала. Организация виртуальных частных сетей является сегодня одним из самых актуальных направлений в области сетевых технологий. Специалисты Microsoft проделали большую работу, чтобы облегчить реализацию виртуальных частных сетей в Windows 2000.

Опора на PPP

В чем сходство и различие между 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

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. С ним можно связаться по адресу: [email protected].

Поделитесь материалом с коллегами и друзьями

www.osp.ru

Не совсем обычное VPN соединение обычными средствами / Habr

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

Здесь мы будем говорить о двух сетях, которые нужно объединить, одну из которых я буду называть «моя офисная сеть», а другую «удалённая сеть».
Системный администратор удалённой сети отказывается вносить наименьшие изменения, для подключения и единственное что можно сделать — это поместить своё оборудование в удалённой сети. Выход в интернет из этой сетиv4 производится через шлюз, который натит в мир. Нужно построить тоннель, между двумя офисами, чтобы узлы моей офисной сети могли получать доступ к узлам удалённой сети, при минимальных изменениях c обеих сторон.

Для выполнения задачи объединения двух сетей и построения виртуального тоннеля нужно использовать Virtual Private Network. В ходе поиска подходящего варианта подключения, для себя разделил VPN на два вида: клиент-серверный вариант и равноправный. В следующих моментах заключается принципиальное отличие:

  • В равноправном VPN, использующем глобальную сеть интернет, нужно иметь один реальный IP адрес, для каждого из узлов (минимум 2-ва узла). Здесь соединение может быть инициировано каждой из сторон (именно поэтому я так и обозвал его, равноправный), их может быть больше двух.
  • В клиент-серверном варианте, использующем глобальную сеть интернет, нужен только один реальный IP адрес, для сервера. Соединение здесь происходит по требованию клиента, сервер всегда ожидает, клиентов может быть больше одного.

Примечание1: В обоих вариантах должно соблюдается одно из условий (для клиент-серверного варианта, только для сервера):
  • A. VPN peer, должен находится непосредственно на шлюзе (должно быть установлено дополнительное ПО, или устройство должно быть способно устанавливать нужный тип VPN соединений).
  • B. Если же нет возможности запустить VPN peer непосредственно на шлюзе, нужно его сконфигурировать так, чтобы он смог пропускать порт на другое устройство, настроенное как VPN peer.


Примеры VPN протоколов:

Клиент-серверный VPN:

  • PPTP;
  • L2TP;
  • OpenVPN;
  • PPPoE;

Равноправный VPN:

Таким образом, становится очевиден выбор варианта — Клиент-серверный VPN. Так как менять со стороны клиента ничего не нужно в этом варианте.
Какой же из клиент-серверных вариантов выбрать?

И первое что приходит на ум — старый добрый PPTP. Недостатков в плане безопасности у него полно, хотя существуют его более продвинутые, новые, версии. Не смотря на огрехи в плане безопасности, у PPTP есть ещё одна очень не приятная особенность — это протокол GRE, используемый PPTP клиентом для установления соединения с сервером. В случае установки связи по схеме указанной в Примечании1.B оборудование которое производит перенаправление порта (Port Forwarding) должно уметь пропускать соединение по протоколу PPTP (Часто расположен в секции Application Level Gateway) через себя (Функция часто называется pass through PPTP, что с английского так и переводится пропустить PPTP через себя). Это связано с особенностями протокола и тем, что изначально PPTP не был рассчитан на работу через NAT. Если такой функции нет, то в этой схеме VPN канал установлен не будет по той простой причине, что сервер не увидит входящего запроса на соединение.
PPPoE, L2TP и PPTP использует далёкие от совершенства протоколы авторизации pap, chap, mscap1 и mscap2.

К счастью протокол OpenVPN лишен большинства выше перечисленных недостатков, не использует протокол GRE и был специально разработан с учётом особенностей сетей использующих NAT.
Немного об Open VPN: Работает на порту 1194, может использовать как TCP так и UDP протоколы. Протокол уровня приложения, по модели OSI.
Таким образом, выбор из этих протоколов стал тоже очевиден — OpenVPN. Конечно же, он не идеален и не панацея, но для этого случая подойдёт наилучшим образом.

Немного подрезюмируем.

Будем использовать OpenVPN сервер со стороны моей офисной сети (где я могу что-то менять, по большому счёту могу всё менять, просто не хочу) будет сервер, а со стороны удалённой сети будет клиент. Для того, чтобы сильно не менять схему своей офисной сети, в которой фаервол является аппаратным устройством (и у которого нет встроенного OpenVPN сервера), нужно поставить за ним устройство с OpenVPN сервером и пробросить на него порт 1194.
Теперь мы представляем, как будет устанавливаться связь между клиентом и сервером, но как узлы сети моего офиса смогут видеть узлы удалённой сети?
Чтобы не вносить изменения в маршруизаторы удалённой сети будем скрывать сеть моего офиса НАТом. Со стороны моего офиса, на маршрутизаторе, запишем маршрут, к удалённой сети через ВПН тоннель.
Недостатком маскирования, в данном случае, может стать, не возможность получения доступа узлов удалённой сети к узлам моего офиса, что в данном случае, скорее, преимущество.
Созревшая схема.

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

На прокси-сервере 192.168.0.1-192.168.100.3 были добавлены маршруты:
Route 10.0.0.0/8 192.168.100.2
Route 192.168.1.0/30 192.168.100.2

Здесь мы заворачиваем все пакеты, адресованные сети 192.168.1.0/30 и 10.0.0.0/8 на маршрутизатор 192.168.100.2-192.168.1.1. На этом же маршрутизаторе работает OpenVPN Server. Все пакеты по умолчанию пересылаются в интернет через шлюз 192.168.100.1-Real_1, а для сети 10.0.0.0/8 пересылаются через виртуальный канал, построенный в сети интернет на OpenVPN Client 192.168.1.2-10.1.1.2.

Для нормальной работы OpenVPN Server’а на шлюзе 192.168.100.1-Real_1 проброшен на него порт 1194.
На OpenVPN Client’е прописан адрес из удалённой подсети 10.1.1.2. Шлюз по умолчанию для него 10.1.1.1. Клиент устанавливает связь в интернет через реальный IP адрес Real_1. Для сети 192.168.100.0/24 прописан маршрут через 192.168.1.1-192.168.100.2 для того чтобы пакеты пришедшие из моего офиса благополучно вернулись обратно. Здесь же, на клиенте, установлено правило в файерволе (таблица NAT): пакеты, пришедшие из сети 192.168.100.0/24, маскируются (masquerading) под адрес из этой подсети (10.1.1.2).

Теоретическая проверка прохождения пакетов

Так пакеты из моей сети будут попадать в удалённую сеть и обратно в соответствии с правилами:
Пакеты, посланные узлом 192.168.0.123 из моего офиса в удалённую сеть 10.0.0.0/8 на узел 10.0.0.123 будут замаскированы шлюзом 192.168.0.1-192.168.100.3 под адрес 192.168.100.3 и по правилу направятся в маршрутизатор 192.168.100.2-192.168.1.1, откуда они перенаправятся через адрес 192.168.1.1 на адрес маршрутизатора 192.168.1.2-10.1.1.2, где они снова будут замаскированы под адрес 10.1.1.2, откуда благополучно дойдут до адресата 10.0.0.123. Адрес 10.0.0.123 пошлёт ответ 10.1.1.2-192.168.1.2, который отошлёт ответ с адреса 192.168.1.2 на адрес 192.168.1.1-192.168.100.2, который вернёт пакет с адреса 192.168.100.2 серверу 192.168.100.3-192.168.0.1, который передаст пакет обратно 192.168.0.123 с адреса 192.168.0.1.
Эта подробная процедура прослеживания прохождения пакетов понадобилась для того чтобы удостоверится, что все настройки были сделаны правильно и ничего не было пропущено.
Какое оборудование выбрать в качестве OpenVPN сервера и клиента?

Можно использовать обычный компьютер с установленной системой *nix и пакетом ПО OpenVPN.
А можно использовать специализированное оборудование. Так сложилось, что у меня были два Mikrotik RB450.
Настройка RB450 или почему я не тестировал PPTP.

Дело в том, что первый раз я пытался тестировать всё на PPTP, но клиент не мог установить связь с сервером, хотя с компьютера под Windows установить связь было возможно.
Обновление Mikrotik RB450 с версии 3.22 на 4.20:

Только с версии 3.25 или выше можно обновляться до 4.20, так написано на официальном сайте www.mikrotik.com/download.html#2.php.
Поэтому в разделе загрузки выбираем нашу систему, а в разделе Software выбираем Legacy. Здесь я выбрал последний релиз 3.30, который без лишних вопросов ставится поверх 3.22:
Делал по аналогии со статьей www.asp24antenna.com.ua/obnovlenie-s-328-os-na-routeros-40.
Открываем WinBOX заходим в files, перетягиваем туда файл прошивки 3.30, перезагружаемся и ждём двойного пика — всё прошивка уже стоит. Потом заходим в System>License и жмём обновить (роутер должен быть в это время подключён к сети интернет с настроенным DNS). После обновления снова скачиваем только уже новую прошивку и кидаем её в роутер, перезагружаемся — всё у нас самая новая прошивка! Провозился с обновлением обоих микротиков RB450 с версии 3.22 на 3.30 а потом на 4.20, но это не помогло и никак не исправило ситуации с PPTP 🙁
Решил строить сразу на OpenVPN.

По руководству этой стати wiki.mikrotik.com/wiki/OpenVPN я создал сертификаты и импортировал их. За подробностями обращайтесь к указанной статье. Опишу только ключевые моменты или те, которые вызывали трудности.
Создал аккаунт на CAcert.org, хотя это вовсе не обязательно, можно выдать самоподписанный сертификат.
На роутере, который будет OpenVPN server’ом, выполняем команды:

/certificate create-certificate-request
#Обязательно заполнить следующие поля:
passphrase:
(Your name) common name:

#Мы получим два файла
certificate-request.pem
private-key.pem

Открываем файл certificate-request.pem копируем его содержимое (скопировать на компьютер, к примеру, по FTP или перетяните на рабочий стол из WinBOX’а) и вставляем в форму на сайте CAcert.org (нужна регистрация) Server Certificates>New, полученный ответ копируем в файл certificate-response.pem (нужно залить на OpenVPN server).
Теперь импортируем сертификаты в WinBOX:

System> Certificates> Import
сначала добавим certificate-response.pem
потом private-key.pem

После чего у добавляемого сертификата появится пометка KR. Если вместо неё вы видите QR, импортируйте private-key.pem ещё раз (мне помогло).
Теперь приступаем к созданию сервера (не забудьте поменять под свои нужды):

/ interface ethernet
set ether1 name="ether1"
#Этого можно и не делать

/ interface bridge
add name=»lan» arp=proxy-arp
#Внимание, этот аргумент важен arp=proxy-arp!

/ interface bridge port
add interface=ether1 bridge=lan

/ ip address
add address=192.168.1.1/24 interface=lan
#Это адрес сервера

/ ip pool
add name=»ovpn-pool» ranges=192.168.1.2-192.168.1.2
#В пуле будет только один адрес.

/ ppp profile
add name=»ovpn-profile» local-address=192.168.1.1 remote-address=ovpn-pool use-encryption=yes only-one=yes change-tcp-mss=default
#Странно, но это создается в / ppp %)

/interface ovpn-server server
set enabled=yes auth=sha1 netmask=24 certificate=cert1 max-mtu=1500 port=1194 cipher=aes256 keepalive-timeout=60 mode=ip require-client-certificate=no default-profile=ovpn-profile
#Настраиваем наш сервер на необходимый уровень безопасности
#Важно выбрать mode=ip !

/ ppp secret
add name=»user-1″ service=pptp password=»123456″ profile=ovpn-profile
#Обязательно указывайте имя пользователя и пароль в кавычках!

На роутере, который будет OpenVPN Client’ом выполняем:

/interface ovpn-client
add name="ovpn-out1" connect-to=Real_1 port=1194 mode=ip user="user-1" password="123456" profile=default certificate=none cipher=aes256 add-default-route=no
#Вместо Real_1 поставьте реальный IP вашего OpenVPN сервера.
#Имя пользователя и пароль указываем в кавычках!
#Важно выбрать mode=ip !

/ip firewall nat
chain=srcnat out-interface=ether1 src-address=192.168.100.0/24 action=masquerade
#Маскируем адреса пришедшие с 192.168.100.0/24
#На этом всё 🙂

Лирическое отступление

Интересно отметить, что, теоретически, есть возможность установки ВПН соединения, не имея ни одного реального IP адреса. Аналог такого соединения – устанавливаемое голосовыми интернет месагерами типа скайп. Суть такого соединения состоит в том, что есть несколько узлов и один сервер. Каждый узел соединён с сервером, но когда узел1 хочет установить сеанс связи с узлом2, он запрашивает параметры установленного соединения на сервер узла2, у сервера, после чего «вклинится» вместо сервера, до разрыва установленного соединения и установит его напрямую. Это реализуется при помощи протокола SIP (Session Initiation Protocol). Именно по этому сервера Скайп не загружены промежуточным трафиком, генерируемым клиентами. Результат таких изысканий установки соединения ВПН тоннеля используя SIP контроль привёл по ссылке www.ietf.org/mail-archive/web/sipping/current/msg10092.html. К сожалению, широкого распространения эта идея не приобрела, не смотря на то, что существуют наброски VPN-SIP от IETF и также существует описание от ETSI TS 185 010 V2.1.1 (2009-07) (Нужно ввести «TS 185 010» и быть зарегистрированным членом ETSI чтобы прочесть документ).

Пример установки VPN соединения, используя SIP контроль:

Рис.1 Удалённый доступ к домашней сети.

Всё же существуют закрытые, программы с аналогичным функционалом, такие как Hamachi, Teamviewer, которые, вполне возможно, используют именно эту идею.
Только представьте, как преобразился бы мир, если бы он имел распространенный и стандартизированный протокол, по которому можно было бы установить VPN соединение, используя SIP контроль!

habr.com

Ваш комментарий будет первым

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *