В прошлой статье мы разобрали как настроить WireGuard VPN, в этой статье поговорим и преимуществах нового протокола ВПН.
Преимущества WireGuard VPN
WireGuard VPN — это новый протокол VPN с открытым исходным кодом, который был разработан в 2016 году и быстро набирает популярность благодаря своим преимуществам.
Быстрота
Использует современные криптографические алгоритмы, которые обеспечивают высокую производительность. Скорость работы WireGuard может быть значительно выше, чем у других VPN-протоколов, таких как OpenVPN и IPSec.
Простота
Имеет очень простую архитектуру и небольшое количество кода, что делает его легким для аудита и поддержки. Также WireGuard использует один протокол для всех функций VPN, что упрощает настройку и управление.
Безопасность
Использует современные криптографические алгоритмы, такие как ChaCha20, Poly1305 и BLAKE2, которые обеспечивают высокую степень безопасности. Кроме того, WireGuard использует открытый исходный код, что позволяет аудитировать его безопасность.
VPN сравнение: OpenVPN, WireGuard, IPSec.
Мобильность
Может легко работать на мобильных устройствах, таких как смартфоны и планшеты. Он также может легко адаптироваться к изменяющимся сетевым условиям, таким как переход от Wi-Fi к мобильной сети и наоборот.
Кроссплатформенность
Работает на большинстве операционных систем, включая Linux, macOS, Windows, iOS и Android. Это делает его легко доступным для широкой аудитории.
Минимальная задержка
Использует протоколы, которые обеспечивают минимальную задержку, что позволяет быстро передавать данные и уменьшить время ожидания.
Экономия трафика
Использует сжатие данных, что позволяет экономить трафик и уменьшить затраты на интернет-трафик.
WireGuard VPN — это быстрый, простой и безопасный протокол VPN, который может быть использован на различных платформах. Он предоставляет удобство использования и превосходную производительность, что делает его привлекательным выбором для многих пользователей.
- VPS/VDS сервер
- VPS/VDS Hi-CPU
- VPS Storage
- VPN WireGuard
- Выделенные сервера
- Выделенные сервера в NL
- Администрирование
Источник: pq.hosting
WireGuard VPNs — новый и усовершенствованный протокол VPN?
Люди все чаще стали интересоваться новейшим протоколом VPN, WireGuard. Buzz — самый простой в использовании, самый безопасный, эффективный и доступный на сегодняшний день. Корпоративные разработчики обращают на это внимание, надеясь построить инфраструктуру бэкэнд на современной платформе, поэтому пришло время познакомиться поближе.
Свой VPN на WireGuard за 5 минут — инструкция как установить на виртуальный сервер
Первоначально технология была выпущена только для операционных систем Linux, но теперь совместима со многими другими платформами, включая Mac; поэтому настало время оценить эту новую технологию и определить, является ли она хорошим решением для потребителей, нуждающихся в защищенной VPN.
Что такое WireGuard?
Сенатор штата Орегон Вайден заявил, что правительствам не следует использовать устаревшие технологии, такие как IPsec и OpenVPN. Он призвал найти им замену, которая была бы более безопасной и WireGuard была одобрена для использования правительственными чиновниками.
WireGuard — это новейшая разработка с открытым исходным кодом, которая ускоряет VPN, делая ее более надежной, чем раньше. Разработчики прямо говорят, что это гораздо лучше, чем протоколы OpenVPN и IPsec.
Этот код создал основатель Edge Security Джейсон А. Доненфельд. Некоторые разработчики предупреждают, что он еще недостаточно стабилен и советуют использовать его в качестве эксперимента в тестовом режиме, пока не будут устранены все уязвимости. Однако и Mullvad, и AzireVPN уже внедрили данное программное обеспечение.
WireGuard, похоже, является будущим протоколов VPN.
Какие отличия есть у WireGuard?
Джейсон Доненфельд не понаслышке знаком с онлайн-безопасностью, работая как с защитными, так и с агрессивными приложениями, которые подтолкнули его к разработке методов экстраполяции маршрутных комплексов, которые скрывали его присутствие в сети.
На протяжении всей своей работы он понимал, что те же методы, используемые для проникновения в сеть, также являются теми, которые и защитили бы ее. WireGuard содержит множество скрытых функций, которые уже интегрированы и обеспечивают надежный туннель VPN, который не использует устаревшие технологии, которые мы имеем на данный момент.
Почему Wireguard такой простой?
Одна из целей Доненфельда заключалась в том, чтобы сохранить все простым, предполагая, что существующие протоколы не внушают доверия из-за их размера; их величина явно была причиной возникновения ошибок.
Создание WireGuard максимально простым, теоретически, должно означать меньшее количество уязвимостей во время использования. Что касается криптографии, WireGuard реализует современные приложения, такие как Curve 25519, ChaCha20, Poly1305 плюс BLAKE2 и SipHash2-4. Отсутствие гибкости шифрования делает его более безопасным.
При использовании на мобильных устройствах WireGuard не передает никаких пакетов, отличных от реальных данных, что сокращает стандартное время коммуникации с VPN, и сокращает объем доступной информации для сниффера пакетов. Кроме того, он продлевает срок службы мобильного аккумулятора.
Протоколы шифрования основных продуктов обычно используют систему OpenVPN. Этот протокол содержит около 120 000 строк кода, что делает его медленным и сложным, а также ему сложно обеспечить должную безопасность. В основе WireGuard лежит криптография, в которой используется менее 4000 строк кода.
Wireguard гарантирует надежное шифрование
Основой этого шифрования служит Crypto essential Routing. Он работает, назначая общедоступные ключи шифрования списку IP-адресов VPN, разрешенных в туннеле. В сетевом интерфейсе разрешен доступ к закрытому ключу и списку IP-адресов; ключи аутентифицируют пользователей с другими пирами.
В конфигурации сервера приложение отправляет пакеты в сеть с исходным IP-адресом, который соответствует списку разрешенных IP-адресов. Каждый раз, когда система решает отправить пакет, он сначала проверяет IP-адрес назначения, чтобы определить его легитимность.
IP-роуминг на обоих концах
Это довольно просто изменить IP-адреса на обоих концах, не нарушая протокол. Пользователи легко переключаются со своего сотового телефона, Wi-Fi или другого соединения, не выполняя никаких дополнительных действий.
Гибкость
Хотя WireGuard оптимизирован для работы в ядре Linux, он адаптируется и под другие платформы. В настоящее время не существует никаких проблем с настройкой конфигураций на Android, macOS или Ubuntu. Также есть переносная пользовательская версия, которая позволяет разработчикам включать некоторые функции VPN для приложений из Play Market без root прав.
Сравнение протоколов
Существует несколько способов создания туннелей VPN типа «точка-точка». Как ваше устройство, так и сервер должны использовать один и тот же протокол для связи; наиболее часто на сегодняшний день используется OpenVPN. Подобная реализация работает на любом устройстве, пока у вас установлено приложение.
IPsec, при совместном использовании с IKEv2 аутентификацией, также популярен. Он хорошо интегрируется с MacOS, iOS, Linux и Windows. Это отличное решение для устройств, которые не позволяют установить любое приложение, которое вы желаете.
PPTP и L2TP являются одними из основных протоколов безопасности, но обладают только 128-битным шифрованием и не гарантируют 100% обход гео-блокировки.
Хотя сначала может показаться, что есть много вариантов и есть из чего выбрать; OpenVPN — это старая технология. Он существует почти 20 лет, работает медленно и не предназначен для использования на мобильных устройствах.
И IPsec, и OpenVPN обладают огромными базами кодов, которые обеспечивают больше места для атаки и их трудно контролировать. Упрощенный код WireGuard контролировать намного легче.
Подключение к WireGuard аналогично использованию удаленного сервера с SSH. Пользователь генерирует набор частных и открытых ключей для обмена с сервером. В отличие от других протоколов, WireGuard полагается исключительно на сеть вашего устройства, которая позволяет ему маршрутизировать трафик через туннель, независимо от того, какое подключение к Интернету вы используете.
При использовании обычной VPN вы должны подключаться к серверу каждый раз при переключении с Wi-Fi на Ethernet и т. д. С помощью WireGuard вы поддерживаете свое соединение, несмотря на необходимость изменения IP-адресов и сетей.
Сравнение скорости
Также вы можете посмотреть на тесты, проведенные при работе с WireGuard, и убедиться, что нет никакого сравнения, если говорить о скорости передачи.
Разница между протоколами WireGuard и IPsec, если сравнивать пропускную способность, колоссальна. Улучшение показателей — это отличное решение для людей, которые не довольны скоростью своего VPN-соединения. Просто представьте себе возможности для потоковой передачи и онлайн-игр.
WireGuard имеет более низкий пинг, чем IPsec, и значительно более низкий по сравнению с OpenVPN.
Заключительные мысли
WireGuard все еще находится в процессе разработки, и, хотя уже имеется много информации, это все еще не завершенный проект. Как только WireGuard будет окончательно доработан, мы не видим причин, по которым он не станет лучшим способом защитить ваш интернет-трафик.
Это так невероятно наблюдать за развитием новых технологий в реальном времени. Пришло время заменить старые алгоритмы безопасности, которую мы использовали, и начать защитить себя по-новому.
Общее и концептуальное описание WireGuard
Что такое WireGuard?
WireGuard® — это чрезвычайно простой, но быстрый и современный VPN, в котором используется самая современная криптография. Он нацелен на то, чтобы быть быстрее, проще, компактнее и полезнее, чем IPsec, избегая при этом огромной головной боли. Он намерен быть значительно более производительным, чем OpenVPN.
WireGuard разработан как VPN общего назначения для работы как на встроенных интерфейсах, так и на суперкомпьютерах, пригодный для многих различных ситуаций. Изначально выпущенный для ядра Linux, теперь он является кроссплатформенным (Windows, macOS, BSD, iOS, Android) и может широко развертываться. В настоящее время он находится в стадии интенсивной разработки, но уже может считаться самым безопасным, простым в использовании и самым простым решением VPN в отрасли.
Простой и легкий в использовании
WireGuard стремится быть таким же простым в настройке и развертывании, как и SSH. VPN-соединение устанавливается путем простого обмена очень простыми открытыми ключами — точно так же, как обмен ключами SSH — а все остальное прозрачно обрабатывается WireGuard. Он даже может перемещаться между IP-адресами, как и Мош. Нет необходимости управлять соединениями, беспокоиться о состоянии, управлять демонами или беспокоиться о том, что находится под капотом. WireGuard представляет собой чрезвычайно простой, но мощный интерфейс.
Криптографически надежный
WireGuard использует современную криптографию, такую как структура протокола Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF и безопасные доверенные конструкции. Он делает консервативный и разумный выбор и был рассмотрен криптографами.
Минимальная возможность атаки
WireGuard был разработан с учетом простоты внедрения и простоты. Он предназначен для того, чтобы его можно было легко реализовать в очень небольшом количестве строк кода и легко проверять на наличие уязвимостей. По сравнению с такими гигантами, как Swan / IPsec или OpenVPN / OpenSSL, в которых аудит гигантских кодовых баз является непосильной задачей даже для больших групп экспертов по безопасности, WireGuard предназначен для всестороннего анализа отдельными лицами.
Высокая производительность
Сочетание чрезвычайно высокоскоростных криптографических примитивов и того факта, что WireGuard находится внутри ядра Linux, означает, что безопасная сеть может быть очень высокоскоростной. Он подходит как для небольших встраиваемых устройств, таких как смартфоны, так и для полностью загруженных магистральных маршрутизаторов.
Хорошо определен и тщательно продуман
WireGuard — это результат длительного и тщательно продуманного академического процесса, результатом которого стал технический документ, академический исследовательский документ, который четко определяет протокол и важные соображения, которые учитывались при каждом решении.
Концептуальный обзор WireGuard
Если вам нужен общий концептуальный обзор того, что такое WireGuard, читайте дальше. Затем вы можете перейти к установке.
WireGuard надежно инкапсулирует IP-пакеты через UDP. Вы добавляете интерфейс WireGuard, настраиваете его, используя свой закрытый ключ и открытые ключи ваших коллег, а затем отправляете через него пакеты. Все вопросы распределения ключей и заданных конфигураций выходят за рамки WireGuard; эти проблемы лучше оставить для других уровней, иначе мы столкнемся с раздуванием IKE или OpenVPN. Напротив, он больше имитирует модель SSH и Mosh; у обеих сторон есть открытые ключи друг друга, а затем они просто могут начать обмен пакетами через интерфейс.
Простой сетевой интерфейс WireGuard
WireGuard работает путем добавления сетевого интерфейса (или нескольких), такого как eth0 или wlan0, который называется wg0 (или wg1, wg2, wg3 и т. д.). Затем этот сетевой интерфейс можно настроить обычным образом, используя ifconfig (8) или ip-address (8), с добавлением и удалением маршрутов для него с помощью route (8) или ip-route (8), и так далее со всеми обычными сетевыми утилитами. Конкретные аспекты интерфейса WireGuard настраиваются с помощью инструмента wg (8). Этот интерфейс действует как туннельный интерфейс.
WireGuard связывает IP-адреса туннелей с открытыми ключами и удаленными конечными точками. Когда интерфейс отправляет пакет одноранговому узлу, он выполняет следующие действия:
- Этот пакет предназначен для 192.168.30.8. Какой это пир? Дай мне посмотреть … Хорошо, это для коллеги ABCDEFGH. (Или, если это не для какого-либо настроенного однорангового узла, отбросить пакет.)
- Зашифровать весь IP-пакет, используя открытый ключ однорангового узла ABCDEFGH.
- Что такое удаленная конечная точка однорангового узла ABCDEFGH? Дайте мне посмотреть … Хорошо, конечная точка — это UDP-порт 53133 на хосте 216.58.211.110.
- Отправить зашифрованные байты с шага 2 через Интернет на 216.58.211.110:53133, используя UDP.
Когда интерфейс получает пакет, происходит следующее:
- Я только что получил пакет от UDP-порта 7361 на хосте 98.139.183.24. Давайте расшифруем это!
- Он правильно расшифрован и аутентифицирован для однорангового LMNOPQRS. Хорошо, давайте вспомним, что последняя конечная точка Интернета однорангового узла LMNOPQRS — 98.139.183.24:7361 с использованием UDP.
- После расшифровки это обычный текстовый пакет с адресом 192.168.43.89. Разрешено ли одноранговому узлу LMNOPQRS отправлять нам пакеты как 192.168.43.89?
- Если да, примите пакет на интерфейсе. Если нет, удалить пакет.
Маршрутизация криптоключей в WireGuard
В основе WireGuard лежит концепция под названием Cryptokey Routing, которая работает путем связывания открытых ключей со списком IP-адресов туннеля, которые разрешены внутри туннеля. Каждый сетевой интерфейс имеет закрытый ключ и список одноранговых узлов. У каждого однорангового узла есть открытый ключ.
Открытые ключи короткие и простые, они используются одноранговыми узлами для аутентификации друг друга. Их можно передавать для использования в файлах конфигурации любым внеполосным методом, аналогично тому, как можно отправить открытый ключ SSH другу для доступа к серверу оболочки.
Например, серверный компьютер может иметь такую конфигурацию:
[Interface] PrivateKey = yAnz5TF+lXXJte14tji3zlMNq+hd2rYUIgJBgB3fBmk= ListenPort = 51820 [Peer] PublicKey = xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg= AllowedIPs = 10.192.122.3/32, 10.192.124.1/24 [Peer] PublicKey = TrMvSoP4jYQlY6RIzBgbssQqY3vxI2Pi+y71lOWWXX0= AllowedIPs = 10.192.122.4/32, 192.168.0.0/16 [Peer] PublicKey = gN65BkIKy1eCE9pP1wdc8ROUtkHLF2PfAqYdyYBz6EA= AllowedIPs = 10.10.10.230/32 And a client computer might have this simpler configuration: [Interface] PrivateKey = gI6EdUSYvn8ugXOt8QQD6Yc+JyiZxIhp3GInSWRfWGE= ListenPort = 21841 [Peer] PublicKey = HIgo9xNzJMWLKASShiTqIybxZ0U3wGLiUeJ1PKf8ykw= Endpoint = 192.95.5.69:51820 AllowedIPs = 0.0.0.0/0
В конфигурации сервера каждый одноранговый узел (клиент) сможет отправлять пакеты на сетевой интерфейс с исходным IP-адресом, соответствующим его списку разрешенных IP-адресов. Например, когда пакет получен сервером от однорангового узла gN65BkIK …, после расшифровки и аутентификации, если его исходный IP-адрес 10.10.10.230, то он разрешен для интерфейса; в противном случае он удаляется.
В конфигурации сервера, когда сетевой интерфейс хочет отправить пакет одноранговому узлу (клиенту), он смотрит на IP-адрес назначения этого пакета и сравнивает его со списком разрешенных IP-адресов каждого однорангового узла, чтобы увидеть, какому одноранговому узлу его отправить. Например, если сетевому интерфейсу предлагается отправить пакет с IP-адресом назначения 10.10.10.230, он зашифрует его с помощью открытого ключа однорангового узла gN65BkIK …, а затем отправит его на последнюю конечную точку Интернета этого однорангового узла.
В конфигурации клиента его единственный одноранговый узел (сервер) сможет отправлять пакеты на сетевой интерфейс с любым исходным IP-адресом (поскольку 0.0.0.0/0 является подстановочным знаком). Например, когда пакет получен от однорангового узла HIgo9xNz …, если он правильно расшифровывает и аутентифицируется, с любым исходным IP-адресом, то он разрешен для интерфейса; в противном случае удаляется.
В конфигурации клиента, когда сетевой интерфейс хочет отправить пакет своему единственному узлу (серверу), он будет шифровать пакеты для одного однорангового узла с любым IP-адресом назначения (поскольку 0.0.0.0/0 является подстановочным знаком). Например, если сетевому интерфейсу предлагается отправить пакет с любым IP-адресом назначения, он зашифрует его, используя открытый ключ единственного однорангового узла HIgo9xNz …, а затем отправит его на последнюю конечную точку Интернета одного однорангового узла.
Другими словами, при отправке пакетов список разрешенных IP-адресов ведет себя как своего рода таблица маршрутизации, а при получении пакетов список разрешенных IP-адресов ведет себя как своего рода список управления доступом.
Это то, что мы называем таблицей маршрутизации Cryptokey: простая ассоциация открытых ключей и разрешенных IP-адресов.
Любая комбинация IPv4 и IPv6 может использоваться для любого поля. WireGuard при необходимости полностью способен инкапсулировать одно внутри другого.
Поскольку все пакеты, отправляемые через интерфейс WireGuard, зашифрованы и аутентифицированы, и поскольку существует такая тесная связь между идентификатором однорангового узла и разрешенным IP-адресом однорангового узла, системным администраторам не нужны сложные расширения брандмауэра, как в случае IPsec, но они могут просто сопоставить «с этого IP-адреса? на этом интерфейсе?» и быть уверенными, что это безопасный и подлинный пакет. Это значительно упрощает управление сетью и контроль доступа, а также дает большую уверенность в том, что ваши правила iptables действительно выполняют то, что вы для них предназначаете.
Встроенный роуминг WireGuard
Конфигурация клиента содержит начальную конечную точку его единственного партнера (сервера), так что он знает, куда отправлять зашифрованные данные, прежде чем он получит зашифрованные данные. Конфигурация сервера не имеет начальных конечных точек своих сверстников (клиентов). Это связано с тем, что сервер обнаруживает конечную точку своих сверстников, исследуя, откуда происходят правильно аутентифицированные данные.
Если сервер сам изменяет свою конечную точку и отправляет данные клиентам, клиенты обнаруживают новую конечную точку сервера и точно так же обновляют конфигурацию. И клиент, и сервер отправляют зашифрованные данные последней конечной IP-точке, для которой они аутентично дешифруют данные. Таким образом, на обоих концах есть полный IP-роуминг.
Готов к использованию в контейнерах
WireGuard отправляет и принимает зашифрованные пакеты, используя пространство имен сети, в котором изначально был создан интерфейс WireGuard. Это означает, что вы можете создать интерфейс WireGuard в своем основном сетевом пространстве имен, которое имеет доступ к Интернету, а затем переместить его в сетевое пространство имен, принадлежащее контейнеру Docker в качестве единственного интерфейса этого контейнера.
Это гарантирует, что единственный возможный способ доступа контейнера к сети — это безопасный зашифрованный туннель WireGuard.
О проекте WireGuard
Исходный код
WireGuard разделен на несколько репозиториев, размещенных в репозитории ZX2C4 Git и в других местах. Проконсультируйтесь со списком репозиториев проекта.
IRC обсуждения
Если у вас возникли проблемы с настройкой WireGuard или его использованием, лучшее место для получения помощи — это канал IRC #wireguard на Freenode. Там же мы обсуждаем задачи развития и планируем будущее проекта.
Список рассылки
Примите участие в обсуждении разработки WireGuard, присоединившись к списку рассылки. Здесь происходят все разработки. Отправляйте патчи с помощью git-send-email, аналогично стилю LKML.
Электронная почта контакт
Контакт безопасности
Лицензия WireGuard
Компоненты ядра выпускаются под лицензией GPLv2, как и само ядро Linux. Другие проекты лицензируются под MIT, BSD, Apache 2.0 или GPL, в зависимости от контекста.
Похожие статьи на сайте
- OpenVPN против WireGuard: краткое сравнение
- Общее и концептуальное описание WireGuard
- Установка и настройка WireGuard в Linux Ubuntu/Mint из репозитория ppa
Источник: www.oslogic.ru