Configurar OPENVPN en Router Edgemax (Ubiquiti)

En el siguiente post os muestro los sencillos pasos, para configurar nuestro servidor OpenVpn en un router Edgemax.

Los pasos a realizar serán los siguientes:

1) Conectarnos por ssh a nuestro Router.

2) Elevar nuestros privilegios con «sudo su».

3) Generar nuestra Clave DH (Diffie-Hellman) y almacenarla en el directorio /config/auth .

openssl dhparam -out /config/auth/dh.pem -2 1024

En este primer comando podremos variar únicamente la longitud de clave, en este caso aquí esta a 1024 pero la podemos elevar a 2048 o 4096, al final esto lo que le va a dar es mas seguridad a nuestro cifrado.

*****************************

*ATENCION*

Antes de empezar a generar todos los certificados que nos harán falta para montar nuestro servidor, os indico que por defecto tanto la creación de la CA, como el certificado de servidor y de clientes tiene por defecto una validez de 1 año, por tanto pasado este tiempo tendríamos que volver a realizar todo este proceso.

Para ello yo lo que recomiendo es establecer al menos un minimo de 10 años, si queremos realizar este cambio lo que tendremos que hacer sera ir a la siguiente ruta, para modificar los siguientes ficheros.

1/ Para extender la validez de la CA: Editar el fichero CA.pl. Este fichero esta localizado en /usr/lib/ssl/misc

2/ Para extender la validez de los certificados de servidor y clientes: Editar el fichero openssl.cnf. Localizado en /usr/lib/ssl

*****************************

4) Lo siguiente sera irnos al directorio /usr/lib/ssl/misc .

cd /usr/lib/ssl/misc

5) Generaremos nuestra CA, para emitir nuestros certificados y firmar los mismos.

./CA.pl -newca
PEM Passphrase: <secret>
Country Name: ES
State Or Province Name: INVENTADO
Locality Name: INVENTADO
Organization Name: ALGUIEN
Organizational Unit Name: ALGO
Common Name: root
Email Address: support@inventado.local

6) Lo siguiente que haremos sera copiar nuestras claves generadas, y copiarlas a la ruta /config/auth .

cp demoCA/cacert.pem /config/auth                                          (Nuestra clave publica)
cp demoCA/private/cakey.pem /config/auth                            (Nuestra clave privada)

7) Lo siguiente sera generar nuestro certificado de servidor.

./CA.pl -newreq
Country Name: ES
State Or Province Name: INVENTADO
Locality Name: INVENTADO
Organization Name: ALGUIEN
Organizational Unit Name: ALGO
Common Name: MYSERVER
Email Address: support@inventado.local

8) Una vez generado nuestro certificado para nuestro servidor, toca firmarlo para darle validez.

./CA.pl -sign
Certificate Details:
Validity
Not Before: Nov 27 10:34:22 2017 GMT
Not After : Nov 27 10:34:22 2027 GMT
Subject:
countryName = ES
stateOrProvinceName = INVENTADO
localityName = INVENTADO
organizationName = ALGUIEN
organizationalUnitName = ALGO
commonName = MYSERVER
emailAddress = support@inventado.local

Sign the certificate? [y/n]: y
1 out of 1 certificate requests certified, commit? [y/n] y

9) Lo siguiente sera renombrar los certificados de nuestro servidor, y dejarlos en /config/auth

mv newcert.pem /config/auth/server.pem
mv newkey.pem /config/auth/server.key

10) Y ahora toca crear el certificado para nuestros clientes. (*Si vamos queremos emitir mas simplemente sera repetir este proceso, y cambiando el nombre tantas veces necesitemos)

./CA.pl -newreq
Common Name: ejemplo1

./CA.pl -sign

mv newcert.pem /config/auth/ejemplo1.pem
mv newkey.pem /config/auth/ejemplo1.key

11) Comprobamos que todo este correcto y tengamos todos nuestros ficheros.

ls -l /config/auth

12) Lo siguientes sera eliminar la contraseña de las claves de cliente y servidor. Nos permitirá conectarnos a la VPN usando solo los certificados.

openssl rsa -in /config/auth/server.key -out /config/auth/server-no-pass.key
openssl rsa -in /config/auth/ejemplo1.key -out /config/auth/ejemplo1-no-pass.key

13) Sobrescribimos las claves «no-pass»

mv /config/auth/server-no-pass.key /config/auth/server.key
mv /config/auth/ejemplo1-no-pass.key /config/auth/ejemplo1.key

14) Nos salimos de root

exit

15) Entramos en el modo de configuraciones

configure

16) Añadimos las reglas para permitir el trafico hacia nuestra VPN (Rule Local)

set firewall name WAN_LOCAL rule 30 action accept
set firewall name WAN_LOCAL rule 30 description OpenVPN
set firewall name WAN_LOCAL rule 30 destination port 1194
set firewall name WAN_LOCAL rule 30 protocol udp

17) Configuramos nuestra interfaz «vtun»

set interfaces openvpn vtun0 mode server
set interfaces openvpn vtun0 server subnet 10.20.20.0/24
set interfaces openvpn vtun0 server push-route 10.9.1.0/24
set interfaces openvpn vtun0 server name-server 1.1.1.1

*Si queremos redirigir todo el trafico seria quitar la regla «push-route», y cambiarla por «push-redirect-gateway»

18) Vinculamos los certificados de servidor y claves DH.

set interfaces openvpn vtun0 tls ca-cert-file /config/auth/cacert.pem
set interfaces openvpn vtun0 tls cert-file /config/auth/server.pem
set interfaces openvpn vtun0 tls key-file /config/auth/server.key
set interfaces openvpn vtun0 tls dh-file /config/auth/dh.pem

19) Y lo aplicamos y guardamos

commit ; save

20) Y por ultimo para realizar nuestra conexión:

1· Nos vamos a nuestro directorio C:\Program Files\OpenVPN\config\ y creamos nuestro fichero «miserver.ovpn», y por medio del winscp nos traemos los siguientes ficheros.

(cacert.pem, ejemplo1.key, ejemplo1.pem)

2· Añadimos lo siguiente en nuestro fichero .ovpn

client
dev tun
proto udp
remote <server-ip> 1194
float
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
ca cacert.pem
cert ejemplo1.pem
key ejemplo.key

*<server-ip> Poner nuestra ip o fqdn

Y A VOLAR . . .

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>