Stel 'n eenvoudige VPN op met WireGuard en Raspberry Pi as 'n bediener

Sedert WireGuard deel word van toekomstige kern Linux 5.6, het ek besluit om te kyk hoe om hierdie VPN die beste met my te integreer LTE-roeteerder/toegangspunt op Raspberry Pi.

Оборудование

  • Raspberry Pi 3 met LTE-module en openbare IP. Daar sal 'n VPN-bediener wees (hierna genoem randloper)
  • Foon aan Android, wat 'n VPN vir alle kommunikasie moet gebruik
  • notebook Linux, wat slegs VPN binne die netwerk moet gebruik

Elke toestel wat aan 'n VPN koppel, moet aan elke ander toestel kan koppel. Byvoorbeeld, 'n foon moet in staat wees om aan 'n webbediener op 'n skootrekenaar te koppel as beide toestelle deel is van 'n VPN-netwerk. As die opstelling eenvoudig genoeg is, kan u daaraan dink om aan 'n VPN en 'n rekenaar (via Ethernet) te koppel.

As in ag geneem word dat bedrade en draadlose verbindings mettertyd minder veilig word (geteikende aanvalle, KRACK WPA2 inbraak aanval и Dragonblood-aanval teen WPA3), Ek oorweeg dit ernstig om dit te gebruik WireGuard vir al my toestelle, ongeag in watter omgewing hulle loop.

Sagteware installasie

WireGuard bied vooraf saamgestelde pakkette vir die meeste verspreidings Linux, Windows и macOSAansoeke vir Android en iOS word deur appwinkels afgelewer.

Ek het die nuutste Fedora Linux 31, en voor die installering was ek te lui om die handleiding te lees. Ek het net die pakkette gevind. wireguard-tools, het hulle geïnstalleer en kon toe nie agterkom hoekom niks werk nie. Verdere ondersoek het aan die lig gebring dat ek nie die pakket geïnstalleer het nie wireguard-dkms (met 'n netwerkbestuurder), en dit was nie in die bewaarplek van my verspreiding nie.

As ek die instruksies gelees het, sou ek die regte stappe geneem het:

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

Ek het die Raspbian Buster-verspreiding op my Raspberry Pi geïnstalleer, daar is reeds 'n pakket wireguard, installeer dit:

$ sudo apt install wireguard

Op die foon Android Ek het die toepassing geïnstalleer WireGuard Skynprivaatnetwerk uit die amptelike katalogus van die Google App Store.

Installeer sleutels

Om nodusse te verifieer Wireguard Gebruik 'n eenvoudige privaat/publieke sleutelskema om VPN-nodusse te verifieer. Jy kan maklik VPN-sleutels genereer met die volgende opdrag:

$ 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

Dit gee ons drie sleutelpare (ses lêers). Ons sal nie verwys na lêers in configs nie, maar kopieer die inhoud hier: elke sleutel is een reël in base64.

Skep 'n konfigurasielêer vir 'n VPN-bediener (Raspberry Pi)

Die konfigurasie is redelik eenvoudig, ek het die volgende lêer geskep /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

'n Paar notas:

  • Op die toepaslike plekke moet u die lyne van die lêers met die sleutels invoeg
  • My VPN gebruik interne reeks 10.200.200.0/24
  • Vir spanne PostUp/PostDown Ek het 'n eksterne netwerk koppelvlak wwan0, jy kan 'n ander een hê (byvoorbeeld, eth0)

Die VPN-netwerk word maklik opgevoed met die volgende opdrag:

$ sudo wg-quick up wg0

Een klein detail: as 'n DNS-bediener het ek gebruik dnsmasq gekoppel aan 'n netwerkkoppelvlak br0, Ek het ook toestelle bygevoeg wg0 na die lys van toegelate toestelle. In dnsmasq word dit gedoen deur 'n nuwe reël met die netwerkkoppelvlak by die konfigurasielêer by te voeg /etc/dnsmasq.conf, byvoorbeeld:

interface=br0
interface=wg0

Ek het ook 'n iptable-reël bygevoeg om verkeer na die luisterende UDP-poort (51280) toe te laat:

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

Noudat alles werk, kan ons die outomatiese bekendstelling van die VPN-tonnel registreer:

$ sudo systemctl enable wg-quick@wg0.service

Skootrekenaar kliënt konfigurasie

Skep 'n konfigurasielêer op die skootrekenaar /etc/wireguard/wg0.conf met dieselfde instellings:

[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

Notas:

  • In plaas van edgewalker, moet u 'n openbare IP- of VPN-bedienergasheer spesifiseer
  • Deur instelling AllowedIPs op 10.200.200.0/24, gebruik ons ​​slegs die VPN om toegang tot die interne netwerk te verkry. Verkeer na alle ander IP-adresse/bedieners sal voortgaan om deur "gewone" oop kanale te gaan. Die vooraf gekonfigureerde DNS-bediener op die skootrekenaar sal ook gebruik word.

Vir toetsing en outomatiese bekendstelling gebruik ons ​​dieselfde opdragte wg-quick и systemd:

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

Die kliënt opstel vir Android-foon

Vir telefoon Android Ons skep 'n baie soortgelyke konfigurasielêer (kom ons noem dit 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

Anders as die skootrekenaarkonfigurasie, moet die telefoon ons VPN-bediener as sy DNS-bediener (string DNS), asook alle verkeer deur die VPN-tonnel (AllowedIPs = 0.0.0.0/0).

In plaas daarvan om die lêer na jou mobiele toestel te kopieer, kan jy dit na 'n QR-kode omskakel:

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

Die QR-kode sal as ASCII na die konsole uitgevoer word. Dit kan vanaf die toepassing geskandeer word. Android VPN en konfigureer die VPN-tonnel outomaties.

Output

aanpassing WireGuard eenvoudig magies in vergelyking met OpenVPN.

Bron: will.com

Koop betroubare hosting vir werwe met DDoS-beskerming, VPS VDS-bedieners 🔥 Koop betroubare webwerfhosting met DDoS-beskerming, VPS VDS-bedieners | ProHoster