docs: update vpn/openvpn/guide
This commit is contained in:
parent
b6b33debbd
commit
855b540cdd
@ -2,7 +2,7 @@
|
|||||||
title: OpenVPN - Guía de instalación
|
title: OpenVPN - Guía de instalación
|
||||||
description: Guía de instalación utilizada durante la realización de la práctica
|
description: Guía de instalación utilizada durante la realización de la práctica
|
||||||
published: true
|
published: true
|
||||||
date: 2022-05-31T22:00:59.968Z
|
date: 2022-05-31T22:52:00.260Z
|
||||||
tags: vpn, servidor
|
tags: vpn, servidor
|
||||||
editor: markdown
|
editor: markdown
|
||||||
dateCreated: 2022-05-31T21:04:15.280Z
|
dateCreated: 2022-05-31T21:04:15.280Z
|
||||||
@ -208,7 +208,6 @@ scp pki/issued/ovpn.crt ovpn@ovpn.bastionado.es:/tmp
|
|||||||
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
|
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
|
```bash
|
||||||
@ -284,17 +283,33 @@ sudo mv ~/EasyRSA/ta.key /etc/openvpn/
|
|||||||
sudo mv ~/EasyRSA/pki/dh.pem /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'
|
# Panel oVPN (⌘4)
|
||||||
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.'
|
|
||||||
|
|
||||||
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
|
mkdir -p ~/client-configs/keys
|
||||||
|
|
||||||
chmod -R 700 ~/client-configs
|
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/
|
cd ~/EasyRSA/
|
||||||
|
|
||||||
./easyrsa gen-req client1 nopass
|
./easyrsa gen-req client1 nopass
|
||||||
@ -303,11 +318,23 @@ cd ~/EasyRSA/
|
|||||||
./easyrsa gen-req client4 nopass
|
./easyrsa gen-req client4 nopass
|
||||||
|
|
||||||
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/
|
||||||
|
```
|
||||||
|
|
||||||
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
|
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/client1.req client1
|
||||||
./easyrsa import-req /tmp/client2.req client2
|
./easyrsa import-req /tmp/client2.req client2
|
||||||
./easyrsa import-req /tmp/client3.req client3
|
./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
|
./easyrsa sign-req client client4
|
||||||
|
|
||||||
scp pki/issued/{client1.crt,client2.crt,client3.crt,client4.crt} ovpn@ovpn.bastionado.es:/tmp
|
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/
|
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/
|
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'
|
```bash
|
||||||
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 'Crearemos un fichero de configuración desde cero para conocer detalladamente todas las características que utilizaremos.'
|
||||||
|
```
|
||||||
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
|
||||||
sudo nano /etc/openvpn/server.conf # sudo vim /etc/openvpn/server.conf
|
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
|
port 6174
|
||||||
proto udp
|
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
|
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
|
ca ca.crt
|
||||||
cert ovpn.crt
|
cert ovpn.crt
|
||||||
key ovpn.key
|
key ovpn.key
|
||||||
|
|
||||||
dh dh.pem
|
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
|
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
|
ifconfig-pool-persist /var/log/openvpn/ipp.txt
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user