Categories Программы

Wireguard-сервер

В статье рассмотрена установка и настройка 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

Prev Letsencrypt
Next Wireguard-клиент