No puedo entender por qué mi conexión openvpn no funciona. Parece que funciona bien en la conexión. Puedo conectarme a mi servidor, pero una vez que estoy conectado no puedo usar Internet a través de VPN.
Este es un servidor VPS que se ejecuta en Debian
Aquí está mi archivo openvpn server.conf
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
verb 6
mute 20
Y aquí está mi archivo client.conf
client
dev tun
proto udp
remote server_ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
comp-lzo
verb 3
remote-cert-tls server
También agregué reglas de firewall para aceptar conexiones y rutas, pero lo extraño es que algunas reglas aparecen varias veces. Aquí está mi archivo guardado de iptables.
# Generated by iptables-save v1.4.8 on Sun Dec 22 04:36:18 2013
*nat
:PREROUTING ACCEPT [53:9749]
:POSTROUTING ACCEPT [9:675]
:OUTPUT ACCEPT [9:675]
-A PREROUTING -d server_ip/32 -p udp -m udp --dport 53 -j REDIRECT --to-ports 1194
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
-A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source server_ip
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT
# Completed on Sun Dec 22 04:36:18 2013
# Generated by iptables-save v1.4.8 on Sun Dec 22 04:36:18 2013
*filter
:INPUT ACCEPT [946:112417]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [824:172939]
-A INPUT -i tun0 -p tcp -m tcp --dport 1194 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -o eth0 -j ACCEPT
COMMIT
# Completed on Sun Dec 22 04:36:18 2013
También verifiqué /etc/sysctl.conf para asegurarme de que
net.ipv4.ip_forward=1
tambien tengo
net.ipv6.conf.all.forwarding=1
Probé la conexión OpenVPN en mi PC con Linux y en Virtualbox XP y ambos tienen conexión, pero ninguno tiene acceso a Internet una vez conectado.
Lo más extraño de todo esto es que cuando hago traceroute muestra la conexión a través de VPN.
Por ejemplo, hago traceroute google.com
1 my ip from vpn connection
2 openvpn server ip
3 ...
4 ...
5 ... few hops between server to google
6 and finally google server ip
Entonces, traceroute muestra que la conexión pasa a través de VPN, y también cuando hago ping, el ping aumenta a 100 ms de diferencia cuando no estoy conectado a VPN cuando el ping es de aproximadamente 20 ms.
Pero cuando intento navegar por internet con cualquier programa (firefox, chrome, iexplorer) no obtengo nada. No se cargará nada y la conexión se agota.
No es que mi servidor sea lento, por lo que las páginas no se cargan, la prueba de velocidad muestra una conexión de 70 mbit en el servidor y tengo una conexión de 6 mbit.
Y cuando intento conectarme a otra VPN como Cloudnymous, todo funciona bien. Simplemente hay algo mal en mi configuración de openvpn.
EDITAR: Después de todo, pensé que finalmente lo hice funcionar, después de cambiar muchas configuraciones, finalmente puedo conectarme a mi VPN y obtener Internet desde allí.
Ahora tengo un último problema. Como estoy en Linux, algunos programas no funcionan aquí y uso virtualbox con instalación de Windows XP, pero cuando estoy conectado a vpn en virtualbox puedo navegar por Internet. Pero ningún programa puede conectarse a Internet. Además, mi conexión VPN pierde Internet de vez en cuando, y no es mi conexión a Internet o al servidor porque durante ese tiempo, cuando pierdo Internet a través de VPN, todavía puedo conectarme con PuTTY a través de SSH al servidor y hacer varias cosas.
Respuesta1
El enmascaramiento no funciona en un VPS... debes usar iptables
Source NAT
en su lugar:
iptables -t nat -A POSTROUTING -s 10.x.x.x/xx -j SNAT --to-source y.y.y.y
x.x.x.x/x
es la subred VPN - y.y.y.y
es la dirección IP de la interfaz de salida de su servidor.
Respuesta2
Asegúrese /etc/default/ufw
de que el servidor tenga DEFAULT_FORWARD_POLICY="ACCEPT"
en lugar de "DROP"
y luego reinicie el firewall
sudo ufw disable
sudo ufw enable
Respuesta3
Tuve un problema similar en el que OpenVPN funcionaba bien hasta que cambié el enrutador. Sospeché del firewall del enrutador aunque había abierto los puertos requeridos. Sin embargo, miré rc.local y vi que, cuando se configuró por primera vez, la línea iptables se había configurado con la dirección IP real en lugar de la variable $MY_IP que esperaba así:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to 192.168.0.15
en vez de:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to $MY_IP
El problema fue cambiar el enrutador y asignar una IP diferente al servidor y simplemente hice una reserva para la nueva IP y esperaba que todo funcionara.
Si hubiera reservado la misma IP para el servidor que antes, podría haberme ahorrado muchos dolores de cabeza.