Desplegar el servicio OpenVPN¶
Esta imagen solo garantiza el correcto funcionamiento de las funciones básicas. Si tiene la capacidad de configurarlo usted mismo, se recomienda que lo implemente por su cuenta o que consulte el método de implementación de esta imagen. Antes de usarla, necesita tener conocimientos básicos de Linux y Docker. Esta imagen ha sido probada en Debian 9. Aquí se explica cómo usarla en Debian 9, lo que generalmente es aplicable a otros sistemas como Ubuntu. El puerto predeterminado para este servicio es 1190/UDP, por favor asegúrese de que esta regla esté permitida en su firewall.
Preparación¶
También necesita realizar las siguientes modificaciones en su servidor, ejecutando el comando:
echo net.ipv4.ip_forward=1 >>/etc/sysctl.conf
sysctl -p
Si su servidor tiene instalado ufw, también debe agregar el siguiente contenido en las primeras líneas de /etc/ufw/before.rules. Modifique eth0 y el segmento de red según la interfaz y la configuración reales de su servidor. Tenga en cuenta que debe agregarse antes de las reglas *filter (si existen).
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 172.27.27.0/24 -o eth0 -j MASQUERADE
COMMIT
Modifique la siguiente configuración en /etc/default/ufw a ACCEPT.
DEFAULT_FORWARD_POLICY="ACCEPT"
Finalmente, ejecute el siguiente comando para reiniciar el servicio de firewall ufw en el servidor.
ufw reload
Si su servidor no tiene instalado ufw, asegúrese de que la regla FORWARD de iptables esté en ACCEPT, ejecutando el siguiente comando.
Atención
iptables -P FORWARD ACCEPT
Inicializar la configuración¶
Ahora, crearemos un directorio para guardar la configuración de nuestro servicio OpenVPN.
mkdir -p ~/lamda-openvpn-server
A continuación, ejecute el siguiente comando para inicializar el servicio OpenVPN.
docker run -it --rm --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn ovpn-server-new
Espere a que el comando termine de ejecutarse. Ahora puede ver la configuración del servicio en el directorio ~/lamda-openvpn-server. El archivo de configuración es config.ovpn. Puede abrir este archivo con un editor y se recomienda modificar solo los siguientes campos.
# El segmento de red y la máscara de la VPN
server 172.27.27.0 255.255.255.0
# Puerto del servicio VPN
port 1190
# O si necesita que una interfaz de red específica en el servidor sea accesible para los clientes VPN
# También puede agregar una ruta, pero tenga en cuenta que solo podrá acceder a la IP del host actual en este segmento de red
# Si necesita que los clientes tengan acceso completo a este segmento de red, deberá realizar configuraciones adicionales
push "route 192.168.68.0 255.255.255.0"
# Modifique 114 por el servidor DNS que necesite
push "dhcp-option DNS 114.114.114.114"
Crear credenciales de conexión para el cliente¶
Una vez que haya terminado de editar, comience a crear un cliente. myname puede cambiarse por cualquier otro nombre que desee, pero no puede repetirse.
docker run -it --rm --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn ovpn-client-new myname
Una vez creado, use el siguiente comando para obtener las credenciales de inicio de sesión de este cliente.
# Nota: La IP en la configuración se obtiene automáticamente de la IP pública actual. Si no es correcta, deberá modificarla manualmente.
#
# Genera la configuración ovpn y la redirige para guardarla en el archivo myname.ovpn. Este archivo se puede usar en aplicaciones como OpenVPN-Connect.
docker run -it --rm --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn ovpn-client-profile ovpn myname >myname.ovpn
# Genera un OpenVPNProfile para ser usado por lamda, que se puede utilizar directamente en lamda.
# Incluye una sección de comentarios properties.local. Puede copiar la configuración openvpn.* de allí
# a /data/usr/properties.local para lograr la conexión automática a la VPN.
docker run -it --rm --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn ovpn-client-profile lamda myname
Revocar credenciales del cliente¶
Si necesita revocar la credencial de un cliente, ejecute el siguiente comando. Después de la revocación, es posible que deba reiniciar el servicio OpenVPN.
docker run -it --rm --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn ovpn-client-revoke myname
Iniciar el servicio OpenVPN¶
Ahora puede ejecutar el siguiente comando para iniciar el servicio OpenVPN en primer plano. Podrá ver los registros de conexión del cliente directamente y solucionar errores.
docker run -it --rm --name openvpn-server --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn run
Cuando confirme que todo funciona correctamente, se recomienda ejecutarlo en segundo plano. Use este comando para iniciar el servicio en segundo plano.
docker run -d --rm --name openvpn-server --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn run
Documentación de referencia¶
Documentación básica: https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/
Configuración de enrutamiento: https://community.openvpn.net/openvpn/wiki/BridgingAndRouting