cómo crear una vpn con openvpn

Post on 22-Jan-2018

140 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Con OpenVPN

Vladimir Calderón

vladimir.calderon@artexacta.com / vladimir.calderon@gmail.com

VPN

| 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

| 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

| 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

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

VPN5

Y cómo hacemos esta maravilla?

6

Este manual asume que has elegido

… y que lo has instalado!!

7

8

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

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

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

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

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

Conexión del cliente al servidor (Handshake)

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

14

Conexión del cliente al servidor (Handshake)

1. a

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

15

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

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

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

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

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 KEY_EMAIL=minombre@miempresa.com

• 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

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

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

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

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

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

Creación de nuestro ambiente con OpenVPN

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

26

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

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

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

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

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

top related