cómo crear una vpn con openvpn

31
Con OpenVPN Vladimir Calderón v [email protected] / [email protected] VPN

Upload: vladimir-calderon

Post on 22-Jan-2018

140 views

Category:

Technology


3 download

TRANSCRIPT

Page 2: Cómo crear una VPN con OpenVPN

| www.artexacta.com

VPN• Conectar dos maquinas distantes

como si estuvieran en la misma LAN

• Las dos maquinas terminan con IPs de la misma red, aún cuando estánpotencialmente separadas pormiles de km (wtf?)

• Figura extraída del sitio de CISCOmostrando muchas de las posibilidades de conexión para unaVPN

2

Page 3: Cómo crear una VPN con OpenVPN

| www.artexacta.com

En la práctica, y para que se entiendaMi laptop, en casa Una máquina en algún lugar del mundo con una IP pública

AN

TES

DE

LA V

PN

Mi laptop, en casa? O en …. algún mundo virtual? Ahora esa máquina también en el mismo mundo virtual?

DES

PU

ÉS D

E LA

VP

N

3

Page 4: Cómo crear una VPN con OpenVPN

| www.artexacta.com

Con tan bello motivo

• Se pueden hacer ping entre las dos máquinas

• Se puede compartir archivos en una carpeta compartida

• Se puede imprimir en la impresora de la otra máquina

4

Page 5: Cómo crear una VPN con OpenVPN

Para todo efecto es como si las dos máquinas estuviesenlado a lado conectadas con un cable de red

VPN5

Page 6: Cómo crear una VPN con OpenVPN

Y cómo hacemos esta maravilla?

6

Page 7: Cómo crear una VPN con OpenVPN

Este manual asume que has elegido

… y que lo has instalado!!

7

Page 8: Cómo crear una VPN con OpenVPN

8

Page 9: Cómo crear una VPN con OpenVPN

De los mejores manuales en Internet• https://community.openvpn.net/openvpn/wiki/Easy_Windows_Guide

• https://www.youtube.com/watch?v=BAr-9zz2JJo&list=PLemAn0rripdAJJSJRuT7IC7cFtsbBW6gJ&index=7

9

Page 10: Cómo crear una VPN con OpenVPN

Recapitulando la teoría1. Tenemos tareas que hacer para prepararnos como servidor VPN, la

principal es la de poder COMPROBAR que los clientes son quienesdicen ser.

2. Cada entidad debe tener los certificados y llaves que necesita para la comunicación

3. Al momento de iniciar la comunicación ambas partes puedenprobar inequívocamente de quién se trata al otro lado.

10

Page 11: Cómo crear una VPN con OpenVPN

1. Tareas previas a realizar en el servidor VPN• Crear Autoridad

Certificadora

• Crear el certificado del servidor

• Crear cada uno de loscertificados de los clientes

• Enviarlos por un canal seguro para que no hayanproblemas de seguridad

11

Page 12: Cómo crear una VPN con OpenVPN

Por qué Autoridad Certificadora?• La función que tiene es la de COMPROBAR que los certificados que

llegan han sido realmente emitidos por esa autoridad certificadora.

• Es lo más parecido a la oficina de carnets de identidad/DNI de un país.

• La única forma de comprobar que el carnet/DNI es válido es ir a la oficina de carnets/DNI y verificar que ese carnet/DNI fue de verdademitido.

12

Page 13: Cómo crear una VPN con OpenVPN

Configuración de certificados• A la derecho se ven los archivos

que se deben tener de cada lado

• La regla general es:

• Al enviar un mensaje se puedefirmar con un Certificado o con una llave privada (PK).

• Si se cerró con una PK, entoncesse abre con un certificado.

• Si se cerró con un certificado, entonces se abre con una PK

13

Page 14: Cómo crear una VPN con OpenVPN

Conexión del cliente al servidor (Handshake)

1. El cliente se conecta al servidor con un mensaje indicando quién es.

14

Page 15: Cómo crear una VPN con OpenVPN

Conexión del cliente al servidor (Handshake)

1. a

2. El mensaje debe estar firmado con la PK del cliente

15

Page 16: Cómo crear una VPN con OpenVPN

Conexión del cliente al servidor (Handshake)

1. D

2. D

3. El servidor recibe el mensaje y lo abre con el certificado del cliente

16

Page 17: Cómo crear una VPN con OpenVPN

Conexión del cliente al servidor (Handshake)

1. a

2. A

3. a

4. Si logra abrirlo, entonces quiere decir que ha COMPROBADOque el mensaje viene de verdad de parte del cliente.

17

Page 18: Cómo crear una VPN con OpenVPN

Creación de nuestro ambiente con OpenVPN• OpenVPN viene con el software easyRSA que ayuda a la creación de

certificados.

• Con easyRSA vamos a definer correctamente las variables de Sistema

• Vamos a generar los archivos para hacer nuestra CA

• Vamos a generar los certificados de servidor firmados por la CA.

• Vamos a generar cada uno de los certificados de los clientes firmadospor la CA.

18

Page 19: Cómo crear una VPN con OpenVPN

Creación de nuestro ambiente con OpenVPN

• Ejecutar cmd (línea de comando DOS) como Administrador• Cambiarse a la carpeta de instalación por ejemplo

• > cd \Program Files\OpenVPN\

• > cd easy-rsa

• Ejecutar init-config para que podamos tener un archivo de config(vars.bat) para cambiar• > init-config.bat

19

Page 20: Cómo crear una VPN con OpenVPN

Creación de nuestro ambiente con OpenVPN

• Editar el archivo vars.bat en las líneas:• set KEY_SIZE=2048

• set KEY_COUNTRY=BO

• set KEY_PROVINCE=SC

• set KEY_CITY=Santa Cruz

• set KEY_ORG=MiEmpresaVPN

• set [email protected]

• set KEY_CN=changeme

• set KEY_NAME=changeme

• set KEY_OU=changeme

Se coloca en dos letras el país para el cuales esta VPN. La lista de países con sus

códigos se puede ver aquí: https://en.wikipedia.org/wiki/ISO_3166-

1_alpha-2

Por defecto está en 1024, se aconsejautilizer algo de por lo menos 2048

20

Page 21: Cómo crear una VPN con OpenVPN

Creación de nuestro ambiente con OpenVPN

• Ejecutar vars.bat• > vars.bat

• Luego crear la CA• > build-ca

• Hacer <enter> cada vez que el script pregunte confirmar (deberíamostrar la configuración del vars.bat que hicieron) EXCEPTO…

• Para la pregunta Common Name colocar el nombre de la VPN (o un nombre que identifique a su VPN)

• > Common Name (e.g. your name or your server’s hostname [changeme]: MiEmpresaVPN

21

Page 22: Cómo crear una VPN con OpenVPN

Creación de nuestro ambiente con OpenVPN

• Ahora creamos el certificado del servidor• > vars.bat

• > build-key-server server

• Hacer <enter> cada vez que el script pregunte confirmer (deberíamostrar la configuración del vars.bat que hicieron) EXCEPTO…

• Para la pregunta Common Name colocar el nombre de la VPN (o un nombre que identifique a su VPN)

• > Common Name (e.g. your name or your server’s hostname [changeme]: MiServerVPN

22

Page 23: Cómo crear una VPN con OpenVPN

Creación de nuestro ambiente con OpenVPN

• Mover los archivos ca.crt, server.crt, server.key y dh2048.pem a la carpeta de configuración de OpenVPN.

• Asegurarse que esos archivos se encuentran en la carpeta:"

23

Page 24: Cómo crear una VPN con OpenVPN

Creación de nuestro ambiente con OpenVPN

• En la carpeta C:\Program Files\OpenVPN\sample-config se encuentra el archivo• server.ovpn

• Copiar ese archivo a la carpeta de configuración C:\Program Files\OpenVPN\config

• Identificar en el archivo las líneas y definirlas de acuerdo a esto:• port 1194

• ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"

• cert "C:\\Program Files\\OpenVPN\\config\\server.crt"

• key "C:\\Program Files\\OpenVPN\\config\\server.key"

• dh "C:\\Program Files\\OpenVPN\\config\\dh2048.pem"24

Page 25: Cómo crear una VPN con OpenVPN

Creación de nuestro ambiente con OpenVPN

• Ahora creamos el certificado del cliente:• hacer esto para CADA cliente que se desee conectar a la VPN

• > vars.bat

• > build-key <nombre unico del cliente>

• Hacer <enter> cada vez que el script pregunte confirmar (deberíamostrar la configuración del vars.bat que hicieron) EXCEPTO…

• Para la pregunta Common Name colocar el nombre único del cliente, por ejemplo MiClientePC1

• > Common Name (e.g. your name or your client’s hostname [changeme]: MiClientePC1

25

Page 26: Cómo crear una VPN con OpenVPN

Creación de nuestro ambiente con OpenVPN

• Mover el archivo miclientepc1.crt a la carpeta de configuración de OpenVPN.

26

Page 27: Cómo crear una VPN con OpenVPN

Creación de nuestro ambiente con OpenVPN

• Mover los archivos ca.crt, miclientepc1.crt, miclientepc1.key a la carpeta de configuración de OpenVPN.

• Asegurarse que esos archivos se encuentran en la carpeta:"

27

Page 28: Cómo crear una VPN con OpenVPN

Creación de nuestro ambiente con OpenVPN

• En la carpeta C:\Program Files\OpenVPN\sample-config se encuentra el archivo• client.ovpn

• Copiar ese archivo a la carpeta de configuración C:\Program Files\OpenVPN\config

• Cambiar el nombre del archivo a miclientepc1.ovpn

• Identificar en el archivo las líneas y definirlas de acuerdo a esto:• Server <nombre o IP servidor> 1194

• ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"

• cert "C:\\Program Files\\OpenVPN\\config\\miclientepc1.crt"

• key "C:\\Program Files\\OpenVPN\\config\\miclientepc1.key"28

Page 29: Cómo crear una VPN con OpenVPN

Probando si todo va bien: SERVIDOR• En el server ejecutar OpenVPN haciendo clic en el ícono de escritorio.

• Luego, en el ícono de las tareas hacer doble-clic para que ‘arme’ la VPN

29

Page 30: Cómo crear una VPN con OpenVPN

Probando si todo va bien: CLIENTE• En el cliente ejecutar OpenVPN haciendo clic en el ícono de escritorio.

• Luego, en el ícono de las tareas hacer doble-clic para que se conecteal servidor

30

Page 31: Cómo crear una VPN con OpenVPN

Ambiente funcionando y conectado

• En ambas máquinas se puede evidenciar el buen funcionamiento al ver las siguientes figuras.• Usted puede testear el ping como se indica al principio de esta presentación

31