Compare commits

..

No commits in common. "3d1a74ec285e924ca4179e12d42ebbca6a444cdd" and "281257bf52648e5e3a34b4e3fcb47580d1a48206" have entirely different histories.

2 changed files with 13 additions and 91 deletions

View File

@ -1,35 +0,0 @@
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;
}
}

View File

@ -2,7 +2,7 @@
title: OpenVPN - Servidor
description: Tutorial de instalación del Servidor OpenVPN
published: true
date: 2022-06-02T10:21:20.220Z
date: 2022-06-02T10:08:47.365Z
tags: vpn, servidor, debian
editor: markdown
dateCreated: 2022-05-18T16:48:57.246Z
@ -1052,34 +1052,18 @@ 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
@ -1089,14 +1073,10 @@ 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;
@ -1108,6 +1088,15 @@ 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;
@ -1122,17 +1111,11 @@ 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;
@ -1170,26 +1153,15 @@ server {
}
```
* [Referencia de sitio web de NginX](/assets/files/openvpn-server/default-site-nginx.conf)
## Instalación de Sitio Web
* Con la configuración de NginX ya preparada tenemos que desplegar los ficheros de nuestra aplicación web. Para ello, primero descargaremos estos ficheros.
[bastionado-vpn.tar](/assets/files/openvpn-server/bastionado-vpn.tar)
```bash
sudo wget -P /tmp https://wiki.bastionado.es/assets/files/openvpn-server/bastionado-vpn.tar
```
[Sitio web](/assets/files/openvpn-server/bastionado-vpn.tar)
scp -i .\.ssh\id_admin_bastionado .\bastionado-vpn.tar ovpn@ovpn.bastionado.es:/home/ovpn
* Descomprimimos los ficheros de la aplicación en el directorio desde el que la serviremos.
sudo tar -xvf bastionado-vpn.tar -C /var/www/html
```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
@ -1199,24 +1171,9 @@ 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
```