docs: update vpn/openvpn/servidor

This commit is contained in:
José Antonio Yáñez Jiménez 2022-05-25 22:13:19 +00:00 committed by José Antonio Yáñez Jiménez
parent 1a507c8fa2
commit 6051aea5b1

View File

@ -2,7 +2,7 @@
title: OpenVPN - Servidor title: OpenVPN - Servidor
description: Tutorial de instalación del Servidor OpenVPN description: Tutorial de instalación del Servidor OpenVPN
published: true published: true
date: 2022-05-25T22:01:16.999Z date: 2022-05-25T22:13:16.266Z
tags: vpn, servidor, debian tags: vpn, servidor, debian
editor: markdown editor: markdown
dateCreated: 2022-05-18T16:48:57.246Z dateCreated: 2022-05-18T16:48:57.246Z
@ -293,40 +293,37 @@ cd ~/EasyRSA/
cp pki/private/{client1.key,client2.key,client3.key,client4.key} ~/client-configs/keys/ cp pki/private/{client1.key,client2.key,client3.key,client4.key} ~/client-configs/keys/
``` ```
* Enviamos la solicitud de nuestra VPN a la SubCA para validarla * Enviamos las solicitudes de nuestra VPN a la SubCA para validarlas
```bash ```bash
scp ~/EasyRSA/pki/reqs/client1.req signer@signer.bastionado.es:/tmp scp ~/EasyRSA/pki/reqs/{client1.req,client2.req,client3.req,client4.req} signer@signer.bastionado.es:/tmp
``` ```
* Nos situamos sobre la SubCA e importamos y firmamos las solicitudes * Nos situamos sobre la SubCA e importamos y firmamos las solicitudes
```bash
ssh signer@signer.bastionado.es
cd ~/EasyRSA
```
* Importamos y firmamos la solicitud
```bash ```bash
./easyrsa import-req /tmp/client1.req client1 ./easyrsa import-req /tmp/client1.req client1
./easyrsa import-req /tmp/client2.req client2
./easyrsa import-req /tmp/client3.req client3
./easyrsa import-req /tmp/client4.req client4
./easyrsa sign-req client client1 ./easyrsa sign-req client client1
./easyrsa sign-req client client2
./easyrsa sign-req client client3
./easyrsa sign-req client client4
``` ```
* Devolvemos el certificado válido a nuestra oVPN * Devolvemos los certificados válidos a nuestra oVPN
```bash ```bash
scp pki/issued/client1.crt ovpn@ovpn.bastionado.es:/tmp scp pki/issued/{client1.crt,client2.crt,client3.crt,client4.crt} ovpn@ovpn.bastionado.es:/tmp
``` ```
* Volvemos a la VPN y copiamos el certificado a nuestro directorio de configuraciones Cliente * Volvemos a la VPN y copiamos el certificado a nuestro directorio de configuraciones Cliente
```bash ```bash
exit
cp /tmp/client1.crt ~/client-configs/keys/ cp /tmp/{client1.crt,client2.crt,client3.crt,client4.crt} ~/client-configs/keys/
``` ```
* Ahora copiamos el certificado de la SubCA y la Firma HMAC a nuestro directorio de configuraciones Cliente * Ahora copiamos el certificado de la SubCA y la Firma HMAC a nuestro directorio de configuraciones Cliente
@ -334,8 +331,7 @@ cp /tmp/client1.crt ~/client-configs/keys/
```bash ```bash
exit exit
sudo cp /etc/openvpn/ta.key ~/client-configs/keys/ sudo cp /etc/openvpn/{ca.crt,ta.key} ~/client-configs/keys/
sudo cp /etc/openvpn/ca.crt ~/client-configs/keys/
``` ```
### Configuración de OpenVPN ### Configuración de OpenVPN
@ -345,11 +341,36 @@ Ahora que ya hemos terminado completamente con la Infraestructura de Clave Públ
* Comenzamos copiando la configuración de ejemplo y lo editamos * Comenzamos copiando la configuración de ejemplo y lo editamos
```bash ```bash
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
sudo nano /etc/openvpn/server.conf # sudo vim /etc/openvpn/server.conf sudo nano /etc/openvpn/server.conf # sudo vim /etc/openvpn/server.conf
``` ```
* Modificamos el puerto por defecto y mantenemos el uso del protocolo UDP, más rápido y resistente frente a ataques de denegación de servicio
```bash
port 6174
proto udp
```
* Especificamos la interfaz de red que se creará de forma explícita como `tun0`
```bash
dev tun0
```
* Apuntaremos a nuestros certificados generados anteriormente
```bash
ca ca.crt
cert ovpn.crt
key ovpn.key
```
* Establecemos la directiva `dh` con nuestra clave generada anteriormente
```bash
dh dh.pem
```
> 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. > 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) * Nos aseguramos de que `tls-auth` está habilitado (debemos eliminar el `;` inicial si existe)
@ -374,11 +395,7 @@ cipher AES-256-CBC
auth SHA512 auth SHA512
``` ```
* Buscamos la directiva `dh` para modificar su nombre a `dh.pem` ya que es como se denomina nuestro fichero generado anteriormente
```bash
dh dh.pem
```
* Haremos que el servicio OpenVPN se ejecute con el usuario `nobody` y grupo `nogroup` descomentando estos valores * Haremos que el servicio OpenVPN se ejecute con el usuario `nobody` y grupo `nogroup` descomentando estos valores
@ -387,12 +404,7 @@ user nobody
group nogroup group nogroup
``` ```
* Apuntaremos a nuestro certificado generado anteriormente
```bash
cert ovpn.crt
key ovpn.key
```
* Y para finalizar forzaremos que todo el tráfico de los clientes sea redirigido por la VPN. Buscaremos y descomentaremos las siguientes líneas * Y para finalizar forzaremos que todo el tráfico de los clientes sea redirigido por la VPN. Buscaremos y descomentaremos las siguientes líneas