docs: update vpn/openvpn/servidor
This commit is contained in:
parent
434f39fc2d
commit
1e7f9a0ff7
@ -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-06-02T08:46:03.887Z
|
date: 2022-06-02T10:08:47.365Z
|
||||||
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
|
||||||
@ -745,6 +745,7 @@ table ip nat {
|
|||||||
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
* [Referencia de configuración de Net Filter Tables](/assets/files/openvpn-server/nftables.conf).
|
||||||
|
|
||||||
* Ahora solo nos queda reiniciar el servicio, comprobar que ha levantado correctamente y habilitar su inicio automático.
|
* Ahora solo nos queda reiniciar el servicio, comprobar que ha levantado correctamente y habilitar su inicio automático.
|
||||||
|
|
||||||
@ -785,31 +786,40 @@ sudo vim /etc/openvpn/server.conf
|
|||||||
|
|
||||||
crl-verify crl.pem
|
crl-verify crl.pem
|
||||||
```
|
```
|
||||||
|
[Referencia de configuración de OpenVPN servidor con CRL](/assets/files/openvpn-server/server-crl.conf)
|
||||||
|
|
||||||
* Arrancar y comprobar el estado del servicio OpenVPN
|
* Arrancar y comprobar el estado del servicio OpenVPN.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo systemctl restart openvpn@server && sudo systemctl status openvpn@server
|
sudo systemctl restart openvpn@server && sudo systemctl status openvpn@server
|
||||||
```
|
```
|
||||||
|
|
||||||
* Revisar el registro para comprobar que se está aplicando la CRL cuando un cliente intenta conectar
|
* Revisar el registro para comprobar que se está aplicando la CRL cuando un cliente intenta conectar.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo tail -f /var/log/openvpn/openvpn.log
|
sudo tail -f /var/log/openvpn/openvpn.log
|
||||||
```
|
```
|
||||||
|
|
||||||
## OpenVPN + TOR
|
# OpenVPN + TOR
|
||||||
|
|
||||||
### Configuración de OpenVPN
|
> Ya que todo el tráfico de los clientes se enruta a través de la VPN, ¿Y si les damos la posibilidad de que puedan conectar a una VPN que además enrute todo su tráfico a través de nodos TOR? Sus comunicaciones quederán ocultas y podremos escoger el nodo de salida, haciendo que tanto la dirección de los clientes como del servidor queden ocultas.
|
||||||
|
|
||||||
|
## Configuración de OpenVPN
|
||||||
|
|
||||||
|
* Copiaremos nuestra configuración de servidor OpenVPN.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo cp /etc/openvpn/server.conf /etc/openvpn/tor.conf
|
sudo cp /etc/openvpn/server.conf /etc/openvpn/tor.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
|
* La editamos.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo vim /etc/openvpn/tor.conf
|
sudo vim /etc/openvpn/tor.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
|
* Modificamos algunos valores para poder establecer el servicio VPN alternativo.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
port 6175
|
port 6175
|
||||||
|
|
||||||
@ -826,8 +836,10 @@ status /var/log/openvpn/openvpn-status-tor.log
|
|||||||
|
|
||||||
log-append /var/log/openvpn/openvpn-tor.log
|
log-append /var/log/openvpn/openvpn-tor.log
|
||||||
```
|
```
|
||||||
|
[Referencia de configuración de OpenVPN TOR](/assets/files/openvpn-server/tor.conf)
|
||||||
|
|
||||||
### Puesta en funcionamiento del servicio
|
|
||||||
|
## Puesta en funcionamiento del servicio OpenVPN TOR
|
||||||
|
|
||||||
* Arrancar y comprobar el estado del servicio OpenVPN
|
* Arrancar y comprobar el estado del servicio OpenVPN
|
||||||
|
|
||||||
@ -847,25 +859,58 @@ ip addr show tun1
|
|||||||
sudo systemctl enable openvpn@tor
|
sudo systemctl enable openvpn@tor
|
||||||
```
|
```
|
||||||
|
|
||||||
## Habilitando tor
|
## Habilitando TOR
|
||||||
|
|
||||||
|
* Instalamos TOR.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install tor -y
|
sudo apt install tor -y
|
||||||
|
```
|
||||||
|
|
||||||
|
* Editamos su fichero de configuración.
|
||||||
|
|
||||||
|
```bash
|
||||||
sudo vim /etc/tor/torrc
|
sudo vim /etc/tor/torrc
|
||||||
|
```
|
||||||
|
|
||||||
|
> Configuraremos la resolución de dominios `onion` y `exit` y la resolución DNS y HTTP a la dirección IP que tiene nuestra interfaz `tun1`.
|
||||||
|
>
|
||||||
|
> Por otra parte, solicitaremos que el nodo de salida de TOR sea a través de un servidor de los Estados Unidos.
|
||||||
|
|
||||||
|
```bash
|
||||||
VirtualAddrNetwork 10.192.0.0/10
|
VirtualAddrNetwork 10.192.0.0/10
|
||||||
AutomapHostsOnResolve 1
|
AutomapHostsOnResolve 1
|
||||||
AutomapHostsSuffixes .onion,.exit
|
AutomapHostsSuffixes .onion,.exit
|
||||||
DNSPort 10.10.20.1:53530
|
DNSPort 10.10.20.1:53530
|
||||||
TransPort 10.10.20.1:9040
|
TransPort 10.10.20.1:9040
|
||||||
ExitNodes {us} StrictNodes 1
|
ExitNodes {us} StrictNodes 1
|
||||||
|
```
|
||||||
|
|
||||||
sudo systemctl restart tor.service
|
* Levantamos nuestro servicio TOR y comprobamos que todo funciona correctamente.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl restart tor.service && sudo systemctl status tor.service
|
||||||
|
|
||||||
sudo netstat -tulpen | grep tor
|
sudo netstat -tulpen | grep tor
|
||||||
```
|
```
|
||||||
|
|
||||||
|
* Habilitamos el inicio automático del servicio.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl enable tor.service
|
||||||
|
```
|
||||||
|
|
||||||
|
## Nftables con TOR
|
||||||
|
|
||||||
|
> Ahora deberemos modificar nuestras Net Filter Tables para que en la cadena de pre enrutamiento el tráfico de nuestra segunda VPN se redirija hacia los nodos TOR, estableciendo así un proxy transparente que redirigirá todo el tráfico de los clientes que conecten en esta modalidad.
|
||||||
|
|
||||||
|
* Limpiamos la configuración de nftables para pegar la nueva.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dd if=/dev/null of=/etc/nftables.conf && sudo vim /etc/nftables.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
#!/usr/sbin/nft -f
|
#!/usr/sbin/nft -f
|
||||||
|
|
||||||
@ -936,12 +981,17 @@ table ip nat {
|
|||||||
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
* [Referencia de configuración de Net Filter Tables con TOR](/assets/files/openvpn-server/nftables-tor.conf).
|
||||||
|
|
||||||
|
* Reiniciamos nuestro servicio y comprobamos que todo funciona correctamente.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo systemctl restart nftables.service && sudo systemctl status nftables.service
|
sudo systemctl restart nftables.service && sudo systemctl status nftables.service
|
||||||
```
|
```
|
||||||
|
|
||||||
### Configuración de script de cliente
|
## Configuración de script de cliente
|
||||||
|
|
||||||
|
* Copiamos la configuración y script de clientes base para personalizarlos para TOR.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cp ~/client-configs/base.conf ~/client-configs/base-tor.conf
|
cp ~/client-configs/base.conf ~/client-configs/base-tor.conf
|
||||||
@ -949,8 +999,58 @@ cp ~/client-configs/base.conf ~/client-configs/base-tor.conf
|
|||||||
cp ~/client-configs/make_config.sh ~/client-configs/make_config_tor.sh
|
cp ~/client-configs/make_config.sh ~/client-configs/make_config_tor.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
* Modificamos la configuración y script de generación de configuraciones cliente para la variante TOR.
|
||||||
|
|
||||||
## Landing Page para descarga de configuración cliente
|
```bash
|
||||||
|
nano ~/client-configs/base-tor.conf # vim ~/client-configs/base-tor.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
* En base-tor solo cambiaremos el puerto de destino.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
remote ovpn.bastionado.es 6175
|
||||||
|
```
|
||||||
|
|
||||||
|
* Ahora modificamos el script de generación de clientes.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano ~/client-configs/make_config_tor.sh # vim ~/client-configs/make_config_tor.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# First argument: Client identifier
|
||||||
|
|
||||||
|
KEY_DIR=/home/ovpn/client-configs/keys
|
||||||
|
OUTPUT_DIR=/home/ovpn/client-configs/files
|
||||||
|
BASE_CONFIG=/home/ovpn/client-configs/base-tor.conf
|
||||||
|
|
||||||
|
cat ${BASE_CONFIG} \
|
||||||
|
<(echo -e '<ca>') \
|
||||||
|
${KEY_DIR}/ca.crt \
|
||||||
|
<(echo -e '</ca>\n<cert>') \
|
||||||
|
${KEY_DIR}/${1}.crt \
|
||||||
|
<(echo -e '</cert>\n<key>') \
|
||||||
|
${KEY_DIR}/${1}.key \
|
||||||
|
<(echo -e '</key>\n<tls-auth>') \
|
||||||
|
${KEY_DIR}/ta.key \
|
||||||
|
<(echo -e '</tls-auth>') \
|
||||||
|
> ${OUTPUT_DIR}/bastionado-tor-${1}.ovpn
|
||||||
|
```
|
||||||
|
|
||||||
|
* Y ahora ya podemos generar nuestros ficheros `ovpn` TOR para nuestros clientes.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/client-configs
|
||||||
|
|
||||||
|
sudo ./make_config_tor.sh client1
|
||||||
|
sudo ./make_config_tor.sh client2
|
||||||
|
sudo ./make_config_tor.sh client3
|
||||||
|
sudo ./make_config_tor.sh client4
|
||||||
|
```
|
||||||
|
|
||||||
|
# Landing Page para clientes
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -sSL https://packages.sury.org/nginx/README.txt | sudo bash -x
|
curl -sSL https://packages.sury.org/nginx/README.txt | sudo bash -x
|
||||||
|
Loading…
x
Reference in New Issue
Block a user