Настройка VPN-сервера WireGuard: пошаговое руководство
Настройте VPN-сервер WireGuard: генерация ключей, конфигурация сервера и клиента, IP-пересылка, правила брандмауэра и настройка клиентов Windows/Linux/Android.
Содержание
Настройка VPN-сервера WireGuard: пошаговое руководство
WireGuard — современный, быстрый и безопасный VPN-протокол. По сравнению с OpenVPN и IPSec он имеет гораздо более простую структуру и обеспечивает высокую производительность. Это руководство проведёт вас через настройку VPN-сервера WireGuard на вашем сервере REXE.
Почему стоит выбрать WireGuard?
- Простая конфигурация: Всего несколько строк настройки
- Высокая производительность: Работает на уровне ядра, низкая задержка
- Современная криптография: ChaCha20, Poly1305, Curve25519
- Небольшая кодовая база: ~4000 строк (OpenVPN ~100 000 строк)
- Кроссплатформенность: Linux, Windows, macOS, iOS, Android
Установка
# 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
Генерация ключей
# Генерация ключей сервера
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
Конфигурация сервера
# Найти сетевой интерфейс
ip route | grep default
# Создать файл конфигурации WireGuard
sudo nano /etc/wireguard/wg0.conf
# /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-пересылки
# Включить временно
sudo sysctl -w net.ipv4.ip_forward=1
# Включить постоянно
sudo nano /etc/sysctl.conf
# Добавьте или раскомментируйте:
# net.ipv4.ip_forward=1
# Применить изменения
sudo sysctl -p
Правила брандмауэра
# С 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
# Запустить интерфейс WireGuard
sudo wg-quick up wg0
# Автозапуск при загрузке системы
sudo systemctl enable wg-quick@wg0
# Проверить статус
sudo wg show
Конфигурация клиента
Конфигурация клиента Linux
# /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
- Скачайте и установите WireGuard для Windows
- Откройте приложение → "Добавить туннель" → "Добавить пустой туннель"
- Вставьте конфигурацию и нажмите "Активировать"
Настройка клиента Android/iOS
# Генерация QR-кода на сервере
sudo apt install qrencode -y
qrencode -t ansiutf8 < /path/to/client.conf
Добавление новых клиентов
# Генерация ключей клиента
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
Устранение неполадок
# Просмотр логов 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-решение. Благодаря простой конфигурации и высокой производительности он идеально подходит как для личного использования, так и для корпоративных сетей.
Связанные статьи
Сканирование на вредоносное ПО и руткиты: rkhunter и ClamAV
Защитите Linux-сервер от вредоносного ПО и руткитов. Установка rkhunter и ClamAV, настройка сканирования, интерпретация результатов, планирование сканирований и реагирование на инциденты.
Настройка Fail2Ban: Защита SSH от брутфорс-атак
Защитите сервер от SSH брутфорс-атак с помощью Fail2Ban. Установка, настройка jail.local, джейлы для Nginx/Apache, белый список IP, мониторинг блокировок и email-уведомления.
Сетевая безопасность Zero Trust: руководство по базовой настройке
Принципы сетевой безопасности Zero Trust и практическая реализация: никогда не доверяй всегда проверяй, микросегментация, доступ на основе идентификации и реализация с существующими инструментами Linux.