Перейти к содержимому

Как установить и настроить VPN протокол WireGuard

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

Что такое протокол WireGuard

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

Так как шифровка данных отнимает мало ресурсов, WireGuard подходит для домашнего пользования. А за счет улучшенных криптографических решений протокол безопасен. В нем всего 4000 строк кода против, к примеру, 70 000 в Open VPN. А чем меньше в коде строк, тем меньше мест, которые уязвимы к атакам.

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

Итак, преимущества WireGuard:

  • высокая производительность;
  • сокращение времени на подключение — скорость пинга;
  • малое потребление ресурсов системы;
  • высокая безопасность.

WireGuard vs OpenVPN

Сравним два VPN-протокола по четырем критериям: шифрование, производительность, конфиденциальность и простота настройки.

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

Производительность. Тесты показывают, что WireGuard VPN нагружает центральную систему меньше, чем Open VPN.

WireGuard vs OpenVPN
Результаты теста пропускной способности (сверху) и скорость пинга (снизу). Источник

Этот тест опубликован на сайте WireGuard. Можно предположить предвзятость результатов замеров. Но другие тесты подтверждают производительность протокола.

Что такое протокол WireGuard
Сравнение производительности WireGuard и Open VPN. Источник

Тесты скорости также показывают, что WireGuard работает быстрее, чем Open VPN. Следовательно, по производительности WireGuard также выигрывает.

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

По этому показателю WireGuard проигрывает, потому что его настройки содержат IP пользователей. Адрес виден в системных файлах до перезагрузки сервера, и по нему можно идентифицировать участников соединения. Скрыть его можно, только направив исходящий трафик через другой VPN.
Open VPN не требует прописывать IP адреса, и в этом его преимущество.

Простота настройки. Open VPN, как и WireGuard VPN, доступен на многих операционных системах, включая Windows, Android, macOS, iOS и Linux. Но WireGuard проще установить.

Сравнив WireGuard vs OpenVPN, можно сделать вывод: WireGuard безопаснее и имеет более высокую производительность, а еще его проще настраивать. Он уступает лишь в конфиденциальности данных.

Как создавать туннели для WireGuard

VPN-туннель — это сетевое подключение, которое позволяет безопасно передавать информацию между удаленными узлами в интернете.

Самый простой способ защитить сетевой трафик и обеспечить безопасность персональных данных — использовать VPN провайдер с определенным протоколом шифрования. Тогда не придется разбираться в инфраструктуре и производить ручную настройку. Но создание туннеля на собственном сервере обеспечивает пользователю дополнительные уровни безопасности и конфиденциальности.

Принцип создания туннеля для WireGuard во многом зависит от операционной системы. Но в любом случае надо будет настроить и сервер, и клиент.

Настройка сервера

Принцип настройки виртуального сервера с операционной системой Ubuntu 20.04.

1. Зайдите под правом пользователя root и выполните следующие команды:

apt update && apt upgrade
apt install wireguard
echo «net.ipv4.ip_forward=1» >> /etc/sysctl.conf
sysctl-p
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

2. Создайте конфигурационный файл /etc/wireguard/wg0.conf со следующим содержимым:

[Interface]
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey =

Важно, чтобы название сетевого интерфейса соответствовало общедоступному сетевому адаптеру. Вывести список адаптеров можно командой:

ip a

Надо выбрать тот, которому соответствует внешний IP-адрес.

3. Замените <SERVER_PRIVATE_KEY> содержимым файла

/etc/wireguard/privatekey.

4. Добавьте в автозагрузку:

wg-quick up wg0
systemctl enable wg-quick@wg0

Настройка клиента

1. Зайдите под правом пользователя root и выполните те же команды, что и в первом шаге настройки сервера.

2. Отредактируйте /etc/wireguard/wg0.conf:

[Interface]
PrivateKey =
Address = 10.0.0.2/32
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wlp2s0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wlp2s0 -j MASQUERADE

[Peer]
PublicKey =
Endpoint = :51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 20

<PEER_LAN_PRIVATE_KEY> надо заменить содержимым /etc/wireguard/privatekey, <SERVER_PUBLIC_KEY> — /etc/wireguard/publickey с сервера, <SERVER_IP> — внешний IP адрес сервера.

В параметре AllowedIPs задайте адреса, маршрутизация к которым будет осуществляться через VPN-интерфейс. В поле PersistentKeepalive — периодичность проверки доступности соединения в секундах.

3. Запустите службу и добавьте в автозагрузку:

wg-quick up wg0
systemctl enable wg-quick@wg0

4. На сервере добавьте в файл /etc/wireguard/wg0.conf следующее:

[Peer]
#PEER_LAN
PublicKey =<PEER_LAN_PUBLIC_KEY>
AllowedIPs = 10.0.0.2/32, 192.168.100.0/24

Обратите внимание, что <PEER_LAN_PUBLIC_KEY> — /etc/wireguard/publickey клиента.

5. Перезапустите службу и убедитесь в корректных настройках.

Как настроить WireGuard

Настраивать протокол необходимо через root или sudo, иначе система автоматически покажет, что прав для внесения изменений недостаточно. Вот как это можно сделать.

Установка WireGuard на Ubuntu

  1. Запустите следующие пакеты:

sudo apt update
sudo apt upgrade
sudo apt install curl

Они обновят систему

2. Загрузите WireGuard, выполнив следующую команду:

$ sudo apt install wireguard

После завершения установки скрипт создаст файл конфигурации клиента с расширением .conf. Загрузите его на компьютер или смартфон.

3. Импортируйте файл конфигурации в клиентское приложение WireGuard и подключитесь к VPN через Ubuntu.

Установка WireGuard через Docker

  1. Установите инструмент автоматизации развертывания приложений на удаленных серверах Ansible, выполнив команду:

sudo apt install ansible

2. Чтобы Ansible подключался через пароль, введите:

sudo apt install sshpass

3. Создайте файл inventory.yml, указав в нем данные сервера для подключения. Он будет выглядеть примерно так:

all:
hosts:
ИмяСервера1:
ansible_host: IP_Адрес
ansible_user: Пользователь
# SSH порт
ansible_port: 22
# Для этого устанавливали sshpass
ansible_ssh_pass: Пароль

4. Выполните команду WireGuard Docker:

ansible-playbook -i ./inventory.yml -l ИмяСервера ./script/install_wireguard_server.yml -e PasswordServer=990990

Не забудьте заменить данные на данные своего сервера.

5. Подключитесь к VPN через WireGuard Docker.

Установка WireGuard на Windows

  1. Скачайте приложение WireGuard и запустите.

2. Нажмите «Добавить туннель» → «Добавить пустой туннель».

3. Автоматически создастся ключевая пара и откроется окно редактирования конфигурационного файла. Он будет содержать секцию Interface и закрытый ключ. Надо добавить туда опцию с адресом интерфейса — из того, что указан на сервере. Например, такой:

Address = 10.20.0.101/24

4. Добавьте Peer для подключения к серверу:

[Peer]
PublicKey = kKxQ4wF+kUrpsTGwjMvlSwX45WV4nixG76/+sKlzEQA=
AllowedIPs = 10.20.0.0/24, 0.0.0.0/0
Endpoint = 203.0.113.2:34567
PersistentKeepalive = 25

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

Установка WireGuard на Windows

5. Статус соединения изменится на «Подключен», хотя это еще не все.

6. Скопируйте публичный ключ клиента, его внутренний IP и добавьте в конфигурационный файл секцию:

[Peer]
PublicKey =i p9UjCFHiLnhQTcVgS/Y7j0s8caNj9hhn5RS2UqMXRo=
AllowedIPs = 10.20.0.101/32

7. Перезапустите WireGuard на сервере, выполнив команду:

systemctl restart wg-quick@wg0

WireGuard настройка на Windows завершена.

Установка WireGuard на Linux

WireGuard поддерживает не только Ubuntu, но и Debian, Fedora, CentOS, Artch Linux и Oracle Linux. Принцип настройки одинаков:

  1. Загрузите WireGuard, выбрав команду для нужного дистрибутива Linux

2. Завершив установку, скрипт создаст файл конфигурации клиента с расширением .conf. Загрузите его.

3. Внесите следующие данные:

nterface]
Address = 10.20.0.102/24
Privatekey = 4Hfj7lZuaQZWkW2OGHPlkhr3Jxheg/lpcJkwiosvG0w=
DNS = 8.8.8.8, 1.1.1.1

[Peer]
PublicKey = kKxQ4wF+kUrpsTGwjMvlSwX45WV4nixG76/+sKlzEQA=
AllowedIPs = 10.20.0.0/24, 0.0.0.0/0
Endpoint = 203.0.113.2:34567
PersistentKeepalive = 25

Interface описывает сетевой интерфейс: в этой секции укажите секретный ключ клиента, желаемый адрес в VPN-сети и DNS-сервера. Peer отвечает за подключение к серверу: здесь должен быть указан публичный ключ сервера, его адрес и порт, параметры подключения и роутинга.

4. Подключите утилиту:

wg-quick up wg0

Так можно будет управлять туннелем в ручном режиме. Обратите внимание, что wg0 — это имя конфигурационного файла.

5. Инициируйте команду:

systemctl enable wg-quick@wg0

6. Запустите приложение. Оно автоматически сгенерирует ключи. Надо будет ввести IP адрес и открытый ключ, а затем указать в серверном файле клиентский ключ.

Установка WireGuard на MacOS

  1. Установите WireGuard из AppStore.
  2. Выберите вкладку «VPN серверы» → «Другие протоколы» → «WireGuard» и сохраните файл конфигурации, который оканчивается на .conf.
  3. Откройте приложение и выберите «Импорт туннелей из файла».
  4. Откройте сохраненный файл конфигурации.
  5. Операционная система потребует разрешить добавление VPN-подключения, нажмите «Разрешить».
    Осталось нажать «Подключен» в меню приложения.

WireGuard: настройка на мобильных устройствах

Настройка WireGuard на мобильных устройствах достаточно проста благодаря удобным приложениям для iOS и Android, которые упрощают процесс подключения.

Как настроить WireGuard на Android

  1. Установите WireGuard из Google Play.
  2. Выберите локацию → «Другие протоколы» → «WireGuard» и сохраните файл конфигурации .conf.
  3. Откройте приложение, нажмите «Импорт из файла или архива».
  4. Откройте файл конфигурации — он может храниться среди загруженных.

Как настроить WireGuard на iOS

  1. Установите WireGuard из App Store.
  2. Выберите локацию → «Другие протоколы» → «WireGuard» и сохраните файл конфигурации .conf.
  3. Откройте файл конфигурации.
  4. Разрешите гаджету добавить VPN конфигурацию, переведя переключатель в положение «Готово».

Что делать, если WireGuard не работает

WireGuard может не работать по двум причинам — неполадки в системе самого протокола, либо замедление работы ведомственных координационных органов (Роскомнадзор в России, например). В обох случаях следуйте этому чеклисту:

  1. Подождать. Возможно, причиной стала блокировка WireGuard. Роскомнадзор периодически пытается блокировать в России VPN-серверы по протоколам. Если во всем виновата блокировка WireGuard, скорее всего, о ней уже пишут и другие пользователи, и проблема может решиться.
  2. Проверить настройки. Возможно, вы в AllowedIPs не указали IP, которые находятся внутри сети VPN. Иногда помогает в AllowedIps разделить подсеть 0.0.0.0/0 на две: 0.0.0.0/1 и 128.0.0.0/1. Еще важно правильно включить iptables masquerade. Проблемы могут быть как с настройкой сервера, так и с конфигурацией клиента.
  3. Создайте новый пир. Если вы уже используете один пир на телефоне, то он не хочет работать на компьютере.
  4. Попробуйте отключить и остановить службу win в маршрутизации.
  5. Если используете Windows, может помочь переустановка операционной системы. Также можно попробовать установить протокол на смартфоне, так как иногда проблема на стороне системы.
  6. Если ничего не помогает, рассмотреть альтернативы, например тот же Open VPN, хотя стоит иметь в виду, что блокировке со стороны Роскомнадзора подвергается и этот протокол.

Какие VPN имеют встроенный протокол WireGuard

Благодаря высокой скорости и хорошей производительности этот протокол используют многие платные VPN. Вот лишь некоторые, прошедшие проверку vpnРоссиия:

  1. Planet Free VPN. Можно выбирать подключения по всему миру. Имеет защиту неограниченного количества устройств.
  2. AdguardVPN. Сервера более чем в 100 странах, в том числе в России — удобно, если живете за рубежом. Можно подключать одновременно семь устройств.
  3. Surfshark. Есть сервера в 100 странах. Имеется защита от вредоносного программного обеспечения и оповещения о взломах данных.
  4. Mullvad VPN. Имеет 668 серверов онлайн, 18 офлайн, на 9 есть оповещения.
  5. IVPN. Используются WireGuard or OpenVPN протоколы. Можно настроить на несколько устройств.

Резюмируем, как пользоваться WireGuard

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

Можно создать и приватную сеть с применением современных алгоритмов криптографии. Правда, тогда придется настроить протокол вручную. Как это сделать, зависит от операционной системы, которую вы используете. Если устройств несколько, производить настройку придется для каждой.

Часто задаваемые вопросы

Как создать конфигурационный файл?

Это можно сделать вручную — способ зависит от операционной системы — или использовать телеграм-бот для автоматической генерации.

Можно ли переключаться между регионами?

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

Где находятся файлы конфигурации?

Они расположены в директории:/opt/beget/wireguard/.
Управлять можно с помощью скрипта:
/opt/beget/wireguard/wireguard.sh

Как добавить пользователя VPN?

  1. Подключитесь к серверу по SSH:
    ssh root@server_ip
  2. Перейдите в директорию с файлами WireGuard, задав команду:
    cd /opt/beget/wireguard
  3. Запустите скрипт wireguard.sh с помощью команды ./wireguard.sh.
  4. Введите 1, чтобы добавить пользователя, и нажмите Enter.
  5. Введите имя нового пользователя и снова нажмите Enter.
  6. Выберите для нового пользователя DNS-сервер, введите номер и нажмите Enter.

Вы получите QR-код для подключения и путь к файлу конфигурации WireGuard.

Как удалить пользователя VPN?

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

Пётр Ильин — главный редактор проекта vpnРоссия, эксперт с более чем 10-летним опытом в области кибербезопасности и технологий VPN. Он руководит редакционной командой, обеспечивая высокое качество и объективность обзоров ВПН-сервисов. Петр активно просвещает аудиторию о важности приватности в интернете и безопасности данных, а также разрабатывает образовательные материалы на доступном языке.