Entonces tengo dos computadoras. Los llamaremos Bob y Alice. Bob es un cliente de dos VPN, una privada y la otra disponible públicamente. Alice aloja una VPN privada y un servidor DHCP. Ahora tenemos una tercera computadora que quiero conectar a la VPN a la que llamaremos Sally. Sally se conecta bien con Bob, aunque una vez que estoy en la VPN no puedo enrutar de la manera que quiero.
Quiero que Sally enrute su tráfico a Alice, quien luego lo enrutará a la VPN pública. Puedo hacer esto sin que Bob aloje la VPN privada.
VPN.conf de Alice
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
Bob y Sally se conectan perfectamente al servidor de Alice utilizando las configuraciones de cliente esperadas.
Las iptables de Bob:
-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
Puedo publicar más información a medida que avancemos, pero no estoy seguro de qué más publicar en este momento.