vpn hands on

Overview

Cada vez es más frecuente el uso de algún tipo de VPN. Ya sea para cuestiones laborales o personales las VPN ya forman parte de nuestras vidas, por ello es importante entender como estas funcionan y el uso que podemos dar a cada una de ellas.
Las siglas VPN significan red privada virtual y nos permite la extensión de una red local, normalmente por medio de redes públicas como puede ser internet.
Unas, que actualmente se han convertido en compañeras habituales, son las de uso corporativo, que nos permiten trabajar desde fuera de la empresa manteniendo el acceso a todos los servicios y extender el perímetro de la red corporativa.

También se están popularizando las que, a modo personal, nos permiten proteger las conexiones de nuestros dispositivos móviles u ordenadores, otorgando tanto privacidad como seguridad, importantes cuando se hace uso de redes públicas.

Tipos de VPN

Las VPN más populares se pueden agrupar en tres bloques principales que describiremos a continuación. Cada uno de ellos nos proporcionará propiedades distintas que aprovecharemos según las necesidades.
Existen otros usos para las VPN que han quedado fuera del alcance de este post ya que su uso es para cuestiones muy puntuales y no contribuyen al uso común de las mismas.
No todas las VPN disponen de las mismas características o medidas de seguridad, no entraremos en el detalle técnico. El objeto de este post es distinguirlas y definirlas a nivel general y proponer alguno de los distintos modos en que las podemos configurar o utilizar

VPN de acceso remoto

Como se ha comentado en el punto anterior este tipo de VPN está en auge, permite que nos conectemos desde nuestros dispositivos a nuestra oficina.

Esta extiende la red corporativa hasta nuestra computadora, permitiéndonos acceder a los servicios de nuestra empresa sin que estos tengan que estar expuestos en internet.
En este caso se instala un servidor de VPN en las oficinas o se configura en el firewall de esta. Lo más habitual será disponer de un agente instalado en nuestro ordenador configurado para conectar con la oficina.

VPN punto a punto

Las VPN punto a punto unirán una o más sedes de nuestra empresa, permitiendo compartir recursos entre ellas.

Esto permite redibujar el perímetro de la red corporativa sin necesidad de contratar líneas dedicadas, normalmente con un alto coste, y aprovechar internet y la VPN para unirlas.
En este caso, se realizará una conexión permanente entre las distintas oficinas y se indicará a cada una de las VPN qué servicios o redes están en el otro lado y así, estos podrán ser accesibles desde cualquiera de las sedes.

VPN cloud

Ahora son pocas las empresas que no dispongan de algún servicio cloud, pero que el servicio se publique en un proveedor de internet no significa que queramos que este sea accesible a todo el mundo. Una de las formas de solventarlo es creando una VPN entre la empresa y el servicio cloud, extendiendo así nuestro CPD (sala de ordenadores) con el cloud como si de una red local privada se tratara.

Personales

Aunque podemos hacer uso de una VPN de conexión remota a nuestro hogar, donde en ese caso la prevención seria la misma que en el caso de las organizaciones, extender la red local de nuestro hogar para poder acceder a servicios o sistemas locales de forma segura, en el ámbito personal podemos encontrar otros usos.
Uno de ellos es el de la privacidad, nos puede interesar, ya sea para que no nos monitoricen, para saltarnos alguna restricción o censura de nuestro país o simplemente para proteger nuestra identidad. Para ello podemos hacer uso de servicios como nordvpn o surfshark, nombro estos ya que son de los más utilizados y los que he podido probar.

Cuando accedemos a un servicio web, este registra nuestra IP publica, identificador de red que emplea para contestar nuestras peticiones. En estos casos usamos la VPN para que la IP pública que acceda a los distintos servicios web no sea la nuestra.
Muchos de estos servicios nos darán también la opción de eliminar publicidad, malware o cambiar el país de origen de la IP, útil para poder burlar algunas restricciones.
No puedo cerrar este tema sin comentar que a pesar de ser cierto que la red Tor tiene muchísimas buenas cualidades no siempre es adecuado para este uso, sobre todo si enviamos credenciales o información que pueda ser sensible para nosotros. En la red Tor el tráfico está cifrado hasta el último ordenador, que enviará nuestra solicitud al servicio web y aunque para mantener nuestro anonimato puede ser de utilidad no lo será tanto para proteger nuestra información. No es difícil configurar un nodo de salida de Tor y monitorizar el tráfico que sale de él.

De todos modos ya que, como he dicho, no deja de ser una herramienta que puede resultar muy útil en la parte práctica propondré un par de formas para hacer uso de Tor.
El otro uso que le podemos dar a una VPN personal es el de proteger nuestras conexiones cuando usamos redes públicas. Nos servirán los mismos proveedores antes mencionados o la podemos instalar en nuestro hogar. De este modo creamos un túnel cifrado que protegerá los datos que transmitamos desde nuestros dispositivos cuando estemos conectados a redes públicas, hoteles, restaurantes, etc. No importará si el tráfico, de forma nativa está o no protegido, esta capa de seguridad se la proporcionaremos nosotros con el uso de la VPN.

Hands on

Wireguard

Wireguard es una VPN fácil de implementar, muy rápida y segura. Hay distintas formas de instalarla y nombraremos algunas de ellas.

Utiliza Curve25519 para el intercambio de claves, ChaCha20 para la encriptación, Poly1305 para la autenticación de datos, SipHash para claves de hashtables y BLAKE2s para el hashing. Soporta la capa 3 para IPv4 e IPv6 y puede encapsular v4 en v6 y viceversa.

Si disponemos de un disco de red NAS tipo Synology, Qnap, terramaster, etc … es posible que disponga ya de soporte para instalar el servidor de forma nativa o mediante docker. Esta sería la forma más simple de instalarla.

Docker

La siguiente es instalarla desde docker, esta es una de mis opciones preferidas. Su implementación es muy simple.

Generamos el docker-compose.yaml indicando la IP publica y las redes permitidas, en caso de ser necesario.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
version: "3.1" 

services:

wireguard:

image: linuxserver/wireguard:latest

container_name: wireguard

cap_add:

- NET_ADMIN

- SYS_MODULE

environment:

- PUID=1000

- PGID=1000

- TZ=Europe/Madrid

- SERVERURL=IP PUBLICA #optional

- SERVERPORT=51820 #optional

- PEERS=10 #optional

- PEERDNS=auto #optional

- INTERNAL_SUBNET=10.0.0.0 #optional

- ALLOWEDIPS=0.0.0.0/0, 172.16.0.0/16 #optional

- LOG_CONFS=true #optional

volumes:

- ./config:/config

- /lib/modules:/lib/modules

ports:

- 51820:51820/udp

sysctls:

- net.ipv4.conf.all.src_valid_mark=1

restart: unless-stopped

Y ejecutamos el siguiente comando de docker para iniciar el contenedor.

1
docker-compose -f docker-compose.yaml up –d 

Para configurar los clientes, en el ejemplo anterior son 10, pero se puede modificar. Simplemente ejecutamos:

1
docker exec -i wireguard /app/show-peer 1 

Donde 1 es el número del cliente a consultar.

Aparecerá un código QR que al escanearlo con la aplicación del móvil se configurará automáticamente.

Instalación en linux

Aunque la instalación de forma completamente manual no es muy compleja, usaremos el script de instalación. Este realizara el trabajo por nosotros.

Ejecutaremos la siguiente instrucción:

1
wget https://git.io/JLhHr -O wireguard-install.sh && sudo bash wireguard-install.sh 

Una vez ejecutado el script nos consultará algunos datos, ip pública, puerto, nombre para el primer cliente y el servicio de DNS que queremos que usen. Las opciones por defecto suelen ser acertadas y en unos pocos segundos nos mostrara un código QR para configurar el primer dispositivo.

Si lo ejecutamos de nuevo el script nos permitirá añadir o eliminar clientes y desinstalar wireguard.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
WireGuard is already installed. 
Visit: www.sysadminsdecuba.com

Select an option:

1) Add a new client

2) Remove an existing client

3) Remove WireGuard

4) Exit

Option:

Tor

Ya hemos comentado que Tor, nos puede ofrecer privacidad, aunque instalarlo en el sistema, si disponemos de docker es también una muy buena opción.

Con docker-compose generaríamos el container con la siguiente receta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
version: '3.3' 

services:

tor-privoxy:

image: 'dockage/tor-privoxy:latest'

container_name: tor-privoxy

ports:

- '9050:9050'

- '9051:9051'

- '8118:8118'

Este contenedor instala Tor y Privoxy, así este puede ser utilizado desde cualquier dispositivo, solo tendremos que configurar como proxy la IP de nuestro servidor Docker con el puerto 8118.

Conclusiones

Podemos decidir si preferimos emplear dinero o tiempo, pero puede que cada vez sea más necesario el uso de una VPN en nuestras comunicaciones diarias. Ya sea para beneficiarnos de una mejor privacidad como de seguridad en entornos que no podamos controlar, como redes públicas.

Las VPN actualmente son fáciles de configurar o de usar si nos decidimos por un servicio de pago. Cada una de ellas, como hemos visto tiene sus ventajas.

Hasta aquí el post de hoy. Espero haya sido de vuestro interés.
No dudéis en contactar mediante el formulario para hacerme llegar vuestros comentarios.