Crea tu Servidor Wireguard #aprendiendoconblurt | Create your Wireguard Server #learningwithblurt

in blurtutorials •  4 years ago 

@freakeao (3).png


El día de hoy les traigo el tutorial de como instalar y configurar un servidor con Wireguard una solución VPN que podemos implementar para darle acceso a los nodos Witness para que se comuniquen con la Blockchain, actualmente la opción que tenemos implementada es totalmente privada y ha cumplido su función sin embargo una de las banderas de nuestra plataforma es acercar la tecnología a sus usuarios. Con este tutorial puedes hacer propuestas para manejar el acceso de los nodos a red y un sin fin de cosas más.

Instalación

El primer paso antes de realizar la parametrización de Wireguard es actualizar nuestro sistema operativo, tener como mínimo los paquetes esenciales para compilación y desarrollo, aunque esto no es algo obligatorio siempre requerimos algún compilador o herramienta, también requerimos conocer el manejo básico del Editor nano para realizar las modificaciones de archivos. Adicional a ello leer la guía y documentación oficial por si deseamos implementar algún tipo de red especial. Iniciamos

Actualización del Sistema

Si utilizamos Debian 10 o Ubuntu podemos usar los siguientes comandos

apt update && apt full-upgrade -y
apt-get install build-essential software-properties-common gnupg vnstat ifstat iftop atop ufw fail2ban

Instalación Wireguard

Wireguard se encuentra en los repositorios inestables de Debian por lo cual debemos agregarlo de forma manual y actualizar los repositorios para proceder a la instalación.

echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
apt update
apt install wireguard

Generación de Claves

En este apartado debemos generar las claves criptográficas con las cuales brindaremos acceso a los Peer, equipos, amigos o usuarios que desean conectarse a nuestro servidor. La clave privada jamás debe compartirse, por otro lado, la clave pública será la que compartamos con todos los usuarios. Para generar las claves ejecutamos los siguientes comandos y sobre todo debemos copiarla tal cual como se genera

cd /etc/wireguard
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
cat privatekey

clave.png

Configuración Wireguard

Para configurar Wireguard solo basta crear un archivo.conf con el nombre de la VPN que deseamos crear en mi caso yo la he nombrado Blurt. En este apartado debemos ingresar la clave pública que vamos a compartir con los nodos, adicional a eso se deben establecer reglas iptables para que pueda funcionar el trafico TCP/IP. En este archivo también se agrega la información de cada uno de los nodos que desea ingresar a la red, pero lo haremos en otra publicación

creación del archivo

nano /etc/wireguard/blurt.conf

dentro del archivo vamos a ingresar esta configuración plenamente funcional tomando en consideración el nombre de nuestra conexión. Se verá algo similar a la imagen adjunta.

[Interface]
PrivateKey = tu private key
Address = 192.168.x.x/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i blurt -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i blurt -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

asi.png

Administración VPN

Podemos usar dos comandos iniciar o detener el servicio

wg-quick up blurt
wg-quick down blurt

También podemos agregar al arranque del sistema nuestra configuración de VPN, y administrarla con los siguiente comandos

systemctl enable wg-quick@blurt
systemctl stop wg-quick@blurt
systemctl status wg-quick@blurt
wg show

Verificación

para verificar el estado de nuestra VPN usamos los comandos `wg show ` y `systemctl status wg-quick@blurt`

verificacion.png

Hasta acá podemos tener una configuración funcional de nuestro server con Wireguard quedando establecer normas de firewall con ufw y agregar nodos. Esto lo abordaremos en otro post.

c/c @jacobgadikian @ilazramusic @blurthispano

Imagen de Dan Nelson en Pixabay
Imagen de Josy Dom Alexis en Pixabay


SEPARADOR 1.png


@freakeao (3).png

Today I bring you the tutorial on how to install and configure a server with Wireguard a VPN solution that we can implement to give access to the Witness nodes to communicate with the Blockchain, currently the option we have implemented is totally private and has fulfilled its function however one of the flags of our platform is to bring technology closer to its users. With this tutorial you can make proposals to manage the access of the nodes to the network and many other things.

Installation

The first step before performing the parameterization of Wireguard is to update our operating system, to have at least the essential packages for compilation and development, although this is not mandatory we always require some compiler or tool, we also need to know the basic handling of the nano Editor to make file modifications. We also need to read the official guide and documentation in case we want to implement some special network. We start

System Upgrade

If we use Debian 10 or Ubuntu we can use the following commands

apt update && apt full-upgrade -y
apt-get install build-essential software-properties-common gnupg vnstat ifstat iftop atop ufw fail2ban

Wireguard installation

Wireguard is in the Debian unstable repositories so we must add it manually and update the repositories to proceed with the installation.

echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
apt update
apt install wireguard

Key Generation

In this section we must generate the cryptographic keys with which we will provide access to the Peer, teams, friends or users who want to connect to our server. The private key should never be shared, on the other hand, the public key will be the one we share with all the users. To generate the keys we execute the following commands and above all we must copy it as it is generated

cd /etc/wireguard
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
cat privatekey

key.png

Wireguard configuration

To configure Wireguard you only need to create a .conf file with the name of the VPN you want to create, in my case I have named it Blurt. In this section we must enter the public key that we are going to share with the nodes, in addition to that we must establish iptables rules so that the TCP/IP traffic can work. In this file we also add the information of each of the nodes that want to join the network, but we will do it in another publication.

creation of the file

nano /etc/wireguard/blurt.conf

inside the file we are going to enter this fully functional configuration taking into consideration the name of our connection. It will look something similar to the attached image.

[Interface]
PrivateKey = tu private key
Address = 192.168.x.x/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i blurt -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i blurt -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

asi.png

VPN Management

We can use two commands to start or stop the service

wg-quick up blurt
wg-quick down blurt

We can also add at system startup our VPN configuration, and manage it with the following commands

systemctl enable wg-quick@blurt
systemctl stop wg-quick@blurt
systemctl status wg-quick@blurt
wg show

Verification

to verify the status of our VPN we use the commands `wg show ` and `systemctl status wg-quick@blurt`.

verificacion.png

Up to this point we can have a functional configuration of our server with Wireguard, but we still need to establish firewall rules with ufw and add nodes. This will be covered in another post.

SEPARADOR 1.png


Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE BLURT!
Sort Order:  

Congratulations! This post has been upvoted by the @blurtcurator communal account,
You can request a vote every 12 hours from the #getupvote channel in the official Blurt Discord.Don't wait to join ,lots of good stuff happening there.