|
|
@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
### ЗАПУСК ДОКЕР-КОНТЕЙНЕРА ВПН КЛИЕНТА
|
|
|
|
|
|
|
|
Для корректной работы необходимо добавить параметр **--privileged**<br/>
|
|
|
|
|
|
|
|
Пример: **docker run -d --rm --dns=8.8.8.8 --privileged --name wireguard_container wireguard_im**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для копирования конфига для внп-клиента можно выполнить следующую команду:<br/>
|
|
|
|
|
|
|
|
**scp work_user@194.135.20.130:~/wireguard/config/peer5/peer5.conf .**<br/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Здесь **peer5** - это номер устройства, рекомендуется заранее узнать, кто последний брал конфиг с сервера и какой у него был номер, чтобы не использовать один и тот же конфиг на нескольких устройствах (может некорректно работать при одновременном подключении с разных устройств по одному конфигу).
|
|
|
|
|
|
|
|
<br/><br/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### ЗАПУСК ДОКЕР-КОНТЕЙНЕРА
|
|
|
|
|
|
|
|
При запуске контейнера, чтобы он работал через сеть ВПН сервера, необходимо подключить его к докер контейнеру, внутри которого запущен ВПН-клиент. Обычно он называется (**wireguard_container**), образ этого контейнера лежит в **wireguard_im**.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Доп параментр для запуска: **--network container:wireguard_container**<br/>
|
|
|
|
|
|
|
|
Пример: **docker run --rm --network container:wireguard_container -it ubuntu sh**
|
|
|
|
|
|
|
|
<br/><br/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### УСТАНОВКА И ЗАПУСК WIREGUARD НА ПОЛЬЗОВАТЕЛЬСКОМ УСТРОЙСТВЕ
|
|
|
|
|
|
|
|
Далее, после того как вы скачали конфиг в зависимости от устройства, на котором вы хотите использовать впн, будут меняться шаги настройки.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.0) Перед установкой необходимо получить конфиги, если они уже есть, то можно переходить к пункту 1.1.<br/>
|
|
|
|
|
|
|
|
`scp work_user@194.135.20.130:~/wireguard/config/peer5/peer5.conf .`<br/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Здесь **peer5** - это номер устройства, рекомендуется заранее узнать, кто последний брал конфиг с сервера и какой у него был номер, чтобы не использовать один и тот же конфиг на нескольких устройствах (может некорректно работать при одновременном подключении с разных устройств по одному конфигу).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.1) Идем на официальный сайт и ищем нашу ОС
|
|
|
|
|
|
|
|
https://www.wireguard.com/install/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.1) **Для смартфонов** устанавливаем Wireguard из магазина приложений<br/>
|
|
|
|
|
|
|
|
2.1.1) Запускаем и нажимаем на плюсик в верхнем правом углу<br/>
|
|
|
|
|
|
|
|
2.1.2) Далее выбираем *"создать из файла или архива"* и находим наш скачанный *peerN.conf*<br/>
|
|
|
|
|
|
|
|
2.1.3) Альтернативно, если мы знаем, что хотим установить впн на смартфон, то можно скачать с сервера файл не .conf, а .png. Это будет файл с qr-кодом, открыв который на компьютере и отсканировав на телефоне, конфиг добавится автоматически.<br/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br/><br/>
|
|
|
|
|
|
|
|
<br/><br/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.2) **Для Windows и Mac** похожая ситация<br/>
|
|
|
|
|
|
|
|
2.2.1) Достаточно нажать на кнопку *"Добавить туннель"* слева снизу и выбрать файл peerN.conf<br/>
|
|
|
|
|
|
|
|
2.2.2) Альтернативно, можно нажать ни на саму кнопку "Добавить туннель", а немного правее, и выбрать там пункт *"Добавить пустой туннель"*. После чего, в появившееся окно вставить содержимое файла *peerN.conf*<br/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br/><br/>
|
|
|
|
|
|
|
|
<br/><br/>
|
|
|
|
|
|
|
|
<br/><br/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.3) **Для Linux**<br/>
|
|
|
|
|
|
|
|
2.3.1) В зависимости от используемого дистрибутива необходимо установить wireguard, способы установки описаны в пункте 1.<br/>
|
|
|
|
|
|
|
|
2.3.2) Далее необходимо создать папку *wireguard*, если ее нет в */etc/wireguard* и поместить туда наш скачанный конфиг<br/>
|
|
|
|
|
|
|
|
2.3.3) Запустить подключение с помощью команды<br/>
|
|
|
|
|
|
|
|
`wg-quick up peerN` , где *peerN* - это название нашего файла *peerN.conf*<br/>
|
|
|
|
|
|
|
|
2.3.3.1) Чтобы отключиться можно выполнить по аналогии<br/>
|
|
|
|
|
|
|
|
`wg-quick down peerN`<br/>
|
|
|
|
|
|
|
|
2.3.3.2) Если не удалось подключиться, и повалились ошибки, необходимо проверить установленные пакеты, и если их нет, то доустановить:<br/>
|
|
|
|
|
|
|
|
`apt update && apt install iproute2 iptables`<br/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Дополнительно
|
|
|
|
|
|
|
|
##### Настройка маршрутов
|
|
|
|
|
|
|
|
По умолчанию во всех конфигурационных файлах клиентов весь трафик будет идти через ВПН. За это отвечает параметр **AllowedIPs**.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В файле `.conf` он выставлен как `AllowedIPs = 0.0.0.0/0`.
|
|
|
|
|
|
|
|
Понять это можно, как - данные по любому IP адресу отправляй через ВПН.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Если вы хотите пропускать только конкретные IP через ВПН, а остальные игнорировать, то есть несколько вариантов:
|
|
|
|
|
|
|
|
1) Первый вариант использовать сайт https://www.procustodibus.com/blog/2021/03/wireguard-allowedips-calculator/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Там есть инструкция по тому, как с ним работать (кроме того, там довольно неплохо расписаны построения маршрутов, так что советую прочитать).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Всё, что вам нужно будет оттуда, это скопировать получившиеся IP адреса для AllowedIPs и вставить в ваш конфигурационный сайт (список может быть очень большим).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2) Второй вариант использовать `ip route`. В отличие от первого, который должен работать на всех устройствах, данный вариант работает только на Linux.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для этого в вашем конфигурационном файле в блоке **[Interface]** добавьте следующие строки:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
[Interface]
|
|
|
|
|
|
|
|
PrivateKey = ...
|
|
|
|
|
|
|
|
Address = ...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Добавляем исключения перед включением WireGuard
|
|
|
|
|
|
|
|
PreUp = ip route add 1.2.3.4 via 192.168.1.1 dev eth0
|
|
|
|
|
|
|
|
PreUp = ip route add 5.6.7.0/24 via 192.168.1.1 dev eth0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Удаляем исключения после выключения WireGuard
|
|
|
|
|
|
|
|
PostDown = ip route del 1.2.3.4 via 192.168.1.1 dev eth0
|
|
|
|
|
|
|
|
PostDown = ip route del 5.6.7.0/24 via 192.168.1.1 dev eth0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Peer]
|
|
|
|
|
|
|
|
PublicKey = ...
|
|
|
|
|
|
|
|
AllowedIPs = 0.0.0.0/0
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Здесь мы создаем правило, которое пропускает трафик по адресам `1.2.3.4` и `5.6.7.0/24` через `192.168.1.1` используя интерфейс `eth0`. А после отключения от ВПН, мы удаляем эти правила.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**ВАЖНО**: если мы хотим, чтобы трафик шел в интренет, то `eth0` должен быть интерфейсом, предоставляющим эту возможность.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Узнать, какой интерфейс использовать можно через команду:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
|
|
ip address
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Проверить получившиеся маршруты можно через:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
|
|
ip route show table main
|
|
|
|
|
|
|
|
```
|