Configurazione di una VPN simplice cù WireGuard è Raspberry Pi cum'è servitore

Dapoi u WireGuard diventa parte di core futuru Linux 5.6, aghju decisu di vede cumu integrà megliu sta VPN cù u mo Router LTE / Puntu di Accessu nantu à Raspberry Pi.

Equipment

  • Raspberry Pi 3 cù modulu LTE è IP publicu. Ci sarà un servitore VPN (in seguitu chjamatu camminatore di bordu)
  • Telefunu accesu Android, chì deve aduprà una VPN per tutte e cumunicazioni
  • Laptop Linux, chì deve aduprà solu VPN in a rete

Ogni dispositivu chì si cunnetta à una VPN deve esse capace di cunnette à ogni altru dispositivu. Per esempiu, un telefunu deve esse capace di cunnette à un servitore web in un laptop se i dui dispositi sò parti di una rete VPN. Se a configurazione hè abbastanza simplice, pudete pensà à cunnette à una VPN è un desktop (via Ethernet).

Considérant que les connexions filaires et sans fil deviennent moins sécurisées au fil du temps (attacchi mirati, Attaccu di pirate di KRACK WPA2 и Attaccu Dragonblood contru WPA3), Pensu seriamente à aduprà WireGuard per tutti i mo dispositivi, ùn importa micca l'ambiente in cui funzionanu.

Stallazione di u software

WireGuard furnisce pacchetti precompilati per a maiò parte di e distribuzioni Linux, Windows и macOSApplicazioni per Android è iOS sò furniti per mezu di l'app store.

Aghju l'ultima Fedora Linux 31, è prima di installallu eru troppu pigru per leghje u manuale. Aghju appena trovu i pacchetti. wireguard-tools, installati, è dopu ùn pudia capisce perchè nunda ùn funzionava. Ulteriori investigazioni anu revelatu chì ùn aghju micca u pacchettu installatu wireguard-dkms (cù un driver di rete), è ùn era micca in u repository di a mo distribuzione.

Se avessi lettu l'istruzzioni, avissi pigliatu i passi ghjusti:

$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools

Aghju a distribuzione Raspbian Buster installata nantu à u mo Raspberry Pi, ci hè digià un pacchettu wireguard, stallà lu:

$ sudo apt install wireguard

À u telefunu Android Aghju installatu l'applicazione WireGuard VPN da u catalogu ufficiale di Google App Store.

Installazione di chjave

Per autenticà i nodi Wireguard Utilizza un schema simplice di chjave privata/publica per autenticà i nodi VPN. Pudete generà facilmente chjave VPN cù u cumandamentu seguente:

$ wg genkey | tee wg-laptop-private.key |  wg pubkey > wg-laptop-public.key
$ wg genkey | tee wg-server-private.key |  wg pubkey > wg-server-public.key
$ wg genkey | tee wg-mobile-private.key |  wg pubkey > wg-mobile-public.key

Questu ci dà trè coppie chjave (sei schedari). Ùn avemu micca riferitu à i schedari in cunfigurazione, ma copià u cuntenutu quì: ogni chjave hè una linea in base64.

Creazione di un schedariu di cunfigurazione per un servitore VPN (Raspberry Pi)

A cunfigurazione hè abbastanza simplice, aghju creatu u schedariu seguente /etc/wireguard/wg0.conf:

[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <copy private key from wg-server-private.key>
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wwan0 -j MASQUERADE

[Peer]
# laptop
PublicKey = <copy public key from wg-laptop-public.key>
AllowedIPs = 10.200.200.2/32

[Peer]
# mobile phone
PublicKey = <copy public key from wg-mobile-public.key>
AllowedIPs = 10.200.200.3/32

Un paru di note:

  • In i lochi apprupriati, avete bisognu di inserisce e linee da i schedari cù i chjavi
  • A mo VPN usa una gamma interna 10.200.200.0/24
  • Per squadre PostUp/PostDown Aghju una interfaccia di rete esterna wwan0, pudete avè una diversa (per esempiu, eth0)

A reta VPN hè facilmente criata cù u cumandimu seguente:

$ sudo wg-quick up wg0

Un picculu dettagliu: cum'è un servitore DNS, aghju utilizatu dnsmasq cunnessu à l'interfaccia di rete br0, Aghju aghjustatu ancu i dispositi wg0 à a lista di i dispusitivi permessi. In dnsmasq, questu hè fattu aghjunghjendu una nova linea cù l'interfaccia di rete à u schedariu di cunfigurazione /etc/dnsmasq.conf, per esempiu:

interface=br0
interface=wg0

Inoltre, aghju aghjustatu una regula iptable per permette u trafficu à u portu UDP d'ascolta (51280):

$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

Avà chì tuttu funziona, pudemu registrà u lanciamentu automaticu di u tunnel VPN:

$ sudo systemctl enable wg-quick@wg0.service

Cunfigurazione di u clientu laptop

In u laptop, crea un schedariu di cunfigurazione /etc/wireguard/wg0.conf cù i stessi paràmetri:

[Interface]
Address = 10.200.200.2/24
PrivateKey = <copy private key from wg-laptop-private.key>

[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820

Noti:

  • Invece di edgewalker, avete bisognu di specificà un òspite di u servitore IP publicu o VPN
  • Mettendu AllowedIPs nantu 10.200.200.0/24, usemu solu a VPN per accede à a reta interna. U trafficu à tutti l'altri indirizzi IP / servitori continuarà à passà per i canali aperti "regulari". U servitore DNS pre-configuratu nantu à u laptop serà ancu usatu.

Per teste è lanciamentu automaticu, usemu i stessi cumandamenti wg-quick и systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.service

Cunfigurà u cliente per Android-telefonu

Per u telefunu Android Creemu un schedariu di cunfigurazione assai simile (chjamemulu mobile.conf):

[Interface]
Address = 10.200.200.3/24
PrivateKey = <copy private key from wg-mobile-private.key>
DNS = 10.200.200.1
        
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820

A cuntrariu di a cunfigurazione di u laptop, u telefunu deve aduprà u nostru servitore VPN cum'è u so servitore DNS (string DNS), è ancu passà tuttu u trafficu attraversu u tunnel VPN (AllowedIPs = 0.0.0.0/0).

Invece di cupià u schedariu à u vostru dispositivu mobile, pudete cunvertisce in un codice QR:

$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf

U codice QR serà mandatu à a cunsola cum'è ASCII. Pò esse scansionatu da l'applicazione. Android VPN è cunfigurà automaticamente u tunnel VPN.

cunchiusioni

cutter WireGuard simplicemente magicu paragunatu à OpenVPN.

Source: www.habr.com

Cumprate un hosting affidabile per i siti cù prutezzione DDoS, servitori VPS VDS 🔥 Cumprate un hosting di siti web affidabile cù prutezzione DDoS, servitori VPS VDS | ProHoster