Перейти к содержимому
Главная страница » Установка и запуск Wireguard VPN в Docker

Установка и запуск Wireguard VPN в Docker

Руководство по настройке wireguard vpn в docker и настройке ваших клиентов wireguard vpn для безопасного доступа к вашей частной сети.

В этом руководстве я продемонстрирую, как настроить безопасную VPN с помощью Wireguard в Docker с помощью docker-compose, а затем мы будем использовать ПК с Windows для подключения к нашей Wireguard VPN с помощью клиента Wireguard для безопасного доступа к нашей частной сети.

Wireguard в Docker

Конфигурация Wireguard

Следующие конфигурации должны быть изменены в зависимости от ваших настроек:

  • TZ — часовой пояс
  • SERVERURL — здесь будет указано, к чему будет подключаться ваш клиент
  • SERVERPORT — это будет установлено в конфигурации вашего клиента (порт прослушивания жестко запрограммирован на 51820)
  • PEERDNS — это DNS-сервер, который будет настроен в конфигурации клиента (я использую PiHole для DNS, чтобы блокировать рекламу)
  • PEERS используется для создания конфигураций для ваших клиентов
  • INTERNAL_SUBNET — это необязательно, но именно эту подсеть будут использовать подключенные клиенты

Запустите сервер Wireguard

Создадим каталог Wireguard-on-docker и размести там наш файл docker-compose.yml:

mkdir Wireguard-on-docker && cd Wireguard-on-docker

Создадим файл

nano docker-compose.yml 

Содержимое нашего docker-compose.yml :

version: '3.7'

services:

  wireguard:
    image: ghcr.io/linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Netherlands
      - SERVERURL=31.169.124.43
      - SERVERPORT=51820
      - PEERS=3
      - PEERDNS=auto 
      - INTERNAL_SUBNET=10.64.1.0
      - ALLOWEDIPS=0.0.0.0/0
    volumes:
      -  ./config/wireguard:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

Ctrl + X, после клавиша Y + Enter для выхода из nano.

Запустите wireguard с помощью docker compose:

$ docker-compose up -d

Результат установки должен выглядеть примерно так:

[+] Running 10/10
  wireguard Pulled                                                                                      5.8s
    3c94960c6de1 Pull complete                                                                          1.3s
    e1cde46db0e1 Pull complete                                                                          1.4s
    af5d67be34a1 Pull complete                                                                          1.4s
    0f92422730f8 Pull complete                                                                          1.4s
    d6f8d0f469cc Pull complete                                                                          1.5s
    6849849dc9ce Pull complete                                                                          2.3s
    094734419917 Pull complete                                                                          2.3s
    a7c6a8f0297c Pull complete                                                                          4.4s
    f724814663b6 Pull complete                                                                          4.5s
[+] Running 2/2
  Network wireguard-on-docker_default  Created                                                          0.2s
  Container wireguard                  Started    

После запуска wireguard вы сможете просматривать журналы, чтобы увидеть исходные qr-коды для ваших клиентов, но у вас есть доступ к ним в каталоге конфигурации:

$ docker-compose logs -f wireguard

В каталоге конфигурации будут указаны конфигурация и qr-коды, как указано выше:

$ ls ./config/wireguard/peer_ruan
peer_ruan.conf  peer_ruan.png  privatekey-peer_ruan  publickey-peer_ruan

Я использую mobaxterm, кроме терминала он позволяет просматривать и редактировать файлы, так, что можно открыть файл в нем.

Установите клиент Wireguard

Перейдите по ссылке https://www.wireguard.com/install / и установите клиент вашей операционной системы, в этом примере я буду использовать Windows для демонстрации настройки.

У меня уже есть пара настроенных туннелей, но ваш должен выглядеть примерно так:

Чтобы настроить новый туннель, в настройках нового туннеля выберите добавить пустой туннель:

Скопируйте содержимое из вашего каталога конфигурации, для демонстрации я покажу вам, как выглядит одна из моих одноранговых конфигураций:

$ cat ./config/wireguard/peer_ruan/peer_ruan.conf
[Interface]
Address = 10.64.1.2
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ListenPort = 51820
DNS = 192.168.0.114

[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Endpoint = xxxxx.xxxxx.xxx:51820
AllowedIPs = 0.0.0.0/0

Затем вставьте содержимое конфигурации и назовите свой туннель:

Подключите Wireguard VPN

После подключения VPN вы должны увидеть что-то вроде этого:

Теперь подключенный клиент должен иметь доступ к частной сети через VPN, в которой работает Wireguard.

WireGuard в Docker с помощью wg-easy

compose.yaml

services:
  wg-easy:
    image: ghcr.io/wg-easy/wg-easy
    container_name: wg-easy
    environment:
      LANG: ru
      WG_HOST: '31.169.124.43' # Hostname or server white IP address
      PASSWORD_HASH: $$2a$$12$$GtKQvLQYYy6.FwVmydfgdfgdfaRqdfgdfgdffcVIcdNq2OOaW
      MAX_AGE: 15
    volumes:
      - ./wireguard:/etc/wireguard
    ports:
      - 51820:51820/udp
      - 51821:51821/tcp
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv6.conf.all.disable_ipv6=0
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

Важно:

  • WG_HOST — внешний IP-адрес вашего сервера.
  • PASSWORD_HASH — зашифрованный пароль от веб-интерфейса WireGuard. Здесь нужно установить пароль созданный выше, без кавычек, но все знаки $ заменить на $$ (задвоить).
docker compose up -d

Проверим по адресу http://31.169.124.43:51821/

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *