Немного о VPN: Краткий обзор программных реализаций

Опубликовано Avatar - пт, 09/02/2016 - 10:10

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

Прежде чем перейти к сравнению, обозначим круг задач, которые решает VPN:

  • Адресация пакетов, предназначенных конкретным клиентам.
  • Эффективное и в то же время не слишком жадное до ресурсов шифрование «на лету», исключающее прохождение информации в открытом виде.
  • Аутентификация участников при подключении к сети и проверка источников данных для защиты сети от попадания в нее несанкционированных узлов и пакетов.

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

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

Мы будем оценивать гибкость, безопасность, скорость и стабильность работы следующих реализаций:

  • PPTP (Point-to-Point tunneling protocol),
  • IPSec (IP Security),
  • L2TP (Layer 2 Tunneling Protocol) и L2TP+IPSec,
  • OpenVPN,
  • SSTP (Secure Socket Tunneling Protocol).

PPTP (POINT-TO-POINT TUNNELING PROTOCOL)

PPTP был создан корпорацией Microsoft и выпущен еще в далеком 1999 году, но, несмотря на солидный возраст, применяется по сей день. Он использует TCP для установления соединения и протокол MPPE (от той же Microsoft) для шифрования передаваемых данных. Аутентификация клиентов, как правило, обеспечивается механизмом MS-CHAPv2.

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

А вот с точки зрения безопасности PPTP себя скомпрометировал – на сегодняшний день в нем обнаружено большое количество уязвимостей как в устройстве протокола MMPE (например изменение исходящего потока RC4), так и в элементе аутентификации MS-CHAP (в 2012 году даже появился онлайн-сервис, подбирающий ключ MS-CHAPv2 за 23 часа). Несмотря на то что последняя проблема решается сменой механизма аутентификации с MS-CHAP на PEAP, сама компания Microsoft теперь рекомендует использовать L2TP или SSTP.

IPSEC (IP SECURITY)

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

При создании VPN-сетей транспортный режим IPsec используется в связке с другими реализациями (обычно L2TP), туннельный же сам по себе является методом создания VPN-туннеля.

Шифрование соединения IPsec обеспечивается такими протоколами и алгоритмами, как IKE (Internet Key Exchange Protocol), ISAKMP (Internet Security Association and Key Management Protocol), AH (Authentication Header Protocol), STS(Station-to-Station protocol), SHA-1 (Security Hash Algorithm) и др.

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

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

Однако и здесь не обошлось без уязвимостей. Известно, что при работе в транспортном режиме эта реализация может подвергаться атакам, направленным на протокол ISAKMP. Помимо этого, при работе IPsec без заголовков AH, злоумышленник может совершить инъекцию собственных данных в передаваемые пакеты, что, разумеется, будет иметь неблагоприятные последствия для получателя. Также известен способ атаки, при котором подменяется маршрут передачи пакетов. Более того, существует эксплойт, позволяющий расшифровать трафик IPsec через уязвимость в IKE.

L2TP (LAYER 2 TUNNELING PROTOCOL)

L2TP – это протокол туннелирования для виртуальных частных сетей. Представляет собой симбиоз протокола L2F (Layer 2 Forwarding) от компании Cisco и описанного выше PPTP. Позволяет создавать VPN-сети с разграничением прав доступа, но имеет один недостаток – не шифрует трафик.

Он берет на себя ответственность за конфиденциальность и целостность L2TP-пакетов внутри туннеля и при этом требует обеспечения шифрования для всего проходящего через него трафика на пакетном уровне. Для этой задачи, как правило, используется IPsec.

L2TP/IPsec присутствует во всех современных ОС и легко настраивается со стороны клиента. Однако стоит помнить, что L2TP использует порт UDP 500, который иногда блокируется, если вы находитесь за NAT. В связи с этим может потребоваться дополнительная настройка брандмауэра или роутера (переадресация портов), которая не требуется для решений, использующих стандартный для HTTPS порт TCP 443.

LT2P/IPsec на данный момент считается весьма безопасным решением при использовании таких алгоритмов шифрования, как AES, но поскольку он инкапсулирует данные дважды, то работает несколько медленнее реализаций, использующих SSL (например OpenVPN или SSTP).

С точки зрения стабильности работы L2TP/IPsec заслуживает отличной оценки. Минусом LT2P/IPsec является то, что он использует почти в два раза больше вычислительных ресурсов процессора для обеспечения двойного инкапсулирования.

SSTP (SECURE SOCKET TUNNELING PROTOCOL)

Протокол безопасного туннелирования сокетов – еще одно детище Microsoft, представленное с выходом Windows Vista. На сегодняшний день в качестве SSTP-сервера может выступать уже не только Windows Server 2008/2012, но и машина под управлением Linux или RouterOS, хотя в последних случаях это решение нельзя назвать полнофункциональным.

Благодаря поддержке SSL v.3 SSTP может работать без конфигурирования маршрутизатора/межсетевого экрана, а интегрированность в Windows упрощает настройку и обеспечивает стабильную работу. Для шифрования используется стойкий AES.

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

OPENVPN

OpenVPN – это относительно молодая (увидела свет в 2002 году) открытая реализация VPN, распространяемая под лицензией GNU GPL. Безопасность разворачиваемых туннелей здесь обеспечивается библиотекой OpenSSL, которая, в свою очередь, предлагает большой ассортимент инструментов шифрования (Blowfish, AES, Camelia, 3DES, CAST). От выбранного алгоритма зависит скорость работы OpenVPN, но, как правило, эта реализация оказывается быстрее и потребляет меньше ресурсов, чем L2TP/IPsec.

Еще один существенный плюс OpenVPN – возможность проходить через NAT и брандмауэр без их дополнительной конфигурации по стандартному для HTTPS порту TCP 443 благодаря SSL/TLS-инкапсуляции. Предусмотрена и работа по протоколу UDP – именно этот вариант устанавливается по умолчанию.

ТCP обеспечивает лучшую надёжность передачи данных, однако имеет большие задержки по сравнению с UDP, который выигрывает в скорости за счёт отсутствия подтверждения доставки пакетов. При использовании же протокола TCP OpenVPN оказывается самой медленной реализацией из представленных.

В OpenVPN также предусматривается инструмент LZO для сжатия данных. Благодаря широким возможностям конфигурации и поддержке большинства ОС OpenVPN стал очень популярным решением. Единственный нюанс – необходимо устанавливать стороннее ПО.

Гибкость OpenVPN может породить лишь одну проблему – сделать конфигурацию весьма утомительной, однако этот вопрос решается подготовкой преднастроенных установочных клиентских пакетов или, например, использованиемOpenVPN Remote Access Server.

Среди наших мануалов вы найдете пошаговые инструкции по базовой настройке OpenVPN-сервера на Ubuntu/Debian,CentOSWindows. Для развертывания виртуальной частной сети вы можете использовать наш облачный VPS-сервер. В этой реализации также предусмотрен ряд дополнительных возможностей безопасности частной сети. Обзор основных из них вы можете найти в нашей базе знаний.

ЗАКЛЮЧЕНИЕ

Подведем небольшой итог по материалам статьи. Протокол PPTP стабилен и прост в использовании, но очень уязвим, поэтому подходит для ситуаций, в которых конфиденциальность туннеля не играет особой роли. Если это важно, то всеми преимуществами PPTP обладает связка L2TP+IPsec, но при этом предлагает значительно более высокий уровень безопасности.

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

Ранее для этих целей, как правило, IPsec использовался в связке с L2TP, но в наши дни ситуация начинает меняться. В целом широкие возможности IPsec позволяют считать его одним из лучших решений для VPN.

L2TP в связке с IPsec хорошо себя показывает и с точки зрения безопасности, и в плане совместимости с популярными ОС. Здесь, правда, может потребоваться дополнительная настройка портов. Второй минус – двойная инкапсуляция, приводящая к замедлению работы туннеля.

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

OpenVPN можно назвать весьма разумным выбором ввиду сбалансированности таких показателей, как скорость (за счет сжатия LZO и работе через UDP по умолчанию), стабильность (особенно при работе через TCP), гибкость конфигурации, кроссплатформенность (наличие клиентских приложений для большинства современных ОС), безопасность (благодаря работе со всеми инструментами библиотеки OpenSSL).

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

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

Более надежным и гибким сценарием видится самостоятельная настройка VPN на физическом или виртуальном сервере (VPS/VDS). Например, вы можете создать виртуальную частную сеть OpenVPN по одной из наших пошаговых инструкций (WindowsLinux), используя облачный VPS/VDS сервер от 1cloud.

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

via


Похожие материалы на сайте:

Не так давно в нашем блоге мы публиковали материал, посвященный обзору программных реализаций VPN, который вызвал достаточно бурное обсуждение. Тогда мы обещали подготовить вторую часть: на этот раз мы взглянем на следующие программные решения для создания виртуальных частных сетей: AnyConnect VPN, OpenConnect VPN, SoftEther VPN, Tinc.

/ фото Dave Crosby CC

 

AnyConnect VPN

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

Например, продукт предоставляет полный сетевой доступ на базе SSL (TLS и DTLS) и IPsec, что позволяет удаленным клиентам устанавливать соединение практически с любым приложением или сетевым ресурсом, потому часто используется организациями для расширения доступа к корпоративным ноутбукам. 

Подключение осуществляется с помощью клиента Cisco AnyConnect Secure Mobility Client, протокола L2TP/IPsec VPN и IPsec VPN. Решение автоматически подстраивает протокол туннелирования с учетом ограничений сети и использует протокол DTLS для оптимизации проходящего трафика, например VoIP или TCP-доступа к приложениям. 

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

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

OpenConnect VPN

OpenConnect – это открытое приложение для подключения к виртуальным частным сетям с реализацией подключений точка-точка, которое изначально было написано в качестве замены проприетарного клиента Cisco AnyConnect SSL VPN. Причиной для разработки послужила серия недостатков, обнаруженных в решении Cisco под Linux: отсутствие поддержки архитектур отличных от i386 (для платформ Linux), отсутствие интеграции с NetworkManager, отсутствие грамотной поддержки форматов пакетов RPM и DEB, невозможность работы в качестве непривилегированного пользователя, закрытость кода и др.

OpenConnect (ocserv) разрабатывался как небольшой, безопасный и быстрый VPN-сервер. Он поддерживает протокол OpenConnect SSL VPN и совместим с клиентами, использующими протокол AnyConnect SSL VPN – при этом применяются стандартные TLS и DTLS протоколы передачи данных. Более того, OpenConnect предоставляет двойной TCP/UDP VPN-канал и умеет работать со стандартными протоколами безопасности IETF. 

Соединение происходит в два этапа. Сперва устанавливается простое HTTPS-соединение, по которому происходит аутентификация пользователя (с помощью сертификата, пароля или SecureID). После аутентификации пользователь получает cookie, используемое для установления VPN-соединения. 

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

SoftEther VPN

Дэйю Нобори (Daiyu Nobori) начал разрабатывать SoftEther VPN, когда начинал свое обучение в Цукубском университете. В 2003 он выпустил первую версию SoftEther, но получил предупреждение от правительства Японии, которое посчитало, что проект подпадает под определение вредоносного ПО из-за своей способности обходить брандмауэры. В результате SoftEther был исключен из общего доступа. 

Через какое-то время – в апреле 2004 – Mitsubishi Materials Corporation предложили Нобори купить SoftEther 1.0 и подписать контракт на 10 лет (с апреля 2004 по апрель 2014), который давал корпорации право на продажу SoftEther и запрещал автору продавать программу самостоятельно. Однако в марте 2013 Нобори начал распространять решение бесплатно, а в январе 2014 года его удалось открыть под лицензией GPLv2.

SoftEther VPN – это еще один мощное и простое решение для организации VPN. SoftEther VPN совместим с современными популярными VPN-продуктами: OpenVPN, L2TP, IPsec, EtherIP, L2TPv3, Cisco VPN Routers и MS-SSTP VPN имеет версии под Windows, Linux, OS X, FreeBSD и Solaris.

Программное обеспечение состоит из сервера, бридж-сервера, клиента, GUI и утилит администрирования. Клиент нужен для подключения одного компьютера к LAN (Remote Access VPN), а бридж-сервер – для соединения двух или более сетей (Site-to-Site VPN). Стоит отметить, что при использовании второго варианта исключается необходимость отдельной настройки параметров подключения для каждого конкретного клиентского устройства – достаточно сконфигурировать по одному VPN-шлюзу со стороны каждой из связываемых сетей. Кстати, мы подготовили небольшое практическое руководство по настройке Site-to-Site VPN – его вы можете найти по ссылке

SoftEther VPN позволяет определить локальный мост между виртуальным хабом и физическим Ethernet-сегментом используя функцию Local Bridge, что дает возможность обмениваться пакетами между физическим адаптером и виртуальным хабом, а это, в свою очередь, разрешает настроить удаленный туннель из дома или с мобильного устройства. Также вы можете установить каскадное соединение между двумя и более удаленными виртуальными хабами, дабы объединить два и более Ethernet-сегментов в одно целое. 

Не стоит забывать и про поддержку средств для обхода межсетевых экранов и систем глубокого инспектирования пакетов, которые несколько лет назад вызвали недовольство у правительства Японии. Для затруднения обнаружения туннеля в SoftEther VPN поддерживается техника закамуфлированного проброса Ethernet поверх HTTPS, при этом на стороне клиента реализуется виртуальный Ethernet-адаптер, а на стороне сервера – виртуальный Ethernet-коммутатор. 

С момента публикации бинарной версии SoftEther VPN Server было зафиксировано более 80 тысяч успешных внедрений сервера, большинство из которых в Японии, США и Китае.
 

Tinc

Tinc – это VPN-демон и один из претендентов на звание самой маленькой и самой простой в настройке VPN-реализации. Проект стартовал достаточно давно, еще в 1998 году, а активная разработка ведется по сей день, но несмотря на это tinc выглядит зрелым продуктом.

Он позволяет соединять компьютеры посредством сетей IPv4/IPv6, работающих под управлением таких ОС, как Linux, BSD, Mac OS X, Solaris, Windows. Кроме того, поддерживается работа на iPhone и iPod. 

Tinc обладает несколькими интересными функциями. Весь трафик опционально сжимается с помощью zlib или lzo, а для шифрования используется LibreSSL или OpenSSL – это позволяет защитить передаваемые данные от изменения. 

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

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

Вместо заключения

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


Более надежным и гибким решением видится самостоятельная настройка виртуальных частных сетей на физических или виртуальных серверах (VPS/VDS). Благо в интернете есть большое количество подробных инструкций. Свой вариант с использованием облачного VPS/VDS-сервера от 1cloud предлагаем и мы (для Windows и для Linux). Такое решение легко масштабируется под текущую нагрузку на виртуальную частную сеть.

 

via