Перейти к основному содержимому
Вернуться в категорию

Настройка VPN-сервера WireGuard: пошаговое руководство

Настройте VPN-сервер WireGuard: генерация ключей, конфигурация сервера и клиента, IP-пересылка, правила брандмауэра и настройка клиентов Windows/Linux/Android.

Время чтения: 15 мин Безопасность
wireguardvpnбезопасность сервератуннельlinuxсетевая безопасностьшифрованиенастройка vpn

Содержание

Настройка VPN-сервера WireGuard: пошаговое руководство

WireGuard — современный, быстрый и безопасный VPN-протокол. По сравнению с OpenVPN и IPSec он имеет гораздо более простую структуру и обеспечивает высокую производительность. Это руководство проведёт вас через настройку VPN-сервера WireGuard на вашем сервере REXE.

Почему стоит выбрать WireGuard?

  • Простая конфигурация: Всего несколько строк настройки
  • Высокая производительность: Работает на уровне ядра, низкая задержка
  • Современная криптография: ChaCha20, Poly1305, Curve25519
  • Небольшая кодовая база: ~4000 строк (OpenVPN ~100 000 строк)
  • Кроссплатформенность: Linux, Windows, macOS, iOS, Android

Установка

hljs bash
# Ubuntu 20.04+
sudo apt update
sudo apt install wireguard -y

# CentOS/AlmaLinux 8+
sudo dnf install epel-release -y
sudo dnf install wireguard-tools -y

Генерация ключей

hljs bash
# Генерация ключей сервера
cd /etc/wireguard

# Генерация приватного ключа
wg genkey | sudo tee /etc/wireguard/server_private.key

# Получение публичного ключа
sudo cat /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key

# Установка прав доступа
sudo chmod 600 /etc/wireguard/server_private.key

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

hljs bash
# Найти сетевой интерфейс
ip route | grep default

# Создать файл конфигурации WireGuard
sudo nano /etc/wireguard/wg0.conf
hljs ini
# /etc/wireguard/wg0.conf — Конфигурация сервера

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = ПРИВАТНЫЙ_КЛЮЧ_СЕРВЕРА

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА1
AllowedIPs = 10.0.0.2/32

[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_КЛИЕНТА2
AllowedIPs = 10.0.0.3/32

Замените eth0 именем вашего реального сетевого интерфейса. Найдите его с помощью ip route | grep default.

Включение IP-пересылки

hljs bash
# Включить временно
sudo sysctl -w net.ipv4.ip_forward=1

# Включить постоянно
sudo nano /etc/sysctl.conf
# Добавьте или раскомментируйте:
# net.ipv4.ip_forward=1

# Применить изменения
sudo sysctl -p

Правила брандмауэра

hljs bash
# С UFW
sudo ufw allow 51820/udp
sudo ufw allow OpenSSH
sudo ufw enable

# С iptables
sudo iptables -A INPUT -p udp --dport 51820 -j ACCEPT
sudo iptables -A FORWARD -i wg0 -j ACCEPT
sudo iptables -A FORWARD -o wg0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Сохранить правила постоянно
sudo apt install iptables-persistent -y
sudo netfilter-persistent save

Запуск службы WireGuard

hljs bash
# Запустить интерфейс WireGuard
sudo wg-quick up wg0

# Автозапуск при загрузке системы
sudo systemctl enable wg-quick@wg0

# Проверить статус
sudo wg show

Конфигурация клиента

Конфигурация клиента Linux

hljs ini
# /etc/wireguard/wg0.conf — Конфигурация клиента

[Interface]
Address = 10.0.0.2/24
PrivateKey = ПРИВАТНЫЙ_КЛЮЧ_КЛИЕНТА
DNS = 1.1.1.1

[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА
Endpoint = IP_СЕРВЕРА:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

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

  1. Скачайте и установите WireGuard для Windows
  2. Откройте приложение → "Добавить туннель" → "Добавить пустой туннель"
  3. Вставьте конфигурацию и нажмите "Активировать"

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

hljs bash
# Генерация QR-кода на сервере
sudo apt install qrencode -y
qrencode -t ansiutf8 < /path/to/client.conf

Добавление новых клиентов

hljs bash
# Генерация ключей клиента
wg genkey | tee /etc/wireguard/client3_private.key | wg pubkey > /etc/wireguard/client3_public.key

# Добавить на сервер (без перезапуска)
sudo wg set wg0 peer $(cat /etc/wireguard/client3_public.key) allowed-ips 10.0.0.4/32

# Сохранить постоянно
sudo wg-quick save wg0

Устранение неполадок

hljs bash
# Просмотр логов WireGuard
sudo journalctl -u wg-quick@wg0 -f

# Статистика соединений
sudo wg show wg0

# Проверка IP-пересылки
cat /proc/sys/net/ipv4/ip_forward

# Проверка правил брандмауэра
sudo iptables -L -n -v
sudo iptables -t nat -L -n -v

После установки соединения WireGuard поле latest handshake в выводе sudo wg show должно быть актуальным. Если рукопожатия нет, проверьте IP/порт сервера, ключи и правила брандмауэра.

Заключение

WireGuard предоставляет современное и безопасное VPN-решение. Благодаря простой конфигурации и высокой производительности он идеально подходит как для личного использования, так и для корпоративных сетей.