Gigastur

Servicios informáticos

615 654 407
info@gigastur.com

  • Inicio
  • Servicios
    • Asistencia a domicilio
    • Reparación de ordenadores
    • Mantenimiento para empresas
    • Diseño web y hosting
  • Precios
    • Mantenimiento para empresas
    • Diseño web
    • Asistencia a domicilio
    • Reparaciones en tienda
    • Bonos de mantenimiento
    • Alojamiento web
  • Trabajos realizados
  • Contacto
  • Blog
    • Comandos Linux
    • Comandos Windows
    • MySQL
    • Laravel
    • Steam
    • Herramientas Sysadmin

Instalar y configurar servidor VPN Wireguard en Ubuntu 18.04 y Ubuntu 16.04

23/03/2020 por Igor García Deja un comentario

Contenidos

  • 1 Introducción
  • 2 Escenario
  • 3 Instalación del servidor
  • 4 Configuración del servidor
    • 4.1 Reenvío de paquetes
      • 4.1.1 Activar reenvío de paquetes manualmente
      • 4.1.2 Activar reenvío de paquetes de forma permanente
    • 4.2 Generación de claves
  • 5 Iniciar el servicio
  • 6 Configuración del cliente
  • 7 Información adicional

Introducción

Existen varios tipos de VPN: PPTP, L2TP/IPSEC, OpenVPN, SSTP, IKEV2.

Tipos de VPN
Tipos de VPN. Fuente: vpnmentor.com

La más recomendada habitualmente es OpenVPN, pero ha surgido recientemente un nuevo tipo de VPN llamada Wireguard que destaca por su seguridad, facilidad de configuración y sobretodo velocidad.

Veamos como instalarla y configurarla.

Escenario

Vamos a instalar un servidor VPN en Ubuntu 18.04 (también ha funcionado con Ubuntu 16.04) que nos permitirá conectarnos desde fuera, con Windows 10, no solo al propio servidor VPN, sino a cualquier equipo que esté en su misma red.

Con esta configuración no podremos salir a internet desde la red del cliente con la IP del servidor VPN, aunque con Wireguard es posible.

Vamos a usar estos datos en nuestro ejemplo:

  • Red del servidor: 192.168.0.0/24
  • Red del cliente remoto: 192.168.1.0/24
  • Red virtual: 192.168.2.0/24
  • Puerto UDP: 51820

Instalación del servidor

Wireguard no se encuentra todavía en los paquetes de Ubuntu, así que debemos añadir primero el repositorio antes de instalar:

sudo add-apt-repository ppa:wireguard/wireguard
sudo apt update
sudo apt install wireguard

Si todo ha ido bien veremos un mensaje como este:

wireguard:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.15.0-91-generic/updates/dkms/

depmod...

DKMS: install completed.
Configurando wireguard (1.0.20200319-0ppa1~18.04) ...
Configurando linux-headers-generic (4.15.0.91.83) ...

Configuración del servidor

Reenvío de paquetes

Si queremos acceder a la LAN del servidor remoto, debemos activar primero el reenvío de paquetes:

Activar reenvío de paquetes manualmente

sysctl -w net.ipv4.ip_forward=1

Activar reenvío de paquetes de forma permanente

Editar archivo /etc/sysctl.conf y poner a 1 la variable net.ipv4.ip_forward

Generación de claves

La conexión entre el servidor y los clientes de wireguard se hace mediante pares de claves, como con SSH.

Generaremos, como root, las claves para nuestro servidor en /etc/wireguard

cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
chmod 600 privatekey publickey

Creamos el fichero de configuración /etc/wireguard/wg0.conf con este contenido:

[Interface]
Address = 192.168.2.1/24
SaveConfig = true
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
PrivateKey = XXXXXXXXXX

[Peer]
#Equipo 1
PublicKey = YYYYYYYYYYY
AllowedIPs = 192.168.2.0/24
[Peer]
#Equipo 2
PublicKey = ZZZZZZZZZZ
AllowedIPs = 192.168.2.5/32
  • Interface: en esta sección añadimos los datos del servidor
    • Address: Define la IP privada de la red virtual que queremos asignar al servidor.
    • SaveConfig: Le decimos al archivo de configuración que se actualice automaticamente cada vez que se conecte un nuevo cliente.
    • ListenPort: El puerto UDP usado para las conexiones entrantes que deberemos abrir en nuestro router.
    • PostUp y PostDown: aquí indicamos comandos que se ejecutarán al activar y desactivar la interface respectivamente.
    • PrivateKey: La clave privada que generamos anteriormente en el archivo privatekey y que no debemos compartir con nadie.
  • Peer: aquí añadimos los datos de los clientes que se conectarán
    • PublicKey: la clave pública del cliente. Luego veremos como generarla.
    • AllowedIPs: Podemos indicar la subred de la IP que tendrá el cliente (ejemplo equipo 1) o la IP concreta que tendrá (ejemplo equipo 2).

Iniciar el servicio

Podemos iniciar el servicio con este comando:

wg-quick up wg0

Se creará una nueva interfaz de red llamada wg0 con la IP que hemos configurado antes. Podemos comprobarlo con ifconfig o ip a.

Otro comando para comprobar si se está ejecutando la VPN y obtener otra información interesante, como tiempo de funcionamiento y cantidad de datos transferidos:

wg show

Para parar el servicio:

wg-quick down wg0

Para configurar el arranque automático de la VPN al reiniciar:

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0.service

Configuración del cliente

Wireguard es compatible con gran cantidad de Sistemas Operativos: Windows, Linux, MacOS e incluso Android e iOS. Vamos a ver como configurarlo en Windows:

Descargamos e instalamos el cliente oficial desde la página de Wireguard

Abrimos la aplicación y seleccionamos la opción Add empty tunnel y nos aparecerá una ventana con nuestra clave pública y privada y espacio para escribir la configuración, que en nuestro caso sería:

[Interface]
PrivateKey = XXXXXXXXXXX
Address = 192.168.2.13/24

[Peer]
PublicKey = ZZZZZZZZZZZZZ
Endpoint = 88.200.20.20:51820
AllowedIPs = 192.168.2.0/24, 192.168.0.0/24
  • Interface: en esta sección añadimos los datos de nuestro equipo:
    • PrivateKey: Nuestra clave privada. Se genera automaticamente.
    • Address: La IP privada que tendrá nuestro equipo en la red virtual.
  • Peer: aquí añadimos los datos del servidor al que nos conectaremos
    • PublicKey: la clave pública del servidor.
    • Endpoint: IP pública y puerto del servidor.
    • AllowedIPs: Aquí indicaremos dos subredes: la virtual y la subred real donde se encuentra el servidor. Esta última es muy importante, ya que sin ella no podremos acceder a la LAN del servidor.

Le asignamos un nombre al túnel, guardamos los cambios y damos a Activate.

Podemos comprobar si la conexión se ha realizado desde la pestaña Log de Wireguard, o bien haciendo ping a la IP local del servidor o de algún otro equipo de su red.

OJO, aunque ponga estado sea Activo y el icono en verde, no significa que tengamos realmente conexión con el servidor. Comprobar en transfer que tenemos datos tanto enviados como recibidos y la pestaña de log para comprobar errores.

El cliente conserva su estado tras apagar o reiniciar el ordenador: si teniamos la conexión activa seguirá estando activa y si estaba desactivada así seguirá. Incluso si cerramos el programa, tras reiniciar no se abrirá.

Información adicional

  • Web oficial Wireguard
  • Con este instalador podemos instalar y configurar Wireguard muy fácilmente.
  • Wiki de Arch Linux
  • Wintune: Cliente alternativo
  • Tunsafe: Cliente alternativo

Categorías: Linux, Sistemas Etiquetas: Ubuntu, VPN, wireguard

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Categorías

Enlaces

  • Abode PDF Reader
  • Actualizar a Windows 10
  • Anti Ransomware
  • Aviso de cookies
  • Browser Diet
  • Buenas practicas Ransomware
  • BuiltWith
  • cdlibre
  • Chocolatey
  • CIDR Calculator
  • Consulta numero móvil
  • Cual es mi IP
  • Descarga de DLL
  • Descarga de OCX
  • Descarga de RPM
  • Descarga de Windows y Office
  • Descarga de Windows y Office
  • DistroTest
  • Dumo
  • explainshell
  • File-extensions
  • FileHippo
  • Flash Player
  • Geolocalización Multi IP
  • HDDScan
  • htaccesstools
  • Ip Location
  • Kaspersky
  • LinuxServer.io
  • Máquinas Virtuales OSBoxes
  • Microsoft Doc
  • ms-vnext: Windows y Office
  • Ninite
  • Nirsoft
  • Open Source Alternatives
  • Patch My PC
  • PC decrapifier
  • PCI Lookup
  • PCI-IDS
  • pcidatabase
  • PCIids
  • Port Listener
  • Portable Freeware
  • Router Passwords
  • Saber tipografía de una foto
  • Shodan
  • Ssega
  • Sumo
  • Sysinternals
  • SystemRescueCd
  • Test de velocidad
  • The eye
  • Virustotal
  • Windows ISO
  • Windows Mini
  • WizTree
  • You Get Signal

Contacto

  • 615 654 407
  • info@gigastur.com

Entradas recientes

  • Crear directorios automáticamente con comandos Linux
  • Arreglar error MySQL: field doesn't have a default value
  • Ubuntu desktop: Mostrar información del sistema al iniciar sesión SSH
  • Añadir cuarta columna en homepage del tema WordPress Genesis Enterprise Pro
  • Solucionar error de Windows "El sistema no puede encontrar el archivo"

Control remoto

  • Control remoto Windows
  • Control remoto MAC
  • Control remoto Linux AMD64
  • Control remoto Linux i386
  • Versión completa
  • Servicio
  • Servicio (descarga alternativa)

Aviso legal | Política de privacidad | Política de cookies

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los ajustes.

Gigastur
Powered by  GDPR Cookie Compliance
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de terceros

Esta web utiliza Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.

¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!