LINUX

Cómo configurar el servidor de acceso OpenVPN en AWS

Este artículo cubre cómo configurar el servidor de acceso OpenVPN utilizando la imagen de la máquina de Amazon. OpenVPN es una aplicación de código abierto que utiliza un método VPN para crear una conexión segura entre conexiones punto a punto O de sitio a sitio en modo puenteado / enrutado. Utiliza conexiones SSL y TLS para atravesar conexiones NAT y cortafuegos. OpenVPN se ha adaptado a sistemas integrados como DD-WRT, OpenWRT, pfsense, etc. El servidor de acceso OpenVPN se basa en la versión comunitaria, pero ofrece algunos otros servicios de pago y propietarios como LDAP, SMB, administración de interfaz de usuario web, servidor Radius, etc.en AWS.

Requisito previo:

Debe tener una cuenta de AWS. Si aún no lo tiene, cree una cuenta usando nivel gratuito de amazon. Usaremos la imagen de máquina de Amazon (AMI) preconfigurada para OpenVPN-AS para instalar el servidor OpenVPN y desplegarlo en minutos.

1. Cree una instancia EC2 para OpenVPN Access Server

El ec2 de Amazon (Elastic Compute Cloud) son servidores virtuales en la nube con una amplia gama de tamaños de RAM y potencias de cómputo. Usaremos el nivel gratuito de Amazon para lanzar nuestro OpenVPN-AS.

Ir al servicio web de Amazon consola y seleccione EC2 para iniciar un servidor virtual para este tutorial. Para hacer eso, haga clic en servicios-> Grupo AZ-> EC2

Seleccione el servicio EC2 en AWS

En el panel de EC2, haga clic en «Iniciar instancia».

Lanzar instancia ec2

Ahora seleccione AWS Marketplace y escriba OpenVPN en el cuadro de búsqueda y presione Entrar. Encontrará el servidor de acceso OpenVPN en el resultado. Seleccione el título del servidor de acceso OpenVPN para continuar.

Buscar imagen OpenVPN

Elija un tipo de instancia dependiendo de sus requisitos / tráfico / número de usuarios, etc. Para nuestro tutorial, elegiremos la instancia t2.micro. Haga clic en «Siguiente: configure los detalles de la instancia» para continuar.

Elija el tipo de instancia de AWS

En las siguientes dos capturas de pantalla, configure los detalles de la instancia como no de instancia, asignación automática de IP pública, comportamiento de apagado. La IP pública de asignación automática está habilitada ya que queremos que nuestro servidor de acceso OpenVPN se comunique con el mundo exterior.

configurar los detalles de la instancia EC2

En la sección «Detalles avanzados», pasaremos los parámetros en los datos de los usuarios como texto y estos estarán disponibles para la instancia durante el tiempo de arranque. Los parámetros de nuestro interés son-

public_hostname=openvpnserver
admin_user=openvpnadmin
admin_pw=openvpnpassword
reroute_gw=1
reroute_dns=1

Ahora haga clic en «Siguiente: Agregar almacenamiento»

Configurar los detalles de la instancia EC2

Agrega almacenamiento a la instancia. Aunque hemos elegido el tipo de volumen como Magnético, sobrescribiremos el tipo de volumen como «SSD de tipo general» en el paso final, que es más eficiente en cuanto al rendimiento que el «EBS magnético» de la generación anterior. Haga clic en «Siguiente: agregar etiquetas» para continuar con el siguiente paso.

Agregar almacenamiento a la instancia EC2

Etiquete la instancia que es una combinación de par clave-valor. Hemos etiquetado nuestra instancia con un par clave-valor de Nombre: OpenVPN. Haga clic en «Siguiente: configurar grupos de seguridad»

Agregar etiqueta a la instancia EC2

Se generará automáticamente un grupo de seguridad para la instancia. Elija «Crear un nuevo grupo de seguridad» y haga clic en «Revisar e iniciar». Por el momento, mantuvimos abierto el mundo SSH, que luego se puede fortalecer con el rango CIDR o My IP. Haga clic en «Revisar y ejecutar».

Crear grupo de seguridad para la instancia EC2

Anule el tipo de volumen como SSD de tipo general y haga clic en «Siguiente»

Arrancar desde SSD

Ignore la advertencia por el momento y haga clic en «Iniciar».

Revisar la instancia EC2 y lanzarla

Cree un nuevo par de claves y descargue la clave. Lo necesita para SSH en el servidor OpenVPN. También puede elegir «Par de claves existente» si ya ha creado la clave y tiene acceso a ella. Finalmente, haga clic en «Iniciar instancia»

Crea un nuevo par de claves

En la siguiente pantalla, haga clic en «Ver instancia»

Ver instancia ec2

Desde el panel de EC2, haga clic con el botón derecho en la instancia de OpenVPN y haga clic en conectar. Ahora copie la cadena de conexión y péguela en un archivo de texto temporal y haga clic en «Cerrar».

Copiar la cadena de conexión SSH

Como queremos asociar nuestro servidor OpenVPN con una IP pública, seleccione «IP elástica» y haga clic en «Asignar nueva dirección»

Asignar IP elástica a la instancia

En la siguiente pantalla, haga clic en «Asignar»

Asignar confirmación de IP elástica

Obtendrá una confirmación de la asignación exitosa de IP elástica. Haga clic en «Cerrar».

Cerrar el cuadro de diálogo de IP elástica

Ahora necesitamos asociar esta IP elástica a la instancia de OpenVPN. En el panel de IP elástica, seleccione la IP elástica asignada, haga clic en el cuadro desplegable Acciones y elija «Asociar dirección».

Asociar IP elástica a la instancia

En la siguiente pantalla, haga clic en la lista desplegable de instancias, seleccione la instancia de OpenVPN y haga clic en «Asociar».

Elija instancia para asociar IP elástica

Recibirá una confirmación de asociación exitosa. Haga clic en «»

Cerrar el cuadro de diálogo de asociación EIP

Ahora que nuestra instancia de servidor de acceso OpenVPN está en funcionamiento, ingresaremos por SSH para inicializar OpenVPN. Primero asigne el permiso adecuado al archivo de clave que hemos descargado en el paso anterior.

[thegeek@mysandbox Downloads]$ chmod 400 OpenVPN-Server.pem

Recuerde que hemos copiado la cadena de conexión SSH anteriormente, edite la cadena y cambie la raíz del usuario con openvpnas y conéctese al OpenVPN AS remoto con el siguiente comando. Una vez conectado, cambie a root con sudo -i

[thegeek@mysandbox ]$ ssh -i "OpenVPN-Server.pem" openvpnas@ec2-52-221-74-192.ap-southeast-1.compute.amazonaws.com

openvpnas@openvpnas2:~$ sudo -i

Una vez que ingrese al shell raíz, ejecute la herramienta de configuración inicial openVPN con el siguiente comando.

root@openvpnas2:# sudo ovpn-init --ec2

Detected an existing OpenVPN-AS configuration.
Continuing will delete this configuration and restart from scratch.
Please enter 'DELETE' to delete existing configuration: DELETE

OpenVPN Access Server
Initial Configuration Tool
------------------------------------------------------
OpenVPN Access Server End User License Agreement (OpenVPN-AS EULA)

1. Copyright Notice: OpenVPN Access Server License;
Copyright (c) 2009-2013 OpenVPN Technologies, Inc.. All rights reserved.
"OpenVPN" is a trademark of OpenVPN Technologies, Inc.
--------------------------------------

--------------------------------------
11. Purchasing a license key does not entitle you to any special rights or
privileges, except the ones explicitly outlined in this user agreement.
Unless otherwise arranged prior to your purchase with OpenVPN Technologies,
Inc., software maintenance costs and terms are subject to change after your
initial purchase without notice. In case of price decreases or special
promotions, OpenVPN Technologies, Inc. will not retrospectively apply
credits or price adjustments toward any licenses that have already been
issued. Furthermore, no discounts will be given for license maintenance
renewals unless this is specified in your contract with OpenVPN
Technologies, Inc.

Please enter 'yes' to indicate your agreement [no]: yes

Once you provide a few initial configuration settings,
OpenVPN Access Server can be configured by accessing
its Admin Web UI using your Web browser.

Will this be the primary Access Server node?
(enter 'no' to configure as a backup or standby node)
> Press ENTER for default [yes]: yes

Please specify the network interface and IP address to be
used by the Admin Web UI:
(1) all interfaces: 0.0.0.0
(2) eth0: 172.31.16.206
Please enter the option number from the list above (1-2).
> Press Enter for default [2]: 1

Please specify the port number for the Admin Web UI.
> Press ENTER for default [943]: 943

Please specify the TCP port number for the OpenVPN Daemon
> Press ENTER for default [443]: 443

Should client traffic be routed by default through the VPN?
> Press ENTER for default [yes]: yes

Should client DNS traffic be routed by default through the VPN?
> Press ENTER for default [yes]: yes

Use local authentication via internal DB?
> Press ENTER for default [yes]: yes

Private subnets detected: ['172.31.0.0/16']

Should private subnets be accessible to clients by default?
> Press ENTER for EC2 default [yes]: yes

To initially login to the Admin Web UI, you must use a
username and password that successfully authenticates you
with the host UNIX system (you can later modify the settings
so that RADIUS or LDAP is used for authentication instead).

You can login to the Admin Web UI as "openvpnadmin" or specify
a different user account to use for this purpose.

Do you wish to login to the Admin UI as "openvpnadmin"?
> Press ENTER for default [yes]: yes

> Please specify your OpenVPN-AS license key (or leave blank to specify later):

Initializing OpenVPN...
Adding new user login...
useradd -s /sbin/nologin "openvpnadmin"
Writing as configuration file...
Perform sa init...
Wiping any previous userdb...
Creating default profile...
Modifying default profile...
Adding new user to userdb...
Modifying new user as superuser in userdb...
Getting hostname...
Hostname: openvpnserver
Preparing web certificates...
Getting web user account...
Adding web group account...
Adding web group...
Adjusting license directory ownership...
Initializing confdb...
Generating init scripts...
Generating PAM config...
Generating init scripts auto command...
Starting openvpnas...

NOTE: Your system clock must be correct for OpenVPN Access Server
to perform correctly.  Please ensure that your time and date
are correct on this system.

Initial Configuration Complete!

You can now continue configuring OpenVPN Access Server by
directing your Web browser to this URL:

https://52.221.74.192:943/admin
Login as "openvpnadmin" with the same password used to authenticate
to this UNIX host.

During normal operation, OpenVPN AS can be accessed via these URLs:
Admin  UI: https://52.221.74.192:943/admin
 Client UI: https://52.221.74.192:943/

See the Release Notes for this release at:
http://www.openvpn.net/access-server/rn/openvpn_as_2_1_4b.html

2. Inicie sesión en la interfaz de administración de OpenVPN

Apunte su navegador a https: // OpenVPN-AS-IP: 943 / admin y escriba el nombre de usuario y la contraseña que le proporcionamos como datos de texto al configurar los detalles de la instancia EC2.

Página de inicio de sesión de OpenVPN AS

Acepta la licencia

OpenVPN acepta licencia

Serás llevado a la página de estado del servidor de acceso OpenVPN. Aquí puede explorar todas las funciones de OpenVPN AS.

Descripción general del servidor de acceso OpenVPN

Haga clic en «Configuración de red del servidor» en Configuración en la lista del menú de la barra lateral izquierda. Encontrará que el nombre de host se establece en el valor que pasamos como texto de datos mientras configuramos los detalles de la instancia. La interfaz está configurada para todos, el protocolo para .ie TCP y UDP. Los servicios se reenvían al servidor web Admin / Client. También puede cambiar el número de puerto UDP / TCP a su elección a través de esta página.

Configuración de red del servidor OpenVPN

En Gestión de usuarios-> Permisos de usuario, cree un nuevo usuario y marque Permitir inicio de sesión automático. Una vez hecho esto, haga clic en «Guardar configuración». Hemos elegido el nombre de usuario como linuxuser.

OpenVPN crear usuario

En la página siguiente, se le pedirá que actualice el servidor para propagar nuevas configuraciones al servidor. Haga clic en «Actualizar servidor en ejecución»

Servidor en ejecución de actualización de OpenVPN

Volviendo a la configuración de permisos de usuario, haga clic en «Mostrar» para el usuario que hemos creado en el paso anterior en la columna de más configuraciones. Proporcione una contraseña para el usuario y haga clic en «guardar configuración» seguido de «Actualizar servidor en ejecución».

Contraseña de actualización de OpenVPN para el usuario

Acceda a la interfaz de usuario del cliente en el navegador apuntándolo a https: // OpenVPN-AS-Server-IP: 943 / Proporcione el nombre de usuario y la contraseña que ha creado en el último paso.

Inicio de sesión de cliente OpenVPN

Una vez que haya iniciado sesión correctamente, encontrará una lista de clientes que podemos usar para conectarnos a OpenVPN AS. Conectaremos el servidor OpenVPN desde un cliente linux. Descargue el perfil de inicio de sesión automático que se necesitará para conectarse al servidor OpenVPN desde un cliente.

Descargar el perfil de inicio de sesión automático de OpenVPN para el cliente

2. Configurar el cliente OpenVPN

Conectaremos OpenVPN AS desde un cliente linux (CentOS 7) Instale OpenVPN en el cliente linux usando el siguiente comando.

[root@mysandbox ]# yum install openvpn

Agregue una entrada de nombre de host / IP del servidor OpenVPN en / etc / hosts ya que client.ovpn contendrá líneas como openvpnserver 1194 udp remoto. Para resolver el nombre de host de openvpnserver, necesitamos adjuntar el par nombre de host / IP en / etc / hosts. Una vez hecho esto, reinicie la red.

[thegeek@mysandbox ~]$ cat /etc/hosts
52.221.74.192   openvpnserver

[thegeek@mysandbox ~]$ service network restart

Si no le gusta esto, en la consola de administración del servidor OpenVPN, cambie el nombre de host a la IP pública del servidor OpenVPN. Guarde la configuración y actualice el servidor para propagar la nueva configuración al servidor. Siguiente Cierre la sesión de la IU del cliente y descargue el client.ovpn (perfil de inicio de sesión automático) recién generado después de volver a iniciar sesión a través de la IU del cliente.

OpenVPN AS cambia el nombre de host

Ahora conéctese al servidor OpenVPN asumiendo que tiene client.ovpn que hemos descargado anteriormente en el CWD.

[root@mysandbox]# openvpn --config client.ovpn
Thu Feb  2 19:39:48 2017 OpenVPN 2.3.11 i686-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Feb  2 2017
Thu Feb  2 19:39:48 2017 library versions: OpenSSL 1.0.1e-fips 11 Feb 2013, LZO 2.06
Thu Feb  2 19:39:48 2017 Control Channel Authentication: tls-auth using INLINE static key file
Thu Feb  2 19:39:48 2017 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Feb  2 19:39:48 2017 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Feb  2 19:39:48 2017 Socket Buffers: R=[180224->200000] S=[180224->200000]
Thu Feb  2 19:39:48 2017 UDPv4 link local: [undef]
Thu Feb  2 19:39:48 2017 UDPv4 link remote: [AF_INET]52.221.74.192:1194
Thu Feb  2 19:39:50 2017 TLS: Initial packet from [AF_INET]52.221.74.192:1194, sid=30bcd180 84319d7d
Thu Feb  2 19:39:51 2017 VERIFY OK: depth=1, CN=OpenVPN CA
Thu Feb  2 19:39:51 2017 VERIFY OK: nsCertType=SERVER
Thu Feb  2 19:39:51 2017 VERIFY OK: depth=0, CN=OpenVPN Server
Thu Feb  2 19:39:52 2017 Data Channel Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Thu Feb  2 19:39:52 2017 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Feb  2 19:39:52 2017 Data Channel Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Thu Feb  2 19:39:52 2017 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Feb  2 19:39:52 2017 Control Channel: TLSv1, cipher TLSv1/SSLv3 ECDHE-RSA-AES256-SHA, 2048 bit RSA
Thu Feb  2 19:39:52 2017 [OpenVPN Server] Peer Connection Initiated with [AF_INET]52.221.74.192:1194
Thu Feb  2 19:39:54 2017 SENT CONTROL [OpenVPN Server]: 'PUSH_REQUEST' (status=1)
Thu Feb  2 19:39:54 2017 PUSH: Received control message: 'PUSH_REPLY,explicit-exit-notify,topology subnet,route-delay 5 30,dhcp-pre-release,dhcp-renew,dhcp-release,route-metric 101,ping 12,ping-restart 50,comp-lzo yes,redirect-gateway def1,redirect-gateway bypass-dhcp,redirect-gateway autolocal,route-gateway 172.27.232.1,dhcp-option DNS 172.31.0.2,register-dns,block-ipv6,ifconfig 172.27.232.3 255.255.248.0'
Thu Feb  2 19:39:54 2017 Option 'explicit-exit-notify' in [PUSH-OPTIONS]:1 is ignored by previous <connection> blocks
Thu Feb  2 19:39:54 2017 Unrecognized option or missing parameter(s) in [PUSH-OPTIONS]:4: dhcp-pre-release (2.3.11)
Thu Feb  2 19:39:54 2017 Unrecognized option or missing parameter(s) in [PUSH-OPTIONS]:5: dhcp-renew (2.3.11)
Thu Feb  2 19:39:54 2017 Unrecognized option or missing parameter(s) in [PUSH-OPTIONS]:6: dhcp-release (2.3.11)
Thu Feb  2 19:39:54 2017 Unrecognized option or missing parameter(s) in [PUSH-OPTIONS]:16: register-dns (2.3.11)
Thu Feb  2 19:39:54 2017 Unrecognized option or missing parameter(s) in [PUSH-OPTIONS]:17: block-ipv6 (2.3.11)
Thu Feb  2 19:39:54 2017 OPTIONS IMPORT: timers and/or timeouts modified
Thu Feb  2 19:39:54 2017 OPTIONS IMPORT: explicit notify parm(s) modified
Thu Feb  2 19:39:54 2017 OPTIONS IMPORT: LZO parms modified
Thu Feb  2 19:39:54 2017 OPTIONS IMPORT: --ifconfig/up options modified
Thu Feb  2 19:39:54 2017 OPTIONS IMPORT: route options modified
Thu Feb  2 19:39:54 2017 OPTIONS IMPORT: route-related options modified
Thu Feb  2 19:39:54 2017 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Thu Feb  2 19:39:54 2017 ROUTE_GATEWAY ON_LINK IFACE=ppp0 HWADDR=00:00:00:00:00:00
Thu Feb  2 19:39:54 2017 TUN/TAP device tun0 opened
Thu Feb  2 19:39:54 2017 TUN/TAP TX queue length set to 100
Thu Feb  2 19:39:54 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Thu Feb  2 19:39:54 2017 /sbin/ifconfig tun0 172.27.232.3 netmask 255.255.248.0 mtu 1500 broadcast 172.27.239.255
Thu Feb  2 19:40:00 2017 ROUTE remote_host is NOT LOCAL
Thu Feb  2 19:40:00 2017 /sbin/route add -net 52.221.74.192 netmask 255.255.255.255 dev ppp0
Thu Feb  2 19:40:00 2017 /sbin/route add -net 0.0.0.0 netmask 128.0.0.0 gw 172.27.232.1
Thu Feb  2 19:40:00 2017 /sbin/route add -net 128.0.0.0 netmask 128.0.0.0 gw 172.27.232.1
Thu Feb  2 19:40:00 2017 Initialization Sequence Completed

Verifique la información del túnel a través de ifconfig

[thegeek@mysandbox]$ ifconfig

Túnel OpenVPN creado

Ahora visite la página de estado del servidor de acceso OpenVPN nuevamente y haga clic en «Lista» debajo de «De un vistazo» en la barra lateral derecha.

Usuario de lista Openvpn

En la página siguiente, puede ver todos los usuarios que están usando actualmente el servidor OpenVPN.

OpenVPN lista usuario actual

También puede conectarse al servidor OpenVPN desde otros clientes como Android, Windows, MAC, etc. Necesita instalar el paquete openvpn en estos clientes y, mientras conecta el servidor, especifique la ubicación de client.ovpn y listo.

Conclusiones

¡Eso es todo para OpenVPN AS en AWS! Ahora puede navegar / comunicarse a través de Internet de forma segura. El servidor OpenVPN protegerá su ubicación e identidad. Ahora puede reforzar el SSH del servidor y otras configuraciones que dejamos como abiertas en el grupo de seguridad de AWS. Espero que hayas disfrutado de este artículo y gracias por leerlo.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar