Связаться с менеджером

Главная > Статьи > Настройка Wireguard

Настройка Wireguard

Настройка Wireguard

Настройка Wireguard сервера на роутере Сервисы -> Сервер VPN -> Настройки Wireguard...

Настройка Wireguard сервера на роутере

  1. Сервисы -> Сервер VPN -> Настройки Wireguard
    Настройка Wireguard
  2. Включить сервер Wireguard
  3. Сетевой адрес – Адрес сервера внутри туннеля
  4. Порт – Порт подключения к серверу (внешний порт)
  5. MTU туннеля – Максимальный размер кадра, передаваемый через туннель. О том, как это влияет на скорость передачи описано тут.
  6. Включить NAT – Включить трансляцию адресов.
  7. Общий ключ – Секретный ключ, одинаковый для обеих сторон (Preshared Key)
  8. Приватный ключ сервера – Ключ, который сервер сгенерировал для себя (Interface в настройка сервера)
  9. Публичный ключ сервера – Ключ, который сервер сгенерировал для подключений (Peer в настройках клиента)
  10. Публичный ключ клиента – Ключ, который клиент сгенерировал для подключений (Peer в настройках сервера)
  11. Разрешённая подсеть – Адрес клиента (или пул адресов)
  12. Префикс – Маска сети клиента

Настройка Wireguard сервера на другой ОС

  1. Установите сервер Wireguard
    https://www.wireguard.com/install/
  2. Создайте папку /etc/wireguard на сервере
    mkdir -p /etc/wireguard/
    cd /etc/wireguard
  3. Сгенерируйте ключи сервера
    wg genkey | tee /etc/wireguard/server_private.key | wg pubkey | tee /etc/wireguard/server_public.key
  4. Сгенерируйте ключи клиента
    wg genkey | tee /etc/wireguard/client_private.key | wg pubkey | tee /etc/wireguard/ client_public.key
  5. Создайте файл конфигурации сервера
    vim /etc/wireguard/wg0.conf
  6. Настройте сервер
    [Interface]
    Address = 10.10.10.1/24
    SaveConfig = true
    PrivateKey = <содержимое server_private.key>
    ListenPort = 51820
    [Peer]
    PublicKey = <содержимое client_public.key >
    AllowedIPs = 10.10.10.2/32
  7. Если нужно больше клиентов, то добавьте повторите пункты 5-8 и добавьте новых Peer’ов по аналогии
  8. Настройте переадресацию портов на сервере
    Добавьте net.ipv4.ip_forward = 1 в /etc/sysctl.conf
    sysctl -p
  9. Настройте подмену IP
    firewall-cmd –zone=public –permanent –add-masquerade
    systemctl reload firewalld
  10. Откройте порт Wireguard в фаерволе
    firewall-cmd –permanent –add-port=51820/udp
    systemctl reload firewalld
  11. Запустите сервер
    wg-quick up /etc/wireguard/wg0.conf

На основе инструкции https://gist.github.com/tegila/ae203f1c5a4a7f99837136a541bbf502

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

  1. Настройки сети -> VPN -> Настройки клиента Wireguard
    Настройка Wireguard
  2. Включить клиент Wireguard
  3. Заполните Адрес сервера и порт сервера
  4. Сетевой адрес клиента – Адрес, который будет присвоен роутеру
  5. Разрешённые подсети – Список сетей, доступ к которым будет разрешен через туннель
  6. MTU – Максимальный размер кадра, передаваемый через туннель. О том, как это влияет на скорость передачи описано тут.
  7. Проверка доступности – Проверка доступности сервера (обмен Keepalive)
  8. Шлюз по умолчанию – Маршрут по умолчанию будет вести в туннель, т.к. весь трафик по умолчанию будет отправлен в туннель.
  9. Включить NAT – Включить трансляцию адресов.
  10. Общий ключ – Секретный ключ, одинаковый для обеих сторон (Preshared Key)
  11. Публичный ключ сервера – Ключ, который сервер сгенерировал для подключений (Peer в настройках клиента)
  12. Приватный ключ клиента – Ключ, который клиент сгенерировал для себя (Interface в настройка клиента)
  13. Публичный ключ клиента – Ключ, который клиент сгенерировал для подключений (Peer в настройках сервера)

Настройка Wireguard клиента на другой ОС

Для Windows/Linux

[Interface] Address = 10.10.10.2/32
DNS = 8.8.8.8
PrivateKey = <содержимое client_private.key >

[Peer] PublicKey = <содержимое server_public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = <public-ip-of-your-server>:<port>
PersistentKeepalive = 25

Продвинутая настройка Wireguard

Если требуется настроить клиент Wireguard более тонко, то нужно внести требуемые изменения в его конфигурацию через CLI.
Править /etc/wgcli0.conf не имеет смысла, т.к. он генерируется динамически.
Для изменения настроек Wireguard нужно отредактировать /etc/rc.d/W36wireguard.
Функция wg_cli_gen_configs() отвечает за динамическую конфигурацию /etc/wgcli0.conf, поэтому туда можно внести необходимые изменения.
Например, некоторые предварительно подготовленные серверы Wireguard требуют использование Presharedkey, который нельзя внести через Web-интерфейс роутера.
Добавьте требуемый ключ или иные изменения в тело конфигурации, как если бы это был /etc/wgcli0.conf:

wg_cli_gen_configs() {
wg_cerst_cli_gen
printf “
[Interface]
PrivateKey = ${wireguard_cli_prikey}
[Peer]
PublicKey = ${wireguard_cli_pubkey}
Endpoint = ${wireguard_cli_endpoint}:${wireguard_cli_endpoint_port}
PersistentKeepalive = 10
Presharedkey = <ваш_ключ>
AllowedIPs = ${wireguard_cli_allowedips}
” > /etc/$cliif.conf
}

После редактирования файла не забудьте сохранить изменения командой fs save и перезапустить Wireguard клиент.
Если изменить поведение Wireguard клиент при запуске и остановке сервера, то можно создать свои скрипты и разместить их в папках /etc/wg-up.d и /etc/wg-down.d.

Маршрутизация сетей через Wireguard

  1. Выполните настройку Wireguard Client так же, как было описано ранее, за исключением опции Default Gateway. Ее нужно выключить
  2. Получите список IP адресов, которые требуется смаршрутизировать в туннель. Например, тут: https://rockblack.su/vpn/dopolnitelno/diapazon-ip-adresov
  3. Создайте папки /etc/wg-up.d/ и /etc/wg-down.d/
    mkdir /etc/wg-up.d/
    mkdir /etc/wg-down.d/
  4. Создайте скрипт для добавления маршрутов
    vi /etc/wg-up.d/google.sh

    Пример содержимого файла wg-up.d/google.sh
    #!/bin/bash
    ip route add 10.10.10.0/24 dev wgcli0
    ip route add 8.8.8.8/32 dev wgcli0

    Пример содержимого файла wg-down.d/google.sh
    #!/bin/bash
    ip route delete 10.10.10.0/24 dev wgcli0
    ip route delete 8.8.8.8/32 dev wgcli0
  5. Добавьте права на запуск
    chmod +x wg-up.d/google.sh
    chmod +x wg-down.d/google.sh
  6. Сохраните файлы операционной системы
    fs save
0 комментариев
Что бы оставить комментарий вам необходимо авторизоваться