Compare commits
8 Commits
16e6d3521d
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d1a74ec28 | ||
|
|
d84e21cfe8 | ||
|
|
281257bf52 | ||
|
|
b19cad562e | ||
|
|
52929aac91 | ||
|
|
1e7f9a0ff7 | ||
|
|
434f39fc2d | ||
|
|
af39e2d8b9 |
35
assets/files/openvpn-server/default-site-nginx.conf
Normal file
35
assets/files/openvpn-server/default-site-nginx.conf
Normal file
@@ -0,0 +1,35 @@
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
|
||||
root /var/www/html;
|
||||
|
||||
index index.html;
|
||||
|
||||
server_name _;
|
||||
|
||||
location /download/client1 {
|
||||
try_files $uri $uri/ =404;
|
||||
auth_basic "Client Area";
|
||||
auth_basic_user_file /var/www/.htpasswd1;
|
||||
}
|
||||
|
||||
location /download/client2 {
|
||||
try_files $uri $uri/ =404;
|
||||
auth_basic "Client Area";
|
||||
auth_basic_user_file /var/www/.htpasswd2;
|
||||
}
|
||||
|
||||
location /download/client3 {
|
||||
try_files $uri $uri/ =404;
|
||||
auth_basic "Client Area";
|
||||
auth_basic_user_file /var/www/.htpasswd2;
|
||||
}
|
||||
|
||||
location /download/client4 {
|
||||
try_files $uri $uri/ =404;
|
||||
auth_basic "Client Area";
|
||||
auth_basic_user_file /var/www/.htpasswd4;
|
||||
}
|
||||
|
||||
}
|
||||
68
assets/files/openvpn-server/nftables-tor.conf
Normal file
68
assets/files/openvpn-server/nftables-tor.conf
Normal file
@@ -0,0 +1,68 @@
|
||||
#!/usr/sbin/nft -f
|
||||
|
||||
flush ruleset
|
||||
define vpn_port=6174
|
||||
define vpn_if=tun0
|
||||
define outside_if=enp0s17
|
||||
define vpn_subnet=10.10.10.0/24
|
||||
|
||||
define vpn_port_tor=6175
|
||||
define vpn_if_tor=tun1
|
||||
define vpn_subnet_tor=10.10.20.0/24
|
||||
|
||||
table inet filter {
|
||||
|
||||
|
||||
chain input {
|
||||
# allow OpenVPN connections to the Server
|
||||
udp dport $vpn_port accept
|
||||
|
||||
# allow OpenVPN TOR connections to the Server
|
||||
udp dport $vpn_port_tor accept
|
||||
}
|
||||
|
||||
chain forward {
|
||||
#Drop forwarded packets if they are not matched
|
||||
type filter hook forward priority 0; policy drop;
|
||||
|
||||
# allow existing connections
|
||||
ct state related,established accept
|
||||
|
||||
# allow packets from vpn interface
|
||||
iifname $vpn_if oifname $outside_if accept
|
||||
|
||||
# allow packets from vpn interface
|
||||
iifname $vpn_if_tor oifname $outside_if accept
|
||||
}
|
||||
|
||||
chain output {
|
||||
## Transproxy leak blocked:
|
||||
# https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy#WARNING
|
||||
ct state invalid counter drop
|
||||
oifname != "lo" ip saddr != 127.0.0.1 ip daddr != 127.0.0.1 tcp flags & (fin|ack) == fin|ack counter drop
|
||||
oifname != "lo" ip saddr != 127.0.0.1 ip daddr != 127.0.0.1 tcp flags & (rst|ack) == rst|ack counter drop
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# create a ipv4 table only for NAT entries (you need both chains even if they're empty)
|
||||
table ip nat {
|
||||
chain postrouting {
|
||||
type nat hook postrouting priority 100;
|
||||
|
||||
# enable NAT for VPN
|
||||
iifname $vpn_if oifname $outside_if ip saddr $vpn_subnet masquerade
|
||||
|
||||
# enable NAT for TOR VPN
|
||||
iifname $vpn_if_tor oifname $outside_if ip saddr $vpn_subnet_tor masquerade
|
||||
}
|
||||
|
||||
chain prerouting {
|
||||
# Transparent proxy to TOR
|
||||
type nat hook prerouting priority 0;
|
||||
iifname $vpn_if_tor ip saddr $vpn_subnet_tor udp dport 53 counter dnat to 10.10.20.1:53530
|
||||
iifname $vpn_if_tor ip protocol tcp ip saddr $vpn_subnet_tor counter dnat to 10.10.20.1:9040
|
||||
iifname $vpn_if_tor ip protocol udp ip saddr $vpn_subnet_tor counter dnat to 10.10.20.1:9040
|
||||
}
|
||||
|
||||
}
|
||||
53
assets/files/openvpn-server/nftables.conf
Normal file
53
assets/files/openvpn-server/nftables.conf
Normal file
@@ -0,0 +1,53 @@
|
||||
#!/usr/sbin/nft -f
|
||||
|
||||
flush ruleset
|
||||
define vpn_port=6174
|
||||
define vpn_if=tun0
|
||||
define outside_if=enp0s17
|
||||
define vpn_subnet=10.10.10.0/24
|
||||
|
||||
table inet filter {
|
||||
|
||||
|
||||
chain input {
|
||||
# allow OpenVPN VPN connections to the Server
|
||||
udp dport $vpn_port accept
|
||||
}
|
||||
|
||||
chain forward {
|
||||
#Drop forwarded packets if they are not matched
|
||||
type filter hook forward priority 0; policy drop;
|
||||
|
||||
# allow existing connections
|
||||
ct state related,established accept
|
||||
|
||||
# allow packets from vpn interface
|
||||
iifname $vpn_if oifname $outside_if accept
|
||||
|
||||
}
|
||||
|
||||
chain output {
|
||||
# Security drops
|
||||
ct state invalid counter drop
|
||||
oifname != "lo" ip saddr != 127.0.0.1 ip daddr != 127.0.0.1 tcp flags & (fin|ack) == fin|ack counter drop
|
||||
oifname != "lo" ip saddr != 127.0.0.1 ip daddr != 127.0.0.1 tcp flags & (rst|ack) == rst|ack counter drop
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# create a ipv4 table only for NAT entries (you need both chains even if they're empty)
|
||||
table ip nat {
|
||||
chain postrouting {
|
||||
type nat hook postrouting priority 100;
|
||||
|
||||
# enable NAT for VPN
|
||||
iifname $vpn_if oifname $outside_if ip saddr $vpn_subnet masquerade
|
||||
|
||||
}
|
||||
|
||||
chain prerouting {
|
||||
type nat hook prerouting priority 0;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
23
assets/files/openvpn-server/nginx.conf
Normal file
23
assets/files/openvpn-server/nginx.conf
Normal file
@@ -0,0 +1,23 @@
|
||||
user www-data;
|
||||
worker_processes auto;
|
||||
pid /run/nginx.pid;
|
||||
include /etc/nginx/modules-enabled/*.conf;
|
||||
|
||||
events {
|
||||
worker_connections 768;
|
||||
}
|
||||
|
||||
http {
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
types_hash_max_size 2048;
|
||||
server_tokens off;
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
access_log /var/log/nginx/access.log;
|
||||
error_log /var/log/nginx/error.log;
|
||||
gzip on;
|
||||
|
||||
include /etc/nginx/conf.d/*.conf;
|
||||
include /etc/nginx/sites-enabled/*;
|
||||
}
|
||||
@@ -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-06-02T09:08:06.065Z
|
||||
date: 2022-06-02T10:11:26.934Z
|
||||
tags: vpn, servidor
|
||||
editor: markdown
|
||||
dateCreated: 2022-05-31T21:04:15.280Z
|
||||
@@ -893,14 +893,10 @@ clear && cowsay -W 76 -f ovpn 'Ya que todo el tráfico de los clientes se enruta
|
||||
```
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Crearemos copias de nuestra configuración base para clientes, servidor y del script de generación de configuración y alteraremos los valores para nuestra VPN alternativa.'
|
||||
clear && cowsay -W 76 -f ovpn 'Crearemos una copia de nuestra configuración base servidor.'
|
||||
```
|
||||
|
||||
```bash
|
||||
cp ~/client-configs/base.conf ~/client-configs/base-tor.conf
|
||||
|
||||
cp ~/client-configs/make_config.sh ~/client-configs/make_config_tor.sh
|
||||
|
||||
sudo cp /etc/openvpn/server.conf /etc/openvpn/tor.conf
|
||||
```
|
||||
|
||||
@@ -998,6 +994,16 @@ clear && cowsay -W 76 -f ovpn 'Habilitamos el inicio automático del servicio.'
|
||||
sudo systemctl enable tor.service
|
||||
```
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Crearemos copias de nuestra configuración base para clientes y del script de generación de configuración.'
|
||||
```
|
||||
|
||||
```bash
|
||||
cp ~/client-configs/base.conf ~/client-configs/base-tor.conf
|
||||
|
||||
cp ~/client-configs/make_config.sh ~/client-configs/make_config_tor.sh
|
||||
```
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn 'Modificamos la configuración y script de generación de configuraciones cliente para la variante TOR.'
|
||||
```
|
||||
@@ -1053,6 +1059,10 @@ sudo ./make_config_tor.sh client4
|
||||
clear && cowsay -W 76 -f ovpn '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.'
|
||||
```
|
||||
|
||||
```bash
|
||||
clear && cowsay -W 76 -f ovpn '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
|
||||
```
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: OpenVPN - Servidor
|
||||
description: Tutorial de instalación del Servidor OpenVPN
|
||||
published: true
|
||||
date: 2022-06-02T08:46:03.887Z
|
||||
date: 2022-06-02T10:21:20.220Z
|
||||
tags: vpn, servidor, debian
|
||||
editor: markdown
|
||||
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.
|
||||
|
||||
@@ -785,31 +786,40 @@ sudo vim /etc/openvpn/server.conf
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
sudo cp /etc/openvpn/server.conf /etc/openvpn/tor.conf
|
||||
```
|
||||
|
||||
* La editamos.
|
||||
|
||||
```bash
|
||||
sudo vim /etc/openvpn/tor.conf
|
||||
```
|
||||
|
||||
* Modificamos algunos valores para poder establecer el servicio VPN alternativo.
|
||||
|
||||
```bash
|
||||
port 6175
|
||||
|
||||
@@ -826,8 +836,10 @@ status /var/log/openvpn/openvpn-status-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
|
||||
|
||||
@@ -847,25 +859,58 @@ ip addr show tun1
|
||||
sudo systemctl enable openvpn@tor
|
||||
```
|
||||
|
||||
## Habilitando tor
|
||||
## Habilitando TOR
|
||||
|
||||
* Instalamos TOR.
|
||||
|
||||
```bash
|
||||
sudo apt install tor -y
|
||||
```
|
||||
|
||||
* Editamos su fichero de configuración.
|
||||
|
||||
```bash
|
||||
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
|
||||
AutomapHostsOnResolve 1
|
||||
AutomapHostsSuffixes .onion,.exit
|
||||
DNSPort 10.10.20.1:53530
|
||||
TransPort 10.10.20.1:9040
|
||||
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
|
||||
```
|
||||
|
||||
* 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
|
||||
#!/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
|
||||
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
|
||||
cp ~/client-configs/base.conf ~/client-configs/base-tor.conf
|
||||
@@ -949,21 +999,87 @@ cp ~/client-configs/base.conf ~/client-configs/base-tor.conf
|
||||
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
|
||||
|
||||
> Nuestra PKI y nuestro servidor VPN están listos para recibir a clientes, sin embargo, para que esto ocurra los clientes deberían recibir sus ficheros de configuración.
|
||||
>
|
||||
> Para esto, levantaremos un pequeño servidor Web que ponga a disposición de los clientes, mediante una autenticación básica, los ficheros de configuración.
|
||||
|
||||
## Instalación de NginX
|
||||
|
||||
* Utilizamos el repositorio del desarrollador de Debian Ondřej Surý para tener una versión más actualizada y compatible de NginX que la que incorpora Debian por defecto.
|
||||
|
||||
```bash
|
||||
curl -sSL https://packages.sury.org/nginx/README.txt | sudo bash -x
|
||||
```
|
||||
|
||||
* Ahora ya podemos actualizar la información de repositorios.
|
||||
|
||||
```bash
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
* Y proceder a instalar todos los paquetes de NginX. Instalaremos adicionalmente `apache2-utils` para poder generar ficheros de autenticación básica `htpasswd`.
|
||||
|
||||
```bash
|
||||
sudo apt install nginx-core nginx-common nginx nginx-full apache2-utils
|
||||
```
|
||||
|
||||
## Configuración de NginX
|
||||
|
||||
* Generaremos ahora los ficheros de autenticación básica `htpasswd`. Cada cliente dispondrá de un usuario y clave únicos.
|
||||
|
||||
```bash
|
||||
cd /var/www
|
||||
|
||||
@@ -973,10 +1089,14 @@ sudo htpasswd -c .htpasswd3 client3
|
||||
sudo htpasswd -c .htpasswd4 client4
|
||||
```
|
||||
|
||||
* Es el momento de configurar NginX. Modificamos el fichero de configuración vaciándolo primero.
|
||||
|
||||
```bash
|
||||
sudo dd if=/dev/null of=/etc/nginx/nginx.conf && sudo vim /etc/nginx/nginx.conf
|
||||
```
|
||||
|
||||
* Establecemos unas opciones de configuración básicas, ocultando la información de versión de NginX.
|
||||
|
||||
```bash
|
||||
user www-data;
|
||||
worker_processes auto;
|
||||
@@ -988,15 +1108,6 @@ events {
|
||||
}
|
||||
|
||||
http {
|
||||
brotli on;
|
||||
brotli_comp_level 6;
|
||||
brotli_static on;
|
||||
brotli_types application/atom+xml application/javascript application/json application/rss+xml
|
||||
application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
|
||||
application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
|
||||
font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
|
||||
image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;
|
||||
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
types_hash_max_size 2048;
|
||||
@@ -1011,11 +1122,17 @@ http {
|
||||
include /etc/nginx/sites-enabled/*;
|
||||
}
|
||||
```
|
||||
* [Referencia de configuración de NginX](/assets/files/openvpn-server/nginx.conf)
|
||||
|
||||
|
||||
* Ahora configuraremos la aplicación web. Modificamos el servidor por defecto vaciándolo primero.
|
||||
|
||||
```bash
|
||||
sudo dd if=/dev/null of=/etc/nginx/sites-available/default && sudo vim /etc/nginx/sites-available/default
|
||||
```
|
||||
|
||||
* Utilizaremos una configuración básica escuchando por HTTP ya que, en realidad, este NginX no recibirá las solicitudes directas de internet, si no que éstas vendrán redireccionadas desde otro NginX que proporciona balanceo de carga y la seguridad necesaria para poder servir una aplicación web con garantías. Aquí es donde estableceremos la autenticación básica en las rutas de descarga de certificados de los diferentes clientes.
|
||||
|
||||
```bash
|
||||
server {
|
||||
listen 80 default_server;
|
||||
@@ -1053,15 +1170,26 @@ server {
|
||||
|
||||
}
|
||||
```
|
||||
* [Referencia de sitio web de NginX](/assets/files/openvpn-server/default-site-nginx.conf)
|
||||
|
||||
## Instalación de Sitio Web
|
||||
|
||||
[bastionado-vpn.tar](/assets/files/openvpn-server/bastionado-vpn.tar)
|
||||
* Con la configuración de NginX ya preparada tenemos que desplegar los ficheros de nuestra aplicación web. Para ello, primero descargaremos estos ficheros.
|
||||
|
||||
```bash
|
||||
scp -i .\.ssh\id_admin_bastionado .\bastionado-vpn.tar ovpn@ovpn.bastionado.es:/home/ovpn
|
||||
sudo wget -P /tmp https://wiki.bastionado.es/assets/files/openvpn-server/bastionado-vpn.tar
|
||||
```
|
||||
[Sitio web](/assets/files/openvpn-server/bastionado-vpn.tar)
|
||||
|
||||
sudo tar -xvf bastionado-vpn.tar -C /var/www/html
|
||||
* Descomprimimos los ficheros de la aplicación en el directorio desde el que la serviremos.
|
||||
|
||||
```bash
|
||||
sudo tar -xvf /tmp/bastionado-vpn.tar -C /var/www/html
|
||||
```
|
||||
|
||||
* Y ahora copiaremos todas las configuraciones cliente a las diferentes rutas de servicio.
|
||||
|
||||
```bash
|
||||
sudo cp /home/ovpn/client-configs/files/bastionado-client1.ovpn /var/www/html/download/client1
|
||||
sudo cp /home/ovpn/client-configs/files/bastionado-client2.ovpn /var/www/html/download/client2
|
||||
sudo cp /home/ovpn/client-configs/files/bastionado-client3.ovpn /var/www/html/download/client3
|
||||
@@ -1071,9 +1199,24 @@ sudo cp /home/ovpn/client-configs/files/bastionado-tor-client1.ovpn /var/www/htm
|
||||
sudo cp /home/ovpn/client-configs/files/bastionado-tor-client2.ovpn /var/www/html/download/client2
|
||||
sudo cp /home/ovpn/client-configs/files/bastionado-tor-client3.ovpn /var/www/html/download/client3
|
||||
sudo cp /home/ovpn/client-configs/files/bastionado-tor-client4.ovpn /var/www/html/download/client4
|
||||
```
|
||||
|
||||
* Lo siguiente que debemos hacer es otorgar la posesión de los ficheros al usuario y grupo que utilizará NginX y establecer los permisos correctos.
|
||||
|
||||
```bash
|
||||
sudo chown -R www-data:www-data /var/www
|
||||
|
||||
sudo find /var/www -type f -print0|sudo xargs -0 chmod 660
|
||||
sudo find /var/www -type d -print0|sudo xargs -0 chmod 770
|
||||
```
|
||||
|
||||
* Comprobaremos que toda la configuración de NginX es correcta y después arrancaremos y habilitaremos el inicio automático del servicio.
|
||||
|
||||
```bash
|
||||
sudo nginx -T
|
||||
|
||||
sudo systemctl restart nginx.service && sudo systemctl status nginx.service
|
||||
|
||||
sudo systemctl enable nginx.service
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user