cómo crear una vpn con openvpn
TRANSCRIPT
| 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 [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
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