Руководство по настройке 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:
1 |
mkdir Wireguard-on-docker && cd Wireguard-on-docker |
Содержимое нашего docker-compose.yml :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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:
1 |
$ docker-compose up -d |
После запуска wireguard вы сможете просматривать журналы, чтобы увидеть исходные qr-коды для ваших клиентов, но у вас есть доступ к ним в каталоге конфигурации:
1 |
$ docker-compose logs -f wireguard |
В каталоге конфигурации будут указаны конфигурация и qr-коды, как указано выше:
1 2 |
$ ls ./config/wireguard/peer_ruan peer_ruan.conf peer_ruan.png privatekey-peer_ruan publickey-peer_ruan |
Установите клиент Wireguard
Перейдите по ссылке https://www.wireguard.com/install / и установите клиент вашей операционной системы, в этом примере я буду использовать Windows для демонстрации настройки.
У меня уже есть пара настроенных туннелей, но ваш должен выглядеть примерно так:
Чтобы настроить новый туннель, в настройках нового туннеля выберите добавить пустой туннель:
Скопируйте содержимое из вашего каталога конфигурации, для демонстрации я покажу вам, как выглядит одна из моих одноранговых конфигураций:
1 2 3 4 5 6 7 8 9 10 11 |
$ 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.