diff --git a/vpn/openvpn/servidor.md b/vpn/openvpn/servidor.md index 69ce3a9..d220263 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:13:16.266Z +date: 2022-05-25T22:41:41.408Z tags: vpn, servidor, debian editor: markdown dateCreated: 2022-05-18T16:48:57.246Z @@ -371,6 +371,40 @@ key ovpn.key dh dh.pem ``` +* Establecemos la subred que se establecerá en las conexiones. El servidor tendrá automáticamente la IP `10.10.10.1` + +```bash +server 10.10.10.0 255.255.255.0 +``` + +* Establecemos un fichero de persistencia para que los clientes vuelvan a tener la misma asignación de IP en caso de una caida del servicio + +```bash +ifconfig-pool-persist /var/log/openvpn/ipp.txt +``` + +> `def1` Modifica la tabla de enrutamiento de los clientes para redirigir todo el tráfico hacia la intrerfaz VPN. +> `bypass-dhcp` Añade una ruta directa al servidor DHCP de OpenVPN + +* Forzaremos que todo el tráfico de los clientes sea redirigido por la VPN. + +```bash +push "redirect-gateway def1 bypass-dhcp" +``` + +* Establecemos los servidores DNS. + +```bash +push "dhcp-option DNS 1.1.1.1" +push "dhcp-option DNS 1.0.0.1" +``` + +* Establecemos una directiva para consultar que los clientes siguen conectados cada 10 segundos y se consideran desconectados si no responden en 2 minutros. + +```bash +keepalive 10 120 +``` + > La directiva `tls-auth` añade una capa adicional de autenticación HMAC sobre el canal de control TLS para mitigar los ataques DoS y los ataques a la pila TLS. En pocas palabras, --tls-auth habilita una especie de "cortafuegos HMAC" en el puerto TCP/UDP de OpenVPN, donde los paquetes del canal de control TLS que lleven una firma HMAC incorrecta pueden ser descartados inmediatamente sin respuesta. * Nos aseguramos de que `tls-auth` está habilitado (debemos eliminar el `;` inicial si existe) @@ -379,6 +413,13 @@ dh dh.pem tls-auth ta.key 0 # This file is secret ``` +* Habilitamos la compresión para mejorar la velocidad de conexión + +```bash +compress lz4-v2 +push "compress lz4-v2" +``` + > La directiva `cipher` cifra los paquetes del canal de datos con el algoritmo de cifrado `alg`.El valor por defecto es `BF-CBC`, una abreviatura de [Blowfish en modo Cipher Block Chaining](https://cryptopp.com/wiki/Blowfish). Ya no se recomienda el uso de BF-CBC, debido a su tamaño de bloque de 64 bits. Este pequeño tamaño de bloque permite realizar ataques basados en colisiones, como ha demostrado [SWEET32](https://sweet32.info/#CBC). Nos pasaremos al cifrado [AES en modo Cipher Block Chaining](https://cryptopp.com/wiki/Advanced_Encryption_Standard) con bloques de 256 bits. * Escogemos el cifrado `AES-256-CBC` que ofrece un buen nivel de seguridad @@ -395,8 +436,6 @@ cipher AES-256-CBC auth SHA512 ``` - - * Haremos que el servicio OpenVPN se ejecute con el usuario `nobody` y grupo `nogroup` descomentando estos valores ```bash @@ -404,18 +443,39 @@ user nobody group nogroup ``` - - - -* Y para finalizar forzaremos que todo el tráfico de los clientes sea redirigido por la VPN. Buscaremos y descomentaremos las siguientes líneas +* Las opciones de persistencia tratarán de evitar el acceso a ciertos recursos en el reinicio que pueden dejar de ser accesibles debido a la reducción de privilegios. ```bash -push "redirect-gateway def1 bypass-dhcp" - -push "dhcp-option DNS 208.67.222.222" -push "dhcp-option DNS 208.67.220.220" +persist-key +persist-tun ``` +* Escribimos el estado (un resumen de las conexiones) cada minuto en un fichero + +```bash +status /var/log/openvpn/openvpn-status.log +``` + +* También escribimos un fichero de registro que se mantendrá entre sesiones + +```bash +log-append /var/log/openvpn/openvpn.log +``` + +* Establecemos el nivel de detalle que va desde 0 (nada) a 9 (ultra detallado) + +```bash +verb 3 +``` + +* Informamos a los clientes ante un reinio del servidor para que puedan reconectar posterirmente + +```bash +explicit-exit-notify 1 +``` + +[Referencia de configuración de OpenVPN](/assets/files/server.conf) + ### Directivas adicionales * Habilitar la redirección de tráfico