Dapoi WireGuard
Equipment
- Raspberry Pi 3 cù modulu LTE è IP publicu. Ci sarà un servitore VPN (in seguitu chjamatu camminatore di bordu)
- Un telefunu Android chì deve aduprà una VPN per tutte e cumunicazioni
- Laptop Linux chì deve aduprà VPN solu in a reta
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 (
Stallazione di u software
WireGuard furnisce
Aghju l'ultime Fedora Linux 31 è era troppu pigra per leghje u manuale prima di stallà. Solu 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
Aghju installatu l'app nantu à u mo telefunu Android
Installazione di chjave
Per autentificà i nodi, Wireguard usa un schema simplice di chjave privata / publica per autentificà i nodi VPN. Pudete facilmente generà chjave VPN cù u cumandimu seguitu:
$ 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 [email protected]
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
nantu10.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 [email protected]
Configurazione di un cliente in un telefunu Android
Per un telefunu Android, creemu un schedariu di cunfigurazione assai simili (chiamemu 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à uscita à a cunsola cum'è ASCII. Pò esse scansatu da l'app Android VPN è stabilisce un tunnel VPN automaticamente.
cunchiusioni
L'installazione di WireGuard hè solu magica paragunata à OpenVPN.
Source: www.habr.com