
En este articulo vamos a crear una red vpn con Wireguard en imagen enigma2 Openpli. Wireguard esta disponible en Openpli su instalacion a partir de la version 8.0.
Una VPN (Virtual Private Network) o en nuestro idioma Red Privada Virtual es una tecnología que nos permite crear un túnel virtual que emula una conexión directa a nuestro router aunque nos encontremos a kilómetros de distancia. Es decir nos permite conectarnos desde fuera de red a nuestro receptor como si estuviéramos en nuestra red.
Esta conexión pues nos permitirá de una manera cifrada conectarnos a nuestro receptor como si estuviéramos en nuestra red para por ejemplo:
- Realizar streaming
- ftp
- sftp
- telnet
- ssh
Instalación de Wireguard
Openpli en sus repositorios han incluido todo lo necesario para su instalacion, por lo que vamos a ver como realizar la misma para ello accedemos por terminal y ejecutamos los siguientes comandos:
opkg update
opkg install wireguard-tools
opkg install wireguard-tools-bash-completion
Generar Claves
Una vez realizada la instalacion de wireguard en primer lugar vamos a generar claves para el servidor y para un cliente para ello ejecutaremos los siguientes comandos:
1. En primer lugar nos debemos situar en el directorio de wireguard para ello ejecutamos:
cd /etc/wireguard
2. Damos permiso al directorio
umask 077
3. Ahora generamos claves
wg genkey > server_private_key
wg pubkey > server_public_key < server_private_key
wg genkey > client1_private_key
wg pubkey > client1_public_key < client1_private_key
Ahora con el comando siguiente podemos ver que se nos han creado los 4 archivos:
ls
Con un editor de textos podemos abrir cada archivo para ver su contenido, donde observaremos que cada archivo tendra una key por ejemplo:
server_private_key: 11111111
server_public_key:2222222
client1_private_key:3333333
client1_public_key:444444444
Configurar Servidor Wireguard en Openpli
Ahora vamos a realizar la configuracion del servidor Wireguard en Openpli para ello vamos a realizar los siguientes pasos.
1. Creamos un archivo llamado wg0.conf en /etc/wireguard con el siguiente contenido:
[Interface] Address = 123.123.123.1/24ListenPort = 3129
PrivateKey = 1111111 [Peer] PublicKey = 4444444
AllowedIPs = 123.123.123.2/32
- [Interface]: principio de los parametros de la interfaz servidor
- Address: Esta es la dirección IP virtual que tendrá el servidor VPN,nos la podemos inventar, pero de acuerdo a las reglas de las ips.
- ListenPort: Es el puerto que utilizará el servidor, el puerto que pongamos lo debemos redireccionar en nuestro router a la ip del receptor
- PrivateKey: es la clave privada del servidor que creamos antes.
- [Peer]: principio de los parametros para cliente
- PublicKey: Aquí va la clave pública del cliente que hemos generado antes.
- AllowedIPs: Esta es la dirección IP virtual que tendrá el cliente, repetando las normas de creacion ip y en concordancia con la dirección IP virtual que le hemos puesto al servidor.
Activación del Servidor
Una vez hemos creado el archivo de configuración del servidor Wireguard en openpli, ahora vamos a iniciarlo, para ello por terminal ejecutamos el comando:
wg-quick up wg0
En el caso que deseemos desactivarlo usaremos:
wg-quick down wg0
Para comprobar que todo es correcto podemos ejecutar el comando:
wg show
Si ejecutamos ifconfig observaremos que se nos ha creado una nueva red
Configurar un cliente
Ahora vamos a ver como crear un cliente, para ello en el directorio /etc/wireguard creamos un archivo en este ejemplo llamado cliente1.conf de la siguiente manera:
[Interface] Address = 123.123.123.2/32PrivateKey = 33333333
DNS = 8.8.8.8 [Peer] PublicKey = 22222222222
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = ippublica o dominio:3129
- [Interface]: Inicio parametros cliente
- Address: Aquí irá la dirección IP del cliente que permitimos en la sección AllowedIPs del archivo wg0.conf
- PrivateKey: Aquí debe ir la clave privada del cliente que se halla en el archivo (client_private_key).
- DNS: Aquí ponemos la dirección del servidor DNS que prefiramos usar.
- [Peer]: Se inicia la parte de configuración del cliente referenciando al Servidor Wireguard.
- PublicKey: Aquí ponemos la clave pública del servidor que está en el archivo «server_public_key».
- AllowedIPs: Podemos las direcciones IP que están ahí para permitir que todo tráfico pueda fluir por nuestro móvil.
- Endpoint: Aquí debemos poner nuestra ip publica o host dns y el puerto que hemos redireccionado en nuestro router.
Tras la creacion del archivo ahora desactivamos y activamos wireguard como vimos en la creacion del servidor.
Creacion de codigo QR
Para facilitar la creacion de los datos cliente en nuestro movil por ejemplo, tenemos la posibilidad de crear un codigo QR que tras instalar wireguard en nuestro movil podemo realizar la conexion leyendo dicho codigo QR.
Para ellos vamos a realizar los siguientes pasos:
1. Nos descargamos el siguiente archivo:
2. Lo descomprimimos en nuestro Pc e introducimos los archivos en nuestro receptor de la siguiente manera:
qrencode —- en /usr/bin
libpng12.so.0.50.0 —- en /usr/lib
libqrencode.so.3.4.3 —- en /usr/lib
3. Ahora ejecutamos los siguientes comandos:
chmod 777 /usr/bin/qrencode
ln -s /usr/lib/libqrencode.so.3.4.3 /usr/lib/libqrencode.so.3
ln -s /usr/lib/libpng12.so.0.50.0 /usr/lib/libpng12.so.0
Y ya podemos crear el codigo QR para ello ejecutamos el siguiente comando estando situados en etc/wireguard
qrencode -t ANSIUTF8 < cliente1.conf
Y ya lo tenemos todo listo
Realizar conexion desde el movil
Tras instalar wireguard en nuestro movil, vamos a ver que facil es establecer la conexion, para ello pulsamos en + para añadir una nueva
Ahora seleccionamos a traves de codigo QR
Ahora escanemos el codigo QR generado
a continuacion podemos poner un nombre a la conexion
Y ya podemos acceder a nuestro receptor como si estuviéramos en nuestra misma red.
root@vuzero:~# opkg install wireguard-tools
Collected errors:
* Solver encountered 1 problem(s):
* Problem 1/1:
* – nothing provides kernel-module-wireguard needed by wireguard-tools-1.0.20200319-r0.0.mips32el
*
* Solution 1:
* – do not ask to install a package providing wireguard-tools
root@vuzero:~#