Oggi rispondo alle domande: "Come installare un server VPN?" - "Come posso creare una VPN accessibile solo ai dipendenti della mia azienda?"
11-11-2021

Installare un server VPN per me รจ sempre stata un’impresa impossibile!

Probabilmente la mia difficoltร  era dovuta alla conoscenza poco profonda degli strumenti o della tecnologia. Ogni guida che ho letto a riguardo era solo una serie infinita di regole da impostare sul firewall, comandi su comandi, compilazioni di dipendenze e spesso, quando mi cimentavo nell’impresa, ottenevo quell’errore che chi aveva scritto il tutorial non aveva nemmeno previsto ๐Ÿ˜จ sconforto infinito.

Sicuramente รจ una procedura lunga e non alla portata di tutti.

A quanto pare perรฒ con WireGuard la situazione รจ cambiata e di molto.

Come ho giร  detto in altri miei articoli se hai esigenze molto piccole (pochi host in rete ed utilizzo non commerciale) esistono alcuni servizi che ti permettono di raggiungere lo stesso scopo senza preoccuparti di nulla o quasi.

In ogni caso, avere un tuo server VPN aziendale ti permette di avere il controllo totale sulla privacy dei tuoi dati. Infatti hai la certezza che i dati scambiati all’interno della VPN passino solo e soltanto attraverso i tuoi server, nessun servizio di terze parti รจ coinvolto.

Andiamo per gradi perรฒ…

Cos’รจ WireGuard?

Cito la homepage del progetto:

WireGuardยฎ is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry.

In sostanza WireGuard รจ una moderna implementazione open source di un server VPN che promette:

  • crittografia avanzata;
  • performance;
  • facilitร  di utilizzo.

Installazione WireGuard

Prerequisiti:

  • Docker e docker-compose installato sul tuo server (se non sai come fare prova a dare un'occhiata qui);
  • 5 min del tuo tempo ๐Ÿ™‚

Iniziamo!

Crea una nuova cartella (scegli tu il nome, per questo esempio io l’ho chiamata wgtest) ed al suo interno crea un nuovo file con nome docker-compose.yml.

All’interno del file appena creato copia le seguenti righe:

version: '3'

services:

  wireguard:
    image: ghcr.io/linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Rome
      - SERVERURL=<URL_O_IP_DEL_TUO_SERVER>
      - SERVERPORT=51820
      - PEERS=<NUMERO_DI_UTENTI_DA_CREARE>
      - PEERDNS=auto
      - INTERNAL_SUBNET=10.13.13.0
      - ALLOWEDIPS=0.0.0.0/0
    volumes:
      - ./config:/config
      - ./lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: always

Sostituisci:

  • <URL_O_IP_DEL_TUO_SERVER>: ip o un CNAME che punta all’ip del tuo server;
  • <NUMERO_DI_UTENTI_DA_CREARE>: il numero di utenti che vuoi creare e che potranno utilizzare la VPN;
  • se preferisci puoi anche cambiare la porta della VPN, io ho scelto la 51820, ricordati perรฒ di aggiornare sia la variabile SERVERPORT che le regole in ports.

Non ti resta che avviare il container docker:

docker-compose up -d

Il container ti creerร  tanti utenti quanti ne hai specificati nella variabile PEERS. Questo รจ un log di esempio con PEERS=2:

Clicca per espandere
root@vmi567676:~/wgtest# dc up
Creating wireguard-test ... done
Attaching to wireguard-test
wireguard-test    | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
wireguard-test    | [s6-init] ensuring user provided files have correct perms...exited 0.
wireguard-test    | [fix-attrs.d] applying ownership & permissions fixes...
wireguard-test    | [fix-attrs.d] done.
wireguard-test    | [cont-init.d] executing container initialization scripts...
wireguard-test    | [cont-init.d] 01-envfile: executing... 
wireguard-test    | [cont-init.d] 01-envfile: exited 0.
wireguard-test    | [cont-init.d] 10-adduser: executing... 
wireguard-test    | 
wireguard-test    | -------------------------------------
wireguard-test    |           _         ()
wireguard-test    |          | |  ___   _    __
wireguard-test    |          | | / __| | |  /  \ 
wireguard-test    |          | | \__ \ | | | () |
wireguard-test    |          |_| |___/ |_|  \__/
wireguard-test    | 
wireguard-test    | 
wireguard-test    | Brought to you by linuxserver.io
wireguard-test    | -------------------------------------
wireguard-test    | 
wireguard-test    | To support the app dev(s) visit:
wireguard-test    | WireGuard: https://www.wireguard.com/donations/
wireguard-test    | 
wireguard-test    | To support LSIO projects visit:
wireguard-test    | https://www.linuxserver.io/donate/
wireguard-test    | -------------------------------------
wireguard-test    | GID/UID
wireguard-test    | -------------------------------------
wireguard-test    | 
wireguard-test    | User uid:    1000
wireguard-test    | User gid:    1000
wireguard-test    | -------------------------------------
wireguard-test    | 
wireguard-test    | [cont-init.d] 10-adduser: exited 0.
wireguard-test    | [cont-init.d] 30-config: executing... 
wireguard-test    | Uname info: Linux 5bc81d64769a 4.15.0-141-generic #145-Ubuntu SMP Wed Mar 24 18:08:07 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
wireguard-test    | **** It seems the wireguard module is already active. Skipping kernel header install and module compilation. ****
wireguard-test    | **** Server mode is selected ****
wireguard-test    | **** External server address is set to mytraefik.progressify.dev ****
wireguard-test    | **** External server port is set to 51821. Make sure that port is properly forwarded to port 51820 inside this container ****
wireguard-test    | **** Internal subnet is set to 10.13.13.0 ****
wireguard-test    | **** AllowedIPs for peers 0.0.0.0/0 ****
wireguard-test    | **** PEERDNS var is either not set or is set to "auto", setting peer DNS to 10.13.13.1 to use wireguard docker host's DNS. ****
wireguard-test    | **** No wg0.conf found (maybe an initial install), generating 1 server and 2 peer/client confs ****
wireguard-test    | grep: /config/peer*/*.conf: No such file or directory
wireguard-test    | PEER 1 QR code:
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–„โ–„โ–„โ–„โ–„ โ–ˆโ–ˆ โ–„โ–„โ–ˆ โ–„โ–ˆ   โ–€โ–„โ–€โ–ˆ    โ–ˆโ–€ โ–„โ–ˆโ–„โ–€ โ–€โ–ˆโ–ˆ   โ–ˆ  โ–„โ–„โ–„ โ–ˆโ–ˆ โ–„โ–„โ–„โ–„โ–„ โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆ   โ–ˆ โ–ˆโ–€โ–ˆโ–ˆ   โ–€โ–„ โ–ˆ  โ–€โ–€โ–€โ–„โ–ˆ   โ–€โ–€   โ–„    โ–„โ–€โ–€ โ–€  โ–„โ–„ โ–ˆโ–ˆ โ–ˆ   โ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–„โ–„โ–„โ–ˆ โ–ˆโ–„โ–€โ–€โ–„โ–ˆโ–€ โ–ˆ โ–ˆโ–„โ–€โ–ˆโ–„โ–€โ–ˆ โ–ˆ โ–„โ–„โ–„ โ–„โ–ˆโ–„โ–€โ–ˆ โ–„โ–ˆโ–ˆโ–ˆโ–„ โ–„โ–„โ–€โ–€โ–„โ–ˆโ–ˆ โ–ˆโ–„โ–„โ–„โ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆโ–„โ–ˆโ–„โ–€โ–„โ–ˆ โ–€ โ–ˆโ–„โ–ˆโ–„โ–ˆ โ–ˆ โ–€ โ–ˆโ–„โ–ˆ โ–ˆ โ–ˆ โ–ˆ โ–€โ–„โ–€ โ–ˆ โ–€ โ–ˆโ–„โ–ˆ โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–„โ–ˆโ–ˆโ–ˆ โ–„ โ–€ โ–€โ–„  โ–ˆ  โ–„ โ–ˆโ–€โ–ˆโ–€  โ–ˆ โ–„    โ–€  โ–€ โ–ˆ โ–€โ–€ โ–€ โ–ˆ โ–€โ–„โ–€โ–ˆโ–€โ–ˆโ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–„โ–€โ–„โ–„โ–€ โ–€โ–„โ–€โ–€โ–€โ–ˆโ–ˆโ–€โ–„โ–ˆ โ–€โ–ˆ โ–€โ–€โ–ˆโ–ˆโ–ˆโ–€โ–€โ–€ โ–€โ–„โ–ˆโ–€โ–„โ–„โ–„โ–ˆโ–€โ–ˆโ–€โ–ˆโ–ˆโ–ˆ โ–„โ–„โ–„ โ–„  โ–€โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–ˆโ–€โ–ˆโ–„โ–ˆโ–„โ–„โ–ˆโ–ˆโ–€โ–ˆโ–€ โ–„ โ–ˆโ–ˆโ–€โ–ˆโ–„  โ–ˆโ–„โ–€โ–€ โ–„  โ–ˆโ–„โ–ˆโ–ˆโ–ˆโ–„โ–„โ–„โ–€โ–„โ–ˆโ–€โ–ˆ  โ–ˆโ–„ โ–€โ–„โ–ˆ   โ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–€โ–€โ–ˆ โ–„โ–€ โ–ˆโ–€โ–ˆโ–„โ–„โ–€โ–„โ–€  โ–€โ–€โ–€โ–ˆ โ–€โ–€  โ–„โ–€  โ–ˆโ–„โ–€โ–ˆโ–„โ–„โ–„โ–„ โ–ˆโ–ˆ โ–ˆโ–„โ–€ โ–„โ–€ โ–„โ–ˆ  โ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–ˆโ–€ โ–€โ–„โ–„  โ–„โ–ˆโ–„ โ–ˆโ–€ โ–„ โ–„โ–€โ–ˆโ–ˆโ–€โ–€ โ–„โ–€โ–„โ–ˆโ–€ โ–€โ–ˆ โ–„โ–„  โ–ˆโ–ˆโ–€  โ–€โ–€ โ–„ โ–€ โ–ˆโ–€โ–ˆโ–ˆโ–ˆ  โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–„ โ–€โ–„โ–ˆโ–„โ–„โ–„โ–ˆ โ–€โ–„โ–€โ–ˆโ–€โ–„ โ–„ โ–ˆ  โ–„โ–ˆ โ–€โ–„โ–„ โ–„โ–ˆโ–ˆ โ–ˆโ–€โ–„ โ–€โ–€โ–„โ–ˆ โ–€   โ–€ โ–ˆ โ–ˆโ–„  โ–€โ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–„ โ–€โ–ˆ โ–„โ–„โ–€โ–„โ–€  โ–€โ–„ โ–ˆโ–€โ–ˆโ–€โ–€โ–ˆโ–€โ–€โ–„โ–€โ–„  โ–ˆโ–ˆ โ–„โ–ˆโ–€ โ–ˆ โ–€ โ–€โ–€   โ–€โ–ˆโ–€โ–ˆโ–€โ–€ โ–ˆโ–€ โ–„ โ–€โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–„ โ–€โ–ˆโ–„โ–€โ–ˆโ–€โ–€โ–„โ–ˆโ–€ โ–ˆโ–ˆ  โ–€ โ–€โ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–€โ–„โ–€โ–„โ–ˆ โ–„โ–ˆโ–€โ–ˆโ–€โ–„โ–ˆ โ–€โ–„โ–„โ–„โ–„โ–€โ–„โ–€โ–„   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–€โ–„โ–ˆโ–ˆ โ–„โ–„โ–„โ–„โ–„โ–„โ–€   โ–ˆโ–ˆโ–„โ–ˆโ–ˆโ–ˆโ–„ โ–€โ–€โ–€โ–ˆ โ–ˆโ–€โ–€ โ–€โ–„โ–„โ–„โ–„โ–ˆโ–ˆโ–„โ–€ โ–€โ–„ โ–ˆโ–€  โ–„โ–€ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–„โ–ˆโ–€ โ–„โ–„โ–„ โ–„โ–€โ–„  โ–ˆโ–€โ–„โ–€   โ–„โ–€โ–ˆโ–„โ–€ โ–„โ–„โ–„  โ–€โ–„โ–„โ–€โ–„โ–„ โ–€โ–ˆโ–ˆโ–€โ–„โ–ˆโ–„ โ–ˆ โ–„โ–„โ–„   โ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–€ โ–ˆ โ–ˆโ–„โ–ˆ  โ–ˆ โ–„โ–ˆโ–€โ–€โ–ˆโ–€ โ–€โ–€โ–„โ–€โ–„ โ–ˆ โ–ˆโ–„โ–ˆ โ–„โ–€ โ–„โ–€โ–„โ–€โ–€โ–€โ–€โ–ˆ  โ–ˆโ–€โ–ˆโ–€ โ–ˆโ–„โ–ˆ โ–€โ–ˆ โ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–€ โ–€โ–ˆโ–„โ–„โ–„   โ–ˆโ–ˆ โ–„โ–„โ–ˆโ–€โ–ˆ โ–„โ–ˆโ–ˆโ–€โ–„ โ–ˆโ–„โ–„  โ–„โ–€โ–€โ–€โ–„  โ–„โ–ˆโ–„โ–„โ–€โ–€โ–€โ–„โ–„โ–€โ–ˆโ–„โ–„โ–„โ–„โ–„โ–ˆโ–€โ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–€โ–„โ–„โ–„โ–„ โ–ˆโ–€โ–„โ–ˆโ–ˆโ–€ โ–ˆโ–„โ–€ โ–€โ–ˆโ–„โ–€โ–„โ–ˆโ–€ โ–€โ–€โ–ˆโ–€โ–„โ–€โ–„โ–„   โ–€ โ–€ โ–€ โ–€โ–ˆโ–ˆโ–€โ–ˆโ–€ โ–„โ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–„ โ–„โ–ˆโ–€โ–„โ–ˆโ–ˆโ–„โ–„โ–€ โ–ˆโ–€โ–ˆโ–ˆโ–„ โ–ˆโ–ˆโ–„โ–ˆ โ–€โ–„โ–ˆโ–€โ–ˆ  โ–€โ–€โ–„ โ–„โ–ˆโ–„ โ–€โ–„  โ–ˆโ–€โ–„โ–„โ–€ โ–„โ–ˆโ–€โ–ˆโ–€  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ   โ–ˆโ–€โ–„โ–„โ–„โ–„   โ–€โ–„โ–€  โ–„ โ–„โ–„  โ–„โ–€โ–„โ–„โ–„โ–ˆโ–€ โ–€โ–„ โ–„โ–„ โ–€โ–ˆ โ–€โ–€ โ–ˆ  โ–„ โ–€โ–ˆ  โ–ˆโ–ˆโ–ˆโ–€โ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–€โ–€โ–„โ–ˆโ–„โ–„โ–€โ–„ โ–€ โ–„โ–€ โ–„โ–„โ–ˆโ–ˆโ–„ โ–ˆโ–ˆ โ–ˆโ–„โ–ˆ โ–„ โ–€โ–„ โ–„ โ–„โ–€โ–€โ–ˆโ–ˆ โ–€โ–ˆโ–ˆโ–€โ–„ โ–ˆโ–„โ–ˆโ–„   โ–ˆโ–€โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–ˆโ–ˆ  โ–ˆโ–„โ–„โ–€โ–ˆโ–„ โ–€โ–€โ–„ โ–„โ–„โ–„โ–€โ–„โ–€โ–€โ–€ โ–ˆโ–ˆโ–ˆโ–„โ–ˆโ–„ โ–€ โ–ˆโ–ˆ โ–„โ–ˆโ–ˆโ–€โ–€โ–€โ–„โ–€โ–€โ–„โ–ˆโ–ˆโ–€โ–ˆ โ–„ โ–ˆโ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–„โ–€โ–„โ–€โ–€โ–„โ–ˆโ–€   โ–€โ–„โ–€โ–„โ–„โ–ˆโ–ˆโ–„ โ–€โ–€โ–„โ–ˆโ–ˆโ–„ โ–„ โ–„โ–ˆโ–€โ–„โ–ˆ โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆโ–„  โ–ˆ โ–€โ–ˆ โ–„โ–ˆ โ–€โ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–„โ–€โ–„โ–ˆโ–„โ–€โ–€ โ–„ โ–ˆ โ–„โ–€โ–€โ–„โ–€โ–€  โ–ˆโ–ˆโ–€โ–ˆโ–€โ–„โ–€โ–ˆโ–€โ–„โ–€ โ–€โ–„ โ–€โ–€โ–€โ–€โ–„  โ–ˆ โ–€โ–ˆโ–€โ–„   โ–„โ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–€ โ–€โ–€โ–„โ–„โ–ˆโ–€โ–€โ–ˆโ–„โ–€โ–€ โ–„  โ–ˆโ–€โ–€โ–„โ–€ โ–„โ–ˆโ–„โ–„โ–ˆ  โ–ˆ โ–ˆโ–„โ–„โ–„โ–€โ–„  โ–€โ–€ โ–ˆ โ–„โ–€โ–„ โ–ˆโ–ˆโ–ˆโ–ˆ  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–ˆ โ–ˆโ–„  โ–€ โ–ˆโ–ˆโ–ˆโ–„โ–ˆโ–ˆโ–ˆโ–„  โ–„ โ–„โ–„โ–„  โ–„โ–„โ–„โ–€  โ–„  โ–€ โ–ˆ โ–„โ–ˆ  โ–„โ–„โ–„ โ–€โ–€โ–€ โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–„โ–„โ–„โ–„โ–„ โ–ˆ โ–„โ–ˆโ–ˆโ–€โ–„โ–€โ–ˆ โ–ˆโ–ˆ โ–„โ–„โ–€ โ–€โ–ˆ โ–ˆโ–„โ–ˆ โ–„โ–„โ–ˆโ–„โ–„ โ–ˆ โ–€โ–€โ–ˆโ–ˆโ–€โ–ˆโ–ˆ โ–„ โ–ˆโ–„โ–ˆ    โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆ   โ–ˆ โ–ˆโ–ˆ โ–€โ–„โ–€โ–„ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–„โ–€โ–€ โ–„ โ–„ โ–„โ–€โ–€โ–ˆโ–„โ–ˆโ–€โ–„โ–„โ–ˆโ–€ โ–„โ–ˆโ–„โ–ˆโ–ˆโ–„โ–„ โ–„ โ–€โ–€โ–ˆโ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–„โ–„โ–„โ–ˆ โ–ˆโ–€ โ–€โ–„  โ–€โ–ˆโ–„โ–ˆ โ–„โ–„โ–„โ–„ โ–ˆโ–„ โ–€   โ–„ โ–€โ–€ โ–„โ–ˆโ–„โ–„ โ–ˆโ–ˆโ–€ โ–€โ–ˆโ–€ โ–€โ–ˆโ–ˆโ–„  โ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆโ–„โ–ˆโ–„โ–ˆโ–ˆโ–„โ–ˆโ–ˆโ–„โ–„โ–„โ–„โ–ˆโ–ˆโ–ˆโ–„โ–ˆโ–„โ–ˆโ–„โ–„โ–„โ–ˆโ–„โ–ˆโ–„โ–ˆโ–ˆโ–„โ–„โ–ˆโ–„โ–ˆโ–„โ–„โ–„โ–ˆโ–ˆโ–„โ–ˆโ–ˆโ–ˆโ–„โ–ˆโ–ˆโ–„โ–ˆโ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | PEER 2 QR code:
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–„โ–„โ–„โ–„โ–„ โ–ˆโ–ˆ โ–„โ–„โ–ˆโ–€โ–ˆ โ–„โ–€โ–€   โ–ˆโ–„โ–„  โ–ˆโ–€ โ–„โ–ˆโ–„โ–€ โ–€โ–ˆโ–ˆ   โ–ˆ  โ–„โ–„โ–„ โ–ˆโ–ˆ โ–„โ–„โ–„โ–„โ–„ โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆ   โ–ˆ โ–ˆโ–€โ–ˆโ–ˆ   โ–€โ–„โ–€โ–ˆ   โ–€โ–€โ–„โ–„   โ–€โ–€   โ–„    โ–„โ–€โ–€ โ–€  โ–„โ–„ โ–ˆโ–ˆ โ–ˆ   โ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–„โ–„โ–„โ–ˆ โ–ˆโ–„โ–€โ–ˆโ–„โ–„โ–€ โ–ˆ โ–ˆโ–„โ–€โ–ˆโ–„โ–€โ–ˆ โ–ˆ โ–„โ–„โ–„ โ–„โ–ˆโ–„โ–€โ–ˆ โ–„โ–ˆโ–ˆโ–ˆโ–„ โ–„โ–„โ–€โ–€โ–„โ–ˆโ–ˆ โ–ˆโ–„โ–„โ–„โ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆโ–„โ–ˆโ–„โ–€ โ–ˆ โ–€ โ–ˆโ–„โ–ˆโ–„โ–ˆ โ–ˆ โ–€ โ–ˆโ–„โ–ˆ โ–ˆ โ–ˆ โ–ˆ โ–€โ–„โ–€ โ–ˆ โ–€ โ–ˆโ–„โ–ˆ โ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–„โ–ˆโ–ˆโ–€ โ–„ โ–€ โ–ˆ โ–ˆ โ–ˆ  โ–„ โ–ˆโ–€โ–ˆโ–€  โ–ˆ โ–„    โ–€  โ–€ โ–ˆ โ–€โ–€ โ–€ โ–ˆ โ–€โ–€ โ–€โ–€โ–€โ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–„โ–€โ–„โ–„โ–„โ–„โ–€โ–„โ–ˆโ–„โ–€โ–ˆโ–ˆโ–€โ–„โ–ˆ โ–€โ–ˆ โ–€โ–€โ–ˆโ–ˆโ–ˆโ–€โ–€โ–€ โ–€โ–„โ–ˆโ–€โ–„โ–„โ–„โ–ˆโ–€โ–ˆโ–€โ–ˆโ–ˆโ–ˆ โ–ˆ โ–ˆ โ–„  โ–€โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–ˆ โ–ˆโ–„โ–ˆโ–„โ–€โ–„ โ–ˆโ–ˆโ–€ โ–„ โ–ˆโ–ˆโ–€โ–ˆโ–„  โ–ˆโ–„โ–€โ–€ โ–„  โ–ˆโ–„โ–ˆโ–ˆโ–ˆโ–„โ–„โ–„โ–€โ–„โ–ˆโ–€โ–ˆ  โ–ˆโ–„ โ–€โ–„โ–ˆ โ–„โ–„โ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–„ โ–„โ–ˆ โ–„โ–€ โ–ˆโ–€โ–ˆโ–„โ–„โ–€โ–„โ–€โ–ˆโ–€โ–€โ–€ โ–„ โ–€โ–€  โ–„โ–€  โ–ˆโ–„โ–€โ–ˆโ–„โ–„โ–„โ–„ โ–€โ–€โ–„โ–ˆ โ–€ โ–„โ–€ โ–„โ–ˆโ–€ โ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ  โ–ˆโ–ˆโ–€โ–„โ–„  โ–„โ–ˆโ–„ โ–ˆโ–€ โ–„โ–€โ–„โ–ˆโ–„โ–€โ–€ โ–€โ–„โ–€โ–„โ–ˆโ–€ โ–€โ–ˆ โ–„โ–„  โ–ˆโ–ˆโ–€โ–€  โ–€โ–€โ–„ โ–€ โ–ˆโ–€โ–ˆโ–ˆโ–„  โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–€โ–„ โ–ˆ โ–„โ–„โ–ˆ โ–€โ–„โ–€โ–ˆโ–€โ–ˆ โ–„ โ–ˆโ–„ โ–„โ–„โ–ˆโ–€โ–„โ–„ โ–„โ–ˆโ–ˆ โ–ˆโ–€โ–„ โ–€โ–€โ–„โ–ˆ โ–€  โ–€  โ–ˆ โ–ˆโ–„  โ–€ โ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–„โ–€โ–ˆโ–„โ–€โ–„โ–€โ–„โ–€ โ–€โ–ˆโ–„ โ–ˆโ–€โ–ˆโ–€โ–€โ–ˆโ–€โ–€โ–„โ–€โ–„  โ–ˆโ–ˆ โ–„โ–ˆโ–€ โ–ˆ โ–€ โ–€โ–€   โ–€โ–ˆโ–€โ–ˆโ–€โ–€ โ–ˆโ–€ โ–„โ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–„ โ–€ โ–„โ–ˆโ–ˆ  โ–„โ–„โ–€โ–ˆโ–ˆโ–ˆ  โ–€ โ–€โ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–€โ–„โ–€โ–„โ–ˆ โ–„โ–ˆโ–€โ–ˆโ–€โ–„โ–ˆ โ–€โ–„โ–„โ–„โ–„โ–€ โ–ˆ    โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–€โ–„โ–ˆ โ–€โ–„  โ–ˆโ–„โ–„โ–€โ–ˆ  โ–ˆโ–ˆโ–„โ–ˆโ–ˆโ–ˆโ–„ โ–€โ–€โ–€โ–ˆ โ–ˆโ–€โ–€ โ–€โ–„โ–„โ–„โ–„โ–ˆโ–ˆโ–„โ–€ โ–€โ–„ โ–ˆโ–€ โ–€โ–„โ–€ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–„โ–ˆโ–€ โ–„โ–„โ–„ โ–ˆโ–€โ–€โ–„โ–€ โ–€โ–„โ–€   โ–„โ–€โ–ˆโ–„โ–€ โ–„โ–„โ–„  โ–€โ–„โ–„โ–€โ–„โ–„ โ–€โ–ˆโ–ˆโ–€โ–„โ–ˆโ–„ โ–„ โ–„โ–„โ–„   โ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–€โ–€โ–„ โ–ˆโ–„โ–ˆ โ–€  โ–„โ–€ โ–€โ–ˆโ–€ โ–€โ–€โ–„โ–€โ–„ โ–ˆ โ–ˆโ–„โ–ˆ โ–„โ–€ โ–„โ–€โ–„โ–€โ–€โ–€โ–€โ–ˆ  โ–ˆโ–€โ–ˆโ–ˆ โ–ˆโ–„โ–ˆ โ–€โ–ˆ โ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–€โ–„   โ–„โ–„โ–„ โ–ˆโ–ˆ โ–„โ–„โ–ˆโ–€โ–€โ–„โ–„โ–ˆโ–„โ–ˆโ–„ โ–ˆโ–„โ–„  โ–„โ–€โ–€โ–€โ–„  โ–„โ–ˆโ–„โ–„โ–€โ–€โ–€ โ–„โ–ˆโ–ˆโ–„โ–„โ–„โ–„โ–„โ–ˆโ–€โ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–€โ–„โ–„ โ–€ โ–ˆโ–€โ–„โ–ˆโ–ˆโ–€โ–€    โ–ˆโ–€ โ–€โ–„โ–ˆโ–€ โ–€โ–€โ–ˆโ–€โ–„โ–€โ–„โ–„   โ–€  โ–ˆโ–€  โ–ˆโ–ˆโ–€โ–ˆโ–€ โ–„โ–€โ–ˆโ–€โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ  โ–ˆโ–ˆโ–ˆโ–€โ–„โ–ˆโ–ˆโ–„โ–„โ–€ โ–ˆโ–€โ–€โ–„โ–„ โ–„โ–ˆโ–„โ–ˆโ–€โ–ˆโ–„โ–ˆโ–€โ–ˆ  โ–€โ–€โ–„  โ–ˆโ–„ โ–€โ–„โ–€ โ–ˆโ–€โ–„โ–„โ–€ โ–„โ–ˆโ–€โ–ˆโ–€  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–„  โ–ˆโ–€โ–„โ–„โ–„โ–„  โ–„ โ–„โ–€  โ–„ โ–„โ–„  โ–„โ–€โ–„โ–„โ–„โ–ˆโ–€ โ–€โ–„ โ–„โ–„ โ–€โ–ˆ โ–€โ–€ โ–ˆ  โ–„ โ–€โ–ˆ  โ–ˆโ–ˆโ–ˆโ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–€โ–€โ–„โ–ˆโ–„โ–„โ–€โ–ˆ โ–€โ–€โ–ˆโ–€ โ–„โ–„โ–ˆโ–ˆโ–„ โ–ˆโ–ˆ โ–ˆโ–„โ–ˆ โ–„ โ–€โ–„ โ–„ โ–„โ–€โ–€โ–ˆโ–ˆ โ–€โ–ˆโ–ˆโ–€โ–„ โ–ˆโ–„โ–ˆโ–„   โ–ˆโ–€โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–ˆโ–ˆ โ–ˆโ–€โ–„โ–„โ–€โ–„ โ–„โ–„โ–€โ–€ โ–„โ–„โ–„โ–€โ–„โ–€โ–€โ–€ โ–ˆโ–ˆโ–ˆโ–„โ–ˆโ–„ โ–€ โ–ˆโ–ˆ โ–„โ–ˆโ–ˆโ–€โ–€โ–€โ–„โ–€โ–€โ–„โ–ˆโ–ˆโ–€โ–ˆ โ–„ โ–ˆโ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–„โ–€โ–„โ–ˆโ–„โ–„โ–ˆโ–€โ–„ โ–€โ–„ โ–„โ–„โ–„โ–ˆโ–ˆโ–„ โ–€โ–€โ–„โ–ˆโ–ˆโ–„ โ–„ โ–„โ–ˆโ–€โ–„โ–ˆ โ–€โ–€โ–€โ–€โ–€โ–€โ–ˆโ–„  โ–ˆ โ–€โ–ˆ โ–„โ–ˆ โ–€โ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–ˆโ–€โ–€โ–€โ–„โ–€ โ–€โ–€ โ–ˆโ–ˆโ–„โ–€โ–€โ–„โ–€โ–€  โ–ˆโ–ˆโ–€โ–ˆโ–€โ–„โ–€โ–ˆโ–€โ–„โ–€ โ–€โ–„ โ–€โ–€โ–€โ–€โ–„  โ–ˆ โ–€โ–ˆโ–ˆโ–€โ–€ โ–€ โ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–€ โ–€โ–€โ–„โ–„โ–ˆโ–„โ–€โ–ˆโ–„โ–€โ–€ โ–„  โ–„โ–€โ–€ โ–€ โ–„โ–ˆ โ–„โ–ˆ  โ–ˆ โ–ˆโ–„โ–„โ–„โ–€โ–„  โ–€โ–€ โ–€โ–„ โ–€โ–„โ–„โ–€โ–€โ–„โ–€โ–€ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–„ โ–ˆโ–„  โ–€ โ–ˆโ–ˆโ–ˆโ–„ โ–ˆโ–€   โ–„ โ–„โ–„โ–„  โ–„โ–„โ–„โ–€  โ–„ โ–„โ–€โ–€  โ–€โ–„  โ–„โ–„โ–„   โ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–„โ–„โ–„โ–„โ–„ โ–ˆ โ–„โ–ˆโ–ˆโ–€โ–„โ–€โ–ˆโ–€โ–ˆโ–ˆโ–„โ–ˆโ–„โ–€โ–„โ–€โ–ˆ โ–ˆโ–„โ–ˆ โ–„โ–„โ–ˆโ–„โ–„ โ–ˆ โ–€โ–€โ–ˆโ–„โ–€โ–„โ–„ โ–„ โ–ˆโ–„โ–ˆ   โ–„โ–€โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆ   โ–ˆ โ–ˆโ–ˆ โ–€ โ–„โ–„ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–„โ–€โ–€ โ–„ โ–„ โ–„โ–€โ–€โ–ˆโ–„โ–ˆโ–€โ–„โ–„โ–ˆโ–€ โ–„โ–ˆโ–„โ–ˆโ–ˆโ–„โ–„ โ–„ โ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–„โ–„โ–„โ–ˆ โ–ˆโ–€โ–„โ–„ โ–€ โ–„โ–ˆโ–„โ–ˆ โ–„โ–„โ–„โ–„ โ–ˆโ–„ โ–€   โ–„ โ–€โ–€ โ–„โ–ˆโ–„โ–„ โ–ˆโ–ˆโ–€ โ–€โ–ˆโ–€ โ–€โ–ˆโ–ˆโ–„  โ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–ˆโ–„โ–ˆโ–„โ–ˆโ–„โ–ˆโ–„โ–ˆโ–„โ–„โ–„โ–„โ–ˆโ–ˆโ–ˆโ–„โ–ˆโ–„โ–ˆโ–„โ–„โ–„โ–ˆโ–„โ–ˆโ–„โ–ˆโ–ˆโ–„โ–„โ–ˆโ–„โ–ˆโ–„โ–„โ–„โ–ˆโ–ˆโ–„โ–ˆโ–ˆโ–ˆโ–„โ–ˆโ–ˆโ–„โ–ˆโ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
wireguard-test    | [cont-init.d] 30-config: exited 0.
wireguard-test    | [cont-init.d] 90-custom-folders: executing... 
wireguard-test    | [cont-init.d] 90-custom-folders: exited 0.
wireguard-test    | [cont-init.d] 99-custom-scripts: executing... 
wireguard-test    | [custom-init] no custom files found exiting...
wireguard-test    | [cont-init.d] 99-custom-scripts: exited 0.
wireguard-test    | [cont-init.d] done.
wireguard-test    | [services.d] starting services
wireguard-test    | [services.d] done.
wireguard-test    | [#] ip link add wg0 type wireguard
wireguard-test    | [#] wg setconf wg0 /dev/fd/63
wireguard-test    | [#] ip -4 address add 10.13.13.1 dev wg0
wireguard-test    | [#] ip link set mtu 1420 up dev wg0
wireguard-test    | [#] ip -4 route add 10.13.13.3/32 dev wg0
wireguard-test    | [#] ip -4 route add 10.13.13.2/32 dev wg0
wireguard-test    | [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
wireguard-test    | .:53
wireguard-test    | CoreDNS-1.8.4
wireguard-test    | linux/amd64, go1.16.4, 053c4d5
 

In console mi ha creato esattamente 2 utenti (PEER 1 e PEER 2) con i relativi QR code pronti per essere scansionati.

Fine. Non devi fare altro! Bello vero?

Per configurare la tua VPN sui tuoi dispositivi scarica la varie app client direttamente dal sito ufficiale di WireGuard: https://www.wireguard.com/install/

Con le app mobile devi solo scansionare il QR e la VPN si configurerร  automaticamente sui tuoi dispositivi.

Su PC invece devi scaricare il file che si trova nella cartella config/peerX/peerX.conf (alla X sostituisci il relativo numero, nel mio caso saranno disponibili solo peer1 e peer2). Diamo un occhiata a quel che รจ successo nella cartella dove abbiamo creato il docker-compose.yml:

root@vmi567676:~/wgtest# ll
total 20
drwxr-xr-x  4 root root 4096 Nov 10 17:25 ./
drwx------ 13 root root 4096 Nov 10 17:23 ../
drwxr-xr-x  9 1000 1000 4096 Nov 10 17:25 config/
-rw-r--r--  1 root root  599 Nov 10 17:25 docker-compose.yml
drwxr-xr-x  3 root root 4096 Nov 10 17:25 lib/
root@vmi567676:~/wgtest# 

Il container ha creato 2 volumes: lib e config, posizioniamoci nella cartella config:

root@vmi567676:~/wgtest# cd config/
root@vmi567676:~/wgtest/config# ll
total 44
drwxr-xr-x 9 1000 1000 4096 Nov 10 17:25 ./
drwxr-xr-x 4 root root 4096 Nov 10 17:25 ../
drwxr-xr-x 2 1000 1000 4096 Nov 10 17:25 coredns/
drwxr-xr-x 2 root root 4096 Nov 10 17:25 custom-cont-init.d/
drwxr-xr-x 2 root root 4096 Nov 10 17:25 custom-services.d/
-rw------- 1 1000 1000  162 Nov 10 17:25 .donoteditthisfile
drwx------ 2 1000 1000 4096 Nov 10 17:25 peer1/
drwx------ 2 1000 1000 4096 Nov 10 17:25 peer2/
drwxr-xr-x 2 1000 1000 4096 Nov 10 17:25 server/
drwxr-xr-x 2 1000 1000 4096 Nov 10 17:25 templates/
-rw------- 1 1000 1000  585 Nov 10 17:25 wg0.conf

Come ti dicevo nella mia installazione ci sono le cartelle peer1 e peer2 con all’interno:

  • il file di configurazione (il .conf)
  • il QR code pronto da scansionare
Peer1 - Clicca per espandere
root@vmi567676:~/wgtest/config# ll peer1
total 24
drwx------ 2 1000 1000 4096 Nov 10 17:25 ./
drwxr-xr-x 9 1000 1000 4096 Nov 10 17:25 ../
-rw------- 1 1000 1000  258 Nov 10 17:25 peer1.conf
-rw------- 1 1000 1000 1025 Nov 10 17:25 peer1.png
-rw------- 1 1000 1000   45 Nov 10 17:25 privatekey-peer1
-rw------- 1 1000 1000   45 Nov 10 17:25 publickey-peer1
 
Peer2 - Clicca per espandere
root@vmi567676:~/wgtest/config# ll peer2
total 24
drwx------ 2 1000 1000 4096 Nov 10 17:25 ./
drwxr-xr-x 9 1000 1000 4096 Nov 10 17:25 ../
-rw------- 1 1000 1000  258 Nov 10 17:25 peer2.conf
-rw------- 1 1000 1000 1025 Nov 10 17:25 peer2.png
-rw------- 1 1000 1000   45 Nov 10 17:25 privatekey-peer2
-rw------- 1 1000 1000   45 Nov 10 17:25 publickey-peer2
 

Conclusioni

Le promesse di WireGuard sono tutte mantenute!

Installazione e configurazione in tempi record, performance al top, non si puรฒ chiedere di meglio.

Ho diviso questo articolo in 2 parti. La seconda puntata riguarda l’installazione di una web dashboard. Il pannello web in questione permette di configurare WireGuard senza doverti collegare ogni volta alla console SSH per creare nuovi utenti.

Spero di riuscire a pubblicarlo al piรน presto.

Nel frattempo puoi rileggerti qualche vecchio articolo o se vuoi restare in contatto con me puoi unirti al mio canale Telegram dove pubblico periodicamente sconti, news tech ed altro ๐Ÿ™‚

Sei riuscito a configurare il tuo server VPN?

AP

ย 

Antonio Porcelli @progressify

Antonio Porcelli

@progressify

Leave a reply

Se non visualizzi il blocco dei commenti รจ perchรจ non hai accettato i cookies.
Cancella le preferenze del tuo browser per questo sito, aggiorna la pagina ed accetta i cookies.