Cómo Configurar un AWS Client VPN

Volver
Cómo Configurar un AWS Client VPN
Cómo Configurar un AWS Client VPN

Por Alessandro Mauro, Creado el 04/05/2020

¿Qué es una VPN?

Una Virtual Private Network (Red Privada Virtual) o VPN consiste en una red de comunicación privada configurada sobre una red pública. Es una forma de realizar la conexión de dos puntos distintos por la red pública (internet, por ejemplo), en lugar de utilizar una infraestructura de enlaces dedicados o red de paquetes. Gracias a esta solución es posible realizar la transferencia de información/archivos de forma cifrada, rápida y segura.

Conocimiento necesario

Es recomendable, aunque no necesario, un conocimiento previo sobre los siguientes temas:

Conexión remota con servidores Linux/Windows; Conceptos de DNS; Gestión de Certificados vía AWS ACM;

Requisitos previos

Para realizar la creación de un AWS Client VPN necesitas:

Los permisos necesarios para trabajar con endpoints del AWS ClientVPN; Una VPC con al menos una subred, un gateway de Internet y una ruta hacia el gateway de Internet; Tener una versión del AWS CLI instalada en la estación de trabajo; Tener la herramienta OpenVPN instalada en la estación de trabajo (Linux Ubuntu); Tener la herramienta AWS Client VPN (Windows y MAC); Tener la herramienta Putty (para realizar conexiones con servidores Linux); Verificar si el AWS Client y sus dependencias están disponibles para tu región de trabajo;

Paso 1: Claves y Certificados

Para generar los certificados es necesario crear un OpenSSL Easy-RSA. En estaciones de trabajo Linux tenemos acceso a él a través del siguiente comando: git clone https://github.com/OpenVPN/easy-rsa.git

Luego abre la carpeta de los archivos descargados: cd easy-rsa/easyrsa3

Para estaciones de trabajo Windows es necesaria una versión superior a la disponibilizada arriba (3.0); nosotros, para este Paso a Paso, utilizamos Easy-rsa 3.0.7. Después de realizar la descarga del archivo, descomprímelo e inicializa el “EasyRSA-Start.bat”;

Inicializa un nuevo entorno PKI: ./easyrsa init-pki

Crea un certificado del dominio: ./easyrsa build-ca nopass Se te pedirá insertar un valor; en él podemos insertar “vpn.dominio.do.cliente” por ejemplo, para facilitar el reconocimiento posteriormente;

Comando para generar el certificado y la clave que se vinculará al Servidor que queremos acceder: ./easyrsa build-server-full NomeDoServidor nopass

Comando para generar el certificado y la clave para el cliente: ./easyrsa build-client-full Dominio.do.cliente nopass

NOTA: Es de convención, y se considera una buena práctica, crear claves particulares para cada usuario, pues así se facilita el control de acceso de los empleados en caso de reubicación o desvinculación del mismo (ejemplo: usuario.dominio.do.cliente).

Ahora copia los archivos a una única carpeta para un mejor control: mkdir ~/novaPasta/ cp pki/ca.crt ~/novaPasta/ cp pki/issued/NomeDoServidor.crt ~/novaPasta/ cp pki/private/NomeDoServidor.key ~/novaPasta/ cp pki/issued/Dominio.do.cliente.crt ~/novaPasta/ cp pki/private/Dominio.do.cliente.key ~/novaPasta/

Verifica si todos los archivos se encuentran en la carpeta: cd ~/novaPasta/ ls

Paso 2: Importación de los certificados

Para realizar la importación del certificado del servidor a la Consola de Administración de AWS inserta el siguiente comando: aws acm import-certificate –certificate file://NomeDoServidor.crt –private-key file://NomeDoServidor.key –certificate-chain file://ca.crt –region regiaoDesejada

Luego realiza la importación del certificado del Client que fue generado.

Nota: En caso de que exista la necesidad de insertarlos en múltiples regiones, será necesario insertar una a la vez.

Es posible realizar la importación a través de la Consola de Administración de AWS

Paso 2: Importando el Certificado.

Nota: En caso de que los certificados de Client hayan sido emitidos por CAs diferentes, es necesario que los mismos también sean importados.

En la Management Console, ve hasta Client VPN Endpoints, ubicado dentro de VPC.

Paso 3: Creando un Endpoint

Selecciona Create Client VPN Endpoint:

Paso 3: Botón de Crear un Endpoint

El primer bloque de información se refiere a la identificación de la red de VPN

Paso 3: Identificando el Endpoint

Para completar el campo Client IPv4 CIDR es necesario que la red sea como mínimo /22 y como máximo /12. En caso de dudas, podrás calcular ese valor con una calculadora de subredes.

NOTA: El campo Client IPv4 CIDR se refiere al bloque de IPs en el cual los usuarios se conectarán a la red; no coloques la misma red que tu VPC, de lo contrario podría impactar en tu entorno. Esta información no puede alterarse después de la creación.

El segundo bloque se refiere a la autenticación del servidor

Paso 3: Configurando la Autenticación

NOTA: En el campo Server certificate ARN se debe seleccionar el certificado del servidor generado en el Paso 1. En el campo Authentication Options se seleccionará Use mutual authentication y luego se debe seleccionar el certificado del cliente también generado en el Paso 1.

El tercer bloque se refiere a la creación de logs

Paso 3: Habilitando Logs

NOTA: Es altamente recomendable, y se considera una buena práctica, habilitar la configuración de logs, pues así quedará registrado siempre que haya un intento de autenticación para la red.

El cuarto bloque se refiere a las configuraciones adicionales

Paso 3: Configuraciones Adicionales

NOTA: En este bloque es posible configurar los servidores de DNS, para la resolución de nombre dentro de la red, elegir el protocolo de transferencia (UDP siendo el seleccionado por defecto), habilitar Split-tunnel (permitiendo el uso de la red normal para aplicaciones y servicios que no tienen como destino servidores dentro de la VPC).

Después de realizar todas las configuraciones basta con seleccionar el botón Create Client VPN Endpoint

Paso 3: Botón de Crear un Endpoint

Paso 4: Habilitando la conectividad de VPN para Clientes

En la página Client VPN Endpoints de la Management Console selecciona la opción Associations y luego Associate, conforme la figura de abajo

Paso 4: Creando una Asociación

En esta pantalla es necesario realizar la asociación con la VPC deseada y su respectiva Subnet de la red deseada

Paso 4: Creando Asociación con la Red Deseada

Paso 5: Autorizando la conectividad con el cliente

En la página Client VPN Endpoints de la Management Console selecciona la opción Authorization y luego Authorize Ingress, conforme la figura de abajo

Paso 5: Creando una Autorización

En esta pantalla se configurará en el campo Destination network to enable la red, en notación CIDR, que será accedida por la VPN. Al final de la configuración basta con hacer clic en Add authorization rule

Paso 5: Autorizando el Punto de Partida

Paso 6: Archivo de Configuración del Endpoint

Para realizar la descarga del archivo de Configuración del cliente basta con hacer clic en la página Client VPN Endpoints de la Management Console y seleccionar la opción Download Client Configuration, figura de abajo

Paso 6: Descargando el Archivo de Configuración del Client

Se realizará la descarga de un archivo .ovpn con el siguiente contenido:

client dev tun proto udp remote cvpn-endpoint-…region.amazonaws.com 443 remote-random-hostname resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-GCM verb 3 <ca> -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- </ca> reneg-sec 0

En este archivo será necesario insertar el Certificado del Servidor y la Clave del Cliente; esto puede añadirse de dos formas:

Tag

Es posible insertar las dos claves a través de las tags:

client dev tun proto udp remote cvpn-endpoint-…region.amazonaws.com 443 remote-random-hostname resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-GCM verb 3 <ca> -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- </ca> **<cert> -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- </cert> <key> -----BEGIN KEY----- Base64–encoded certificate -----END KEY----- </key>** reneg-sec 0

Referencia

Es posible insertar las dos claves a través de la referencia de los archivos dentro del documento, conforme:

client dev tun proto udp remote cvpn-endpoint-…region.amazonaws.com 443 remote-random-hostname resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-GCM verb 3 **cert NomeDoServidor.cert key NomeDoServidor.key** <ca> -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- </ca> reneg-sec 0

NOTA: Cuando realices la configuración vía referencia, será necesario enviar el certificado y la clave junto con el archivo de configuración al cliente.

Paso 7: Distribución del archivo a los clientes

Con el archivo de configuración finalizado basta con distribuirlo a los clientes para que accedan a la VPN vía AWS Client VPN. Para realizar la conexión con servidores Linux basta con utilizar la herramienta Putty. Para realizar la conexión con servidores Windows basta con la herramienta de Conexión a Escritorio Remoto.

Paso 8: Revocando el Certificado de Client

En caso de estar utilizando Mutual Authentication y haya la necesidad de revocar un certificado, abre el entorno pki y escribe:

./easyrsa revoke nome-do-certificado-do-cliente

Cuando se te pregunte, escribe yes. Un archivo crl.pem se creará en: /easy-rsa/EasyRSA-3.0.7/pkicrl.pem/crl.pem

En la pestaña de VPC de la consola de administración selecciona tu Client VPN y haz clic en Import Client Certificate CRL

Paso 8: Importando CRL

Completa el campo con el contenido del archivo crl.pem y por último Import CRL

Paso 8: Insertando el Certificado para Revocación

En cualquier momento es posible exportar la lista con los certificados revocados.

Selecciona tu Client VPN y haz clic en Export Client Certificate CRL

Paso 8: Exportando la Lista de Revocación

Disponibilidad y Precios

La fijación de precios de esta herramienta se realiza de la siguiente forma (basado en la región de Ohio):

Realizar una Asociación de endpoints del AWS Client VPN genera un cobro de 0,10 USD por hora; Cada Conectividad del AWS Client VPN genera un cobro de 0,05 USD por hora. Para más información sobre las regiones de disponibilidad y sus respectivos cobros consulta aquí.

Resumen

En este artículo realizamos una configuración de una red privada utilizando el AWS Client VPN, emitimos los certificados de autenticación y creamos un archivo de configuración para realizar nuestra conexión con nuestros servidores.

Tags

#migração #networking #aws #client-vpn #trabalho-remoto

Sobre el autor

Alessandro Mauro

Comentarios

WhatsApp