Всем привет, и доброго времени суток!
В специфике нашей работы безопасность занимает наиважнейшее место, VPN соединение это наше всё.
Из моих знакомых многие задают вопросы по двойному соединению VPN, мое мнение однозначно на стороне данного подключения в сеть.
Данный мануал буду транслировать при возникшем вопросе, дабы не отвечать и не объяснять что да как, будем ценить свое время.
По поводу тройных, четвертных и тд цепочек соединения, я в своем мануале их касаться не буду, считаю это дело сугубо личное и каждого, выбирайте решение на свое усмотрение.
Но замечу, что по логике данного мануала реализовать цепочки из множественных подключений, думаю не составит труда, все зависит от необходимых требований использования данных схем. Тут каждый сам решает применим ли ему на выходе пинг ~9999ms.
Теперь кратко по шагам с пояснениями, за ранее нам известно что сервера у нас на *nix системах, данный ман без проблем по командам взлетит на Ubuntu, Debian, для других дистров изменяется лишь синтаксис.
==- WireGuard Double VPN Chaining -==
Design chaining
Client ==> Middleman(Server1) ==> Gate(Server2) ==> Internet
Server1 будет называться Middleman, а Server2 будет называться Gate
Внутренний диапазон IP. Для удобства я выберу диапазон ВПН 10.10.10.0/24
IP forwarding включен на сервере. Если не включен, добавьте:
net.ipv4.ip_forward=1 в /etc/sysctl.conf файле
и запустите sysctl -p для включения этого параметра ядра
==- Gate (Server2) -==
1- Обновляемся и устанавливаем wireguard
==-
2- Генерируем ключи, приватный и паблик
==-
3- Прописываем конфиг
nano /etc/wireguard/gate0.conf
==- Middleman (Server1) -==
1- Обновляемся и устанавливаем wireguard
2- Генерируем ключи, приватный и паблик
==-
3- Прописываем конфиг
nano /etc/wireguard/wg0.conf
==- Client -==
1- Обновляемся и устанавливаем wireguard
==-
2- Генерируем ключи, приватный и паблик
==-
3- Прописываем конфиг
nano /etc/wireguard/vpn0.conf
==-
После того, как все настроено, подключаемся к каждому серверу и запускаем VPN
==-
Чекаем цепочку, по логике если все сделано тк необходимо и без ошибок, все заработает
---
На этом откланиваюсь, это была база из настольной работы, дальше можно все это обфуцировать в обертку, прикрутить TOR и тд, но тема не об этом.
Оставляйте каменты в треде и если что стучите в ЛС
Всем удачи в бизе!
© oziris
В специфике нашей работы безопасность занимает наиважнейшее место, VPN соединение это наше всё.
Из моих знакомых многие задают вопросы по двойному соединению VPN, мое мнение однозначно на стороне данного подключения в сеть.
Данный мануал буду транслировать при возникшем вопросе, дабы не отвечать и не объяснять что да как, будем ценить свое время.
По поводу тройных, четвертных и тд цепочек соединения, я в своем мануале их касаться не буду, считаю это дело сугубо личное и каждого, выбирайте решение на свое усмотрение.
Но замечу, что по логике данного мануала реализовать цепочки из множественных подключений, думаю не составит труда, все зависит от необходимых требований использования данных схем. Тут каждый сам решает применим ли ему на выходе пинг ~9999ms.
Теперь кратко по шагам с пояснениями, за ранее нам известно что сервера у нас на *nix системах, данный ман без проблем по командам взлетит на Ubuntu, Debian, для других дистров изменяется лишь синтаксис.
==- WireGuard Double VPN Chaining -==
Design chaining
Client ==> Middleman(Server1) ==> Gate(Server2) ==> Internet
Server1 будет называться Middleman, а Server2 будет называться Gate
Внутренний диапазон IP. Для удобства я выберу диапазон ВПН 10.10.10.0/24
IP forwarding включен на сервере. Если не включен, добавьте:
net.ipv4.ip_forward=1 в /etc/sysctl.conf файле
и запустите sysctl -p для включения этого параметра ядра
Bash:
ubuntu@ip-172-31-32-230:~$ sudo nano /etc/sysctl.conf
ubuntu@ip-172-31-32-230:~$ sudo sysctl -p
net.ipv4.ip_forward = 1
ubuntu@ip-172-31-32-230:~$
==- Gate (Server2) -==
1- Обновляемся и устанавливаем wireguard
Bash:
ubuntu@gate:~$ sudo apt update && apt install -y wireguard wireguard-tools iptables net-tools resolvconf &> /dev/null
2- Генерируем ключи, приватный и паблик
Bash:
ubuntu@gate:~# wg genkey | sudo tee /etc/wireguard/private.key
sDFqKjvVRv24/9HNIpso1VH5YcbMbawBnMShoDIlbn4=
ubuntu@gate:~# sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key
ywZLQBXDuqkGm6O9gshBF/LJFvkVHxcUFdg3qlguHwY=
==-
3- Прописываем конфиг
nano /etc/wireguard/gate0.conf
Bash:
[Interface]
Address = 10.10.10.2/32
PostUp = ufw route allow in on gate0 out on eth0
## PostUp = iptables -t nat -A POSTROUTING -s 10.200.200.0/24 -o eth0 -j MASQUERADE ## Тут на ваше усмотрение, можно оставить как есть
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PreDown = ufw route delete allow in on gate0 out on eth0
## PreDown = iptables -t nat -D POSTROUTING -s 10.200.200.0/24 -o eth0 -j MASQUERADE ## Тут на ваше усмотрение, можно оставить как есть
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = sDFqKjvVRv24/9HNIpso1VH5YcbMbawBnMShoDIlbn4= ## private-key-of-gate-created
[Peer]
PublicKey = qhN3653ygIzsMtQvzayl4RkjJ7Rv8l24wnxxS38l4lc= ## public-key-of-server1 Его мы сгенерируем ниже в ==- Middleman(Server1) -==
AllowedIPs = 10.10.10.0/24
Endpoint = IP:51820 ## IP-of-server1:51820
==- Middleman (Server1) -==
1- Обновляемся и устанавливаем wireguard
Bash:
ubuntu@middleman:~$ sudo apt update && apt install -y wireguard wireguard-tools iptables net-tools resolvconf &> /dev/null
Bash:
ubuntu@middleman:~# wg genkey | sudo tee /etc/wireguard/private.key
0NbdRY1DdENd0kZRHCeMAjcKQlLogJBwnBJ5pHhVslY=
ubuntu@middleman:~# sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key
qhN3653ygIzsMtQvzayl4RkjJ7Rv8l24wnxxS38l4lc=
==-
3- Прописываем конфиг
nano /etc/wireguard/wg0.conf
Bash:
[Interface]
Address = 10.10.10.3/32
PostUp = echo 1 > /proc/sys/net/ipv4/ip_forward
PostUp = echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT && iptables -A FORWARD -o wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT && iptables -D FORWARD -o wg0 -j ACCEPT
PostDown = echo 0 > /proc/sys/net/ipv4/ip_forward
PostDown = echo 0 > /proc/sys/net/ipv4/conf/all/proxy_arp
ListenPort = 51820
PrivateKey = 0NbdRY1DdENd0kZRHCeMAjcKQlLogJBwnBJ5pHhVslY= ## private-key-of-middleman
[Peer]
PublicKey = Y5q2JRNV5xsrQBBXAzZbeE2cwcZwGvPlcwD4kk1oAzY= ## public-key-of-client Его мы сгенерируем ниже в ==- Client -==
AllowedIPs = 10.10.10.4/32
[Peer]
PublicKey = ywZLQBXDuqkGm6O9gshBF/LJFvkVHxcUFdg3qlguHwY= ## public-key-of-gate
AllowedIPs = 0.0.0.0/0
Endpoint = IP:51820 ## IP-of-Gate:51820
==- Client -==
1- Обновляемся и устанавливаем wireguard
Bash:
ubuntu@client:~$ sudo apt update && apt install -y wireguard wireguard-tools iptables net-tools resolvconf &> /dev/null
2- Генерируем ключи, приватный и паблик
Bash:
ubuntu@client:~$ wg genkey | sudo tee /etc/wireguard/private-key-of-client.key
UA6WBN58A/MOkeBsfo6r3lX5usRxl8V+glJp9xEv3GI=
ubuntu@client:~$ sudo cat /etc/wireguard/private-key-of-client.key | wg pubkey | sudo tee /etc/wireguard/public-key-of-client.key
Y5q2JRNV5xsrQBBXAzZbeE2cwcZwGvPlcwD4kk1oAzY=
==-
3- Прописываем конфиг
nano /etc/wireguard/vpn0.conf
Bash:
[Interface]
PrivateKey = UA6WBN58A/MOkeBsfo6r3lX5usRxl8V+glJp9xEv3GI= ## private-key-of-client
Address = 10.10.10.4/32
PostUp = ip rule add table 200 from 10.0.2.15
PostUp = ip route add table 200 default via 10.0.2.2
PreDown = ip rule delete table 200 from 10.0.2.15
PreDown = ip route delete table 200 default via 10.0.2.2
[Peer]
PublicKey = qhN3653ygIzsMtQvzayl4RkjJ7Rv8l24wnxxS38l4lc= ## public-key-of-middleman
AllowedIPs = 0.0.0.0/0
Endpoint = IP:51820 ## IP-address-of-middleman:51820
==-
После того, как все настроено, подключаемся к каждому серверу и запускаем VPN
Код:
For gate:
wg-quick up gate0
For Middleman:
wg-quick up wg0
For Client:
wg-quick up vpn0
==-
Чекаем цепочку, по логике если все сделано тк необходимо и без ошибок, все заработает
Код:
==-
curl ident.me либо curl 49.12.234.183
traceroute 1.1.1.1
==-
---
На этом откланиваюсь, это была база из настольной работы, дальше можно все это обфуцировать в обертку, прикрутить TOR и тд, но тема не об этом.
Оставляйте каменты в треде и если что стучите в ЛС
Всем удачи в бизе!
© oziris