Руководство по настройке wireguard vpn в docker и настройке ваших клиентов wireguard vpn для безопасного доступа к вашей частной сети.
В этом руководстве я продемонстрирую, как настроить безопасную VPN с помощью Wireguard в Docker с помощью docker-compose, а затем мы будем использовать ПК с Windows для подключения к нашей Wireguard VPN с помощью клиента Wireguard для безопасного доступа к нашей частной сети.
Конфигурация 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
Содержимое нашего 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=Africa/Johannesburg
- SERVERURL=wireguard.example.com
- SERVERPORT=51820
- PEERS=ruan,mobile
- PEERDNS=192.168.0.114
- 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
Запустите wireguard с помощью docker compose:
$ docker-compose up -d
После запуска 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
Установите клиент 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.