¿Por qué OpenVPN se conecta pero no funciona?

¿Por qué OpenVPN se conecta pero no funciona?

Tengo una máquina Ubuntu ejecutándose como servidor OpenVPN en otra ciudad. Puedo acceder a él a través de ssh. Estoy intentando usar la VPN desde una Mac usando Tunnelblick.

La subred local del servidor es 192.168.80.x. El del cliente es 192.168.0.x. Cuando el cliente se conecta, su dirección IP es 10.8.0.5.

Tunnelblick se conecta, pero no puedo ping 8.8.8.8cargar una página web ni acceder a ninguno de los dispositivos de la LAN remota, excepto al servidor VPN que usa la dirección 10.8.0.1.

El archivo de configuración del cliente:

client
dev tun
proto udp
remote [my server's external IP address] 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
remote-cert-tls server
comp-lzo
verb 3
redirect-gateway local def1

El servidor:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.80.0 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

¿Qué necesito cambiar?

Editar: En el servidor:

$ cat /proc/sys/net/ipv4/ip_forward
1

$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

$ ip route
default via 192.168.80.1 dev enp2s0  proto static  metric 100
10.8.0.0/24 via 10.8.0.2 dev tun0
10.8.0.2 dev tun0  proto kernel  scope link  src 10.8.0.1
169.254.0.0/16 dev tun0  scope link  metric 1000
192.168.80.0/24 dev enp2s0  proto kernel  scope link  src 192.168.80.5  metric 100

Edición 2:

$ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  10.0.0.0/8           anywhere

/etc/default/ufw incluye DEFAULT_FORWARD_POLICY="ACCEPT".

/etc/ufw/before.rules incluye:

*nat
:POSTROUTING ACCEPT [0:0] 
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT

Respuesta1

Mi problema fue que tenía especificada la interfaz incorrecta en /etc/ufw/before.rules. Debería haberlo tenido -A POSTROUTING -s 10.8.0.0/8 -o enp2s0 -j MASQUERADEen lugar de -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE. Copié y pegué de una guía sin discernir.

información relacionada