docs: update vpn/openvpn/guide
This commit is contained in:
parent
b6b33debbd
commit
855b540cdd
@ -2,13 +2,13 @@
|
||||
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-31T22:00:59.968Z
|
||||
date: 2022-05-31T22:52:00.260Z
|
||||
tags: vpn, servidor
|
||||
editor: markdown
|
||||
dateCreated: 2022-05-31T21:04:15.280Z
|
||||
---
|
||||
|
||||
# Panel Títulos (⌘ 1)
|
||||
# Panel Títulos (⌘1)
|
||||
|
||||
```bash
|
||||
unimatrix -f -n -s 96 -w && clear && echo "" && echo "" && echo "" && echo "" && echo "" && echo "" && echo "" && echo "" && echo "" && perl -pe "system 'sleep .06'" openvpn.txt && echo "" && echo "" && echo "" && sleep 10 && clear
|
||||
@ -26,7 +26,7 @@ unimatrix -f -n -s 96 -w && clear && perl -pe "system 'sleep .06'" ovpn-scheme.t
|
||||
clear && echo "" && echo "" && echo "" && echo && echo "" && echo "" && echo "" && echo "" && echo "" && echo "" && figlet -w 130 -f ansi-shadow 'Instalacion de ' -c | lolcat && echo "" && echo "" && echo "" && figlet -w 220 -f ansi-shadow 'EasyRSA' -c | lolcat -a -d 1 && echo "" && echo "" && echo "" && sleep 10 && clear
|
||||
```
|
||||
|
||||
# Panel CA (⌘ 2), Luego Panel Signer (⌘ 3), luego Panel oVPN (⌘ 4)
|
||||
# Panel CA (⌘2), Luego Panel Signer (⌘3), luego Panel oVPN (⌘4)
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Para comenzar con la instalación de "OpenVPN" será necesario realizar la instalación de EasyRSA, para ello se descargará la última versión de esta aplicación en nuestro CA y nuestro signer, y luego simplemente habrá que descomprimirlo'
|
||||
@ -95,13 +95,13 @@ set_var EASYRSA_CURVE ed25519
|
||||
clear && cowsay -W 220 -f ovpn 'Repetiremos este proceso en Signer y Ovpn'
|
||||
```
|
||||
|
||||
# Panel Títulos (⌘ 1)
|
||||
# Panel Títulos (⌘1)
|
||||
|
||||
```bash
|
||||
clear && echo "" && echo "" && echo "" && echo && echo "" && echo "" && echo "" && echo "" && echo "" && echo "" && figlet -w 140 -f ansi-shadow 'Creacion de CA' -c | lolcat -a -d 1 && echo "" && echo "" && echo "" && sleep 10 && clear
|
||||
```
|
||||
|
||||
# Panel CA (⌘ 2)
|
||||
# Panel CA (⌘2)
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Para poder realizar la creación de la CA será necesario inicialzar nuestra Infreaestructura de Clave Pública en la propia CA. Se informará de que el fichero vars, anteriormente modificado se ha movido a la PKI, por lo que se borra el inicial, y finalemnte creamos nuestra CA'
|
||||
@ -115,13 +115,13 @@ mv vars pki/vars
|
||||
./easyrsa build-ca # Podríamos añadir 'nopass' para no establecer una Passphrase
|
||||
```
|
||||
|
||||
# Panel Títulos (⌘ 1)
|
||||
# Panel Títulos (⌘1)
|
||||
|
||||
```bash
|
||||
clear && echo "" && echo "" && echo "" && echo && echo "" && echo "" && echo "" && echo "" && echo "" && echo "" && figlet -w 150 -f ansi-shadow 'Creacion de SubCA ' -c | lolcat && echo "" && echo "" && echo "" && figlet -w 240 -f ansi-shadow 'en Signer' -c | lolcat -a -d 1 && echo "" && echo "" && echo "" && sleep 10 && clear
|
||||
```
|
||||
|
||||
# Panel Signer (⌘ 3)
|
||||
# Panel Signer (⌘3)
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Primero se inicializa la infraestructura de Clave Pública en el SubCA, y como anteriormente, se informa que el fichero var ha sido movido a la PKI, por lo que se elimina. Se genera una solicitud de nuestra SubCA y se envía a la CA para que sea validada'
|
||||
@ -137,7 +137,7 @@ mv vars pki/vars
|
||||
scp ~/EasyRSA/pki/reqs/ca.req ca@ca.bastionado.es:/tmp
|
||||
```
|
||||
|
||||
# Panel CA (⌘ 2)
|
||||
# Panel CA (⌘2)
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Nos situamos sobre la CA e importamos y firmamos la solicitud, después devolvemos el certificado encadenado de la CA con la SubCA válido a nuestra SubCA, y se regresa a la SubCA y se mueve el certificado a la ruta del puesto PKI'
|
||||
@ -157,19 +157,19 @@ scp /tmp/signer.crt signer@signer.bastionado.es:/tmp
|
||||
rm -rf /tmp/signer.crt
|
||||
```
|
||||
|
||||
# Panel Signer (⌘ 3)
|
||||
# Panel Signer (⌘3)
|
||||
|
||||
```bash
|
||||
mv /tmp/signer.crt ~/EasyRSA/pki/ca.crt
|
||||
```
|
||||
|
||||
# Panel Títulos (⌘ 1)
|
||||
# Panel Títulos (⌘1)
|
||||
|
||||
```bash
|
||||
clear && echo "" && echo "" && echo "" && echo && echo "" && echo "" && echo "" && echo "" && echo "" && echo "" && figlet -w 170 -f ansi-shadow 'Creacion de Certificado ' -c | lolcat && echo "" && echo "" && echo "" && figlet -w 220 -f ansi-shadow 'en oPVN' -c | lolcat -a -d 1 && echo "" && echo "" && echo "" && sleep 10 && clear
|
||||
```
|
||||
|
||||
# Panel oVPN (⌘ 4)
|
||||
# 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'
|
||||
@ -185,7 +185,7 @@ mv vars pki/vars
|
||||
scp ~/EasyRSA/pki/reqs/ovpn.req signer@signer.bastionado.es:/tmp
|
||||
```
|
||||
|
||||
# Panel Signer (⌘ 3)
|
||||
# Panel Signer (⌘3)
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Nos situamos sobre la SubCA e importamos y firmamos la solicitud, y devolvemos el certificado válido a nuestro oVPN junto con el certificado de la SubCA'
|
||||
@ -202,14 +202,13 @@ scp pki/issued/ovpn.crt ovpn@ovpn.bastionado.es:/tmp
|
||||
|
||||
|
||||
|
||||
# Panel Títulos (⌘ 1)
|
||||
# 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)
|
||||
# Panel oVPN (⌘4)
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Comenzamos actualizando nuestro repositorio apt para después realizar la instalación de unas dependencias previas'
|
||||
@ -284,17 +283,33 @@ sudo mv ~/EasyRSA/ta.key /etc/openvpn/
|
||||
sudo mv ~/EasyRSA/pki/dh.pem /etc/openvpn/
|
||||
```
|
||||
|
||||
# Panel Títulos (⌘1)
|
||||
|
||||
```bash
|
||||
clear && echo "" && echo "" && echo "" && echo && echo "" && echo "" && echo "" && echo "" && echo "" && echo "" && figlet -w 170 -f ansi-shadow 'CERTIFICADOS DE' -c | lolcat && echo "" && echo "" && echo "" && figlet -w 220 -f ansi-shadow 'CLIENTE' -c | lolcat -a -d 1 && echo "" && echo "" && echo "" && sleep 10 && clear
|
||||
```
|
||||
|
||||
-'Certificados cliente'
|
||||
clear && cowsay -W 76 -f ovpn '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.'
|
||||
# Panel oVPN (⌘4)
|
||||
|
||||
clear && cowsay -W 76 -f ovpn 'Crearemos un directorio en nuestra VPN para almacenar las configuraciones de cliente y restringiremos los permisos, después, volvemos a la ruta EasyRSA para generar la solicitud de certificado cliente, copiamos la clave privada generada a nuestro directorio de configuraciones Cliente'
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn '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.'
|
||||
```
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Crearemos un directorio en `oVPN` para almacenar las configuraciones de cliente y restringiremos los permisos'
|
||||
```
|
||||
|
||||
```bash
|
||||
mkdir -p ~/client-configs/keys
|
||||
|
||||
chmod -R 700 ~/client-configs
|
||||
```
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Volvemos a la ruta EasyRSA para generar las solicitudes de certificado cliente. Crearemos múltiples solicitudes para distintos clientes. Después copiaremos las claves privadas a nuestra ruta de configuración de clientes.'
|
||||
```
|
||||
|
||||
```bash
|
||||
cd ~/EasyRSA/
|
||||
|
||||
./easyrsa gen-req client1 nopass
|
||||
@ -303,11 +318,23 @@ cd ~/EasyRSA/
|
||||
./easyrsa gen-req client4 nopass
|
||||
|
||||
cp pki/private/{client1.key,client2.key,client3.key,client4.key} ~/client-configs/keys/
|
||||
```
|
||||
|
||||
clear && cowsay -W 76 -f ovpn 'Enviamos las solicitudes de nuestra VPN a la SubCA para validarlas y nos situamos sobre la SubCA e importamos y firmamos las solicitudes, se devuelven los certificacdos válidos a nuestra oVPN, luego regresamos a la VPN y copiamos el certificado a nuestro directorio de configuraciones Cliente, luego copiamos el certificado de la SubCA y la firma HMAC a nuestro directorio de configuraciones Cliente'
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Enviamos las solicitudes de nuestra VPN a la SubCA para validarlas.'
|
||||
```
|
||||
|
||||
```bash
|
||||
scp ~/EasyRSA/pki/reqs/{client1.req,client2.req,client3.req,client4.req} signer@signer.bastionado.es:/tmp
|
||||
```
|
||||
|
||||
# Panel Signer (⌘3)
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Nos situamos sobre `Signer` e importamos y firmamos las solicitudes, después devolveremos los certificacdos válidos a nuestra oVPN.'
|
||||
```
|
||||
|
||||
```bash
|
||||
./easyrsa import-req /tmp/client1.req client1
|
||||
./easyrsa import-req /tmp/client2.req client2
|
||||
./easyrsa import-req /tmp/client3.req client3
|
||||
@ -319,40 +346,80 @@ scp ~/EasyRSA/pki/reqs/{client1.req,client2.req,client3.req,client4.req} signer@
|
||||
./easyrsa sign-req client client4
|
||||
|
||||
scp pki/issued/{client1.crt,client2.crt,client3.crt,client4.crt} ovpn@ovpn.bastionado.es:/tmp
|
||||
```
|
||||
|
||||
# Panel oVPN (⌘4)
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Copiamos los certificados firmados a nuestra ruta de configuración de clientes. También copiaremos dos ficheros clave: `ca.crt` y ta.key`. En el fichero que tendrá el cliente para conectar a nuestra VPN estará la cadena de certificados (es decir, de claves públicas) de la autoridad de certificación ya que el proceso de autenticación es recíproco, los clientes también validan la identidad del servidor. Por otra parte, también incluimos la clave precompartida que se utilizará para la derivación de las claves simétricas y de autenticación.'
|
||||
```
|
||||
|
||||
```bash
|
||||
cp /tmp/{client1.crt,client2.crt,client3.crt,client4.crt} ~/client-configs/keys/
|
||||
|
||||
exit
|
||||
|
||||
sudo cp /etc/openvpn/{ca.crt,ta.key} ~/client-configs/keys/
|
||||
```
|
||||
|
||||
# Panel Títulos (⌘1)
|
||||
|
||||
```bash
|
||||
clear && echo "" && echo "" && echo "" && echo && echo "" && echo "" && echo "" && echo "" && echo "" && echo "" && figlet -w 170 -f ansi-shadow 'CONFIGURACION 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)
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Una vez hemos finalizado completamente la infraestructura de Clave Pública es el momento de configurar el servicio OpenVPN.'
|
||||
```
|
||||
|
||||
-'Configuración de OpenVPN'
|
||||
clear && cowsay -W 76 -f ovpn 'Una vez ya se tiene la terminada completamente la infraestructura de Clave Pública es el momento de configurar el servicio OpenVPN'
|
||||
|
||||
clear && cowsay -W 76 -f ovpn 'Comenzamos copiando la configuración de ejemplo y lo editamos, se modifica 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, especificamos la interfaz de red que se creará de forma explícita como tun0'
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Crearemos un fichero de configuración desde cero para conocer detalladamente todas las características que utilizaremos.'
|
||||
```
|
||||
|
||||
```bash
|
||||
sudo nano /etc/openvpn/server.conf # sudo vim /etc/openvpn/server.conf
|
||||
```
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'No utilizaremos el puerto estándar, 1194, para reducir la superficie de exposición. Por otra parte, utilizaremos el protocolo UDP para reducir los tiempos de latencia.'
|
||||
```
|
||||
|
||||
```bash
|
||||
port 6174
|
||||
proto udp
|
||||
```
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Trabajaremos con una interfaz tipo `tun`. OpenVPN puede trabajar con interfaces tipo `tun` a nivel de red (Capa 3 OSI) y tipo `tap`, a nivel de enlace (Capa 2 OSI). Si utilizarámos una interfaz de tipo `tap` tendríamos acceso automáticamente a la subred completa del servidor, ya que la interfaz estaría actuando como un `switch`, pero también generaríamos grandes problemas de enrutamiento. Utilizando `tun` estaremos realizando un enlace punto a punto, por lo que, si queremos tener visibilidad de otras redes deberemos añadir otras opciones. Hablaremos más adelante de ellas.'
|
||||
```
|
||||
|
||||
```bash
|
||||
dev tun0
|
||||
```
|
||||
|
||||
clear && cowsay -W 76 -f ovpn 'Ahora apuntaremos a nuestros certificados que se han generado anteriormente, se establece la directiva dh con nuestra clave generada anteriormente'
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Ahora apuntaremos a nuestros certificados que hemos generado anteriormente y establecemos la directiva Diffie-Hellman con nuestra clave generada anteriormente.'
|
||||
```
|
||||
|
||||
```bash
|
||||
ca ca.crt
|
||||
cert ovpn.crt
|
||||
key ovpn.key
|
||||
|
||||
dh dh.pem
|
||||
```
|
||||
|
||||
clear && cowsay -W 76 -f ovpn 'Establecemos la subred que se establecerá en las conexiones. Teniendo en cuenta que el servidor tendrá automáticamente la IP 10.10.10.1 y establecemos un fichero de persistencia para que los clientes vuelvan a tener la misma asignación de IP en caso de una caída del servicio'
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Establecemos la subred que se establecerá en las conexiones, teniendo en cuenta que el servidor tendrá automáticamente la primera IP de está subred, es decir, 10.10.10.1.'
|
||||
```
|
||||
|
||||
```bash
|
||||
server 10.10.10.0 255.255.255.0
|
||||
```
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Establecemos la subred que se establecerá en las conexiones. Teniendo en cuenta que el servidor tendrá automáticamente la IP 10.10.10.1 y establecemos un fichero de persistencia para que los clientes vuelvan a tener la misma asignación de IP en caso de una caída del servicio'
|
||||
```
|
||||
|
||||
ifconfig-pool-persist /var/log/openvpn/ipp.txt
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user