Найти в Дзене
КиберБез инструктаж

VPN для новичков: Понимание виртуальных частных сетей

VPN (виртуальная частная сеть) — это общее название для технологий, которые позволяют устанавливать одно или несколько сетевых соединений поверх других сетей. Хотя для передачи данных используются сети с низким или неопределённым уровнем доверия (например, публичные сети), уровень доверия к созданной логической сети не зависит от надёжности базовых сетей. Это достигается благодаря применению криптографических методов, таких как шифрование, аутентификация, инфраструктура открытых ключей и механизмы защиты от повторов и изменений сообщений, передаваемых по логической сети. В зависимости от используемых протоколов и целей, VPN может обеспечивать три типа соединений: узел-узел, узел-сеть и сеть-сеть. Начнём с основных аспектов VPN. Существует множество сценариев использования VPN, среди которых наиболее распространённые: Для реализации этих сценариев используются различные виды VPN-протоколов, которые обеспечивают связь, шифрование трафика и другие функции. На основе подходящего протокола
Оглавление

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

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

Начнём с основных аспектов VPN.

Существует множество сценариев использования VPN, среди которых наиболее распространённые:

  1. Создание защищённого канала связи между двумя или несколькими удалёнными сегментами сети (например, между офисами в Москве и Нижнем Новгороде).
  2. Подключение удалённых сотрудников к корпоративной сети (это уже известно почти каждому офисному работнику).
  3. Виртуальное изменение местоположения с помощью услуг VPN-провайдеров (это требует минимальных усилий для настройки, но весь ваш трафик будет проходить через сервер третьей стороны).

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

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

PPTP
Point-to-Point Tunneling Protocol (PPTP) — один из самых старых VPN-протоколов, который продолжает использоваться и сегодня. Он был разработан компанией Microsoft. В настоящее время PPTP считается устаревшим, и Microsoft рекомендует использовать более современные VPN-решения.

SSTP
Secure Socket Tunneling Protocol (SSTP) — это проприетарный продукт от Microsoft. Хотя SSTP, как и PPTP, не получил широкого распространения в индустрии VPN, у него нет серьёзных проблем с безопасностью, которые были выявлены у PPTP. SSTP передаёт трафик по SSL через TCP-порт 443, что делает его полезным в условиях ограниченного доступа к сети, например, если вам нужен VPN для работы в Китае. Хотя SSTP также доступен на Linux, RouterOS и SEIL, в основном он используется на Windows-системах.

SSTP (Secure Socket Tunneling Protocol) использует SSL (Secure Sockets Layer) для шифрования данных и передаёт трафик через TCP-порт 443. Этот порт обычно используется для HTTPS-соединений, что делает его менее заметным для систем фильтрации и блокировки, которые могут быть установлены в некоторых странах, таких как Китай.
В условиях ограниченного доступа к сети, когда многие VPN-протоколы могут быть заблокированы, использование SSTP через порт 443 позволяет обойти такие ограничения. Поскольку трафик SSTP выглядит как обычный HTTPS-трафик, он может проходить через брандмауэры и другие системы безопасности, которые не позволяют VPN-соединениям использовать другие порты. Это делает SSTP особенно полезным для пользователей, которым необходимо подключаться к VPN в странах с жесткими интернет-цензурой.

IPsec

Internet Protocol Security (IPsec) — это набор протоколов, предназначенных для защиты данных, передаваемых по IP-сетям. В отличие от SSL, который функционирует на прикладном уровне, IPsec работает на сетевом уровне и может быть использован нативно во многих операционных системах, что позволяет обойтись без сторонних приложений (в отличие от OpenVPN).

IPsec стал очень популярным протоколом, особенно в сочетании с L2TP или IKEv2, о чём мы поговорим далее.

IPsec шифрует весь IP-пакет, используя следующие механизмы:

  • Authentication Header (AH), который добавляет цифровую подпись к каждому пакету;
  • Encapsulating Security Protocol (ESP), который обеспечивает конфиденциальность, целостность и аутентификацию пакета во время передачи.

IPsec отвечает за шифрование данных, но сам по себе он не создает туннель. Для создания туннеля обычно используются другие протоколы, такие как L2TP (Layer 2 Tunneling Protocol) или IKEv2 (Internet Key Exchange version 2), которые работают в сочетании с IPsec.

Таким образом, L2TP или IKEv2 создают туннель, а IPsec обеспечивает защиту данных, передаваемых через этот туннель, шифруя их и обеспечивая их целостность и аутентификацию. Это позволяет создать безопасное соединение между двумя узлами в сети.

Теперь мы рассмотрим, как IPsec используется в паре с L2TP и IKEv2.

L2TP/IPsec

Layer 2 Tunneling Protocol (L2TP) был впервые представлен в 1999 году как обновление для протоколов L2F (разработанный Cisco) и PPTP (разработанный Microsoft). Поскольку L2TP сам по себе не обеспечивает шифрование или аутентификацию, его часто используют в сочетании с IPsec. L2TP/IPsec поддерживается многими операционными системами и стандартизирован в RFC 3193.

L2TP/IPsec считается безопасным и не имеет серьёзных выявленных уязвимостей, что делает его гораздо более надёжным по сравнению с PPTP. Протокол может использовать шифрование 3DES или AES, хотя 3DES в настоящее время считается устаревшим и редко применяется.

Однако у L2TP могут возникать проблемы из-за использования UDP-порта 500 по умолчанию, который иногда блокируется определёнными брандмауэрами.

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

IKEv2/IPsec

Internet Key Exchange version 2 (IKEv2) — это протокол, используемый в IPsec для выполнения взаимной аутентификации, создания и управления Security Associations (SA). Он стандартизирован в RFC 7296. IKEv2 обеспечивает такой же уровень защиты, как и L2TP, что свидетельствует о схожести их безопасности. Хотя IKEv2 был разработан Microsoft в сотрудничестве с Cisco, существуют и реализации протокола с открытым исходным кодом, такие как OpenIKEv2, Openswan и strongSwan.

Благодаря поддержке Mobility and Multi-homing Protocol (MOBIKE) IKEv2 демонстрирует высокую устойчивость к смене сетей. Это делает его отличным выбором для пользователей смартфонов, которые часто переключаются между домашним Wi-Fi и мобильным интернетом или перемещаются между различными точками доступа.

IKEv2/IPsec может использовать различные криптографические алгоритмы, включая AES, Blowfish и Camellia, в том числе с 256-битными ключами.

Кроме того, IKEv2 поддерживает Perfect Forward Secrecy, что добавляет дополнительный уровень безопасности.

OpenVPN

OpenVPN — это универсальный протокол VPN с открытым исходным кодом, разработанный компанией OpenVPN Technologies. На сегодняшний день это, пожалуй, самый популярный протокол VPN. Будучи открытым стандартом, он прошел не одну независимую экспертизу безопасности. Для работы OpenVPN нужно специальное клиентское программное обеспечение, а не то, которое работает из коробки. Большинство VPN-сервисов создают свои приложения для работы с OpenVPN, которые можно использовать в разных операционных системах и устройствах. Протокол может работать на любом из портов TCP и UPD и может использоваться на всех основных платформах через сторонние клиенты: Windows, Mac OS, Linux, Apple iOS, Android. Но если он не подходит для вашей ситуации, стоит обратить внимание на альтернативные решения.

В сравнении например с L2TP/IPsec у OpenVPN:

  1. L2TP/IPsec:L2TP (Layer 2 Tunneling Protocol): отвечает за создание туннеля. Он сам по себе не обеспечивает шифрование, поэтому обычно используется в сочетании с IPsec.
    IPsec (Internet Protocol Security): обеспечивает шифрование и аутентификацию данных, передаваемых через туннель, созданный L2TP.
  2. OpenVPN:OpenVPN: отвечает как за создание туннеля, так и за шифрование. Он использует библиотеку OpenSSL для обеспечения шифрования и аутентификации. OpenVPN может использовать различные алгоритмы шифрования и протоколы для обеспечения безопасности соединения.

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

WireGuard

WireGuard — это самый новый и менее изученный протокол VPN. Разработчики позиционируют его как замену IPsec и OpenVPN для большинства сценариев использования, при этом он более безопасен, производителен и прост в настройке.

Все IP-пакеты, поступающие на интерфейс WireGuard, инкапсулируются в UDP и безопасно передаются другим узлам. WireGuard использует современные криптографические методы:

  • Curve25519 для обмена ключами,
  • ChaCha20 для шифрования,
  • Poly1305 для аутентификации данных,
  • SipHash для хеширования ключей,
  • BLAKE2 для хеширования.

Код WireGuard значительно меньше и проще, чем код OpenVPN, что облегчает его анализ на наличие уязвимостей (около 4000 строк кода против нескольких сотен тысяч). Многие пользователи отмечают, что его легче развернуть и настроить.

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

Ключевые отличия

  1. Архитектура:IKEv2: Объединяет управление соединением и обмен ключами в одном протоколе, что упрощает процесс установки и управления VPN-соединением.

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


L2TP: Это протокол туннелирования, который требует дополнительного протокола (обычно IPsec) для обеспечения безопасности. L2TP сам по себе не шифрует данные.

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


OpenVPN: Это протокол, который также объединяет управление соединением и шифрование в одном решении. Он использует библиотеку OpenSSL для шифрования и аутентификации.

  1. Безопасность:IKEv2: Обеспечивает шифрование и аутентификацию в рамках одного протокола, что делает его безопасным и эффективным.
    L2TP: Не обеспечивает шифрования сам по себе и зависит от IPsec для этой функции, что может усложнить настройку.
    OpenVPN: Использует OpenSSL для шифрования и поддерживает различные алгоритмы шифрования и аутентификации, что делает его очень гибким и безопасным.
  2. Производительность и восстановление:IKEv2: Предлагает более быструю переаутентификацию и восстановление соединения, что делает его более подходящим для мобильных устройств и переменных сетевых условий.
    L2TP: Может быть менее эффективным в управлении соединениями и восстановлении после разрывов, особенно если используется в сочетании с IPsec.
    OpenVPN: Обеспечивает хорошую производительность и гибкость, поддерживая как UDP, так и TCP, что позволяет адаптироваться к различным сетевым условиям.
  3. Гибкость аутентификации:IKEv2: Поддерживает более широкий спектр методов аутентификации, включая EAP (Extensible Authentication Protocol), что делает его более универсальным.
    L2TP: Ограничен методами аутентификации на уровне PPP, что может быть менее гибким.
    OpenVPN: Поддерживает различные методы аутентификации, включая сертификаты, предварительно разделенные ключи и аутентификацию на основе пользователей, что делает его очень гибким.
  4. Настройка и использование:IKEv2: Обычно встроен в современные операционные системы, что упрощает его использование, но может требовать более сложной настройки для некоторых методов аутентификации.
    L2TP: Часто встроен в операционные системы, но требует настройки IPsec, что может усложнить процесс.
    OpenVPN: Требует установки клиентского программного обеспечения и настройки конфигурационных файлов, что может быть более сложным для некоторых пользователей, но предоставляет большую гибкость в настройке.

Общий вывод

В целом, IKEv2 и OpenVPN считаются более современными и эффективными решениями для создания защищенных VPN-соединений по сравнению с L2TP/IPsec. IKEv2 предлагает отличную производительность и поддержку мобильных устройств, в то время как OpenVPN обеспечивает высокую гибкость и безопасность благодаря использованию OpenSSL. L2TP, хотя и может быть полезен в некоторых сценариях, часто считается менее предпочтительным вариантом из-за своей зависимости от IPsec для шифрования и ограниченной гибкости.

Пример:

1. Структура пакета

L2TP/IPsec

-2

IKEv2/IPsec

-3

OPENVPN

-4

Ключевые различия между OpenVPN, L2TP/IPsec и IKEv2/IPsec

-5