Итак, у меня есть два компьютера. Назовем их Боб и Алиса. Боб — клиент двух VPN, один из которых мой личный, а другой — общедоступный. Алиса размещает частный VPN и DHCP-сервер. Теперь у нас есть третий компьютер, который я хочу подключить к VPN, и назовем его Салли. Салли прекрасно подключается к Бобу, хотя, как только я подключаюсь к VPN, не может маршрутизировать так, как мне нужно.
Я хочу, чтобы Салли направляла свой трафик через Алису, которая затем направит его в публичный VPN. Я могу сделать это без Боба, размещающего частный VPN.
VPN.conf Алисы
local 10.42.25.2
port 1194
proto udp
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key # This file should be kept secret
dh /etc/openvpn/server/dh2048.pem
server 10.42.26.0 255.255.255.0
route-gateway 10.42.26.1
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
client-to-client
keepalive 10 120
tls-auth /etc/openvpn/server/ta.key 0 # This file is secret
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
verb 3
explicit-exit-notify 1
Боб и Салли без проблем подключаются к серверу Алисы, используя ожидаемые клиентские конфигурации.
Iptables Боба:
-A FORWARD -i tun1 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i tun0 -o tun1 -j ACCEPT
-A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -j ACCEPT
Я могу публиковать больше информации по мере поступления, но сейчас я не уверен, что еще стоит публиковать.