Гид по технологиям

Установка и настройка WireGuard на Ubuntu 20.04

• 5 min read • Linux • Обновлено 22 Nov 2025
WireGuard на Ubuntu 20.04 — установка и настройка
WireGuard на Ubuntu 20.04 — установка и настройка

Схематическое изображение подключения WireGuard или логотип WireGuard

О чём это руководство

WireGuard — простой, быстрый и безопасный VPN с обменом по публичным ключам. В этом руководстве пошагово показано, как развернуть WireGuard на двух машинах с Ubuntu 20.04 (сервер и клиент). Приведены команды, конфиги, проверки статуса и рекомендации по безопасности. Подойдёт администраторам Linux и продвинутым пользователям.

Важно: все команды выполняются от имени root или через sudo. Заменяйте примерные значения (server-private-key, client-private-key, server-ip-address, eth0) на реальные.

Короткая терминология

  • WireGuard: современный VPN с криптографией на основе пары ключей (public/private).
  • Peer: удалённый узел в сетевой конфигурации WireGuard.
  • wg-quick: утилита для быстрого поднятия интерфейсов WireGuard.

Требования

  • Две машины с Ubuntu 20.04 (одна будет сервером, вторая — клиентом).
  • На сервере должен быть доступ к интернет-шлюзу и настроен root/sudo.
  • На обеих машинах свободен порт UDP 51820 (или другой порт по вашему выбору).

Начало: обновление и подготовка

Обновите пакеты и установите iptables (если не установлен):

apt-get update -y
apt-get install iptables -y

Если у вас используется nftables, учитывайте совместимость правил NAT и форвардинга.

Установка WireGuard

WireGuard доступен в стандартных репозиториях Ubuntu 20.04:

apt-get install wireguard -y

Альтернатива: для более новых версий пакета используйте официальный PPA или backports, но для большинства задач стандартного пакета достаточно.

Конфигурация сервера WireGuard

  1. Сгенерируйте приватный и публичный ключ на сервере:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

Проверьте файлы:

ls /etc/wireguard
cat /etc/wireguard/privatekey
cat /etc/wireguard/publickey
  1. Создайте конфигурацию интерфейса wg0:
nano /etc/wireguard/wg0.conf

Вставьте:

[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = server-private-key
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

Пояснения:

  • Address — внутренний адрес для интерфейса WireGuard на сервере.
  • ListenPort — UDP-порт, на котором слушает WireGuard.
  • PrivateKey — содержимое /etc/wireguard/privatekey или путь/замена на фактический ключ.
  • PostUp/PostDown — правила iptables для NAT и форвардинга. Замените eth0 на имя реального внешнего интерфейса (ip a покажет имя).
  1. Ограничьте права на ключи и конфиг:
chmod 600 /etc/wireguard/{privatekey,wg0.conf}
  1. Поднимите интерфейс и включите сервис systemd:
wg-quick up wg0
systemctl start [email protected]
systemctl enable [email protected]
systemctl status [email protected]

Проверьте интерфейс:

wg show wg0
ip a show wg0

Если интерфейс не поднимается, проверьте логи systemd: journalctl -u [email protected]

Включение переадресации IP

Разрешите пересылку IPv4, отредактировав /etc/sysctl.conf:

nano /etc/sysctl.conf

Убедитесь, что строка присутствует и не закомментирована:

net.ipv4.ip_forward=1

Примените изменения:

sysctl -p

Если нужна поддержка IPv6, добавьте и настройте net.ipv6.conf.all.forwarding=1 и соответствующие правила фаервола.

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

На клиенте также установите пакет и сгенерируйте ключи:

apt-get install wireguard -y
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

Создайте конфигурацию клиента:

nano /etc/wireguard/wg0.conf

Пример содержимого:

[Interface]
PrivateKey = client-private-key
Address = 10.0.0.2/24

[Peer]
PublicKey = server-public-key
Endpoint = server-ip-address:51820
AllowedIPs = 0.0.0.0/0

Пояснения:

  • AllowedIPs = 0.0.0.0/0 — весь трафик клиента будет идти через VPN. Для маршрутизации только к подсетям сервера указывайте конкретные сети.

Добавьте клиента на сервере (добавление peer без редактирования файла):

wg set wg0 peer client-public-key allowed-ips 10.0.0.2

Запустите интерфейс на клиенте:

wg-quick up wg0
wg

Проверьте, что последняя рукопожатие (handshake) прошло и есть передача данных.

Контроль доступа и безопасность

  • Храните privatekey с правами 600 и только для root.
  • Используйте нестандартный порт UDP для усложнения распознавания (без замены безопасности криптографии).
  • Включите и настройте UFW/iptables для ограничения доступа к порту WireGuard только с нужных источников или по требованиям.
  • Логируйте изменения конфигураций и периодически меняйте ключи при подозрении на компрометацию.
  • Для корпоративных развертываний рассмотрите использование управления конфигурациями (Ansible, Salt).

Отладка и распространённые проблемы

  1. Интерфейс не поднимается
  • Проверьте права файлов ключей (600).
  • Убедитесь, что сеть не блокирует UDP-порт.
  • Посмотрите логи: journalctl -u [email protected]
  1. Нет доступа в интернет через VPN
  • Проверьте PostUp правила NAT (eth0 заменён корректно).
  • Убедитесь, что net.ipv4.ip_forward=1 применён (sysctl -p).
  1. Клиент не видит сервер
  • Проверьте public-key на обеих сторонах.
  • Убедитесь, что Endpoint включает порт UDP и сервер слушает на нём.

Резервные сценарии и возврат изменений

Если нужно быстро отключить WireGuard и вернуть состояние:

wg-quick down wg0
systemctl stop [email protected]
# удалить peer если добавляли через wg set
wg set wg0 peer  remove

Если вы использовали iptables в PostUp, PostDown удалит правила при опускании интерфейса. Проверьте таблицу NAT: iptables -t nat -L -n

Лучшие практики и альтернативы

  • Для простой приватности подойдёт конфигурация «весь трафик через VPN» (AllowedIPs 0.0.0.0/0). Для доступа к отдельным подсетям указывайте конкретные сети.
  • Если требуется централизованное управление пользователями и ключами, рассмотрите использование стека с управлением конфигураций (Ansible) или внешних решений типа PiVPN для упрощённой выдачи конфигов.
  • Для мобильных клиентов используйте официальные приложения WireGuard на Android/iOS и импортируйте конфиг QR-кодом.

Критерии приёмки

  • Сервер поднят и слушает порт: wg show wg0 показывает listening port.
  • Клиент установил соединение: wg показывает успешный latest handshake и трафик.
  • Переадресация IP включена и NAT настроен: sysctl -p и iptables показывают соответствующие правила.
  • Конфиденциальность ключей: privatekey доступны только root и права 600.

Контрольный список по ролям

Системный администратор:

  • Установить wireguard и iptables.
  • Сгенерировать ключи и сохранить их в /etc/wireguard.
  • Настроить PostUp/PostDown и включить ip_forward.
  • Настроить backup конфигураций.

Инженер по безопасности:

  • Проверить права доступа к ключам.
  • Настроить мониторинг и журналирование.
  • Провести аудит правил фаервола.

Оператор поддержки:

  • Проверять статусы служб systemctl и журналов.
  • Помогать при проблемах с Endpoint и DNS.

Быстрый чеклист для запуска

  • apt-get update && apt-get install wireguard
  • Сгенерировать ключи на сервере и клиенте
  • Настроить /etc/wireguard/wg0.conf на обеих сторонах
  • chmod 600 на ключах
  • wg-quick up wg0 на сервере и клиенте
  • sysctl -p и проверка iptables

Мини-методология развертывания (шаги)

  1. Подготовка ОС и бэкап конфигураций.
  2. Установка пакета WireGuard.
  3. Генерация ключей и создание конфигов.
  4. Тест поднятия интерфейса и проверка связи.
  5. Настройка NAT/форвардинга и правил безопасности.
  6. Документирование и мониторинг.

Часто встречающиеся команды для быстрого доступа

wg show
wg-quick up wg0
wg-quick down wg0
systemctl status [email protected]
journalctl -u [email protected] --since "1 hour ago"
ip a show wg0
iptables -t nat -L -n

Заключение

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

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

Резюме

  • WireGuard лёгок в установке и конфигурации.
  • Ключи и разрешения — критичная часть безопасности.
  • Тестируйте handshake и трафик для уверенности в работе VPN.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро