Compare commits

..

3 Commits

Author SHA1 Message Date
José Antonio Yáñez Jiménez
b6b33debbd docs: update vpn/openvpn/servidor 2022-05-31 22:01:26 +00:00
José Antonio Yáñez Jiménez
26ecab93ff docs: update vpn/openvpn/guide 2022-05-31 22:01:03 +00:00
José Antonio Yáñez Jiménez
0e122c874f docs: update vpn/openvpn/servidor 2022-05-31 21:58:07 +00:00
2 changed files with 58 additions and 17 deletions

View File

@ -2,7 +2,7 @@
title: OpenVPN - Guía de instalación
description: Guía de instalación utilizada durante la realización de la práctica
published: true
date: 2022-05-31T21:04:15.280Z
date: 2022-05-31T22:00:59.968Z
tags: vpn, servidor
editor: markdown
dateCreated: 2022-05-31T21:04:15.280Z
@ -172,7 +172,6 @@ clear && echo "" && echo "" && echo "" && echo && echo "" && echo "" && echo ""
# Panel oVPN (⌘ 4)
```bash
clear && cowsay -W 76 -f ovpn 'Primero inicializamos nuestra infraestructura de Clave Pública en oVPN, como se informa que el fichero vars se ha movido a la PKI, se procede a mover el fichero personalizado, luego generamos la solicitud de nuesta VPN, y enviamos la solicitud de nuestra VPN a la SubCA para validarla'
```
@ -203,49 +202,87 @@ scp pki/issued/ovpn.crt ovpn@ovpn.bastionado.es:/tmp
# Panel Títulos (⌘ 1)
```bash
clear && echo "" && echo "" && echo "" && echo && echo "" && echo "" && echo "" && echo "" && echo "" && echo "" && figlet -w 170 -f ansi-shadow 'INSTALACION DE' -c | lolcat && echo "" && echo "" && echo "" && figlet -w 220 -f ansi-shadow 'OPEN VPN' -c | lolcat -a -d 1 && echo "" && echo "" && echo "" && sleep 10 && clear
```
# Panel oVPN (⌘ 4)
"OPENVPN"
-'Instalación de dependencias OpenVPN'
clear && cowsay -W 76 -f ovpn 'Comenzamos actualizando nuestro repositorio apt, después se realiza la instalación de unas dependencias previas, se añaden las claves PGP del respositorio de OpenVPN y añadimos el repositorio de OpenVPN a nuestros listado de repositorios'
```bash
clear && cowsay -W 76 -f ovpn 'Comenzamos actualizando nuestro repositorio apt para después realizar la instalación de unas dependencias previas'
```
```bash
sudo apt update
sudo apt -y install ca-certificates wget net-tools gnupg
```
```bash
clear && cowsay -W 76 -f ovpn 'Vamos a utilizar el repositorio mantenido por OpenVPN para instalar una versión más actualizada del mismo, por lo que, en primer lugar, debemos añadir las claves GPG creando un Keyring ya que `APT Key` está obsoleto.'
```
```bash
wget -qO- https://swupdate.openvpn.net/repos/repo-public.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/openvpn-archive-keyring.gpg > /dev/null
```
```bash
clear && cowsay -W 76 -f ovpn 'Añadimos el repositorio de OpenVPN apuntando el firmado al Keyring que acabos de crear.'
```
```bash
echo "deb [signed-by=/usr/share/keyrings/openvpn-archive-keyring.gpg] http://build.openvpn.net/debian/openvpn/stable bullseye main" | sudo tee /etc/apt/sources.list.d/openvpn-repo.list > /dev/null
```
clear && cowsay -W 76 -f ovpn 'Turno de volver a actualizar el lista de repositorios y ya se puede proceder a la instalación de OpenVPN'
```bash
clear && cowsay -W 76 -f ovpn 'Turno de volver a actualizar el lista de repositorios y ya se puede proceder a la instalación de OpenVPN.'
```
```bash
sudo apt update
sudo apt -y install openvpn
```
```bash
clear && cowsay -W 76 -f ovpn 'Es el momento de recuperar los certificados que dejamos en /tmp y la clave privada.'
```
-'Configuración de certificados y seguridad TLS'
clear && cowsay -W 76 -f ovpn 'Copiamos los certificados que dejamos en /tmp y la clave privada, volvemos a la ruta de EasyRSA para generar la clave Diffie-Hellman, generamos la firma HMAC para reforzar las capacidades de verificación de integridad TLS y se mueven los ficheros generados a nuestro directorio de OpenVPN'
```bash
sudo cp ~/EasyRSA/pki/private/ovpn.key /etc/openvpn/
sudo cp /tmp/ovpn.crt ~/EasyRSA/pki/ovpn.crt
sudo mv /tmp/{ovpn.crt,ca.crt} /etc/openvpn/
```
```bash
clear && cowsay -W 76 -f ovpn 'Ahora volvemos a la ruta de EasyRSA para generar la clave Diffie-Hellman. Se trata de un algoritmo que permite crear una clave secreta entre dos equipos que nunca han tenido contacto previo, a través de un canal inseguro, y mediante el envío de solo dos mensajes. Aunque es algo lento, generaremos una clave de 4096 bits.'
```
```bash
cd ~/EasyRSA/
./easyrsa --keysize=4096 gen-dh
```
```bash
clear && cowsay -W 76 -f ovpn 'En el modo de clave estática, se genera una clave precompartida que se comparte entre ambos pares de OpenVPN antes de iniciar el túnel. Esta clave estática contiene 4 claves independientes: HMAC de envío, HMAC de recepción, cifrado y descifrado. Por defecto, en el modo de clave estática, ambos hosts utilizarán la misma clave HMAC y la misma clave de cifrado/descifrado. Sin embargo, utilizando el parámetro `--secret`, es posible utilizar las 4 claves de forma independiente.'
```
```bash
sudo openvpn --genkey secret ta.key
```
```bash
clear && cowsay -W 76 -f ovpn 'Ya podemos mover las claves generadas a la instalación de OpenVPN.'
```
```bash
sudo mv ~/EasyRSA/ta.key /etc/openvpn/
sudo mv ~/EasyRSA/pki/dh.pem /etc/openvpn/
```

View File

@ -2,7 +2,7 @@
title: OpenVPN - Servidor
description: Tutorial de instalación del Servidor OpenVPN
published: true
date: 2022-05-31T13:06:22.801Z
date: 2022-05-31T22:01:23.030Z
tags: vpn, servidor, debian
editor: markdown
dateCreated: 2022-05-18T16:48:57.246Z
@ -242,6 +242,7 @@ sudo cp ~/EasyRSA/pki/private/ovpn.key /etc/openvpn/
sudo cp /tmp/ovpn.crt ~/EasyRSA/pki/ovpn.crt
sudo mv /tmp/{ovpn.crt,ca.crt} /etc/openvpn/
```
> Diffie-Hellman es un algoritmo que permite crear una clave secreta entre dos equipos que nunca han tenido contacto previo, a través de un canal inseguro, y mediante el envío de solo dos mensajes. Aunque es algo lento, es recomendable crear una clave de 4096 bits.
* Volvemos a la ruta de EasyRSA para generar la clave Diffie-Hellman
@ -251,6 +252,9 @@ cd ~/EasyRSA/
./easyrsa --keysize=4096 gen-dh
```
> En el modo de clave estática, se genera una clave precompartida que se comparte entre ambos pares de OpenVPN antes de iniciar el túnel. Esta clave estática contiene 4 claves independientes: HMAC de envío, HMAC de recepción, cifrado y descifrado. Por defecto, en el modo de clave estática, ambos hosts utilizarán la misma clave HMAC y la misma clave de cifrado/descifrado. Sin embargo, utilizando el parámetro `--secret`, es posible utilizar las 4 claves de forma independiente.
* Generamos la firma HMAC para reforzar las capacidades de verificación de integridad TLS
```bash
@ -266,7 +270,7 @@ sudo mv ~/EasyRSA/pki/dh.pem /etc/openvpn/
### Certificados Cliente
Cona la estructura propuesta las solicitudes de certificados cliente serán generadas desde el servidor de OpenVPN `oVPN` y firmadas desde la SubCA `Signer`, de tal modo que, posteriormente, el cliente simplemente recibirá un fichero de configuración para conectar a la VPN junto con sus certificados sin tener que estar intercambiando certificados inicialmente si fuera el propio cliente el que realizara la solicitud de creación de certificado.
Con la estructura propuesta las solicitudes de certificados cliente serán generadas desde el servidor de OpenVPN `oVPN` y firmadas desde la SubCA `Signer`, de tal modo que, posteriormente, el cliente simplemente recibirá un fichero de configuración para conectar a la VPN junto con sus certificados sin tener que estar intercambiando certificados inicialmente si fuera el propio cliente el que realizara la solicitud de creación de certificado.
* Crearemos un directorio en nuestra VPN para almacenar las configuraciones de cliente y restringiremos los permisos