paint-brush
Ejecución de un servidor VPN gratuito en AWSpor@redgeoff
112,052 lecturas
112,052 lecturas

Ejecución de un servidor VPN gratuito en AWS

por Geoff Cox2017/07/22
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

AWS tiene un increíble firewall integrado en sus servicios principales que se puede usar fácilmente para asegurarse de que solo ciertos puertos estén abiertos al mundo exterior. Un paso adicional que podemos tomar es ejecutar un servidor VPN que sirva como puerta de enlace a nuestras instancias EC2 protegidas. Luego podemos cerrar el acceso SSH directo a nuestras instancias EC2 y también tener la libertad de bloquear el acceso a toda nuestra red simplemente revocando el acceso a través de nuestro servidor VPN. Este último es muy útil si necesita revocar el acceso de un ex empleado.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Ejecución de un servidor VPN gratuito en AWS
Geoff Cox HackerNoon profile picture

AWS tiene un increíble firewall integrado en sus servicios principales que se puede usar fácilmente para asegurarse de que solo ciertos puertos estén abiertos al mundo exterior. Un paso adicional que podemos tomar es ejecutar un servidor VPN que sirva como puerta de enlace a nuestras instancias EC2 protegidas. Luego podemos cerrar el acceso SSH directo a nuestras instancias EC2 y también tener la libertad de bloquear el acceso a toda nuestra red simplemente revocando el acceso a través de nuestro servidor VPN. Este último es muy útil si necesita revocar el acceso de un ex empleado.

El siguiente tutorial lo guiará a través de los pasos para configurar una instancia EC2 que ejecutará el servidor OpenVPN. Luego cubrirá cómo otorgar y revocar el acceso a través del servidor VPN.

Paso 1: cree el grupo de seguridad VPN

Descripción general: los grupos de seguridad permiten que sus servidores se comuniquen entre sí en una nube privada mientras exponen puertos específicos al mundo. Vamos a crear un grupo de seguridad para permitir el acceso VPN a nuestro servidor VPN. Asumiremos que todas sus otras instancias EC2 son miembros del grupo de seguridad predeterminado y que el grupo de seguridad predeterminado no permite el acceso desde el mundo exterior.

Inicie sesión en https://aws.amazon.com , escriba EC2 en el cuadro de búsqueda y haga clic en el objetivo para ir al panel de EC2.

Desde el tablero de EC2, haga clic en Grupos de seguridad

Haga clic en Crear grupo de seguridad

Ingrese un nombre y una descripción de vpn y especifique las reglas de entrada en los puertos 22, 443, 943 y 1194. Nota: el protocolo para el puerto 1194 es UDP.

Nota: si las direcciones IP que usa su equipo son estáticas, puede agregar otra capa de seguridad especificando ese rango de direcciones IP en la Fuente de sus reglas. Sin embargo, querrá dejar la Fuente en blanco si desea que su equipo pueda conectarse desde diferentes IP, ya que pueden estar trabajando desde un hotel, casa, cafetería, etc.

Paso 2: Cree la instancia EC2

Regrese al panel de EC2 y luego haga clic en Iniciar instancia

Seleccione Ubuntu (por supuesto, puede seleccionar casi cualquier otro sistema operativo que ejecute OpenVPN, pero este tutorial está diseñado para Ubuntu)

Seleccione t2.nano y haga clic en Revisar y lanzar

En la siguiente pantalla, haga clic en Editar grupos de seguridad

Seleccione los grupos de seguridad vpn y predeterminados y haga clic en Revisar e iniciar

Haga clic en Iniciar, elija su par de claves y luego haga clic en Iniciar instancias

Paso 3: deshabilite la comprobación de origen/destino

De la lista de instancias, seleccione la instancia de VPN y luego Networking->Change Source/Dest. Verifique en el menú desplegable. Luego haga clic en Sí, deshabilitar . Esto es necesario ya que, de lo contrario, su servidor VPN no podrá conectarse a sus otras instancias EC2.

Paso 4: cree una dirección IP elástica

Descripción general: cuando una instancia EC2 se detiene y se reinicia, la dirección IP pública cambia. Queremos que la dirección IP de nuestro servidor VPN permanezca estática, por lo que usaremos una dirección IP elástica.

En el Panel de control de E2c, seleccione IP elásticas

Haga clic en Asignar nueva dirección

Haga clic en Asignar y luego en Cerrar.

Tome nota de su dirección IP elástica, ya que será la dirección IP pública de su servidor VPN.

Luego, seleccione la IP elástica y haga clic en Asociar dirección en el menú desplegable.

Seleccione la instancia EC2 que acaba de crear y haga clic en Asociar .

Paso 5: instale y configure el servidor OpenVPN

SSH en su servidor VPN:

$ ssh ubuntu@IP-PÚBLICA-DE-SERVIDOR-VPN

Descargue nuestros scripts de ayuda y establezca una configuración predeterminada:



$ git clone https://github.com/redgeoff/openvpn-server-vagrant $ cd openvpn-server- vagrant $ cp config-default.sh config.sh

Edite config.sh e ingrese su configuración. Nota: PUBLIC_IP debe ser igual a la dirección IP elástica que creó anteriormente.

$ nanoconfig.sh

Cambiar a raíz

$ sudo su -

Actualice Ubuntu e instale OpenVPN. Nota: se le pedirá dos veces y cuando lo haga, seleccione Mantener la versión local actualmente instalada


$ /home/ubuntu/openvpn-server-vagrant/ubuntu.sh$ /home/ubuntu/openvpn-server-vagrant/openvpn.sh

En este punto, el servidor OpenVPN se está ejecutando.

Paso 6: Agrega la ruta

Las rutas deben agregarse al servidor para que los clientes de su equipo sepan qué tráfico enrutar al servidor VPN.

Puede determinar la subred adecuada regresando a su lista de instancias EC2, haciendo clic en una instancia de destino e identificando la IP privada.

Su red serán las primeras 2 partes de la IP privada anexadas con ceros, por ejemplo, 172.31.0.0

En el servidor VPN, edite /etc/openvpn/server.conf y agregue algo como lo siguiente:

empuje "ruta 172.31.0.0 255.255.0.0"

Luego reinicie el servidor VPN con:

$ systemctl reiniciar openvpn@servidor

Paso 7: Otorgue acceso a su VPN

Nota: Asumimos que todavía está conectado a SSH en la VPN y que ha iniciado sesión como root.

Ejecute el siguiente comando y asegúrese de reemplazar el cliente a continuación con un nombre único para su usuario/cliente.

$ /home/ubuntu/openvpn-server-vagrant/add-client.sh cliente

A continuación, encontrará un archivo de configuración en

~/client-configs/files/nombre-cliente.ovpn

Deberá proporcionar este archivo a la persona de su equipo que se conectará a su VPN. SCP es útil para descargar este archivo .ovpn desde su servidor VPN.

Su equipo puede usar uno de varios clientes VPN como Tunnelblick (OS X) y OpenVPN (Linux, iOS, Android y Windows). Después de instalar uno de estos clientes, deberían poder configurar la configuración de VPN simplemente haciendo doble clic en el archivo .ovpn.

Nota: una vez conectados a la VPN, sus usuarios querrán usar las IP privadas de sus instancias EC2. Probablemente querrá usar Route 53 para crear registros de subdominio que enruten a las IP privadas.

Paso 8: Revoque el acceso a su VPN

Nota: Asumimos que todavía está conectado a SSH en la VPN y que ha iniciado sesión como root.

Ejecute el siguiente comando y asegúrese de reemplazar el cliente a continuación con un nombre único para su usuario/cliente.

$ /home/ubuntu/openvpn-server-vagrant/revoke-full.sh cliente

Solución de problemas

  1. Si su cliente VPN informa un error de protocolo de enlace TLS fallido , lo más probable es que se deba a que su grupo de seguridad VPN (Paso 1) es incorrecto. Asegúrese de haber especificado los puertos y protocolos correctos; un problema común es no especificar UDP para el puerto 1194.

Sobre el Autor

Geoff Cox es el creador de MSON , un nuevo lenguaje de programación declarativo que te permite crear aplicaciones en JSON. Ha trabajado por cuenta propia durante la mayor parte de los últimos 15 años y le encanta emprender proyectos ambiciosos, aunque exasperantes, como la creación de una base de datos y un sistema de sincronización de datos distribuidos . Puede comunicarse con él @redgeoff7 o en github .