Dapoi u WireGuard core futuru Linux 5.6, aghju decisu di vede cumu integrà megliu sta VPN cù u mo .
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 (, и ), Pensu seriamente à aduprà WireGuard per tutti i mo dispositivi, ùn importa micca l'ambiente in cui funzionanu.
Stallazione di u software
WireGuard furnisce 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 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.keyQuestu 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/32Un 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/PostDownAghju 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=wg0Inoltre, aghju aghjustatu una regula iptable per permette u trafficu à u portu UDP d'ascolta (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPTAvà chì tuttu funziona, pudemu registrà u lanciamentu automaticu di u tunnel VPN:
$ sudo systemctl enable wg-quick@wg0.serviceCunfigurazione 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:51820Noti:
- Invece di edgewalker, avete bisognu di specificà un òspite di u servitore IP publicu o VPN
- Mettendu
AllowedIPsnantu10.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.serviceCunfigurà 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.confU 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
