OpenVPN es un cliente/servidor VPN tanto para equipos GNU/Linux como para Windows.

¿Para qué sirve hacer esto?

Para conectarnos a internet de una manera segura desde cualquier red ya sea cableada o WiFi, con cifrado WEP/WPA o sin cifrar. Todo el tráfico irá cifrado a través de un Túnel desde el AP que nos conectamos hasta nuestra casa y desde allí saldrá a internet, es como estar en nuestra casa. Lo malo es que debes tener una buena velocidad de subida, ya que de eso dependerá en mayor medida tu velocidad de bajada (a no ser que la red donde te conectes tenga menos bajada que la velocidad de subida de tu conexión).

También sirve en caso de no redigirir el tráfico, para poder acceder a los recursos compartidos de nuestra casa como puede ser imprimir desde la Universidad, copiarnos archivos desde el disco duro compartido de casa etc.

La VPN será SSL/TLS, y podemos encontrar dos tipos, TUN y TAP.

TUN: El controlador TUN emula un dispositivo punto a punto, es utilizado para crear túneles virtuales operando con el protocolo IP. De esta forma se puede encapsular todos los paquetes que se transporten a través de él como datagramas TCP o UDP (más adelante veréis que escogemos UDP en lugar de TCP, y preguntaréis que por qué ya que TCP es conectivo, fiable y Orientado a conexión). Las máquinas que queden detrás de cada uno de los extremos del enlace pertenecerán a subredes diferentes.

TAP: Simula una interfaz de red Ethernet, más comúnmente conocido como modo puente o bridge, estos túneles virtuales encapsulan directamente paquetes ethernet. Esta situación permite empaquetar entramados diferentes al IP. Las máquinas situadas detrás de cada uno de los extremos del enlace pueden operar como parte de la misma subred (si se utiliza el protocolo IP). El modo de funcionamiento puente es particularmente útil para enlazar usuarios remotos, ya que éstos pueden conectarse a un mismo servidor y virtualmente formar parte de la red principal.

En el manual usaremos TUN.

En este manual os voy a explicar cómo hacerlo en GNU/Linux, aunque en esencia, es lo mismo para Windows, únicamente cambian los comandos en la consola (cmd.exe), los certificados y las llaves, son los mismos para los dos, es decir, puedes crear TODO en GNU/Linux y luego pasarlo a Windows para usarlo (ya sea cliente o servidor), únicamente deberás cambiar la extensión del cliente/servidor .conf por .ovpn

Voy a explicaros como realizar la configuración más segura posible.

– Usaremos una llave RSA para crear CA.key de 2048bits sin afectar lo más mínimo al rendimiento de la VPN.

– La llave simétrica será AES-256bits-CBC (Encadenamiento de Cifrado en Bloque) uno de los más seguros (OpenVPN incluye todo esto, no hay que “programarlo” ni nada parecido).

– Incluiremos TLS/AUTH una firma HMAC adicional para todos las negociaciones SSL/TLS para la verificación de la integridad. Cualquier paquete UDP que no posea la firma HMAC correcta es bloqueado. La firma HMAC TLS-AUTH provee un nivel de seguridad adicional mas allá del que provee SSL/TLS, de esta forma nos protegemos de ataques DoS, escaneo de puertos y le ahorramos trabajo al servidor (porque si esto falla al intentar la autenticación lo corta y no lo sigue intentando).

Protocolo UDP en lugar de TCP porque es más fuerte frente a ataques DoS y escaneos de puertos (UDP es no conectivo, no fiable, no orientado a conexión).

GNU/Linux Ubuntu

OpenVPN Logo

Instalamos Openvpn con el siguiente comando desde los repositorios:

sudo apt-get install openvpn

Ahora vamos a copiar los archivos easy-rsa y sample-config-files a /etc/openvpn/ (previamente hemos ido al directorio con la orden cd).

ubuntu@ubuntu:/usr/share/doc/openvpn/examples$ ls
easy-rsa sample-config-files sample-keys sample-scripts

Copiamos easy-rsa y sample-config-files a /etc/openvpn/

ubuntu@ubuntu:/usr/share/doc/openvpn/examples$ sudo cp -R easy-rsa/ /etc/openvpn/
ubuntu@ubuntu:/usr/share/doc/openvpn/examples$ sudo cp -R sample-config-files/ /etc/openvpn/

Ahora nos metemos en el directorio de trabajo y veremos muchos ficheros:

ubuntu@ubuntu:/etc/openvpn/easy-rsa/2.0$ ls
build-ca build-key-server Makefile sign-req
build-dh build-req openssl-0.9.6.cnf.gz vars
build-inter build-req-pass openssl.cnf whichopensslcnf
build-key clean-all pkitool
build-key-pass inherit-inter README.gz
build-key-pkcs12 list-crl revoke-full

Ejecutamos el siguiente comando para crear una carpeta en este directorio donde almacenaremos las claves:

mkdir keys

Es en este directorio donde se almacenaran las llaves privadas (.key), los archivos de requerimiento de certificado (.csr) y los certificados (.crt) y otros archivos.
– Las llaves .key son PRIVADAS, han de ser copiadas por un medio seguro.
– Los certificados .crt y el requerimiento .csr puede pasarse sobre un medio inseguro (emails, messenger).

Generar la llave y el certificado para la Autoridad Certificadora (CA).

En esta parte vamos a crear los certificados y las llaves para la CA, para el servidor y para el cliente, nos logueamos en la consola como root (siempre como root para dejarnos de líos).

Ahora vamos a editar el archivo “vars”.

Nos situamos en el directorio de trabajo:

cd /etc/openvpn/easy-rsa/2.0/
gedit vars

– Ahora modificamos KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG y KEY_MAIL a vuestro gusto, pero no podéis dejarlo en blanco.

– También modificamos la ruta donde están las KEYS, ya que luego haremos un ./clean-all y si no está la ruta correcta, dará error.

– El tamaño de la llave RSA es controlado por la variable KEY_SIZE en el archivo vars, por tanto en lugar de tener 1024 (bits), ponemos 2048 (bits) si queréis más seguridad (recomiendo 2048).

Una vez lo hayáis modificado, guardamos y salimos, os debería quedar algo así:

# easy-rsa parameter settings

# NOTE: If you installed from an RPM,
# don’t edit this file in place in
# /usr/share/openvpn/easy-rsa —
# instead, you should copy the whole
# easy-rsa directory to another location
# (such as /etc/openvpn) so that your
# edits will not be wiped out by a future
# OpenVPN package upgrade.

# This variable should point to
# the top level of the easy-rsa
# tree.
export EASY_RSA=”`pwd`”

#
# This variable should point to
# the requested executables
#
export OPENSSL=”openssl”
export PKCS11TOOL=”pkcs11-tool”
export GREP=”grep”

# This variable should point to
# the openssl.cnf file included
# with easy-rsa.
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA’

# Edit this variable to point to
# your soon-to-be-created key
# directory.
#
# WARNING: clean-all will do
# a rm -rf on this directory
# so make sure you define
# it correctly!
export KEY_DIR=”/etc/openvpn/easy-rsa/2.0/keys/”

# Issue rm -rf warning
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR

# PKCS11 fixes
export PKCS11_MODULE_PATH=”dummy”
export PKCS11_PIN=”dummy”

# Increase this to 2048 if you
# are paranoid. This will slow
# down TLS negotiation performance
# as well as the one-time DH parms
# generation process.
export KEY_SIZE=2048

# In how many days should the root CA key expire?
export CA_EXPIRE=3650

# In how many days should certificates expire?
export KEY_EXPIRE=3650

# These are the default values for fields
# which will be placed in the certificate.
# Don’t leave any of these fields blank.
export KEY_COUNTRY=”XXXX”
export KEY_PROVINCE=”XXX”
export KEY_CITY=”XXXX”
export KEY_ORG=”XXXXX”
export KEY_EMAIL=”XXXXX@XXX.com”

En el mismo directorio tecleamos lo siguiente para limpiar todos los archivos que haya en /keys/.

source ./vars
./clean-all

Parámetros Diffie Hellman

Vamos a generar estos parámetros necesarios para el servidor.

En consola y en el mismo directorio de siempre (/etc/openvpn/easy-rsa/2.0/)

./build-dh (recuerda ejecutarlo como root)

Os saldrá algo parecido a esto:

root@Portatil:/etc/openvpn/easy-rsa/2.0# ./build-dh
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
……………………………….+……………….++*++*
……………………………….+……………….++*++*
root@Portatil:/etc/openvpn/easy-rsa/2.0#

Nota: los guiones anteriores eran simples guiones, estos que vienen a continuación y que por ejemplo están antes que initca son dos guiones juntos, parece que es uno largo pero no.

Creación certificado para la CA

Ahora creamos el certificado para la CA:

./pkitool –initca

Os saldrá algo como esto:

root@Portatil:/etc/openvpn/easy-rsa/2.0# ./pkitool –initca
Using CA Common Name: vpn CA
Generating a 2048 bit RSA private key
…….+++
………….+++
writing new private key to ‘ca.key’
—–
root@Portatil:/etc/openvpn/easy-rsa/2.0#

Generación de certificado y llaves para el SERVER

./pkitool –server servidor

Nos saldrá algo así:

root@Portatil:/etc/openvpn/easy-rsa/2.0# ./pkitool –server servidor
Generating a 2048 bit RSA private key
…………………………+++
…………………………………..+++
writing new private key to ‘servidor.key’
—–
Using configuration from /etc/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName PRINTABLE:’XX’
stateOrProvinceName PRINTABLE:’XXX’
localityName PRINTABLE:’XXX’
organizationName PRINTABLE:’XXXX’
commonName PRINTABLE:’servidor’
emailAddress :IA5STRING:”XXXXXX”
Certificate is to be certified until Jun 19 09:40:27 2020 GMT (3650 days)

Write out database with 1 new entries
Data Base Updated
root@Portatil:/etc/openvpn/easy-rsa/2.0#

Todos los valores los obtiene del archivo VARS, y el Common Name lo obtiene de “servidor” que está a continuación de “–server”.

Generación de certificado y llaves para el CLIENTE

./pkitool cliente1

Nos saldrá algo así:

root@Portatil:/etc/openvpn/easy-rsa/2.0# ./pkitool cliente1
Generating a 2048 bit RSA private key
………………………….+++
………………………………………….+++
writing new private key to ‘cliente1.key’
—–
Using configuration from /etc/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName PRINTABLE:’XX’
stateOrProvinceName PRINTABLE:’XXX’
localityName PRINTABLE:’XXX’
organizationName PRINTABLE:’XXX’
commonName PRINTABLE:’cliente1′
emailAddress :IA5STRING:’XXXX’
Certificate is to be certified until Jun 19 09:41:34 2020 GMT (3650 days)

Write out database with 1 new entries
Data Base Updated
root@Portatil:/etc/openvpn/easy-rsa/2.0#

Para generar más clientes hacemos lo siguiente:

source ./vars
./pkitool cliente2

Si queremos el tercero hacemos:

source ./vars
./pkitool cliente3

Antes de crear cada certificado debemos ejecutar source ./vars (por si queréis más).

Ahora nos vamos a:

cd /etc/openvpn/easy-rsa/2.0/keys/

Y veremos todas las claves (comando ls para verlas).

Generar llave TLS-AUTH

openvpn –genkey –secret ta.key (donde ta.key es la llave que deberemos usar tanto en el servidor como en el cliente).

En la configuración del servidor (servidor.conf o servidor.ovpn) deberemos poner:

tls-auth ta.key 0 (0 de Incoming)

En la configuración del cliente (cliente.conf o cliente.ovpn) deberemos poner:

tls-auth ta.key 1 (1 de Outgoing)

A continuación os pongo una tabla de qué es cada cosa.

Tabla VPN

Podemos agruparlos por carpetas para mayor comodidad siguiendo la tabla ya que por ejemplo ca.crt tiene que estar en todos los clientes/servidores (servidor, cliente1, cliente2, etc).

Archivo de Configuración del Cliente (client.conf)

Viene una pequeña guía de para qué sirve cada comando, tenéis que modificar:

– remote my-server-1 1194 ya que aquí deberemos poner el host dyndns que tengáis, Host en DynDNS para servidores domésticos como FTP, VPN, servidor de juegos o servidor WEB : Manual DynDNS

– ca ca.crt cert client.crt y key client.key lo debéis cambiar por el nombre que le habéis puesto a cliente, en este caso cliente1, cliente2 y con la RUTA COMPLETA al archivo para evitarnos problemas, quedaría así:

ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/cliente1.crt
key /etc/openvpn/easy-rsa/2.0/keys/cliente1.key

-En el siguiente fragmento veis el TLS-AUTH que usaremos, quitamos e punto y coma (;) y lo activaremos, el ta.key también ponemos la ruta completa de la ta.key.

# If a tls-auth key is used on the server
# then every client must also have the key.
tls-auth ta.key 1

– Como hemos elegido un cifrado AES-256-CBC pues lo ponemos:

# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
cipher AES-256-CBC

Y ya tenemos el cliente listo.

La ruta completa de cada archivo (ca.crt cliente1.key etc, no hace falta ponerla siempre y cuando el client.conf esté en la misma carpeta que ellas, pero para no tener problemas pues ponemos la ruta completa).

Archivo de Configuración del Servidor (server.conf)

– En el servidor debemos poner la IP interna que tendremos en la red para escuchar, el puerto, si es el de por defecto no habrá que tocarlo.
– Ponemos las rutas completas de los siguientes archivos:

ca ca.crt
cert server.crt
key server.key

– dh dh2048.pem ya que lo hemos puesto de 2048 bits.
– El rango del servidor no hace falta tocarlo, el cifrado que hemos elegido y la TLS-AUTH.

Aquí no he explicado con detalle la configuración del servidor, porque poca gente va a tener un ordenador con GNU/Linux o Windows encendido dedicado únicamente a esto, es mucho más cómodo un router con firmwares de terceros como Tomato y el correspondiente módulo OpenVPN donde es todo gráfico, a continuación os pongo unas capturas de pantalla para que lo veáis junto con el LOG del router al arrancar la VPN.

Nota: las claves se meten en las casillas haciendo un gedit ca.crt (por ejemplo), copiamos y pegamos todo lo que aparece en el gedit y listo! (sí, todos esos símbolos y letras).

Click en la foto para ampliarla y verla mejor.

Tomato VPN

Tomato VPN

Tomato VPN

Pruebas de conectividad:

Log de inicio de OpenVPN en el router:

Jun 21 18:14:39 router daemon.notice openvpn[344]: OpenVPN 2.1.1 mipsel-unknown-linux-gnu [SSL] [LZO2] built on Feb 17 2010
Jun 21 18:14:39 router daemon.warn openvpn[344]: NOTE: OpenVPN 2.1 requires ‘–script-security 2’ or higher to call user-defined scripts or executables
Jun 21 18:14:42 router daemon.notice openvpn[344]: Diffie-Hellman initialized with 2048 bit key
Jun 21 18:14:42 router daemon.notice openvpn[344]: Control Channel Authentication: using ‘static.key’ as a OpenVPN static key file
Jun 21 18:14:42 router daemon.notice openvpn[344]: Outgoing Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Jun 21 18:14:42 router daemon.notice openvpn[344]: Incoming Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Jun 21 18:14:42 router daemon.notice openvpn[344]: TLS-Auth MTU parms [ L:1558 D:166 EF:66 EB:0 ET:0 EL:0 ]
Jun 21 18:14:42 router daemon.notice openvpn[344]: TUN/TAP device tun21 opened
Jun 21 18:14:42 router daemon.notice openvpn[344]: TUN/TAP TX queue length set to 100
Jun 21 18:14:42 router daemon.notice openvpn[344]: /sbin/ifconfig tun21 10.8.0.1 pointopoint 10.8.0.2 mtu 1500
Jun 21 18:14:42 router daemon.notice openvpn[344]: /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2
Jun 21 18:14:42 router daemon.notice openvpn[344]: Data Channel MTU parms [ L:1558 D:1450 EF:58 EB:135 ET:0 EL:0 AF:3/1 ]
Jun 21 18:14:42 router daemon.notice openvpn[407]: Socket Buffers: R=[108544->131072] S=[108544->131072]
Jun 21 18:14:42 router daemon.notice openvpn[407]: UDPv4 link local (bound): [undef]:1194
Jun 21 18:14:42 router daemon.notice openvpn[407]: UDPv4 link remote: [undef]
Jun 21 18:14:42 router daemon.notice openvpn[407]: MULTI: multi_init called, r=256 v=256
Jun 21 18:14:42 router daemon.notice openvpn[407]: IFCONFIG POOL: base=10.8.0.4 size=62
Jun 21 18:14:42 router daemon.notice openvpn[407]: Initialization Sequence Completed

Cliente:

root@Portatil:/etc/openvpn# openvpn client.conf
Tue Jun 22 12:08:24 2010 OpenVPN 2.1.0 x86_64-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [MH] [PF_INET6] [eurephia] built on Jan 26 2010
Tue Jun 22 12:08:24 2010 NOTE: OpenVPN 2.1 requires ‘–script-security 2’ or higher to call user-defined scripts or executables
Tue Jun 22 12:08:24 2010 /usr/bin/openssl-vulnkey -q -b 2048 -m <modulus omitted>
Tue Jun 22 12:08:24 2010 Control Channel Authentication: using ‘ta.key’ as a OpenVPN static key file
Tue Jun 22 12:08:24 2010 Outgoing Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Tue Jun 22 12:08:24 2010 Incoming Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Tue Jun 22 12:08:24 2010 LZO compression initialized
Tue Jun 22 12:08:24 2010 Control Channel MTU parms [ L:1558 D:166 EF:66 EB:0 ET:0 EL:0 ]
Tue Jun 22 12:08:24 2010 Data Channel MTU parms [ L:1558 D:1450 EF:58 EB:135 ET:0 EL:0 AF:3/1 ]
Tue Jun 22 12:08:24 2010 Local Options hash (VER=V4): ‘9e7066d2’
Tue Jun 22 12:08:24 2010 Expected Remote Options hash (VER=V4): ‘162b04de’
Tue Jun 22 12:08:24 2010 Socket Buffers: R=[124928->131072] S=[124928->131072]
Tue Jun 22 12:08:24 2010 UDPv4 link local: [undef]
Tue Jun 22 12:08:24 2010 UDPv4 link remote: [AF_INET]XX:1194
Tue Jun 22 12:08:24 2010 TLS: Initial packet from [AF_INET]XX:1194, sid=0e6c8016 fc84b328
Tue Jun 22 12:08:27 2010 VERIFY OK: depth=1, /C=XX/ST=X/L=XX/O=Xa/CN=XX/emailAddress=XX.com
Tue Jun 22 12:08:27 2010 VERIFY OK: nsCertType=SERVER
Tue Jun 22 12:08:27 2010 VERIFY OK: depth=0, /C=XXX/ST=XX/L=xxx/O=xxxx/CN=xxx/emailAddress=xxx
Tue Jun 22 12:08:30 2010 Data Channel Encrypt: Cipher ‘AES-256-CBC’ initialized with 256 bit key
Tue Jun 22 12:08:30 2010 Data Channel Encrypt: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Tue Jun 22 12:08:30 2010 Data Channel Decrypt: Cipher ‘AES-256-CBC’ initialized with 256 bit key
Tue Jun 22 12:08:30 2010 Data Channel Decrypt: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Tue Jun 22 12:08:30 2010 Control Channel: TLSv1, cipher TLSv1/SSLv3 EDH-RSA-DES-CBC3-SHA, 2048 bit RSA
Tue Jun 22 12:08:30 2010 [servidor] Peer Connection Initiated with [AF_INET]87.220.30.11:1194
Tue Jun 22 12:08:33 2010 SENT CONTROL [servidor]: ‘PUSH_REQUEST’ (status=1)
Tue Jun 22 12:08:33 2010 PUSH: Received control message: ‘PUSH_REPLY,route 10.10.3.0 255.255.255.0,dhcp-option DOMAIN RED_LOCAL,dhcp-option DNS 10.10.3.1,redirect-gateway def1,route 10.8.0.1,topology net30,ping 15,ping-restart 60,ifconfig 10.8.0.6 10.8.0.5’
Tue Jun 22 12:08:33 2010 OPTIONS IMPORT: timers and/or timeouts modified
Tue Jun 22 12:08:33 2010 OPTIONS IMPORT: –ifconfig/up options modified
Tue Jun 22 12:08:33 2010 OPTIONS IMPORT: route options modified
Tue Jun 22 12:08:33 2010 OPTIONS IMPORT: –ip-win32 and/or –dhcp-option options modified
Tue Jun 22 12:08:33 2010 ROUTE default_gateway=10.10.2.1
Tue Jun 22 12:08:33 2010 TUN/TAP device tun0 opened
Tue Jun 22 12:08:33 2010 TUN/TAP TX queue length set to 100
Tue Jun 22 12:08:33 2010 /sbin/ifconfig tun0 10.8.0.6 pointopoint 10.8.0.5 mtu 1500
Tue Jun 22 12:08:33 2010 /sbin/route add -net xxx netmask 255.255.255.255 gw 10.10.2.1
Tue Jun 22 12:08:33 2010 /sbin/route add -net 0.0.0.0 netmask 128.0.0.0 gw 10.8.0.5
Tue Jun 22 12:08:33 2010 /sbin/route add -net 128.0.0.0 netmask 128.0.0.0 gw 10.8.0.5
Tue Jun 22 12:08:33 2010 /sbin/route add -net 10.10.3.0 netmask 255.255.255.0 gw 10.8.0.5
Tue Jun 22 12:08:33 2010 /sbin/route add -net 10.8.0.1 netmask 255.255.255.255 gw 10.8.0.5
Tue Jun 22 12:08:33 2010 Initialization Sequence Completed

Ahora tenemos tres opciones para conectaros a la VPN:

– Tecleando en consola el comando “sudo openvpn cliente.conf” y no cerrando la consola (ya que si no cierra la conexión).

– Automatizando el inicio de la VPN en el sistema, con lo cual siempre pasarás por la VPN aunque la red sea segura, y eso conlleva no tener la máxima velocidad posible (redirigimos internet).

– Poniendo OpenVPN en el network manager de forma gráfica y ada vez que queramos conectarnos dar 2 clicks y listo.

Esta última forma es la más útil al menos para mí, os voy a poner como hacerlo.

Usar Network-Manager para hacer la conexión OpenVPN (con gráficos y sin consola).

Vamos a instalar OpenVPN para el network-manager (plugin).

sudo apt-get install network-manager-openvpn

SOLUCIÓN a: Openvpn falló porque no había secretos vpn válidos

Una vez instalado (y reiniciado el sistema a ser posible) hacemos:

sudo gedit /etc/dbus-1/system.d/nm-openvpn-service.conf

Y debe poner obligatoriamente lo siguiente:

<!DOCTYPE busconfig PUBLIC
“-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN”
“http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd”>
<busconfig>
<policy user=”root”>
<allow own=”org.freedesktop.NetworkManager.openvpn”/>
<allow send_destination=”org.freedesktop.NetworkManager.openvpn”/>
</policy>
<policy user=”at_console”>
<allow own=”org.freedesktop.NetworkManager.vpnc”/>
<allow send_destination=”org.freedesktop.NetworkManager.vpnc”/>
</policy>
<policy context=”default”>
<deny own=”org.freedesktop.NetworkManager.openvpn”/>
<deny send_destination=”org.freedesktop.NetworkManager.openvpn”/>
</policy>
</busconfig>

Guardáis datos, salís del gedit y reiniciáis el ordenador (también vale reiniciar sólo el network-manager pero tardas menos así), ya nos os dará el famoso error de: Openvpn falló porque no había secretos vpn válidos.

Nota:

Realmente lo único que haces es intercalar esta línea de código:

<policy user=”at_console”>
<allow own=”org.freedesktop.NetworkManager.vpnc”/>
<allow send_destination=”org.freedesktop.NetworkManager.vpnc”/>
</policy>

Entre las otras dos, pero os puse el código entero para que no os compliquéis la vida.

Ya tenemos el plugin openvpn para network manager puesto a punto para configurarlo, ahora vamos a importar la configuración cliente.conf de tal forma que en 4 clicks tengamos todo listo.

En esta pantalla seleccionamos “Importar“:

Network Manager OpenVPN

Buscamos el archivos .CONF y doble click:

Network Manager OpenVPN

A continuación y SIN TOCAR NADA, le damos a APLICAR:

Network Manager OpenVPN

Y ya la habremos importado:

Network Manager OpenVPN

Una vez que hemos hecho esto, basta con dar click izquierdo sobre el network-manager, nos vamos a conexiones VPN y seleccionamos la conexión que hemos importado anteriormente, en 15 segundos estaremos conectados y nos podrá un candado sobre el network-manager, si no funciona ejecutad el cliente.conf manualmente con el siguiente comando (si tampoco conecta, repasa los archivos .CONF).

sudo openvpn cliente.conf

Nota: aquí tenéis el HOWTO oficial de OpenVPN:

http://openvpn.net/index.php/open-source/documentation/howto.html

Windows 7

La creación de los certificados es exactamente en Windows que en GNU/Linux, sólo cambian los comandos a usar, incluso podéis hacer los certificados en GNU/Linux y llevarlos a Windows sin cambiar de extensión, únicamente el server.conf y cliente.conf han de pasar a extensión .ovpn, nada más.

Lo primero que vamos a hacer es bajarnos la última versión de OpenVPN y configurar el GUI adecuadamente.

Descargamos la última versión OpenVPN desde aquí:

http://openvpn.net/index.php/open-source/downloads.html

La instalamos normalmente, con derechos de administrador (por supuesto), una vez instalado todo, reiniciamos el equipo (aunque no es necesario).

Ahora nos vamos al icono del escritorio y pulsamos click derecho sobre él y seleccionamos PROPIEDADES, en la pestaña COMPATIBILIDADModo de Compatibilidad para Windows XP (Service Pack 3)Ejecutar como administrador“, tal y como tenéis en la imagen: seleccionamos y seleccionamos la casilla de ”

OpenVPN Windows7

Y ya os debería funcionar correctamente, si os funciona sin hacer esto pues perfecto, pero a mí no me funcionó.

Generar la llave y el certificado para la Autoridad Certificadora (CA).

Ejecutamos el CMD.EXE con permisos de administrador (clic derecho ejecutar como administrador).

Nos vamos al directorio de trabajo de OpenVPN carpeta easy-rsa con el comando cd.

– Renombramos vars.bat.sample a vars.bat y lo abrimos con el bloc de notas para rellenar las key_country, key_province etc.

– El tamaño de la llave RSA es controlado por la variable KEY_SIZE en el archivo vars, por tanto en lugar de tener 1024 (bits), ponemos 2048 (bits) si queréis más seguridad (recomiendo 2048).

Salimos y guardamos.

Ejecutamos el comando vars (en c:\archivos de programa\openvpn\easy-rsa)

A continuación ejecutamos clean-all.bat, nos creará una carpeta nueva “keys” donde almacenaremos las claves.

Parámetros Diffie Hellman

Vamos a generar estos parámetros necesarios para el servidor.

Ejecutamos el comando: build-dh y empezará el proceso.

Creación certificado para la CA

Renombramos openssl.sample a openssl (sin el sample).

Ejecutamos en consola build-ca para crearlo y ponéis lo mismo que habéis rellenado en vars (key_country etc) y cuando te pida common name poned openvpn-ca (por ejemplo).

Generación de certificado y llaves para el SERVER

Ejecutamos: build-key-server server para crear el servidor, el common name se obtiene del segundo “server”.

Generación de certificado y llaves para el CLIENTE

Ejecutamos: build-key cliente1 para crear el primer cliente y así con los demás que queramos.

Generar llave TLS-AUTH

En el directorio easy-rsa ejecutamos: openvpn –genkey –secret ta.key y se nos pondrá en ese mismo directorio.

Nota: son dos guiones, no uno sólo.

Ahora nos toca configurar el client.ovpn (client.conf en GNU/Linux) con esto, se hace exactamente igual que en GNU/Linux y tiene las mismas opciones y TODO IGUAL.

El servidor es también igual que en GNU/Linux.

Los archivos que debéis pasar al servidor y clientes, hacedlo por un medio seguro con las .key.

Aquí tenéis la misma tabla que puse arriba:

Tabla VPN

Aquí tenéis el manual oficial de OpenVPN:

http://openvpn.net/index.php/open-source/documentation/howto.html

Pruebas de conectividad e iniciación:

Como supongo que usaréis Windows como cliente para conectaros a una VPN que esté en un servidor con GNU/Linux o en un router con firmwares de terceros, os voy a enseñar como arrancarlo mediante la interfaz gráfica.

Copiamos ca.crt, cliente1.crt, cliente1.key, ta.key y cliente.ovpn a la carpeta Openvpn/config/, en el cliente.ovpn no hace falta poner la ruta entera de ca.crt y todos los demás, ya que están en la misma carpeta.

Una vez que ya tenemos el servidor a punto, todos los archivos del cliente en la carpeta config, iniciamos el OpenVPN GUI que tenemos en el escritorio.

Recuerda: ejecuta en modo de compatibilidad XP Service Pack 3 y con derechos de administrador.

Clic derecho sobre el icono y pulsamos connect, esperamos hasta que se conecte y nos de LUZ VERDE (si hacemos click derecho sobre el icono y le damos a “Show Status” nos mostrará el LOG de conexión).

Windows Cliente VPN

Y ya estamos conectados a la VPN en Windows 7.

Publicado por Sergio De Luz el 03 Octubre 2010 , actualizado el 30 Octubre 2016

  • Pingback: ASUSWRT: El firmware de terceros para los routers RT-N66u y RT-AC66u()

  • Pingback: Auditorías WiFi con cifrado WEP : Todo lo que quisiste saber y nadie te dijo sobre hackear redes wifi con cifrado WEP()

  • Pingback: Las estaciones de tren de España empiezan a ofrecer Wi-Fi de pago()

  • Pingback: Los datos que circulen por el Wi-Fi público en China serán almacenados()

  • Pingback: OpenVPN en Android : Instalación y configuración de OpenVPN en Nexus S con Android Gingerbread()

  • Diego DC

    Hola, ya configuré el OpenVPN en un Windows 2003 server, me conecto desde un cliente W7, me asigna IP 10.8.0.6, es correcta, es la que está especificada, y si hago un ping al 10.8.0.1 me responde, así que tengo la mitad del problema ya resuelto: llego al server, ahora bien, necesito ahora acceder a otra subred donde este server se conecta, o sea tengo dos placas de red configuradas:

    1. Placa de internet, con el IP 192.168.1.200 (por esta entro yo desde internet)
    2. Placa de red-local con el IP (fijo) 10.20.13.6 (mask: 255.255.0.0)

    Estuve tratando de configurar sin exíto el route, lo configuré:

    push “route 10.20.13.6 255.255.255.0”

    Pero no logro que la conexión VPN ‘pase’ a la placa de la red interna

    Alguien podrá darme una mano ?

    Slds y gracias de antemano
    Diego

    • En algunos casos tienes que crear una ruta estática en el equipo para poder llegar a la otra red (a parte de lo que has hecho), y tienes que poner la subred (10.20.13.0 255.255.0.0) no la dirección IP del equipo al que quieres llegar.

  • Pingback: OpenVPN – Snom 715 – VoIP | NetVoIP()

  • Pablo

    Hola Sergio, he seguido el manual paso a paso y lo tengo funcionando, hay comunicación entre cliente y servidor.

    Pero, ¿como puedo acceder a Internet desde la VPN (y que pase todo el tráfico a través)?
    Además tampoco puedo contactar con los recursos que tengo en red.

    He probado la configuración de “push route” con mi red interna (192.168.1.0 255.255.255.0) pero no funciona.
    También he probado la opción de pasar todo el tráfico por la VPN (opción push “redirect-gateway def1 bypass-dhcp” en server.conf).
    Como también he intentado forzar (pasar al cliente, aunque dice que es para win y yo uso ubuntu) los DNS que vienen en el archivo de configuración del servidor (OpenDNS). (Por probar que no quede)

    También he intentado un par de órdenes que he encontrado por internet para forzar el paso del trafico de una interfaz a otra (sudo iptables -t nat -A POSTROUTING -s 10.8.0.1 -o eth0 -j SNAT –to-source 192.168.1.X; sudo iptables -t nat -A POSTROUTING -s 10.8.0.1 -o eth0 -j SNAT –to-source 192.168.1.1) Ese X corresponde a la IP del servidor OpenVPN.

    Te agradecería tu ayuda para intentar usar la VPN como una manera de protección al usar redes públicas o externas.
    Gracias.

    • Hola,

      ¿Qué router tienes? ¿Has creado una ruta estática para alcanzar la VPN desde la red local internet? Usa TUNNELING y con IP 10.8.0.X, en el router creas una ruta estática poniendo:

      10.8.0.0
      255.255.255.0
      (LA IP privada 192.168.1.X que te asigna el router al servidor donde lo tengas puesto).

      Cualquier duda me dices, mirate este post de cómo se hace en NAS4Free: http://www.redeszone.net/2013/11/09/openvpn-server-en-nas4free-manual-de-instalacion-y-configuracion-para-crear-un-servidor/

      • Pablo

        Hola, Sergio. Gracias por la respuesta.

        Tengo un Cisco EPC3825. He estado mirando lo de la ruta estática como pones en el artículo de NAS4Free pero no se como/donde hacerlo en mi router. He estado mirando las opciones y lo único que veo es la apertura de puertos.

        Realmente eso es lo único que me falta. Estoy usando TUN (tunnelling) y la IP es 10.8.0.X

        A ver si me puedes hechar un cable, y si no pues habrá que entrar por terminal al router.
        Gracias.

        • Bien, entonces lo tienes todo correcto y sólo faltaría hacer lo de la ruta estática. Tienes que mirar donde ponga static route, ese router lo tiene un familiar y juraría que tiene esta opción, sólo hace falta buscar, si quieres haz capturas de pantalla y te voy guiando, tiene que estar en el apartado LAN o en las opciones avanzadas.

          • Pablo

            Hola Sergio, perdona por no haber contactado antes pero estaba de viaje.

            Ahora estoy en otro router, es uno propietario de Movistar un Observa Telecom. Pero bueno eso da igual.
            Tampoco he encontrado opción alguna por la GUI que ofrece el servidor HTML (está más capado que el cisco por la intrusión de Telefonica).

            He entrado por terminal y si que tiene la opción de ruta estática, solo que me pide le indique la WAN(?).

            Esta es la orden que me da telnet: route static add
            Y ésto es lo que intento meter yo: route static add 10.8.0.0 255.255.255.0 192.168.1.70
            El listado de WAN es el que sigue: Pvc list:
            PVC:8/36
            PVC:8/35

            Si pruebo esas opciones en la WAN me dice que es erroneo.

            ¿Qué debería poner al final?
            Sigo teniendo conectividad entre cliente y servidor utilizando redes distintas (pero sin internet).

          • Haz un “ifconfig” y te saldrán varis interfaces de red, creo que con poner el final la interfaz WAN es suficiente, aunque no deberías tener que meter nada de WAN al ser una ruta estática.

            Has probado a meterte en el menú avanzado http://192.168.1.1:8000 ?

  • Pablo

    Vaya mira, no sabía nada de ese menú. De todas formas son las mismas opciones que por terminal.

    Ya he añadido la ruta estática y tampoco tengo conectividad, ni con los recursos en mi red local, ni con Internet.

    Te dejo una foto de la regla: https://www.dropbox.com/s/wfmid0orhdrlowp/rule.png?dl=0

    ¿Seguro que no hay que hacer nada más? Me refiero a los DNS y tal, pero si no hay conectividad ni a nivel de red, para arriba no hay tampoco…

    Gracias por la ayuda y disculpa por las molestias.

    • ¿Qué otras interfaces puedes poner? Es que no me cuadra mucho que sea la WAN…nunca había visto algo así, prueba la LAN.

      • Pablo

        Ya a mi tampoco me cuadra eso… Las interfaces que salen son la PVC:8/36, que es la DSL donde está la IP pública, la PVC:8/35 que me da una ip “rara” (parece de VPN, puede que sea el sistema de telegestión/carga de telefónica??).

        Te dejo otra imagen: https://www.dropbox.com/s/azhfnjo7shavd24/wan%20interfaces.png?dl=0

        La otra interfaz es para el USB (modem 3G).

        Pero creo que vamos a dejarlo para cuando vuelva al Cisco, a ver si puedo hacerlo desde allí.

        Gracias y un saludo.

        • Es la primera sí, la otra tiene pinta de ser eso, para gestión. Es que en teoría no debería pedirte la interfaz si ya pones una IP que es puerta de enlace predeterminada…no tiene lógica. En routers Cisco o seleccionas la interfaz o pones la IP, pero no ambas a la vez.

  • walle

    Hola excelente manual. Mi pregunta básicamente es que existen programas que soportan el protocolo ICMP, ahora y esto como se hace, porque con UDP y TCP me queda claro por tu manual y me ha funcionado de maravilla, pero como se haría con ICMP. Gracias, espero tu respuesta.

  • Pingback: Seguros Rsa Alicante | Articulos de Seguros CE()

  • Pingback: Firesheep : Complemento de Firefox capaz de sniffar redes. ¿Cómo estar seguros?()

  • Pablo

    Hola. Querría saber de los usuarios que están utilizando esta VPN, qué velocidades de subida y descarga estáis obteniendo.
    En mi caso estoy bastante decepcionado, ya que cuando tenía una conexión de subida de 2 mb, la tasa de transferencia solía ser de 230 kbs. En estos momentos que tengo una conexión de 20 mb de subida, la tasa de transferencia no suele sobrepasar los 600 kbs…
    Un saludo y gracias

    • ¿La velocidad de descarga de la conexión donde te conectas de cuánto es? Yo siempre tengo el máximo de mi velocidad de subida, por ejemplo el OpenVPN de un router ASUS RT-AC68U da más de 60Mbps de velocidad sin despeinarse.

  • Marcos

    Hola, tengo un problema, pero es una vez conectado. A la red a la que me conecto tiene un servidor con carpetas de red, los nombres no los resolvía correctamente, por lo que se los agregué en /etc/hosts para que los resolviera correctamente y desde el cliente poder resolver los nombre de los servidores, pero cuando quiero conectarme a una unidad de red no me resuelve el nombre y no consigue conectarse.
    ¿Alguna idea de que se me puede estar pasando por alto?

    • Necesitaría saber cómo tienes configurado el servidor OpenVPN y el cliente, así como si en el router remoto has introducido la ruta estática de la nueva subred creada por OpenVPN. En teoría no deberías tener que editar hosts ya que debe ser totalmente transparente, yo también tengo unidades de red y no he tenido que editar nada.

  • Claudia Rocio Diaz Toro

    Tengo windows 8 y me funcionaba correctamente, pro cuando se actualizo algo de windows, hace poco la OpenVPN – Open Source VPN dejo de funcionar correctamente cada rato toca desistalar el programa y instalarlo aveces funciona 3 horas o 4 sin hacer el proceso pero otra vez no dura ni una hora me pueden ayudar que pasara gracias.

    • ¿Lo has permitido en el firewall? Yo es que el servidor siempre lo tengo bajo sistema Linux que nunca falla.

  • internetcuba

    Hola!!!
    Disculpa la molestia y sobre todo la ignorancia!!!!Soy Cubano y mi experienci en Internet se larga por poco mas de 1 mes, llevo todo ese time investigando y tratando de lograr una navegacion free, pero nada. Pudiera hacerme el enorme favor de explicarme via email, paso a paso para ultraprincipiantes como puedo hacer para configurar una vpn en window xp. Gracias!!!

  • Marco Antonio Cárdenas Oliver

    Hola todo esta muy bien, pero tengo una duda en los certificados, si queremos eliminar algun certificado en especial como lo hago ya que si corro el ./clean all ba a borrar todos los certificados, como borro uno en especifico? Saludos

    • ¿Quieres borrar simplemente el certificado (eliminar y ya) o añadirlo a la lista de certificados denegados para que nadie pueda usarlo?

  • LinuxMUYfacil

    Muy buen material, recomendadisimo!!!!
    Para complementar la siguiente lista de reproducción de videos cortos muestra paso a paso como realizar el proceso de INSTALACIÓN y CONFIGURACIÓN de OpenVPN sobre un esquema de red muy comun en la industria.

    https://www.youtube.com/playlist?list=PLjw376iTKGp6LqoHyzpkF6waqY5-XL5bw

  • Marcin Balcerzyk

    Me hace falta un cliente de OpenVPN para Windows Phone10. He probado el cliente para Android y funciona.

  • carlos

    Hola. Muchas gracias por el tutorial. Luego qué tengo que hacer para sacar un terminal y acceder a la red vpn o poder interactuar con lo que hay al otro lado?

    Muchas gracias

  • Henrique

    Tengo varias dudas.

    Como parte de una evaluación de una materia que estudio en la Universidad, tengo que crear una Red Privada entre 2 computadoras; transmitir la informacion de una de ellas, ubicada en otro lugar a la que se encuentre durante la evaluacion que haga el profesor.

    Algo que no me explican es si el servidor, es decir, la computadora que se asigne con esa función, ¿comparte todo el Disco Duro? De ser asi ¿Como puedo limitarlo a una sola carpeta? Y por otra parte, una vez finalzado todo ¿Como puedo eliminar la VPN y a su vez el programa y todos los cambios que haya realizado? En verdad no se mucho de Linux, y tristemente, poco de Windows; sin embargo, el profesor exige que esta evaluacion practica se haga en Linux.

    Gracias de antemano

    • Hola,

      Para compartir archivos simplemente deberás configurar un servidor Samba o un servidor FTP, si no sabes de Linux mejor un servidor FTP porque es más sencillo de configurar y ver si realmente funciona o no. Además el servidor FTP puedes compartir fácilmente las carpetas que quieras.

      Para eliminarlo todo simplemente desinstalas openvpn, el servidor ftp y ya está…

  • Jaga

    Yo creo que este VPN es la mejor http://hideipvpn.es/

  • Jesus

    Hola Sergio.

    Seria posible contratar tus servicios?
    Estoy interesado en contratar un server y necesito ayuda con la configuración e instalación.

  • Anderson

    La explicación empieza bien, pero luego explicas las cosas incompletas dejando crear dudas al usuario. He tenido que seguir tu tutorial completando con otros tutoriales para poder seguir. Ahora me da error y desconozco el motivo. Desastroso que empieces algo tan bien y vaya decayendo y no se entienda absolutamente nada.
    No dices nada de descomprimir el archivo.conf
    Generas la clave ta.key en el directorio ../keys/ta.key y lo dejas ahi como “sobreentendido”
    No explicas que hay que instalar en el cliente ni repetir el proceso…
    En fin crítica positiva pero lo que se podría hacer en cuestion de media hora completando e investigando se han convertido en otra media hora mas por una guia falta de explicaciones.

    • Yo siempre que monto un servidor nuevo, sigo este manual hecho por mí para crear las claves criptogáficas, mira el resto de comentarios como les ha funcionado todos. Y sí lo explico, en la tabla ves que la ta.key debe estar en los clientes, y el fichero de configuración de los clientes lo tienen… no basta con hacer copy paste, hay que saber lo que se hace.

  • Raul

    Hola

    He instalado la openvpn, lega a enlazar, pero cuando hago un ping al servidor este no me contesta, que puede estar sucediendo?

    • Seguramente sea problema de enrutamiento, ¿has puesto bien las rutas?

  • Pingback: ¿Qué es una conexión VPN, para qué sirve y qué ventajas tiene? | Nuevo Titulo |()

  • Pingback: Conexión VPN, para qué sirve y qué ventajas tiene - SerWebCan()

  • Pingback: 4nonimizer te permitirá automatizar la conexión a diferentes VPN para anonimizar tu IP – SectorX()

  • jc

    Hola, buen post una pregunta deseo que los clientes vpn tengan ip fijas, se que hay que crear un archivo de configuración con el comando respectivo, dos preguntas:
    Que extensión tiene ese archivo ?
    como lo creo, por consola ?
    y en que ruta lo pongo ?
    estoy trabajando en windows
    Saludos.

  • Capitan Asco

    Hola, buenas tardes.
    Interesante y muy buen post, llevaba tiempo buscando algo así.

    Lo primero, tengo una maquina dedicada a hacer de servidor openvpn con una tarjeta de red configurada en mi lan (192.168.10.x). al hacer la conexión a la vpn, esta me asigna una ip del rango (10.8.0.x). Veo que en log que no le asigna ninguna puerta de enlace y como es lógico hago ping a algún equipo de mi lan desde un pc conectado a la vpn y no llego de ninguna forma.
    Tengo que hacer algo mas en el servidor?
    Tengo que hacer algo en el router?

    Un slaudo y gracias ante todo

    • Hola,

      Tienes que crear una ruta estática en el router con estos datos:

      red: 10.8.0.0
      mascara: 255.255.255.0
      gateway: 192.168.10.x (la de tu servidor)

      Las OpenVPN son punto a punto por defecto, podrás hacer ping a por ejemplo la 10.8.0.1 que es “el otro lado”.

      • Capitan Asco

        Buenas tardes.
        Lo primero gracias por tu respuesta.

        Ahora realiza bien la conexión (al menos eso dice), pero veo que en las propiedades del adaptador, me asigna bien la ip, la mascara, pero no le da una puerta de enlace, por lo que deduzco que no esta saliendo a través de la vpn. Ademas me fijo y se corta muy a menudo y hace la reconexión. La puerta de enlace que tendría que aparecerme seria la 10.8.0.1 o la ip del servidor de mi lan?

        Otra cosa. al hacer la conexion me salen varios warning, que no se si afectan o no. Concretamente este es mi log de conexion (he borrado datos que creo que no seria bueno que fueran publicos 🙂

        Wed Jan 25 16:05:50 2017 OpenVPN 2.4.0 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Dec 27 2016
        Wed Jan 25 16:05:50 2017 Windows version 6.2 (Windows 8 or greater) 64bit
        Wed Jan 25 16:05:50 2017 library versions: OpenSSL 1.0.2i 22 Sep 2016, LZO 2.09
        Enter Management Password:
        Wed Jan 25 16:05:50 2017 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
        Wed Jan 25 16:05:50 2017 Need hold release from management interface, waiting…
        Wed Jan 25 16:05:51 2017 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
        Wed Jan 25 16:05:51 2017 MANAGEMENT: CMD ‘state on’
        Wed Jan 25 16:05:51 2017 MANAGEMENT: CMD ‘log all on’
        Wed Jan 25 16:05:51 2017 MANAGEMENT: CMD ‘hold off’
        Wed Jan 25 16:05:51 2017 MANAGEMENT: CMD ‘hold release’
        Wed Jan 25 16:05:51 2017 MANAGEMENT: >STATE:1485356751,RESOLVE,,,,,,
        Wed Jan 25 16:05:51 2017 TCP/UDP: Preserving recently used remote address: [AF_INET]IP PUBLICA:PUERTO
        Wed Jan 25 16:05:51 2017 Socket Buffers: R=[65536->65536] S=[65536->65536]
        Wed Jan 25 16:05:51 2017 UDP link local: (not bound)
        Wed Jan 25 16:05:51 2017 UDP link remote: [AF_INET]IP PUBLICA:PUERTO
        Wed Jan 25 16:05:51 2017 MANAGEMENT: >STATE:1485356751,WAIT,,,,,,
        Wed Jan 25 16:05:51 2017 MANAGEMENT: >STATE:1485356751,AUTH,,,,,,
        Wed Jan 25 16:05:51 2017 TLS: Initial packet from [AF_INET]IP PUBLICA:PUERTO, sid=1c46ec4a 4d11a456
        Wed Jan 25 16:05:51 2017 VERIFY OK: depth=1, DATOS DE CERTIFICADO
        Wed Jan 25 16:05:51 2017 Validating certificate key usage
        Wed Jan 25 16:05:51 2017 ++ Certificate has key usage 00a0, expects 00a0
        Wed Jan 25 16:05:51 2017 VERIFY KU OK
        Wed Jan 25 16:05:51 2017 Validating certificate extended key usage
        Wed Jan 25 16:05:51 2017 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
        Wed Jan 25 16:05:51 2017 VERIFY EKU OK
        Wed Jan 25 16:05:51 2017 VERIFY OK: depth=0, DATOS DE CERTIFICADO,
        Wed Jan 25 16:05:51 2017 WARNING: ‘link-mtu’ is used inconsistently, local=’link-mtu 1557′, remote=’link-mtu 1542′
        Wed Jan 25 16:05:51 2017 WARNING: ‘cipher’ is used inconsistently, local=’cipher AES-256-CBC’, remote=’cipher BF-CBC’
        Wed Jan 25 16:05:51 2017 WARNING: ‘keysize’ is used inconsistently, local=’keysize 256′, remote=’keysize 128′
        Wed Jan 25 16:05:51 2017 WARNING: ‘comp-lzo’ is present in remote config but missing in local config, remote=’comp-lzo’
        Wed Jan 25 16:05:51 2017 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
        Wed Jan 25 16:05:51 2017 [NOMBRE SERVIDOR] Peer Connection Initiated with [AF_INET]IP PUBLICA:PUERTO
        Wed Jan 25 16:05:52 2017 MANAGEMENT: >STATE:1485356752,GET_CONFIG,,,,,,
        Wed Jan 25 16:05:52 2017 SENT CONTROL [NOMBRE SERVIDOR]: ‘PUSH_REQUEST’ (status=1)
        Wed Jan 25 16:05:52 2017 PUSH: Received control message: ‘PUSH_REPLY,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5’
        Wed Jan 25 16:05:52 2017 OPTIONS IMPORT: timers and/or timeouts modified
        Wed Jan 25 16:05:52 2017 OPTIONS IMPORT: –ifconfig/up options modified
        Wed Jan 25 16:05:52 2017 OPTIONS IMPORT: route options modified
        Wed Jan 25 16:05:52 2017 Data Channel Encrypt: Cipher ‘AES-256-CBC’ initialized with 256 bit key
        Wed Jan 25 16:05:52 2017 Data Channel Encrypt: Using 160 bit message hash ‘SHA1’ for HMAC authentication
        Wed Jan 25 16:05:52 2017 Data Channel Decrypt: Cipher ‘AES-256-CBC’ initialized with 256 bit key
        Wed Jan 25 16:05:52 2017 Data Channel Decrypt: Using 160 bit message hash ‘SHA1’ for HMAC authentication
        Wed Jan 25 16:05:52 2017 interactive service msg_channel=548
        Wed Jan 25 16:05:52 2017 ROUTE_GATEWAY 192.168.100.1/255.255.255.0 I=4 HWADDR=MAC
        Wed Jan 25 16:05:52 2017 open_tun
        Wed Jan 25 16:05:52 2017 TAP-WIN32 device [Ethernet 2] opened: \.Global{CC026CFF-B97F-4AAB-B59D-B4C74F1E3C1A}.tap
        Wed Jan 25 16:05:52 2017 TAP-Windows Driver Version 9.21
        Wed Jan 25 16:05:52 2017 Notified TAP-Windows driver to set a DHCP IP/netmask of 10.8.0.6/255.255.255.252 on interface {CC026CFF-B97F-4AAB-B59D-B4C74F1E3C1A} [DHCP-serv: 10.8.0.5, lease-time: 31536000]
        Wed Jan 25 16:05:52 2017 Successful ARP Flush on interface [23] {CC026CFF-B97F-4AAB-B59D-B4C74F1E3C1A}
        Wed Jan 25 16:05:52 2017 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
        Wed Jan 25 16:05:52 2017 MANAGEMENT: >STATE:1485356752,ASSIGN_IP,,10.8.0.6,,,,
        Wed Jan 25 16:05:57 2017 TEST ROUTES: 1/1 succeeded len=1 ret=1 a=0 u/d=up
        Wed Jan 25 16:05:57 2017 MANAGEMENT: >STATE:1485356757,ADD_ROUTES,,,,,,
        Wed Jan 25 16:05:57 2017 C:WINDOWSsystem32route.exe ADD 10.8.0.1 MASK 255.255.255.255 10.8.0.5
        Wed Jan 25 16:05:57 2017 Route addition via service succeeded
        Wed Jan 25 16:05:57 2017 Initialization Sequence Completed
        Wed Jan 25 16:05:57 2017 MANAGEMENT: >STATE:1485356757,CONNECTED,SUCCESS,10.8.0.6,IP PUBLICA:PUERTO,,

        Muchas gracias y perdón por la chapa

        • Tienes mal las configuraciones de cliente-servidor, no están igual, por eso se corta…súbeme a algún sitio tu server.ovpn y su client.ovpn quitando la IP del remote, todo lo demás déjalo tal cual (obviamente el tema de certificados también).

          ¿Dónde dices que te debería aparecer la puerta de enlace? Estás en modo TUN, únicamente ves la subred 10.8.0.0 y luego con rutas estáticas en el router, el resto de la red.

          • Capitan Asco

            Perdona por no responder antes, pero he estado muy liado.
            Este fin de semana me haré con una maquina limpia y haré la instalación desde 0 ya que he visto que ciertas rutas que indicas, no me aparecen. Si me surge algun problema te lo indico.
            Muchas gracias, un saludo

          • Capitan Asco

            Hola, buenas tardes.

            Indicarte que tal y como te dije volví a configurar todo de nuevo en una maquina limpia y nada, seguia con los problemas, esta vez con algunas rutas que no encontraba (ahora no las recuerdo). Por no seguir mareandote, busque de nuevo en internet y encontre este otro el cual seguí y me funciono bien a la primera. Si quieres compararlo con el tuyo te dejo la direccion al final, al igual que si ves que no se publique la url, como moderais antes el comentario quitarla.
            De nuevo mil gracias por tu tiempo.

            Un saludo

            https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14-04#step-1-—-install-and-configure-openvpn's-server-environment

          • Hola,

            El problema era que las configs de cliente y servidor no se correspondían…por eso te dije que me pegases los archivos de configuración.