Instalar Servidor VPN Wireguard - UDP Soporte y Comunicaciones (2024)

Wireguard es un protocolo VPN de código abierto alternativo a IPSec, IKEv2 y OpenVPN. Wireguard está diseñado para sistemas operativos Linux y Unix, se ejecuta en el espacio del kernel de Linux, lo que hace que Wireguard sea más rápido y fiable. Wireguard se utiliza para crear conexiones de túnel seguras entre dos ordenadores o más.

Wireguard pretende sustituir a protocolos VPN como IPSec, IKEv2 y OpenVPN. Wireguard es más ligero, más rápido, más fácil de configurar y más eficaz. Y al mismo tiempo, Wiregurad no ha sacrificado el aspecto de seguridad del protocolo VPN. Wireguard es compatible con la criptografía moderna, como el marco del protocolo Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF y construcciones seguras de confianza.

Habilitar el módulo del kernel Wireguard

La última versión de Rocky Linux 9 viene con el kernel Linux 5.14 por defecto, que lleva incorporado el módulo del kernel ‘wireguard’. En este paso, habilitarás el módulo del kernel Wirguard e instalarás las ‘wireguard-tools’ en tu servidor Rocky Linux.

Ejecuta el siguiente comando modprobe para activar el módulo del núcleo «wireguard». A continuación, comprueba la lista de módulos del núcleo habilitados mediante el comando ‘lsmod’.

Shell

1

2

sudo modprobe wireguard

lsmod | grep wireguard

Para cargar el módulo wireguard de forma permanente, puedes ejecutar el siguiente comando para añadir el nuevo archivo de configuración al directorio‘/etc/modules-load.d/’. Esto cargará el módulo del núcleo wireguard permanentemente al arrancar el sistema.

Shell

1

sudo echo wireguard > /etc/modules-load.d/wireguard.conf

Una vez activado el módulo del núcleo‘wireguard‘, debes instalar el paquete‘wireguard-tools‘ para gestionar el servidor Wireguard. Esto incluye la generación de claves, el arranque del servidor Wireguard y muchas cosas más.

Ejecuta el siguiente comando dnf para instalar«wireguard-tools«. Cuando te pida confirmación, introduce y y pulsa ENTER para continuar.

Shell

1

sudo dnf install wireguard-tools

Generar el par de claves del servidor y del cliente

Las herramientas wireguard proporcionan una línea de comandos en el espacio de usuario para gestionar el despliegue de Wireguard. Hay dos utilidades principales proporcionadas por wireguard-tools:

  • wg– una utilidad de línea de comandos que puede utilizarse para configurar la interfaz de túnel de wireguard. Con esta utilidad, puedes generar pares de claves, verificar el tiempo de ejecución y la interfaz actuales de wireguard, y configurar la interfaz de túnel de Wireguard.
  • wg-quick– una sencilla línea de comandos que puede gestionar la interfaz Wireguard. Puedes iniciar, detener y reiniciar cualquier interfaz wireguard mediante el comando wg-quick.

El primer paso tras habilitar el módulo del núcleo wireguard e instalar wireguard-tools es generar pares de claves para el servidor y el cliente Wireguard. Y esto se puede hacer mediante la utilidad de comandos‘wg‘.

Generar el par de claves del servidor

Ejecuta el siguiente comando ‘wg genkey’ para generar la clave privada del servidor ‘/etc/wireguard/servidor.key‘. A continuación, cambia el permiso por defecto a 0400 para deshabilitar la escritura y ejecución de otras personas y grupos.

Shell

1

2

wg genkey | sudo tee /etc/wireguard/server.key

sudo chmod 0400 /etc/wireguard/server.key

Después, ejecuta el siguiente comando para generar la clave pública para el servidor wireguard ‘/etc/wireguard/servidor.pub‘. La clave pública de wireguard se deriva de la clave privada de wireguard ‘/etc/wireguard/servidor.key‘.

Shell

1

sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub

Salida:

Instalar Servidor VPN Wireguard - UDP Soporte y Comunicaciones (1)

A continuación, verifica las claves pública y privada del servidor wireguard mediante el comando cat que aparece a continuación.

Shell

1

2

cat /etc/wireguard/server.key

cat /etc/wireguard/server.pub

Puede que tengas una clave diferente para las claves pública y privada, pero la salida es similar a ésta:

Instalar Servidor VPN Wireguard - UDP Soporte y Comunicaciones (2)

Generación del par de claves del cliente

Tras generar el par de claves del servidor wireguard, generarás uno nuevo para el cliente. En este ejemplo, generarás un nuevo par de claves con el nombre«cliente1«.

Ejecuta el siguiente comando para crear un nuevo directorio ‘/etc/wireguard/clientes‘. Este directorio se utilizará para almacenar los pares de claves de cliente.

Shell

1

mkdir -p /etc/wireguard/clients

A continuación, ejecuta el siguiente comando ‘wg genkey’ para generar la clave privada del cliente/etc/wireguard/clientes/cliente1.key‘. A continuación, genera la clave pública del cliente ‘/etc/wireguard/clientes/cliente1.pubmediante el comando‘wg pubkey‘.

1

2

wg genkey | tee /etc/wireguard/clients/client1.key

cat /etc/wireguard/clients/client1.key | wg pubkey | tee /etc/wireguard/clients/client1.pub

Salida:

Instalar Servidor VPN Wireguard - UDP Soporte y Comunicaciones (3)

Ahora verifica las claves pública y privada de ambos clientes utilizando el comando cat que aparece a continuación.

Shell

1

2

cat /etc/wireguard/clients/client1.key

cat /etc/wireguard/clients/client1.pub

La clave debe ser similar para el par de claves del servidor y del cliente wireguard, que es una clave de tipo base64.

Configurar el servidor Wireguard

En este paso, crearás un nuevo archivo de configuración para el servidor wireguard, configurarás la interfaz wireguard y configurarás la conexión peer para las conexiones cliente. Esto incluye la configuración de la subred VPN wireguard, la dirección IP del servidor wireguard y la dirección IP para el cliente par.

Para empezar, crea un nuevo archivo de configuración del servidor wireguard/etc/wireguard/wg0.conf‘ utilizando el siguiente comando del editor nano.

Shell

1

sudo nano /etc/wireguard/wg0.conf

Añade las siguientes líneas al archivo y asegúrate de cambiar la‘PrivateKey‘ por la clave privada del servidor Wirguard‘server.key‘. Con esto, también configurarás la interfaz del servidor Wireguard para que se ejecute en la dirección IP‘10.8.0.1‘. Y para la conexión con el cliente, utilizarás el puerto UDP51820, en el ejemplo utilizaremos el 1194. Y, por último, también activarás el parámetroSaveConfigque garantizará que cualquier cambio se guarde en el archivo de configuración de Wireguard, incluso cuando la interfaz Wireguard esté apagada.

Shell

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

[Interface]

Address = 10.210.0.1/16

SaveConfig = true

ListenPort = 1194

# Wireguard Server private key - server.key

PrivateKey = iHaI5bkEbW8wqTQDbU/KITGhxtKoiezWVohVZsKwj3w=

#cliente1

[Peer]

# Wireguard client public key - client1.pub

PublicKey = iWskvxyj+QK4185xO6Z2Fb0XYo1jGyiyI3iKbyGTkT8=

#IP para el cliente

AllowedIPs = 10.210.0.2/32

#cliente2

[Peer]

PublicKey = iWskvxyj+QK4185xO6Z2Fb0XYo1jGyiyI3iKbyGTkT2=

AllowedIPs = 10.210.0.238/32

Configurar el reenvío de puertos

Para configurar cualquier servidor VPN, debes habilitar el reenvío de puertos en tu servidor de despliegue. En este paso, habilitarás el reenvío de puertos en tu servidor Rocky Linux mediante el archivo ‘/etc/sysctl.conf’.

Abre el archivo de configuración ‘/etc/sysctl.conf‘ utilizando el editor nano que aparece a continuación.

Shell

1

sudo nano /etc/sysctl.conf

Añade las siguientes líneas al final del mismo. Estas líneas habilitarán el reenvío de puertos tanto para IPv4 como para IPv6. Tanto si necesitas IPv6 como si no, puedes desactivarlo poniendo un comentario‘#’al principio de la línea.

Shell

1

2

# Port Forwarding for IPv4

net.ipv4.ip_forward=1

# Port forwarding for IPv6
net.ipv6.conf.all.forwarding=1

Guarda el archivo y sal del editor cuando hayas terminado.

Ahora ejecuta el siguiente comando‘sysctl‘ para aplicar los cambios en el archivo‘/etc/sysctl.conf‘.

Shell

1

sudo sysctl -p

Y recibirás una salida similar a ésta:

Instalar Servidor VPN Wireguard - UDP Soporte y Comunicaciones (4)

Con el Reenvío de Puertos activado, a continuación configurarás un cortafuegos que se utilizará para enrutar el tráfico de los clientes a la interfaz de red específica del servidor wireguard.

Configurar el cortafuegos

Si Desactivas el firewalld, debes saltarte este paso.

En este paso configurarás el firewalld en el servidor Wireguard. Enrutarás el tráfico de los clientes a la interfaz de red específica del servidor wireguard a través de firewalld. Y esto se puede hacer añadiendo nuevas reglas a firewalld de forma permanente, o utilizando los parámetros‘PostUp‘ y‘PostDown’de wireguard en el archivo de configuración de Wireguard.

Antes de empezar, ejecuta el siguiente comando ip para comprobar la interfaz de red por defecto que se utiliza para acceder a Internet en el servidor wireguard.

Shell

1

ip route show default

Recibirás una salida similar a ésta – En este ejemplo, el servidor wireguard utilizaba la interfazeth0para el acceso a Internet. Puede que tengas nombres diferentes de interfaces de red en tu servidor.

Instalar Servidor VPN Wireguard - UDP Soporte y Comunicaciones (5)

A continuación, abre el archivo de configuración del servidor wireguard ‘/etc/wireguard/wg0.conf‘ utilizando el siguiente comando del editor nano.

Shell

1

sudo nano /etc/wireguard/wg0.conf

Añade las siguientes líneas a la sección ‘[Interfaz]‘.

Shell

1

2

3

PostUp = firewall-cmd --zone=public --add-masquerade

PostUp = firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i wg -o eth0 -j ACCEPT

PostUp = firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o eth0 -j MASQUERADE

PostDown = firewall-cmd –zone=public –remove-masquerade
PostDown = firewall-cmd –direct –remove-rule ipv4 filter FORWARD 0 -i wg -o eth0 -j ACCEPT
PostDown = firewall-cmd –direct –remove-rule ipv4 nat POSTROUTING 0 -o eth0 -j MASQUERADE

Guarda y sal del archivo.

  • El parámetro ‘PostUp‘ se ejecutará cada vez que el servidor Wirguard inicie el túnel VPN.
  • El parámetro «PostDown» se ejecutará cada vez que el servidor Wireguard detenga el túnel VPN.
  • El comando‘firewall-cmd –zone=public –add-masquerade‘ habilitará el enmascaramiento en firewalld.
  • El comando ‘firewall-cmd–direct –add-rule ipv4 filter FORWARD 0 -i wg -o eth0 -j ACCEPT‘ añadirá firewalld rich-rule para el tráfico desde la interfaz wireguard a eth0.
  • El comando‘firewall-cmd –direct –add-rule ipv4 nat POSTROUTING 0 -o eth0 -j MASQUERADE‘ habilitará NAT a través de la interfaz eth0.
  • En el parámetro ‘PostDown‘, todos estos comandos se utilizan para revertir los cambios en firewalld eliminando las reglas que se aplicaron durante la ejecución de los comandos en el parámetro‘PostUp‘.

A continuación, ejecuta el siguiente comando firewall-cmd para abrir el puerto UDP51820que se utilizará para los clientes de wirguard. A continuación, recarga el firewalld para aplicar los cambios.

Shell

1

2

sudo firewall-cmd --add-port=51820/udp --permanent

sudo firewall-cmd --reload

Por último, verifica las reglas del firewalld mediante el siguiente comando firewall-cmd.

Shell

1

sudo firewall-cmd --list-all

Deberías recibir una salida como ésta – El puerto 51820/udp del cliente wireguard añadido al firewalld.

Instalar Servidor VPN Wireguard - UDP Soporte y Comunicaciones (6)

Con esto, ya has habilitado el reenvío de puertos en el servidor wireguard y configurado el firewalld para enrutar el tráfico desde la interfaz wireguard a la interfaz de red específica. Ahora estás preparado para iniciar el servidor wireguard.

Iniciar el servidor wireguard

En este paso, iniciarás y habilitarás el servidor Wireguard. También verificarás el servidor Wireguard y verificarás la interfaz wg0 que creará el servicio Wireguard.

Ejecuta la siguiente utilidad de comandos systemctl para iniciar y habilitar el servidor wireguard. Esto iniciará el servicio wireguard y creará una nueva interfaz wireguard‘wg0‘.

Shell

1

2

sudo systemctl start wg-quick@wg0.service

sudo systemctl enable wg-quick@wg0.service

Verifica el servidor wireguard utilizando el siguiente comando systemctl. Esto asegurará que el servidor wireguard se está ejecutando.

Shell

1

sudo systemctl status wg-quick@wg0.service

Y recibirás una salida similar a ésta – El servidor wireguard está ahora habilitado y se ejecutará automáticamente al arrancar. Y el estado del servidor wireguard es en ejecución.

Instalar Servidor VPN Wireguard - UDP Soporte y Comunicaciones (7)

También puedes verificar la interfaz «wg0» creada por el servidor wireguard mediante el siguiente comando ip.

Shell

1

ip a show wg0

Recibirás la interfaz detallada dewg0, que coincide con el archivo de configuración del servidor wireguard‘/etc/wireguard/wg0.conf’. La interfazwg0debe tener una dirección IP‘10.8.0.1‘ como se describe en el archivo de configuración de wireguard ‘/etc/wireguard/wg0.conf‘.

Instalar Servidor VPN Wireguard - UDP Soporte y Comunicaciones (8)

Otro método que se puede utilizar para iniciar el servidor wireguard es utilizar la utilidad de comandos ‘wg-quick‘ que proporciona wireguard-tools.

Ejecuta ‘wg-quickup‘ para iniciar el servidor wireguard y‘wg-quick down‘ para detenerlo. Además, asegúrate de especificar la ruta completa de tu archivo de configuración del servidor wireguard ‘/etc/wireguard/wg0.conf‘.

Shell

1

2

sudo wg-quick up /etc/wireguard/wg0.conf

sudo wg-quick down /etc/wireguard/wg0.conf

En este punto, el servidor wireguard se está ejecutando en el servidor Linux Rocky. En el siguiente paso, configurarás una máquina cliente y la conectarás al servidor wireguard.

Configurar el cliente y conectarlo

Crear llave privada del cliente

Shell

1

wg genkey | tee /etc/wireguard/clients/nombrecliente.key

Crear llave publica

Shell

1

cat /etc/wireguard/clients/nombrecliente.key | wg pubkey | tee /etc/wireguard/clients/nombrecliente.pub

Configurar la llave publica (nombre.key) en el servidor en la sección de Peers

Instalacion para Centos 7

Shell

1

2

3

4

yum update

yum install epel-release https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

yum install yum-plugin-elrepo

yum install kmod-wireguard wireguard-tools

Crear el archivo pa conectarse al servidor VPN

Shell

1

nano /etc/wireguard/wg0.conf

Contenido

Shell

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

[Interface]

# IP del cliente - Debe ser igual a la definida en el servidor

Address = 10.210.0.2/16

# Private key for the client - client1.key

PrivateKey = 4FsCdtKr9GrLiX7zpNEYeqodMa5oSeHwH/m9hsNNfEs=

[Peer]

# Public key of the Wireguard server - server.pub

PublicKey = aK+MQ48PVopb8j1Vjs8Fvgz5ZIG2k6pmVZs8iVsgr1E=

# Trafico que va a enrutar por la VPN

AllowedIPs = 10.210.0.0/16

# Public IP address of the Wireguard Server

Endpoint = vpnserver.com:1194

# Sending Keepalive every 25 sec

PersistentKeepalive = 25

Cambiar los permisos

Shell

1

chmod 600 /etc/wireguard/wg0.conf

Subir la VPN

Shell

1

wg-quick up wg0

Ver la configuración en el servidor y en el cliente

Shell

1

wg show

Referencia:

Cómo instalar Wireguard VPN en Rocky Linux 9

https://www.hostafrica.co.za/blog/linux/install-wireguard-vpn-centos-7/

https://reintech.io/blog/setting-up-vpn-server-wireguard-rocky-linux-9#google_vignette

Instalar Servidor VPN Wireguard - UDP Soporte y Comunicaciones (2024)
Top Articles
Latest Posts
Article information

Author: Annamae Dooley

Last Updated:

Views: 6250

Rating: 4.4 / 5 (45 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Annamae Dooley

Birthday: 2001-07-26

Address: 9687 Tambra Meadow, Bradleyhaven, TN 53219

Phone: +9316045904039

Job: Future Coordinator

Hobby: Archery, Couponing, Poi, Kite flying, Knitting, Rappelling, Baseball

Introduction: My name is Annamae Dooley, I am a witty, quaint, lovely, clever, rich, sparkling, powerful person who loves writing and wants to share my knowledge and understanding with you.