¿Qué es OpenVPN?
OpenVPN es una herramienta de conectividad basada en software libre: SSL (Secure Sockets Layer), VPN Virtual Private Network (red virtual privada). OpenVPN ofrece conectividad punto-a-punto con validación jerárquica de usuarios y host conectados remotamente. Resulta una muy buena opción en tecnologías Wi-Fi (redes inalámbricas IEEE 802.11) y soporta una amplia configuración, entre ellas balanceo de cargas. Está publicado bajo la licencia GPL, de software libre.
Guía de instalación de OpenMediaVault 5
Equipamiento requerido :
Opcional :
Crear volumen OVPN_DATA
OVPN_DATA="ovpn-data-openvpn" docker volume create --name $OVPN_DATA
Configurar DNS dinámico
Después de que el DNS dinámico se haya creado correctamente, podemos reemplazar el VPN.SERVERNAME.COM con nuestra dirección y ejecutar el contenedor desde el comando siguiente:
docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm darathor/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM
Generar certificado de CA
Introduciendo el siguiente comando nos pedirá meter una contraseña dos veces.
docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it darathor/openvpn ovpn_initpki
Inicie el proceso del servidor OpenVPN
Tenemos primero que abrir el puerto en nuestro Router, podemos usar este vídeo como ejemplo pero poniendo el puerto 1194 interno y externo, y protocolo UDP. En el primer vídeo está también.
docker run -v $OVPN_DATA:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN darathor/openvpn
Metemos este comando de arriba con le puerto.
Generar un certificado de cliente sin una frase de contraseña
Con esto creamos un usuario para el cliente sin contraseña. Se puede cambiar CLIENTNAME por el nombre que queráis.
docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it darathor/openvpn easyrsa build-client-full CLIENTNAME nopass
Cree y descargue la configuración del cliente con certificados incrustados
Aquí pondremos el mismo nombre que arriba.
docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm darathor/openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn
Descargar archivo de cliente
Para descargarlo, la opción más fácil es descargar WinSCP u otro programa FTP y conectarnos a nuestra IP como hacemos con Putty.
Podemos pasarlo al móvil con Google Drive por ejemplo.
Configurar el cliente OpenVPN
Nos bajamos OpenVPN Client e importamos el archivo.
Iniciar contenedor docker automaticamente al encender
Vamos a crear un archivo con el siguiente contenido:
[Unit]
Description=NOMBRE_DOCKER
Requires=docker.service
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a NOMBRE_DOCKER
ExecStop=/usr/bin/docker stop -t 2 NOMBRE_DOCKER
[Install]
WantedBy=default.target
Podemos crear el archivo conectando por Putty o por WinSCP.
Crear archivo:
touch docker-NOMBRE_DOCKER.service
Lo abrimos con nano y pegamos el contenido de arriba ya personalizado:
nano docker-NOMBRE_DOCKER.service
Copiamos el archivo a la carpeta especial de systemd:
sudo cp docker-NOMBRE_DOCKER.service /etc/systemd/system/
Lo habilitamos:
systemctl enable docker-NOMBRE_DOCKER.service
Al reiniciar nuestro SO debería de levantarse automáticamente nuestro contenedor.
Fuentes:
- https://pcmac.biz/openvpn-on-openmediavault-5-raspberry-pi-4/
- https://www.ingenieroperales.com/iniciar-un-contenedor-de-docker-automaticamente-al-reiniciar/