Протокол WireGuard представляет собой защищенный сетевой туннель. Он может использоваться двумя способами: как самостоятельный протокол или внедряться поставщиком услуг VPN. Поставщик — это сервис, которым вы пользуетесь для организации VPN-подключения на своем компьютере или телефоне (примеры таких сервисов: Hola, 1.1.1.1, Browsec, CyberGhost, NordVPN).
Протокол WireGuard, возможно, скоро полностью заменит широко распространенные IKEv2, IPSec и OpenVPN. На данный момент WireGuard считается одним из лучших (если не лучшим): он быстрее, надежнее в нестабильных сетях, плюс имеет более привлекательный пинг — скорость отклика.
Как работает протокол WireGuard?
Протокол WireGuard отличается от других протоколов VPN своим подходом к безопасности: он не устанавливает конфигурации между клиентом и сервером (как в популярных IKEv2 и IPSec) — в WireGuard они уже предопределены. Поэтому соединение WireGuard является бесконтактным. На практике это означает более высокую производительность соединения (повышенная скорость обработки запросов) и лучший пинг — скорость отклика (как быстро сигнал с вашего устройства дойдет до другого компьютера или сервера, а затем вернется к вам).
То есть WireGuard будет быстрее, например, того же OpenVPN. При этом защищенный VPN-туннель и улучшенные криптографические решения позволят сохранять приватность на любых устройствах (это важный момент, который нужно предусмотреть, если для вас актуально продвижение бизнеса в интернете).
Вот так можно представить расположение WireGuard-сервера в типичной сетевой цепочке (см. схему ниже). Между пользовательским устройством и конечным сайтом находятся еще три узла:
- защищенный VPN-туннель,
- сам WireGuard-сервер
- повторно зашифрованный трафик (от сервера WireGuard).
Такой подход делает протокол более быстрым (ведь не нужно подключаться или переподключиться к серверу). Все, что нужно для соединения, — это ваши ключи и ключи сервера.
Но все вышесказанное не имеет значения для обычного пользователя. Протоколы создают и настраивают подключение автоматически, все происходит «под капотом» — вы просто выбираете нужный вам сервер, а приложение делает остальное (как и в обычных VPN, к которым все привыкли).
На каких операционных системах можно использовать WireGuard?
Как самостоятельное решение, WireGuard доступен на большинстве используемых сегодня ОС.
Как протокол VPN, все зависит от того, на каких устройствах его настраивает ваш провайдер. Например, поставщик VPN Surfshark поддерживает WireGuard на: Windows, Android, macOS, iOS и Linux.
От чего зависит скорость VPN и насколько быстр WireGuard?
Производительность зависит от множества факторов:
- Скорость интернет-соединения;
- Загруженность серверов VPN;
- Совместимость пользовательского устройства с ПО поставщика VPN;
- Удалённость пользователя от VPN-сервера.
Протокол WireGuard делает некоторые вещи лучше, чем OpenVPN или IKEv2. Но значит ли, что именно в вашем случае протокол WireGuard будет работать эффективнее? Здесь нет однозначного ответа. Нужно тестировать каждый вариант и оставаться с тем, который дает наиболее приемлемый результат — конкретно с вашей техникой и провайдером.
Можно ли взломать WireGuard?
Теоретически взломать можно все, что угодно (если долго и упорно стараться). Однако хакеру придется потратить сотни лет, чтобы взломать WireGuard. В этом его преимущество перед многими популярными сервисами.
WireGuard, IKEv2, OpenVPN: что лучше?
Сравним эти протоколы по главным критериям: скорость, стабильность, наличие opensource, доступность, использовании батареи.
Как подключить и настроить WireGuard
Если вы не разработчик и никогда не настраивали сети, лучше воспользуйтесь любым VPN с поддержкой WireGuard. В таких решениях поддержка протокола есть уже «из коробки», вам останется нажать одну-две кнопки.
Но поскольку протокол WireGuard является относительно новым для мира VPN, вы не сможете найти его у каждого провайдера VPN. Вот список VPN с поддержкой WireGuard:
- Mullvad VPN.
- Private Internet Access VPN.
- NordVPN.
- Surfshark VPN.
- IVPN.
Если же вы хотите заняться установкой самостоятельно, следуйте инструкциям ниже:
Шаг 1. Открыть порт
По умолчанию WireGuard шифрует и упаковывает все данные, используя UDP на порту 51820. На этом порту есть встроенное правило доступа, которое разрешает трафик WireGuard.
Прежде всего необходимо открыть UDP-порт 51820 в используемом вами брандмауэре. Например, в «Брандмауэре защитника Windows» (Firewall Windows Server) необходимо создать правило для входящих подключений. Порты прописываются через запятую. Можно указать один порт, несколько портов или диапазон портов.
Шаг 2. Установить паркет WireGuard
Нам понадобится: Linux-сервер и программа для системного администрирования UNIX-систем sudo
- Первым делом необходимо установить пакеты WireGuard и Debian-пакет resolvconf. Resolvconf понадобится, если вы захотите настроить Linux-машину как клиент WireGuard.
- Команда для установки будет такой:
Шаг 3: Генерируем ключи шифрования
Для генерации ключа шифрования будем использовать команду wg genkey. Команда также сохранит ключи шифрования в виде файла.
По умолчанию ключ шифрования сохраняется в каталоге /etc/wireguard.
Каталог автоматически создается при установке WireGuard.
Команда chmod устанавливает ограничительные разрешения для создаваемого файла с ключом шифрования.
Существует много способов установить ограничения. Например, команду chmod можно использовать таким образом:
Затем мы применяем значение собственного ключа шифрования — для генерации открытого ключа, который автоматически сохраняется в каталоге /etc/wireguard.
Цель: добавить открытый ключ сервера в конфигурацию WireGuard на всех клиентских устройствах, которыми вы планируете пользоваться. После этого нужно добавить открытые ключи этих клиентов в конфигурацию сервера. Для этого предусмотрена следующая команда:
Ключи шифрования должны быть тщательно защищены.
Закрытые ключи никогда не должны покидать компьютеры, для которых они созданы, иначе они потеряют смысл.
Шаг 4: Настраиваем сервер WireGuard
Теперь вы готовы создать файл конфигурации сервера. Но понадобятся базовые знания о том, как подключиться к серверу Linux через SSH. В интернете много информации по этому вопросу. Также необходимо базовое понимание IP-адресов и подсетей. И убедитесь, что у вас есть клиенты под управлением Windows, macOS, Linux, iOS или Android.
- Конфиг-файл можно назвать любым удобным образом. Вы также можете иметь несколько конфигов (с разными именами), которые будут существовать одновременно. В конфигурационном файле вы должны использовать собственные ключи и IP-адрес. Вот каким может быть ваш конфиг:
Alt: Пример файла конфигурации
Title: конфиг-файл состоит из трех разделов: interface и двух peers (в нашем случае — это рабочая станция и ноутбук)
Обратите внимание: файл состоит из трех разделов: interface и двух peers (в нашем случае — это рабочая станция и ноутбук).
Раздел Interface определяет частный сетевой адрес NAT, который будет использовать наш сервер. Это частный адрес, к которому будут подключаться клиенты — конечно, после первого запроса доступа через публичный IP-адрес сервера.
ListenPort. Мы определили его как 51820. Но допустимо выбрать и другой адрес, чтобы повысить защищённость.
В качестве значения PrivateKey используем закрытый ключ сервера — чтобы WireGuard мог аутентифицировать входящие запросы клиентов.
Первая секция peer — содержит только открытый ключ и назначенный частный IP-адрес одного клиента. Вторая секция peer — делает то же самое для второй клиентской машины.
- start2Получение открытых ключей от клиента проводится вручную. Но поскольку вы будете использовать собственный VPN, никто не мешает воспользоваться функцией копировать / вставить — чтобы не пришлось тратить много времени и указывать символы вручную.
- Теперь нужно применить команду wg-quick — чтобы «оживить» VPN:
Слово up в команде приказывает WireGuard прочитать конфигурацию wg0.conf (напомним, что ваш конфиг может иметь иное имя), которую мы сформировали выше, а также использовать ее для генерации VPN-интерфейса. Если все корректно, то вы поймете это по wg.
- start4Осталось только инициировать команду systemctl enable:
Все! Теперь Linux будет сразу подгружать интерфейс WireGuard при каждой перезагрузке сервера.
Шаг 5: Настраиваем клиент WireGuard
Сделать это намного проще, чем настроить сервер.
- Если у вас Windows, macOS, Android или iOS — открываем страницу wireguard.com/install
- Находим URL на приложения с графическим интерфейсом.
- Скачиваем и устанавливаем приложение для необходимой операционной системы.
- Запускаем приложение. Оно сгенерируют для вас пары ключей. Вам нужно будет ввести IP-адрес или домен сервера и его открытый ключ. Затем вы берете открытый клиентский ключ и указываете его в серверном файле wg0.conf (инструкцию см. в предыдущем разделе).
Если нужно добавить клиент с десктопа или ноутбука Linux, это чуть более сложная задача. Но вы также будете следовать всем шагам, которые мы показали выше, в разделе настройки сервера. Вы также сгенерируйте конфиг с любым именем. При этом файл конфигурации может выглядеть следующим образом (обратите внимание на пояснения красным шрифтом):
Давайте пройдемся по параметрам чуть подробнее.
- Раздел Interface — показывает клиентскую машину.
- Раздел Peer — репрезентует сервер.
Interface
Начнем с интерфейса: частный IP-адрес должен соответствовать адресу, который вы присвоили этому клиенту в конфигурации на сервере.
Если вам нужно, чтобы клиент обходил локальный DNS-сервер, — пропишите пользовательский DNS-сервер (он предоставляется Google).
Вместо жесткого кодирования локального закрытого ключа в файл конфигурации (см. раздел «Как настроить сервер WireGuard» выше), вы можете запрограммировать WireGuard считывать файл закрытого ключа при каждой загрузке. С точки зрения защищенности и безопасности это более эффективный вариант.
- Команда PostUp ping — проверит соединение по пингу подключения.
Peer
Для конфигурации Peer или сервера — требуется открытый ключ сервера, который обязательно добавляется в такой строке.
Публичный IP-адрес сервера или домен — вы показываете WireGuard, где искать сервер. Без этого параметра ничего не будет работать. После публичного IP-адреса сервера (или его доменного имени) указывается порт. Напомним: 51820 — порт WireGuard по умолчанию.
- Параметр AllowedIPs — определяет диапазон сетевых адресов, которые будут задействоваться.
- Параметр PersistentKeepalive — не обязательное значение, которое поможет защититься от разрыва соединения.
Шаг 5: Запускаем WireGuard на клиенте
Запуск происходит идентичным образом — как в случае с запуском на сервере.
Для запуска укажите команду wg-quick up wg0:
Внимание: вышеуказанные действия будут обязательными исключительно для пользователей Linux!
Безопасен ли протокол WireGuard
На первых порах многие высказывали опасения по поводу протокола. В основном они касаются конфигурации WireGuard по умолчанию. Это хранение подключенных IP-адресов (интернет-протокол) и то, что WireGuard не назначает динамического IP-адреса.
Еще одна проблема, беспокоящая пользователей, — что подключение с WireGuard не обфусцированно. Есть обфусцированные серверы и необфусцированные. Преимущество обфусцированных том, что они скрывают пользовательские данные и сам факт использования виртуальной частной сети. Такие серверы нужны, если вы подключаетесь из места, где сильно ограничено использование интернета — с ними даже провайдер не узнает, что вы работаете в интернете через VPN.
Однако перечисленные проблемы не относятся к поставщикам услуг VPN напрямую. Провайдер VPN может самостоятельно настроить протокол необходимым ему образом. Например, тот же Surfshark не хранит IP-адрес подключения пользователя. Кроме того этот поставщик VPN присваивает динамические IP-адреса всем своим пользователям и обфусцирует их соединение. Поэтому, если у протокола существуют проблемы или уязвимости, хороший поставщик VPN должен устранить их самостоятельно.
Резюме
Резюмируем плюсы и минусы WireGuard
Выходит, что использовать WireGuard через готовые программы / приложения / расширения для браузеров — гораздо проще, чем поднимать соединение вручную. Но в некоторых случаях все же требуется ручная настройка, например, если пользователь:
- Находится в стране, где использование VPN ограничено;
- Хочет использовать VPN через приложение собственный маршрутизатор;
- Имеет устройства, не совместимые с приложением поставщика VPN;
- Хочет защитить множество устройств, не испытывая падения скорости.
Читайте также:
7 главных ошибок при использовании VPN
5 способов подключить VPN на компьютере – от бесплатных до навороченных