From e809cabf7a76328b2b545c19a7e0ae815e16a941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Antonio=20Y=C3=A1=C3=B1ez=20Jim=C3=A9nez?= Date: Wed, 25 May 2022 23:02:45 +0000 Subject: [PATCH] docs: update vpn/openvpn/servidor --- vpn/openvpn/servidor.md | 63 +++++++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 15 deletions(-) diff --git a/vpn/openvpn/servidor.md b/vpn/openvpn/servidor.md index 47d7898..84de070 100644 --- a/vpn/openvpn/servidor.md +++ b/vpn/openvpn/servidor.md @@ -2,7 +2,7 @@ title: OpenVPN - Servidor description: Tutorial de instalación del Servidor OpenVPN published: true -date: 2022-05-25T22:44:50.427Z +date: 2022-05-25T23:02:41.280Z tags: vpn, servidor, debian editor: markdown dateCreated: 2022-05-18T16:48:57.246Z @@ -82,7 +82,7 @@ set_var EASYRSA_CRL_DAYS 90 # La lista de revocaciones se actua set_var EASYRSA_CERT_RENEW 20 # Los certificados se pueden renovar con 20 días de antelación ``` -* [Referencia de variables de EasyRSA](/assets/files/easyrsa-vars) +* [Referencia de variables de EasyRSA](/assets/files/openvpn-server/easyrsa-vars) ### Creación de CA @@ -467,7 +467,7 @@ verb 3 explicit-exit-notify 1 ``` -* [Referencia de configuración de OpenVPN](/assets/files/server.conf) +* [Referencia de configuración de OpenVPN servidor](/assets/files/openvpn-server/server.conf) ### Directivas adicionales @@ -486,7 +486,7 @@ sudo sysctl -w net.ipv4.ip_forward=1 * Arrancar y comprobar el estado del servicio OpenVPN ```bash -sudo systemctl start openvpn@server && sudo systemctl status openvpn@server +sudo systemctl restart openvpn@server && sudo systemctl status openvpn@server ``` * Comprobar la existencia de la intefaz virtual de OpenVPN @@ -516,38 +516,63 @@ mkdir -p ~/client-configs/files * Copiamos la plantilla de configuración de cliente por defecto y procedemos a editarla ```bash -cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf - nano ~/client-configs/base.conf # vim ~/client-configs/base.conf ``` -* Localizamos la directiva `remote` y establecemos la IP y puerto de nuestro servidor VPN +* Especificamos que estamos ante un fichero cliente ```bash -remote ovpn.bastionado.es 1194 +client ``` -* Nos aseguramos de establecer el protocolo en `UDP` +* Configuramos el modo de interfaz igual que en el servidor. + +```bash +dev tun +``` + +* Hacemos lo mismo con el protocolo. ```bash proto udp ``` -* Realizamos un descenso de privilegios después de inicializar en sistemas que no son Windows descomentando las siguientes líneas +* Establecemos la IP y puerto de nuestro servidor VPN. + +```bash +remote ovpn.bastionado.es 6174 +``` + +* Intentamos que el intento de resolución de nombre del servidor VPN sea infinita, útil para equipos que no están permanentemente conectados a internet. + +```bash +resolv-retry infinite +``` + +* Con la siguiente directa hacemos que el puerto local de salida sea dinámico. + +```bash +nobind +``` + +* Realizamos un descenso de privilegios después de inicializar en sistemas que no son Windows. ```bash user nobody group nogroup ``` -* Comentamos los ficheros de certificados y `tls-auth` ya que esta es la plantilla y se establecerán individualmente +* Intentamos persistir los siguientes valores entre reinicios. ```bash -#ca ca.crt -#cert client.crt -#key client.key +persist-key +persist-tun +``` -#tls-auth ta.key 1 +* Realizamos verificación del certificado del servidor y sus usos extendidos. + +```bash +remote-cert-tls server ``` * Establecemos las mismas directivas `cipher` y `auth` que establecimos en el servidor @@ -557,6 +582,12 @@ cipher AES-256-CBC auth SHA512 ``` +* Establecemos el nivel de detalle que va desde 0 (nada) a 9 (ultra detallado) + +```bash +verb 3 +``` + > La directiva `key-direction` establece una forma alternativa de especificar el parámetro opcional de dirección para las opciones `tls-auth` y `secret`, Es útil cuando se utilizan ficheros incrustados. @@ -566,6 +597,8 @@ auth SHA512 key-direction 1 ``` +* [Referencia de configuración de OpenVPN cliente](/assets/files/openvpn-server/client.conf) + ### Script de configuración de clientes Generaremos un script que se encargará de crear un fichero incrustado con la configuración de conexión plantilla y los certificados apropiados para cada cliente.