Приветствую Всех!
Этой статьей я планирую начать по мере сил и возможности публикацию материалов посвященных безопасности в сети и начну с VPN. Итак VPN, что это и зачем оно нам надо? Аббревиатура VPN расшифровывается как Virtual Private Network или говоря по русски виртуальная частная сеть, это обобщенное название технологий, позволяющих обеспечить одно или несколько сетевых соединений поверх другой сети, в нашем случае это сеть интернет. В зависимости от применяемых протоколов и назначения, VPN может обеспечивать соединения трёх видов: узел-узел, узел-сеть и сеть-сеть. VPN состоит из двух частей: «внутренняя» сеть, которых может быть несколько, и «внешняя» сеть, по которой проходит инкапсулированное соединение (Инкапсуляция (англ. encapsulation, от лат. en capsula) — в информатике упаковка данных и функций в единый компонент.) . Подключение удалённого пользователя к VPN производится посредством сервера доступа, который подключён как к внутренней, так и к внешней сети. Не стану увлекаться выдержками из векипедии, кому интересна классификация VPN и прочее, инфы более чем достаточно. Перейдём к доступным нам технологиям рассмотрим каждую из них, погнали.
PPTP (Point-to-Point tunneling protocol) был создан корпорацией Microsoft 1999-м году, но используется по сей день. Использует TCP для соединения и протокол MPPE от той же Microsoft для шифрования. Аутентификация клиентов,как правило, обеспечивается механизмом MS-CHAPv2.
Распространенность PPTP VPN связана с простотой настройки и кроссплатформенностью – его поддержка встроена в большинство операционных систем, включая мобильные и роутерные, по умолчанию. Еще одна причина популярности этого решения – минимальная нагрузка на вычислительные ресурсы и, следовательно, высокая скорость работы. Стабильность PPTP также не вызывает сомнений. А вот с точки зрения безопасности PPTP давно скомпрометировал себя. На сегодняшний день в нем обнаружено большое количество уязвимостей, относящихся и к устройству протокола MMPE (напр., изменение исходящего потока RC4), и к элементу аутентификации MS-CHAP (в 2012 году даже появился онлайн-сервис, подбирающий MS-CHAPv2 ключ за 23 часа). Несмотря на то, что последняя проблема решается сменой механизма аутентификации с MS-CHAP на PEAP , сама компания Microsoft теперь рекомендует использовать L2TP или SSTP.
IPSec (IP Security) представляет собой группу протоколов, обеспечивающих конфиденциальность данных, передаваемых через IP-сети, путем проверки их подлинности и целостности, а также шифрования передаваемых пакетов. IPsec может работать в транспортном и туннельном режимах. Если в первом случае шифруются только данные передаваемого пакета, а исходный заголовок сохраняется, то во втором шифруется весь передаваемый трафик, который затем инкапсулируется в поле данных нового IP-пакета. Транспортный режим IPsec применительно к созданию VPN-сетей используется в связке с другими реализациями (обычно L2TP), туннельный же сам по себе является может являться методом создания VPN-туннеля. Отличительной особенностью IPsec, которая несколько отдаляет его от определения VPN является то, что он не создает в системе дополнительный виртуальный сетевой адаптер, а использует стандартный внешний интерфейс. В целом, IPsec является даже не реализацией технологии виртуальных частных сетей, а инструментом защиты от подмены передаваемых IP-пакетов. Развертывание же виртуальных туннелей – скорее «побочное» свойство этого стека протоколов.
IPsec поддерживается всеми современными операционными системами (серверными, настольными, мобильными) а также рядом роутеров, причем при настройке VPN на последних отпадает необходимость каких либо манипуляций на клиентах, находящихся за этими роутерами.
Благодаря вышеописанным характеристикам IPsec считается одним из лучших решений для применения в сетях VPN.
Конечно, и здесь не обошлось без уязвимостей. Известно, что при работе в транспортном режиме IPsec может подвергаться атакам, направленным на протокол ISAKMP. Помимо этого, при работе IPsec без заголовков AH атакующий может совершить инъекцию собственных данных в передаваемые пакеты. Также известен способ атаки, при котором подменяется маршрут передачи пакетов (актуально для транспортного режима IPSec «в чистом виде»). В последнее время стало известно о новом эксплойте , позволяющем расшифровать IPsec-трафик через уязвимость в IKE.
L2TP (Layer 2 Tunneling Protocol) и L2TP+IPSec протокол туннелирования для виртуальных частных сетей представляет собой симбиоз протокола L2F (Layer 2 Forwarding) компании Cisco и описанного выше PPTP. Позволяет создавать VPN-сети с разграничением прав доступа, но имеет один недостаток - не шифрует трафик. Этот протокол берет на себя ответственность за конфиденциальность и целостность L2TP-пакетов внутри туннеля, и при этом требует обеспечения шифрования и аутентификации для всего трафика, проходящего через него, на пакетном уровне. Для этой задачи, как правило, используется IPsec.
Связка L2TP/IPsec также присутствует во всех сегодняшних ОС, и настраивается со стороны клиента не сложнее, чем PPTP. Единственное, что может усложнить конфигурацию – L2TP использует, в том числе UDP-порт 500, который иногда блокируется, если вы находитесь за NAT. Поэтому может потребоваться дополнительная настройка firewall или роутера (переадресация портов), которая не требуется для решений, использующих стандартный для HTTPS порт TCP 443.
LT2P/IPsec на данный момент считается весьма безопасным решением при использовании таких алгоритмов шифрования, как AES. Однако, поскольку он инкапсулирует данные дважды, то работает несколько медленнее реализаций, использующих SSL (напр., OpenVPN или SSTP).
С точки зрения стабильности работы L2TP/IPsec заслуживает отличной оценки.
Минусом LT2P/IPsec является то, что он использует почти в два раза больше ресурсов CPU для обеспечения двойного инкапсулирования.
SSTP (Secure Socket Tunneling Protocol) еще одно детище Microsoft, представленное с выходом Windows Vista. На сегодняшний день в качестве SSTP-сервера может выступать уже не только Windows Server 2008/2012, но и машина под управлением Linux или RouterOS. Но в последних случаях это решение нельзя назвать полнофункциональным. Благодаря поддержке SSL v.3, SSTP может работать без конфигурации маршрутизатора/межсетевого экрана, а интегрированность в Windows упрощает настройку и обеспечивает стабильную работу. Для шифрования используется стойкий AES (до 256 бит шифрование с сертификатами до 2048-бит).
При том, что SSTP имеет множество плюсов и является молодой развивающейся технологией, на данный момент, это решение является действительно подходящим для Windows-сетей – в иных случаях можно столкнуться с ограничениями.
OpenVPN относительно молодая (увидела свет в 2002 году) open-source реализация VPN, распространяемая под лицензией GNU GPL. Безопасность разворачиваемых туннелей здесь обеспечивается библиотекой OpenSSL , которая предлагает большой ассортимент открытых инструментов шифрования (Blowfish, AES, Camelia, 3DES, CAST и т.д.). От выбранного алгоритма зависит и скорость работы OpenVPN. Как правило, эта реализация оказывается быстрее и скромнее в нагрузке на аппратные ресурсы сравнительно с L2TP/IPsec.
Еще один существенный плюс OpenVPN – возможность проходить через NAT и Firewall без их дополнительной конфигурации по стандартному для HTTPS порту TCP 443 благодаря SSL/TLS-инкапсуляции. Предусмотрена и работа по протоколу UDP – именно этот вариант устаановлен в конфигурации по умолчанию. ТCP обеспечивает высокую надёжность передачи данных, однако имеет большие задержки по сравнению с UDP, который выигрывает в скорости за счёт отсутствия подтверждения доставки пакетов. При использовании же протокола TCP OpenVPN оказывается самым медленным участником нашего обзора.
В OpenVPN также используется инструмент LZO для сжатия данных.
Благодаря широким возможностям конфигурации и поддержке большинства ОС, OpenVPN стал очень популярным продуктом. Единственный нюанс – необходимость установки стороннего ПО, хотя и достаточного ненавязчивого. А теперь подведём итоги.
Выбор подходящей реализации VPN зависит от ваших конкретных задач.
Протокол PPTP стабилен и прост в использовании, но в наши дни очень уязвим с точки зрения безопасности, поэтому подходит для ситуаций, в которых конфиденциальность туннеля не играет решающего значения. Хотя и в этом случае все преимущества PPTP можно найти и в IPsec или L2TP+IPsec, будь то кроссплатформенность или порог вхождения в конфигурацию для администратора. При этом, LT2P/IPsec предлагает значительно более высокий уровень безопасности.
IPsec может работать с большим количеством алгоритмов шифрования и аутентификации для VPN, хотя сам по себе является не реализацией технологии виртуальных частных сетей, а стеком протоколов для защиты IP-пакетов при их передаче. При этом IPsec вполне подходит для развертывания VPN, «заточенных» на безопасность. Обычно для этих целей IPsec используется в связке с L2TP, но в последнее время наблюдаются некоторые перемены в этой практике. В целом, широкие возможности IPsec позволяют считать его одним из лучших решений для VPN.
L2TP в связке с IPsec является хорошим решением и с точки зрения безопасности, и в плане совместимости с популярными ОС. Может также потребоваться дополнительная настройка роутера/firewall на разрешение используемых LT2P/IPsec портов (UDP 1701, UDP 4500, UDP 500). Второй минус – двойная инкапсуляция, приводящая к замедлению работы туннеля.
Протокол SSTP удобен в конфигурации, стабилен и достаточно безопасен, но его существенный недостаток лежит в аспекте кроссплатформенности – данная реализация сильно привязана к системам, предлагаемым Microsoft. При работе на альтернативных платформах функциональность SSTP обычно оказывается не такой привлекательной.
OpenVPN можно назвать оптимальным выбором для большинства стандартных пользовательских задач. В этой реализации сбалансированы: скорость, за счет сжатия LZO и возможности работы по протоколу UDP, стабильность, особенно при работе через TCP, гибкость конфигурации, предусмотрены дополнительные опции, например, балансировка нагрузки, различные типы аутентификации, кроссплатформенность, наличие клиентских приложений для большинства современных ОС, в т.ч. мобильных, безопасность благодаря работе со всеми инструментами библиотеки openssl. Сами перечисленные выше широкие возможности порождают и недостаток OpenVPN – первичная конфигурация может оказаться сложнее, чем в случае с другими реализациями. Хотя эта проблема отчасти устраняется возможностью быстро развернуть сервер виртуальной частной сети из стандартной конфигурации, наличием таких решений как OpenVPN Remote Access Server для создания VPN «из коробки», и возможностью сервера передавать существенную часть параметров подключения клиентам без их указания в клиентской конфигурации вручную.
Так или иначе, реализация OpenVPN видится самым сбалансированным решением
Для старта VPN вы можете использовать услуги многочисленных VPN-провайдеров. Но, при таком подходе вы доверяете выбранному провайдеру свои личные данные, ведь большая часть трафика (по крайней мере, открытого) для него прозрачна. Помните об этом друзья мои! VPN это не панацея, а только часть цепочки безопасности, об этом поговорим позже в следующих публикациях, спасибо за внимание!