В статье рассмотрена установка и настройка wireguard-сервера и подключения к нему клиентов. Для начала считаем, что система запущена на ядре GENERIC и отключен firewall.
Часть 1. Установка и настройка сервера.
Программу ставим через
cd /usr/ports/net/wireguard-tools/ make install clean
!Обязательно выберите WGQUICK
Пока ставится программа, надо создать приватный и публичный ключи. Это можно сделать в другой консоли сервера, например. Для начала создадим ключи для сервера:
wg genkey > wgserver.private && wg pubkey < wgserver.private > wgserver.public
Вместо wgserver можно подставить любое название.
Затем нагенерим ключей для клиентов
wg genkey > wgclient1.private && wg pubkey < wgclient1.private > wgclient1.public wg genkey > wgclient2.private && wg pubkey < wgclient2.private > wgclient2.public ...
wg…private — приватный ключ, wg…public — публичный ключ
Второй вариант, воспользоваться сайтом https://wg.orz.tools/ и там нагенерить сколько надо ключей
Файл конфигурации создаётся командой:
edit /usr/local/etc/wireguard/wg0.conf
Для примера разберём мой конфиг сервера
# cat wg0.conf # Эта команда выводит содержимое файла wg0.conf в консоль
# Server requisites [Interface] Address = 192.168.2.1/28 # Сеть wireguard-сервера. Должна отличаться от любой из подключаемых к этому серверу сетей PrivateKey = строка из wgserver.private ListenPort = 45572 # Ставим порт отличный от стандартного (51820), так как стандартный бывает банят провайдеры (привет 2kom). # Home router requisites [Peer] PublicKey = строка из wgclient1.public # Заметьте, клиенты указывают свои public-ключи AllowedIPs = 192.168.2.2,192.168.10.0/24 #Здесь указаны IP-адрес клиента в сети wireguard-сервера и домашняя сеть сисадмина Endpoint = Внешний-IP-адрес-сервера:45572 # Admin notebook requisites [Peer] PublicKey = строка из wgclient2.public # Заметьте, клиенты указывают свои public-ключи AllowedIPs = 192.168.2.3 # Ещё один Endpoint = Внешний-IP-адрес-сервера:45572 # Work router requisites [Peer] PublicKey = строка из wgclient3.public # Заметьте, клиенты указывают свои public-ключи AllowedIPs = 192.168.2.4,192.168.5.0/26 #Здесь указаны IP-адрес клиента в сети wireguard-сервера и рабочая сеть конторы где трудится сисадмин Endpoint = Внешний-IP-адрес-сервера:45572
Добавляем в /etc/rc.conf строки:
wireguard_enable="YES" wireguard_interfaces="wg0"
И запускаем сервер:
cd /usr/local/etc/rc.d ./wireguard start
Если всё нормально, то запустив команду ifconfig мы увидим, что появился новый сетевой интерфейс wg0 с адресом 192.168.2.1
Запустив команду wg show в увидите готовые к подключению адреса
# wg show interface: wg0 public key: строка из wgserver.public private key: (hidden) listening port: 45572 peer: строка из wgclient1.public endpoint: Внешний-IP-адрес-сервера:45572 allowed ips: 192.168.10.0/28, 192.168.2.2/32 peer: строка из wgclient2.public endpoint: Внешний-IP-адрес-сервера:45572 allowed ips: 192.168.2.3/32 peer: строка из wgclient3.public endpoint: Внешний-IP-адрес-сервера:45572 allowed ips: 192.168.10.0/25, 192.168.2.4/32
Часть 2. Установка и настройка клиентов.
Установка и настройка клиента на Debian
Установка и настройка клиента Mikrotik
Установка и настройка клиента Windows