500$ за статью о поднятии DoubleVPN на базе Wireguard

scoring0

root@serv1:#
Premium
Регистрация
06.08.2019
Сообщения
179
Реакции
51
Депозит
0.00
Плачу 500$ за подробную (покомандную с описанием команд и скриншотами) АВТОРСКУЮ статью о поднятии DoubleVPN на базе Wireguard. (Траффик от клиента идет на serv1, оттуда на serv2, оттуда в сеть и обратно)
• Чистые системы Ubuntu 24.04 LTS в качестве обоих серверов WG.
• Базовый UFW в качестве Firewall.
• С использованием wireguard-ui в качестве менеджера юзеров на serv1.
Только давайте, что бы не было такого, что вы мне скинули статью и мол давай бабки, сначала договариваемся с вами, что бы я других уведомил, что исполнитель найден, а потом вы уже делаете, а не наоборот, либо же можно выложить на общак сюда, на форум. Обязательна разметка в BBCODE.
Можем сработать через гаранта.
Контакт в ЛС.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
есть такой скрипт от 1 до 10 хопов автонастройки бро, смело тебе все обьясню го лс
Плачу 500$ за подробную (покомандную с описанием команд и скриншотами) АВТОРСКУЮ статью о поднятии DoubleVPN на базе Wireguard. (Траффик от клиента идет на serv1, оттуда на serv2, оттуда в сеть и обратно)
• Чистые системы Ubuntu 24.04 LTS в качестве обоих серверов WG.
• Базовый UFW в качестве Firewall.
• С использованием wireguard-ui в качестве менеджера юзеров на serv1.
Можно выложить на общак сюда, можно в ЛС с разметкой в BBCODE.
Можем сработать через гаранта.
Контакт в ЛС.
 
Ребзя, мне НЕ нужен скрипт, у меня есть кто это может реализовать.
Нужно написать статью на форум, за хорошую статью, удовлетворяющую всем пунктам я заплачу 500$.


Добавлю, что возможно, что с реализацией через UFW возникнут костыли, по этому в целом можно рассмотреть и православный iptables.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
всех приветствую, АВТОРСКАЯ статья о поднятии DoubleVPN на базе Wireguard. (покомандная с описанием команд и скриншотами)

client double wg -> 1hop -> 2hop -> internet

Генерируем ключи для первого и второго сервера и клиентов:
Bash:
wg genkey > priv_server_in && cat priv_server_in | wg pubkey > pub_server_in && wg genkey > priv_server_mid && cat priv_server_mid | wg pubkey > pub_server_mid

Bash:
wg genkey > priv_client && cat priv_client | wg pubkey > pub_client && wg genkey > priv_client_mid && cat priv_client_mid | wg pubkey > pub_client_mid

Создадим конфиг для клиента, с которого будет устанавливатся подключение к 1hop wg
сначала смотрим что сгенерировалось в качестве приватного ключа клиента и публичного ключа входного сервера:
Bash:
cat priv_client && cat pub_server_in

priv_client_pubserver_in.png


правим конфиг клиента ~/client.conf:
Bash:
nano ~/client.conf

Код:
[Interface]
Address = 10.111.111.1/24
PrivateKey = IApZPxYykx0WQyd8G8Ty7PGVitgCAh1ayqdhLVzJ/Vk= ## приватный ключ клиента double wg
MTU = 1200
DNS = 1.1.1.1

PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT

[Peer]
PublicKey = MopoFKCwIDdu7+xDZsUhK2oJiuvzeJN01KesSfkSe3U= ## публичный ключ входного сервера
AllowedIPs = 0.0.0.0/0
Endpoint = ИП_ВХОДНОГО_СЕРВЕРА:51820
PersistentKeepalive = 20
сохраняем CTRL+S / CTRL+X выходим из nano.

если скопировалось сьев спец символы так:
nano_client.png

то подкорректируем конфиг до правильного вида и посмотрим на скорректированный конфиг:
Bash:
sed -i "s/.--mark/ --mark \x24\x28wg show \x25i fwmark\x29/" ~/client.conf && cat ~/client.conf
sed_client.png

теперь норм.

Подключаемся к первому серверу, обновляем репы и ставим нужные пакеты, и копируем конфиг туда /etc/wireguard/wg0.conf:
Bash:
apt update && apt install -y wireguard wireguard-tools iptables net-tools resolvconf

смотрим приватный ключ входного сервера и публичный ключ клиента:
Bash:
cat priv_server_in && cat pub_client
priv_server_in_pub_client.png


Bash:
nano /etc/wireguard/wg0.conf

правим конфиг, вставляем свои ключи и сохраняем CTRL+S:
Код:
[Interface]
Address = 10.111.111.2/24
SaveConfig = true
ListenPort = 51820
PrivateKey = aHuQGLwXBTZazyqXF4OCs5EpM/LogK3wXn+1Wwu68F8= ##приватный ключ входного сервера
MTU = 1500

[Peer]
PublicKey = 3WTQi2IMxyP3xMaxCVb5JdtoROmBeSBwtu2MvtGjYVY= ##публичный ключ клиента double wg
AllowedIPs = 10.111.111.1/24
nano_wg0.png
CTRL+X выходим из nano.

теперь создадим конфиг wg для подключения от первого сервера к второму:
На первый сервер копируем конфиг для подключения к второму серверу /etc/wireguard/gate0.conf вставляя свои ключи:

Bash:
cat priv_client_mid && cat pub_server_mid
priv_client_mid_pub_server_mid.png


Bash:
nano /etc/wireguard/gate0.conf

Код:
[Interface]
Address = 10.222.222.1/32
PrivateKey = MDJ9NRQNdexg4gkFr0uatr3cfo0AQcsp7F+8V3g9+n4= ## приватный ключ клиента выходного сервера
MTU = 1500

PostUp = ip route add 0.0.0.0/0 dev gate0 table middleman
PostUp = ip rule add to 10.111.111.0/24 table main
PostUp = ip rule add from 10.111.111.0/24 table middleman
PostUp = wg set gate0 peer igNB9yPndX9ZYW7wOGKLFSy6kebeNVQpogL0yb5yOW0= allowed-ips 0.0.0.0/0 ## публичный ключ выходного сервера
PostDown = ip route del 0.0.0.0/0 dev gate0 table middleman
PostDown = ip rule del to 10.111.111.0/24 table main
PostDown = ip rule del from 10.111.111.0/24 table middleman

[Peer]
PublicKey = igNB9yPndX9ZYW7wOGKLFSy6kebeNVQpogL0yb5yOW0= ## публичный ключ выходного сервера
AllowedIPs = 10.222.222.2/24
Endpoint = ИП_ВЫХОДНОГО_СЕРВЕРА:51820
PersistentKeepalive = 20
nano_gate0.png
сохраняем CTRL+S / CTRL+X выходим из nano.

Далее включаем форвардинг, добавляем таблицу маршрутизации, поднимаем сконфигурированные конфиги интерфейсов wg, добавляем правила iptables:

Bash:
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "1 middleman" >> /etc/iproute2/rt_tables
wg-quick up wg0 &> /dev/null
wg-quick up gate0 &> /dev/null
iptables -I FORWARD -i wg0 -o wg0 -j ACCEPT
iptables -t nat -I POSTROUTING -s 10.111.111.0/24 -o $(ifconfig|head -n1|cut -d " " -f1| tr ":" "\n"|awk NF) -j MASQUERADE
iptables -t nat -I POSTROUTING -s 10.111.111.0/24 -j SNAT --to 10.222.222.1
exit
iptables.png

Затем подрубаемся ко второму серверу и также смотрим что сгенерировалось в виде приватного ключа выходного сервера и публичного ключа клиента выходного сервера, правим в соответствии с сгенерированным вами и копируем в конфиг /etc/wireguard/wg0.conf:
Обновляем репы и ставим нужные пакеты:
Bash:
apt update && apt install -y wireguard wireguard-tools iptables net-tools resolvconf &> /dev/null

Bash:
cat priv_server_mid && cat pub_client_mid
priv_server_mid_pub_client_mid.png


Bash:
nano /etc/wireguard/wg0.conf

Код:
[Interface]
Address = 10.222.222.2/24
SaveConfig = true
ListenPort = 51820
PrivateKey = EKVIFEIyB7hrtXk4LlM5mRu2jcTLyk49Hfavo2juNkM= ## приватный ключ выходного сервера
MTU = 1500

[Peer]
PublicKey = Mg4CMEpNwsL5NuGZlhRxkf9zoW7m1IkxcW4gisw0IFM= ## пубиличный ключ клиента выходного сервера
AllowedIPs = 10.222.222.1/24
nano_wg0_mid.png

Далее все также включаем форвардинг, поднимаем сконфигурированный конфиг интерфейса wg, добавляем правила iptables:
Bash:
echo 1 > /proc/sys/net/ipv4/ip_forward
wg-quick up wg0 &> /dev/null
iptables -I FORWARD -i wg0 -o wg0 -j ACCEPT
iptables -t nat -I POSTROUTING -s 10.222.222.0/24 -o $(ifconfig | cut -d " " -f1| tr ":" "\n" | awk NF | head -n1) -j MASQUERADE
exit

теперь можем подключится с ранее созданным клиентским конфигом cllient.conf:

Bash:
wg-quick up ~/client.conf
wg-quick_up_client.png
проверим:
Bash:
curl ident.me
traceroute 8.8.8.8
curl_tracert.png
всё работает. Трафик идет от клиента double wg -> входной сервер wg -> выходной сервер wg -> internet.

Идем на первый сервер и прикручиваем wireguard-ui:

Bash:
bash <(curl -s https://gitlab.com/snax44/wireguard-ui-setup/-/raw/master/install.sh)
get_wireguard-ui.png


на первый вопрос жмем Enter (вставит текущий ип сервера), второй вопрос тоже Enter (вставит дефолтный порт 51820), третий вопрос - пишем сеть 10.111.111.0/24 (как у нас в конфиге). Далее вопрос тоже Enter (укажет дефолтный wg интерфейс wg0, как и имя нашего конфига), вопрос об системном интерфейсе Enter (укажет eth0), правила файрвола не применяем, последний вопрос - ставим "n" и Enter.
Установится wireguard-ui на локалхосте, не торча наружу и необходимо пробросить порт через ssh как и написано по окончанию установки:
wireguard-ui_done.png

прокидываем порт до входного сервака с wireguard-ui:
Bash:
ssh -L 5000:localhost:5000 root@ИП_ВХОДНОГО_СЕРВЕРА

ssh_portforward.png

в браузере открываем 127.0.0.1:5000, креды по дефолту admin/admin:
wgui.png

ставим IP - 10.111.111.2/24, жмем save и затем apply config.
Переходим в Wireguard Clients и добавляем конфиг, и можем проверять
test.png

жмём submit, затем apply config и проверяем
applyconfig.png


test_new_config.png

connected.png

connected_2config.png

можно добавлять клиенсткие конфиги которые будут подхватыватся правилом iptables -L -t nat с учетом настроенными выше нами адресами(это уже сделано, вводить не надо, оставлено для информации):

Bash:
iptables -t nat -I POSTROUTING -s 10.111.111.0/24 -o $(ifconfig|head -n1|cut -d " " -f1| tr ":" "\n"|awk NF) -j MASQUERADE
iptables -t nat -I POSTROUTING -s 10.111.111.0/24 -j SNAT --to 10.222.222.1
iptablesnat.png

и всё идёт от созданных конфигов в wireguard-ui в первый сервер (входной, с wireguard-ui), затем во второй сервер, образуя double wireguard chain
АВТОРСКАЯ статья о поднятии DoubleVPN на базе Wireguard. (покомандная с описанием команд и скриншотами) ✅
1) делал на дебиан, но и на ubuntu взлетит ✅
2) iptables, вместо nfw ✅
3) прикручен wireguard-ui✅
4) разметка bbcode ✅

Lowbanger xss.pro
 

Вложения

  • nano_client.png
    nano_client.png
    14.9 КБ · Просмотры: 15
  • sed_client.png
    sed_client.png
    18.1 КБ · Просмотры: 14
  • nano_gate0.png
    nano_gate0.png
    20.9 КБ · Просмотры: 15
  • ssh_portforward.png
    ssh_portforward.png
    16.7 КБ · Просмотры: 38
Последнее редактирование:
всех приветствую, АВТОРСКАЯ статья о поднятии DoubleVPN на базе Wireguard. (покомандная с описанием команд и скриншотами)

client double wg -> 1hop -> 2hop -> internet

Генерируем ключи для первого и второго сервера и клиентов:
Bash:
wg genkey > priv_server_in && cat priv_server_in | wg pubkey > pub_server_in && wg genkey > priv_server_mid && cat priv_server_mid | wg pubkey > pub_server_mid

Bash:
wg genkey > priv_client && cat priv_client | wg pubkey > pub_client && wg genkey > priv_client_mid && cat priv_client_mid | wg pubkey > pub_client_mid

Создадим конфиг для клиента, с которого будет устанавливатся подключение к 1hop wg
сначала смотрим что сгенерировалось в качестве приватного ключа клиента и публичного ключа входного сервера:
Bash:
cat priv_client && cat pub_server_in

Посмотреть вложение 91045

правим конфиг клиента ~/client.conf:
Bash:
nano ~/client.conf

Код:
[Interface]
Address = 10.111.111.1/24
PrivateKey = IApZPxYykx0WQyd8G8Ty7PGVitgCAh1ayqdhLVzJ/Vk= ## приватный ключ клиента double wg
MTU = 1200
DNS = 1.1.1.1

PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT

[Peer]
PublicKey = MopoFKCwIDdu7+xDZsUhK2oJiuvzeJN01KesSfkSe3U= ## публичный ключ входного сервера
AllowedIPs = 0.0.0.0/0
Endpoint = ИП_ВХОДНОГО_СЕРВЕРА:51820
PersistentKeepalive = 20
сохраняем CTRL+S / CTRL+X выходим из nano.

если скопировалось сьев спец символы так:
Посмотреть вложение 91048
то подкорректируем конфиг до правильного вида и посмотрим на скорректированный конфиг:
Bash:
sed -i "s/.--mark/ --mark \x24\x28wg show \x25i fwmark\x29/" ~/client.conf && cat ~/client.conf
Посмотреть вложение 91049
теперь норм.

Подключаемся к первому серверу, обновляем репы и ставим нужные пакеты, и копируем конфиг туда /etc/wireguard/wg0.conf:
Bash:
apt update && apt install -y wireguard wireguard-tools iptables net-tools resolvconf

смотрим приватный ключ входного сервера и публичный ключ клиента:
Bash:
cat priv_server_in && cat pub_client
Посмотреть вложение 91041

Bash:
nano /etc/wireguard/wg0.conf

правим конфиг, вставляем свои ключи и сохраняем CTRL+S:
Код:
[Interface]
Address = 10.111.111.2/24
SaveConfig = true
ListenPort = 51820
PrivateKey = aHuQGLwXBTZazyqXF4OCs5EpM/LogK3wXn+1Wwu68F8= ##приватный ключ входного сервера
MTU = 1500

[Peer]
PublicKey = 3WTQi2IMxyP3xMaxCVb5JdtoROmBeSBwtu2MvtGjYVY= ##публичный ключ клиента double wg
AllowedIPs = 10.111.111.1/24
CTRL+X выходим из nano.

теперь создадим конфиг wg для подключения от первого сервера к второму:
На первый сервер копируем конфиг для подключения к второму серверу /etc/wireguard/gate0.conf вставляя свои ключи:

Bash:
cat priv_client_mid && cat pub_server_mid
Посмотреть вложение 91046

Bash:
nano /etc/wireguard/gate0.conf

Код:
[Interface]
Address = 10.222.222.1/32
PrivateKey = MDJ9NRQNdexg4gkFr0uatr3cfo0AQcsp7F+8V3g9+n4= ## приватный ключ клиента выходного сервера
MTU = 1500

PostUp = ip route add 0.0.0.0/0 dev gate0 table middleman
PostUp = ip rule add to 10.111.111.0/24 table main
PostUp = ip rule add from 10.111.111.0/24 table middleman
PostUp = wg set gate0 peer igNB9yPndX9ZYW7wOGKLFSy6kebeNVQpogL0yb5yOW0= allowed-ips 0.0.0.0/0 ## публичный ключ выходного сервера
PostDown = ip route del 0.0.0.0/0 dev gate0 table middleman
PostDown = ip rule del to 10.111.111.0/24 table main
PostDown = ip rule del from 10.111.111.0/24 table middleman

[Peer]
PublicKey = igNB9yPndX9ZYW7wOGKLFSy6kebeNVQpogL0yb5yOW0= ## публичный ключ выходного сервера
AllowedIPs = 10.222.222.2/24
Endpoint = ИП_ВЫХОДНОГО_СЕРВЕРА:51820
PersistentKeepalive = 20
сохраняем CTRL+S / CTRL+X выходим из nano.

Далее включаем форвардинг, добавляем таблицу маршрутизации, поднимаем сконфигурированные конфиги интерфейсов wg, добавляем правила iptables:

Bash:
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "1 middleman" >> /etc/iproute2/rt_tables
wg-quick up wg0 &> /dev/null
wg-quick up gate0 &> /dev/null
iptables -I FORWARD -i wg0 -o wg0 -j ACCEPT
iptables -t nat -I POSTROUTING -s 10.111.111.0/24 -o $(ifconfig|head -n1|cut -d " " -f1| tr ":" "\n"|awk NF) -j MASQUERADE
iptables -t nat -I POSTROUTING -s 10.111.111.0/24 -j SNAT --to 10.222.222.1
exit

Затем подрубаемся ко второму серверу и также смотрим что сгенерировалось в виде приватного ключа выходного сервера и публичного ключа клиента выходного сервера, правим в соответствии с сгенерированным вами и копируем в конфиг /etc/wireguard/wg0.conf:
Обновляем репы и ставим нужные пакеты:
Bash:
apt update && apt install -y wireguard wireguard-tools iptables net-tools resolvconf &> /dev/null

Bash:
cat priv_server_mid && cat pub_client_mid
Посмотреть вложение 91052

Bash:
nano /etc/wireguard/wg0.conf

Код:
[Interface]
Address = 10.222.222.2/24
SaveConfig = true
ListenPort = 51820
PrivateKey = EKVIFEIyB7hrtXk4LlM5mRu2jcTLyk49Hfavo2juNkM= ## приватный ключ выходного сервера
MTU = 1500

[Peer]
PublicKey = Mg4CMEpNwsL5NuGZlhRxkf9zoW7m1IkxcW4gisw0IFM= ## пубиличный ключ клиента выходного сервера
AllowedIPs = 10.222.222.1/24

Далее все также включаем форвардинг, поднимаем сконфигурированный конфиг интерфейса wg, добавляем правила iptables:
Bash:
echo 1 > /proc/sys/net/ipv4/ip_forward
wg-quick up wg0 &> /dev/null
iptables -I FORWARD -i wg0 -o wg0 -j ACCEPT
iptables -t nat -I POSTROUTING -s 10.222.222.0/24 -o $(ifconfig | cut -d " " -f1| tr ":" "\n" | awk NF | head -n1) -j MASQUERADE
exit

теперь можем подключится с ранее созданным клиентским конфигом cllient.conf:

Bash:
wg-quick up ~/client.conf
проверим:
Bash:
curl ident.me
traceroute 8.8.8.8
всё работает. Трафик идет от клиента double wg -> входной сервер wg -> выходной сервер wg -> internet.

Идем на первый сервер и прикручиваем wireguard-ui:

Bash:
bash <(curl -s https://gitlab.com/snax44/wireguard-ui-setup/-/raw/master/install.sh)
Посмотреть вложение 91061

на первый вопрос жмем Enter (вставит текущий ип сервера), второй вопрос тоже Enter (вставит дефолтный порт 51820), третий вопрос - пишем сеть 10.111.111.0/24 (как у нас в конфиге). Далее вопрос тоже Enter (укажет дефолтный wg интерфейс wg0, как и имя нашего конфига), вопрос об системном интерфейсе Enter (укажет eth0), правила файрвола не применяем, последний вопрос - ставим "n" и Enter.
Установится wireguard-ui на локалхосте, не торча наружу и необходимо пробросить порт через ssh как и написано по окончанию установки:
Посмотреть вложение 91062
прокидываем порт до входного сервака с wireguard-ui:
Bash:
ssh -L 5000:localhost:5000 root@ИП_ВХОДНОГО_СЕРВЕРА

Посмотреть вложение 91074
в браузере открываем 127.0.0.1:5000, креды по дефолту admin/admin:
Посмотреть вложение 91064
ставим IP - 10.111.111.2/24, жмем save и затем apply config.
Переходим в Wireguard Clients и добавляем конфиг, и можем проверять
Посмотреть вложение 91065
жмём submit, затем apply config и проверяем
Посмотреть вложение 91066

Посмотреть вложение 91067
Посмотреть вложение 91071
Посмотреть вложение 91072
можно добавлять клиенсткие конфиги которые будут подхватыватся правилом iptables -L -t nat с учетом настроенными выше нами адресами(это уже сделано, вводить не надо, оставлено для информации):

Bash:
iptables -t nat -I POSTROUTING -s 10.111.111.0/24 -o $(ifconfig|head -n1|cut -d " " -f1| tr ":" "\n"|awk NF) -j MASQUERADE
iptables -t nat -I POSTROUTING -s 10.111.111.0/24 -j SNAT --to 10.222.222.1
Посмотреть вложение 91068
и всё идёт от созданных конфигов в wireguard-ui в первый сервер (входной, с wireguard-ui), затем во второй сервер, образуя double wireguard chain
АВТОРСКАЯ статья о поднятии DoubleVPN на базе Wireguard. (покомандная с описанием команд и скриншотами) ✅
1) делал на дебиан, но и на ubuntu взлетит ✅
2) iptables, вместо nfw ✅
3) прикручен wireguard-ui✅
4) разметка bbcode ✅

Lowbanger xss.pro
В течение суток проверю и отпишусь.
 
всех приветствую, АВТОРСКАЯ статья о поднятии DoubleVPN на базе Wireguard. (покомандная с описанием команд и скриншотами)

client double wg -> 1hop -> 2hop -> internet

Генерируем ключи для первого и второго сервера и клиентов:
Bash:
wg genkey > priv_server_in && cat priv_server_in | wg pubkey > pub_server_in && wg genkey > priv_server_mid && cat priv_server_mid | wg pubkey > pub_server_mid

Bash:
wg genkey > priv_client && cat priv_client | wg pubkey > pub_client && wg genkey > priv_client_mid && cat priv_client_mid | wg pubkey > pub_client_mid

Создадим конфиг для клиента, с которого будет устанавливатся подключение к 1hop wg
сначала смотрим что сгенерировалось в качестве приватного ключа клиента и публичного ключа входного сервера:
Bash:
cat priv_client && cat pub_server_in

Посмотреть вложение 91045

правим конфиг клиента ~/client.conf:
Bash:
nano ~/client.conf

Код:
[Interface]
Address = 10.111.111.1/24
PrivateKey = IApZPxYykx0WQyd8G8Ty7PGVitgCAh1ayqdhLVzJ/Vk= ## приватный ключ клиента double wg
MTU = 1200
DNS = 1.1.1.1

PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT

[Peer]
PublicKey = MopoFKCwIDdu7+xDZsUhK2oJiuvzeJN01KesSfkSe3U= ## публичный ключ входного сервера
AllowedIPs = 0.0.0.0/0
Endpoint = ИП_ВХОДНОГО_СЕРВЕРА:51820
PersistentKeepalive = 20
сохраняем CTRL+S / CTRL+X выходим из nano.

если скопировалось сьев спец символы так:
Посмотреть вложение 91048
то подкорректируем конфиг до правильного вида и посмотрим на скорректированный конфиг:
Bash:
sed -i "s/.--mark/ --mark \x24\x28wg show \x25i fwmark\x29/" ~/client.conf && cat ~/client.conf
Посмотреть вложение 91049
теперь норм.

Подключаемся к первому серверу, обновляем репы и ставим нужные пакеты, и копируем конфиг туда /etc/wireguard/wg0.conf:
Bash:
apt update && apt install -y wireguard wireguard-tools iptables net-tools resolvconf

смотрим приватный ключ входного сервера и публичный ключ клиента:
Bash:
cat priv_server_in && cat pub_client
Посмотреть вложение 91041

Bash:
nano /etc/wireguard/wg0.conf

правим конфиг, вставляем свои ключи и сохраняем CTRL+S:
Код:
[Interface]
Address = 10.111.111.2/24
SaveConfig = true
ListenPort = 51820
PrivateKey = aHuQGLwXBTZazyqXF4OCs5EpM/LogK3wXn+1Wwu68F8= ##приватный ключ входного сервера
MTU = 1500

[Peer]
PublicKey = 3WTQi2IMxyP3xMaxCVb5JdtoROmBeSBwtu2MvtGjYVY= ##публичный ключ клиента double wg
AllowedIPs = 10.111.111.1/24
CTRL+X выходим из nano.

теперь создадим конфиг wg для подключения от первого сервера к второму:
На первый сервер копируем конфиг для подключения к второму серверу /etc/wireguard/gate0.conf вставляя свои ключи:

Bash:
cat priv_client_mid && cat pub_server_mid
Посмотреть вложение 91046

Bash:
nano /etc/wireguard/gate0.conf

Код:
[Interface]
Address = 10.222.222.1/32
PrivateKey = MDJ9NRQNdexg4gkFr0uatr3cfo0AQcsp7F+8V3g9+n4= ## приватный ключ клиента выходного сервера
MTU = 1500

PostUp = ip route add 0.0.0.0/0 dev gate0 table middleman
PostUp = ip rule add to 10.111.111.0/24 table main
PostUp = ip rule add from 10.111.111.0/24 table middleman
PostUp = wg set gate0 peer igNB9yPndX9ZYW7wOGKLFSy6kebeNVQpogL0yb5yOW0= allowed-ips 0.0.0.0/0 ## публичный ключ выходного сервера
PostDown = ip route del 0.0.0.0/0 dev gate0 table middleman
PostDown = ip rule del to 10.111.111.0/24 table main
PostDown = ip rule del from 10.111.111.0/24 table middleman

[Peer]
PublicKey = igNB9yPndX9ZYW7wOGKLFSy6kebeNVQpogL0yb5yOW0= ## публичный ключ выходного сервера
AllowedIPs = 10.222.222.2/24
Endpoint = ИП_ВЫХОДНОГО_СЕРВЕРА:51820
PersistentKeepalive = 20
сохраняем CTRL+S / CTRL+X выходим из nano.

Далее включаем форвардинг, добавляем таблицу маршрутизации, поднимаем сконфигурированные конфиги интерфейсов wg, добавляем правила iptables:

Bash:
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "1 middleman" >> /etc/iproute2/rt_tables
wg-quick up wg0 &> /dev/null
wg-quick up gate0 &> /dev/null
iptables -I FORWARD -i wg0 -o wg0 -j ACCEPT
iptables -t nat -I POSTROUTING -s 10.111.111.0/24 -o $(ifconfig|head -n1|cut -d " " -f1| tr ":" "\n"|awk NF) -j MASQUERADE
iptables -t nat -I POSTROUTING -s 10.111.111.0/24 -j SNAT --to 10.222.222.1
exit

Затем подрубаемся ко второму серверу и также смотрим что сгенерировалось в виде приватного ключа выходного сервера и публичного ключа клиента выходного сервера, правим в соответствии с сгенерированным вами и копируем в конфиг /etc/wireguard/wg0.conf:
Обновляем репы и ставим нужные пакеты:
Bash:
apt update && apt install -y wireguard wireguard-tools iptables net-tools resolvconf &> /dev/null

Bash:
cat priv_server_mid && cat pub_client_mid
Посмотреть вложение 91052

Bash:
nano /etc/wireguard/wg0.conf

Код:
[Interface]
Address = 10.222.222.2/24
SaveConfig = true
ListenPort = 51820
PrivateKey = EKVIFEIyB7hrtXk4LlM5mRu2jcTLyk49Hfavo2juNkM= ## приватный ключ выходного сервера
MTU = 1500

[Peer]
PublicKey = Mg4CMEpNwsL5NuGZlhRxkf9zoW7m1IkxcW4gisw0IFM= ## пубиличный ключ клиента выходного сервера
AllowedIPs = 10.222.222.1/24

Далее все также включаем форвардинг, поднимаем сконфигурированный конфиг интерфейса wg, добавляем правила iptables:
Bash:
echo 1 > /proc/sys/net/ipv4/ip_forward
wg-quick up wg0 &> /dev/null
iptables -I FORWARD -i wg0 -o wg0 -j ACCEPT
iptables -t nat -I POSTROUTING -s 10.222.222.0/24 -o $(ifconfig | cut -d " " -f1| tr ":" "\n" | awk NF | head -n1) -j MASQUERADE
exit

теперь можем подключится с ранее созданным клиентским конфигом cllient.conf:

Bash:
wg-quick up ~/client.conf
проверим:
Bash:
curl ident.me
traceroute 8.8.8.8
всё работает. Трафик идет от клиента double wg -> входной сервер wg -> выходной сервер wg -> internet.

Идем на первый сервер и прикручиваем wireguard-ui:

Bash:
bash <(curl -s https://gitlab.com/snax44/wireguard-ui-setup/-/raw/master/install.sh)
Посмотреть вложение 91061

на первый вопрос жмем Enter (вставит текущий ип сервера), второй вопрос тоже Enter (вставит дефолтный порт 51820), третий вопрос - пишем сеть 10.111.111.0/24 (как у нас в конфиге). Далее вопрос тоже Enter (укажет дефолтный wg интерфейс wg0, как и имя нашего конфига), вопрос об системном интерфейсе Enter (укажет eth0), правила файрвола не применяем, последний вопрос - ставим "n" и Enter.
Установится wireguard-ui на локалхосте, не торча наружу и необходимо пробросить порт через ssh как и написано по окончанию установки:
Посмотреть вложение 91062
прокидываем порт до входного сервака с wireguard-ui:
Bash:
ssh -L 5000:localhost:5000 root@ИП_ВХОДНОГО_СЕРВЕРА

Посмотреть вложение 91074
в браузере открываем 127.0.0.1:5000, креды по дефолту admin/admin:
Посмотреть вложение 91064
ставим IP - 10.111.111.2/24, жмем save и затем apply config.
Переходим в Wireguard Clients и добавляем конфиг, и можем проверять
Посмотреть вложение 91065
жмём submit, затем apply config и проверяем
Посмотреть вложение 91066

Посмотреть вложение 91067
Посмотреть вложение 91071
Посмотреть вложение 91072
можно добавлять клиенсткие конфиги которые будут подхватыватся правилом iptables -L -t nat с учетом настроенными выше нами адресами(это уже сделано, вводить не надо, оставлено для информации):

Bash:
iptables -t nat -I POSTROUTING -s 10.111.111.0/24 -o $(ifconfig|head -n1|cut -d " " -f1| tr ":" "\n"|awk NF) -j MASQUERADE
iptables -t nat -I POSTROUTING -s 10.111.111.0/24 -j SNAT --to 10.222.222.1
Посмотреть вложение 91068
и всё идёт от созданных конфигов в wireguard-ui в первый сервер (входной, с wireguard-ui), затем во второй сервер, образуя double wireguard chain
АВТОРСКАЯ статья о поднятии DoubleVPN на базе Wireguard. (покомандная с описанием команд и скриншотами) ✅
1) делал на дебиан, но и на ubuntu взлетит ✅
2) iptables, вместо nfw ✅
3) прикручен wireguard-ui✅
4) разметка bbcode ✅

Lowbanger xss.pro
Отправь в лс кош USDT ERC20.
 
Lowbanger вот прям молодцом! Отрекламировал свои услуги (из подписи) по красоте + денег заработал + довольно качественную статью по теме запилил.
admin или модераторы, вынесите статью в отдельную тему. Затеряется...
scoring0 плюс за идею и что не отмазываешься от оплаты, докапываясь к мелочам (как любят делать некоторые, дабы сьехать, получив желаемое). Ну и что статья в паблике, за это естественно. Для многих статья, думаю, будет актуальна.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Lowbanger вот прям молодцом! Отрекламировал свои услуги (из подписи) по красоте + денег заработал + довольно качественную статью по теме запилил.
admin или модераторы, вынесите статью в отдельную тему. Затеряется...
scoring0 плюс за идею и что не отмазываешься от оплаты, докапываясь к мелочам (как любят делать некоторые, дабы сьехать, получив желаемое). Ну и что статья в паблике, за это естественно. Для многих статья, думаю, будет актуальна.

Кэш отправил.
Да, это бы все в раздел статей оформить отдельно, было бы отлично.
готово https://xss.pro/threads/120342/
 
У Вас недостаточно прав, чтобы здесь отвечать.
Верх