En este tutorial, configuraré un servidor Open VPN bajo Docker con CloudSigma. Con las ubicaciones en la nube de CloudSigma distribuidas por todo el mundo, puede crear un servidor en cualquiera de ellas y acceder al contenido desde allí.
Creación de la máquina
Primero, voy a crear una máquina con los siguientes recursos:
CPU de 20 GHz
16 GB de RAM
20 GB de SSD
Estoy montando el disco con la imagen de Ubuntu 18.04 disponible en la biblioteca de CloudSigma.
Ubuntu 18.04 : Preinstalado de 64 bits con controladores VirtIO, superusuario, Python 2.7.15, Pip 18.0, OpenSSL 1.1.0i, Cloud-init y últimas actualizaciones hasta el 30-09-2018.
Actualizando todos los repositorios y paquetes existentes en la máquina.
|
1 2 |
sudo apt update sudo apt upgrade |
Ahora que nuestro sistema está actualizado, procederé a instalar Docker. Para obtener más información sobre Docker, consulte aquí.
Instalando Docker
Puedo instalar Docker ejecutando los siguientes comandos:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update sudo apt-get install docker-ce |
OpenVPN
Ahora que Docker se ha instalado correctamente, puedo comenzar a hacer funcionar OpenVPN Access Server en él. A continuación se muestra el comando para crear un nuevo contenedor Docker de OpenVPN Access Server con la configuración especificada.
|
1 2 3 4 5 6 7 8 |
docker create \ --name=openvpn-as \ -v <path to data>:/config \ -e PGID=<gid> -e PUID=<uid> \ -e TZ=<timezone> \ -e INTERFACE=<interface> \ --net=host --privileged \ linuxserver/openvpn-as |
Los siguientes comandos se mencionan en la página de la imagen de Docker.
Dónde debe almacenar openvpn-as los archivos de configuración:
|
1 |
-v /config |
Para GroupID:
|
1 |
-e PGID |
Usado para UserID:
|
1 |
-e PUID |
Para la configuración de la zona horaria:
|
1 |
-e TZ |
La interfaz de configuración predeterminada para openvpn-as es eth0:
|
1 |
-e INTERFACE |
IMPORTANTE, para la mayoría de los usuarios, debe funcionar en modo host:
|
1 |
--net=host |
IMPORTANTE, no funcionará a menos que esté en modo privilegiado:
|
1 |
--privileged |
Para obtener el ID de grupo y el ID de usuario, ejecute el siguiente comando:
|
1 |
id |
Estoy indicando la zona horaria como CET.
Para la interfaz, ejecute el siguiente comando:
|
1 |
ip r |
La interfaz generalmente sería ens3 o eth0. Para mi sistema, es ens3.
Después de agregar todas estas cosas, ejecuto el siguiente comando:
|
1 2 3 4 5 6 7 8 |
sudo docker create --name=openvpn-as \ --restart=always \ -v /home/docker/openvpn-as/config:/config \ -e INTERFACE=ens3 \ -e PGID=1004 -e PUID=1000 \ -e TZ=Europe/Warsaw \ --net=host --privileged \ linuxserver/openvpn-as |
Dado que aún no tenemos la imagen en nuestro sistema, la imagen se descargará del servidor. El resultado sería:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
No se pudo to encontrar la imagen 'linuxserver/openvpn-as:latest' localmente latest: Descargando de linuxserver/openvpn-as 56d9dc91333b: Descarga completa 1356b0cfc067: Descarga completa 155f3c53d4a5: Descarga completa 05088c205b6d: Descarga completa 112068b0fa4e: Descarga completa 2ff5dd4a0d9b: Descarga completa 7dd87385ca73: Descarga completa d966d969c7cd: Descarga completa 4439dbcda217: Descarga completa 5f960f89c64e: Descarga completa Digest: sha256:d65f743bcec24b6b6ad0b19f9d7876cd70d5237690a940301b2366d6d5767a80 Estado: Descargada imagen más reciente para linuxserver/openvpn-as:latest f0a1eb5440b5a423f8f21081d8654aaba2c0bd9995d2dea88a979c97ea977e16 |
Iniciando el contenedor con este comando:
|
1 |
sudo docker start openvpn-as |
Iniciar sesión
Ahora que lo he iniciado, iré al panel de administración del servidor de acceso.
Yendo a la URL: https://<<YourIpAddress>>:943/admin

Pedirá el nombre de usuario y la contraseña que por defecto son:
Nombre de usuario: admin
Contraseña: password

Ahora que he iniciado sesión, me pregunta si acepto el EULA (Acuerdo de Licencia de Usuario Final). Hago clic en Aceptar y paso al panel de administración.

Se recomienda cambiar la contraseña de la cuenta de administrador por razones de seguridad. La voy a cambiar usando el siguiente comando:
|
1 |
docker exec -it openvpn-as passwd admin |
Configurando el DNS
Ahora que nuestro servidor está en funcionamiento, quisiéramos configurar el DNS en él. Para más información sobre Servidores de Nombres de Dominio (DNS), por favor haga clic aquí.
Uno de los servidores DNS más rápidos es el de Google. Voy a configurar eso en mi OpenVPN Access Server, para que mis clientes puedan navegar por los sitios web fácilmente.
Voy a la configuración de VPN y, en la configuración de DNS, habilitaré “Have clients use specific DNS servers”.

A continuación, introduciré las siguientes direcciones en las columnas de Servidor DNS:
Servidor DNS primario: 8.8.8.8
Servidor DNS secundario: 8.8.8.4

Guarde la configuración y haga clic en “Update Running Server”. Esto actualizará el servidor en ejecución.
Ahora que he configurado el servidor con éxito, puedo proceder a conectarme a la VPN a través de mi sistema.
Accediendo a la interfaz de usuario del cliente en: https://<<YourIpAddress>>:943.
Introduzca el nombre de usuario del administrador, la contraseña del administrador o cree un nuevo usuario desde la sección de gestión de usuarios del panel de administración.
Una vez que inicie sesión, me dará varias opciones para diferentes sistemas operativos. Selecciono Windows y descargo el software del cliente.

Ahora que está instalado, puedo iniciarlo desde el Menú de Inicio o se abrirá automáticamente. Desde la bandeja del sistema, puedo conectarme a la VPN usando la cuenta que configuré anteriormente.

Y ya estoy conectado a la VPN. ¡Et voilà! Así es como se crea un servidor VPN bajo Docker.
Comentarios
Aún no hay comentarios. Sea el primero.