E einfache VPN opsetzen mat WireGuard an e Raspberry Pi als Server

Zënter dem WireGuard wäert Deel ginn zukünftege Kär Linux 5.6, hunn ech decidéiert ze kucken, wéi ech dëse VPN am beschte mat mengem integréiere kann LTE Router / Zougang Punkt op Raspberry Pi.

Ausrüstung

  • Raspberry Pi 3 mat LTE Modul an ëffentlech IP Adress. Et gëtt e VPN Server hei (nodréiglech am Text gëtt et genannt edgewalker)
  • Telefon ugeschalt Android, déi e VPN fir all Kommunikatioun benotze muss
  • Laptop Linux, déi nëmmen VPN am Netz benotze soll

All Apparat, deen mam VPN verbënnt, muss fäeg sinn mat all aner Apparater ze verbannen. Zum Beispill, en Telefon soll fäeg sinn mat engem Webserver op engem Laptop ze verbannen, wa béid Apparater Deel vun engem VPN Netz sinn. Wann de Setup zimmlech einfach ass, da kënnt Dir drun denken den Desktop mam VPN ze verbannen (iwwer Ethernet).

Bedenkt datt kabellos a drahtlose Verbindunge mat der Zäit ëmmer manner sécher ginn (cibléiert Attacken, KRACK WPA2 knacken Attack и Dragonblood Attack géint WPA3), Ech iwwerleeën eescht ze benotzen WireGuard fir all meng Apparater, egal a wéi enger Ëmwelt se lafen.

Software Installatioun

WireGuard stellt virkompiléiert Packagen fir déi meescht Verdeelungen Linux, Windows и macOSUwendungen fir Android an iOS ginn iwwer App Stores geliwwert.

Ech hunn déi lescht Fedora Linux 31, an ier ech d'Installatioun gemaach hunn, war ech ze faul fir d'Handbuch ze liesen. Ech hunn just d'Packagen fonnt. wireguard-tools, installéiert hinnen, a konnt dann net erauszefannen firwat näischt fonctionnéiert. Weider Enquête huet verroden datt ech de Package net installéiert hunn wireguard-dkms (mat engem Netzwierk Chauffer), awer et war net am Repository vu menger Verdeelung.

Wann ech d'Instruktioune gelies hätt, hätt ech déi richteg Schrëtt gemaach:

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

Ech hunn d'Raspbian Buster Verdeelung op mengem Raspberry Pi installéiert, et gëtt schonn e Package do wireguard, installéieren et:

$ sudo apt install wireguard

Op der Telefon Android Ech hunn d'Applikatioun installéiert WireGuard Opportunitéit aus dem offiziellen Google App Store Katalog.

Installatioun vun Schlësselen

Knuet ze authentifizéieren Wireguard Benotzt e einfacht privat/ëffentlech Schlësselschema fir VPN-Knoten z'authentifizéieren. Dir kënnt ganz einfach VPN-Schlësselen mat dem folgende Kommando generéieren:

$ 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

Dëst gëtt eis dräi Schlësselpueren (sechs Dateien). Mir wäerten net op d'Fichier'en an de Konfiguratiounen bezéien, awer kopéieren den Inhalt hei: all Schlëssel ass eng Zeil an base64.

Erstellt eng Konfiguratiounsdatei fir den VPN Server (Raspberry Pi)

D'Konfiguratioun ass ganz einfach, ech hunn déi folgend Datei erstallt /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

E puer Notizen:

  • Op de passenden Plazen musst Dir Linnen aus de Dateien mat de Schlësselen aginn
  • Mäi VPN benotzt intern Band 10.200.200.0/24
  • Fir Équipen PostUp/PostDown Ech hunn den externen Netzwierk Interface wwan0, Dir hutt vläicht eng aner (zum Beispill eth0)

De VPN-Netzwierk gëtt einfach mam folgendem Kommando erhéicht:

$ sudo wg-quick up wg0

E klengen Detail: als DNS Server deen ech benotzt hunn dnsmasq un engem Netzwierk-Interface gebonnen br0, Ech hunn och Apparater bäigefüügt wg0 op d'Lëscht vun erlaabten Apparater. An dnsmasq gëtt dëst gemaach andeems Dir eng nei Netzwierk-Interface Linn an d'Konfiguratiounsdatei bäidréit /etc/dnsmasq.conf, zum Beispill:

interface=br0
interface=wg0

Zousätzlech hunn ech eng iptable Regel bäigefüügt fir den Traffic op den UDP Nolauschterport (51280) z'erméiglechen:

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

Elo datt alles funktionnéiert, kënne mir den automateschen Start vum VPN-Tunnel opsetzen:

$ sudo systemctl enable wg-quick@wg0.service

Client Konfiguratioun op Laptop

Erstellt eng Konfiguratiounsdatei op engem Laptop /etc/wireguard/wg0.conf mat de selwechten Astellungen:

[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

Notizen:

  • Amplaz Edgewalker musst Dir den ëffentlechen IP oder VPN Server Host spezifizéieren
  • Duerch Astellung AllowedIPs op 10.200.200.0/24, Mir benotzen nëmmen VPN fir Zougang zum internen Netzwierk ze kréien. Traffic op all aner IP Adressen / Server wäert weider duerch "normal" oppe Channels goen. Et wäert och de pre-konfiguréierten DNS-Server um Laptop benotzen.

Fir Testen an automatesche Start benotze mir déiselwecht Kommandoen wg-quick и systemd:

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

De Client opstellen fir Android-Telefon

Fir Telefon Android Mir kreéieren eng ganz ähnlech Konfiguratiounsdatei (loosse mer se nennen 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

Am Géigesaz zu der Konfiguratioun um Laptop, muss den Telefon eise VPN Server als DNS Server benotzen (Linn DNS), a passéiert och all Traffic duerch de VPN Tunnel (AllowedIPs = 0.0.0.0/0).

Amplaz d'Datei op Ärem mobilen Apparat ze kopéieren, kënnt Dir se an e QR Code konvertéieren:

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

De QR-Code gëtt als ASCII an d'Konsole ausgegeben. E kann vun der App aus gescannt ginn. Android VPN an automatesch den VPN-Tunnel konfiguréieren.

Konklusioun

Upassung WireGuard einfach magesch am Verglach mat OpenVPN.

Source: will.com

Kaaft zouverlässeg Hosting fir Site mat DDoS Schutz, VPS VDS Server 🔥 Kaaft zouverléissegt Websäithosting mat DDoS-Schutz, VPS VDS Server | ProHoster