In ienfâldige VPN ynstelle mei WireGuard en Raspberry Pi as server

Sûnt de WireGuard diel wurde fan takomstige kearn Linux 5.6, ik besleat om te sjen hoe't ik dizze VPN it bêste mei myn yntegrearje koe LTE-router / tagongspunt op Raspberry Pi.

Wetter - Agrarwetter

  • Raspberry Pi 3 mei LTE-module en iepenbiere IP. D'r sil in VPN-tsjinner wêze (hjirnei oantsjutten as edgewalker)
  • Telefoan oan Android, dy't in VPN brûke moat foar alle kommunikaasje
  • Laptop Linux, dy't allinich VPN binnen it netwurk brûke moat

Elk apparaat dat ferbynt mei in VPN moat kinne ferbine mei elk oar apparaat. Bygelyks, in tillefoan soe kinne ferbine mei in webserver op in laptop as beide apparaten diel útmeitsje fan in VPN-netwurk. As de opset ienfâldich genôch is, dan kinne jo tinke oan ferbining mei in VPN en in buroblêd (fia Ethernet).

Yn betinken nommen dat bedrade en draadloze ferbiningen mei de tiid minder feilich wurde (rjochte oanfallen, KRACK WPA2 hacking oanfal и Dragonblood oanfal tsjin WPA3), Ik tink serieus oer it brûken fan WireGuard foar al myn apparaten, nettsjinsteande yn hokker omjouwing se rinne.

Ynstallaasje fan software

WireGuard levert foarkompilearre pakketten foar de measte distribúsjes Linux, Windows и macOSApplikaasjes foar Android en iOS wurde levere fia appwinkels.

Ik haw de nijste Fedora Linux 31, en foar it ynstallearjen wie ik te lui om de hantlieding te lêzen. Ik fûn krekt de pakketten. wireguard-tools, ynstallearre se, en dan koe net útfine wêrom neat wurke. Fierder ûndersyk die bliken dat ik it pakket net ynstalleare hie wireguard-dkms (mei in netwurk stjoerprogramma), en it wie net yn it depot fan myn distribúsje.

As ik de ynstruksjes hie lêzen, soe ik de goede stappen nommen hawwe:

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

Ik haw de Raspbian Buster-distribúsje ynstalleare op myn Raspberry Pi, d'r is al in pakket wireguard, ynstallearje it:

$ sudo apt install wireguard

Oan 'e tillefoan Android Ik haw de applikaasje ynstalleare WireGuard VPN út 'e offisjele katalogus fan' e Google App Store.

Ynstallaasje fan kaaien

Om knooppunten te autentisearjen Wireguard Brûkt in ienfâldich privee/iepenbier kaaiskema om VPN-knooppunten te autentisearjen. Jo kinne maklik VPN-kaaien generearje mei it folgjende kommando:

$ 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 jout ús trije kaai pearen (seis triemmen). Wy sille net ferwize nei triemmen yn configs, mar kopiearje de ynhâld hjir: elke kaai is ien rigel yn base64.

In konfiguraasjetriem oanmeitsje foar in VPN-tsjinner (Raspberry Pi)

De konfiguraasje is frij simpel, ik makke de folgjende triem /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

In pear notysjes:

  • Op de passende plakken moatte jo de rigels fan 'e bestannen ynfoegje mei de kaaien
  • Myn VPN brûkt ynterne berik 10.200.200.0/24
  • Foar teams PostUp/PostDown Ik haw in eksterne netwurkynterface wwan0, jo kinne in oare hawwe (bygelyks eth0)

It VPN-netwurk wurdt maklik opbrocht mei it folgjende kommando:

$ sudo wg-quick up wg0

Ien lyts detail: as DNS-tsjinner haw ik brûkt dnsmasq ferbûn mei netwurk ynterface br0, Ik haw ek apparaten tafoege wg0 nei de list mei tastiene apparaten. Yn dnsmasq wurdt dit dien troch in nije rigel ta te foegjen mei de netwurkynterface oan it konfiguraasjetriem /etc/dnsmasq.confbygelyks:

interface=br0
interface=wg0

Ek haw ik in iptable-regel tafoege om ferkear te tastean nei de harkjende UDP-poarte (51280):

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

No't alles wurket, kinne wy ​​de automatyske lansearring fan 'e VPN-tunnel registrearje:

$ sudo systemctl enable wg-quick@wg0.service

Laptop client konfiguraasje

Op 'e laptop meitsje in konfiguraasjetriem /etc/wireguard/wg0.conf mei deselde ynstellings:

[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

Notes:

  • Ynstee fan edgewalker moatte jo in iepenbiere IP- as VPN-tsjinnerhost oantsjutte
  • Troch ynstelling AllowedIPs op 10.200.200.0/24, wy brûke allinich de VPN om tagong te krijen ta it ynterne netwurk. Ferkear nei alle oare IP-adressen/servers sil trochgean troch "gewoane" iepen kanalen. De foarôf ynstelde DNS-tsjinner op 'e laptop sil ek brûkt wurde.

Foar testen en automatyske lansearring brûke wy deselde kommando's wg-quick и systemd:

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

It ynstellen fan de kliïnt foar Android-tillefoan

Foar telefoan Android Wy meitsje in tige ferlykber konfiguraasjebestân (lit ús it neame 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

Oars as de laptopkonfiguraasje, moat de tillefoan ús VPN-tsjinner brûke as syn DNS-tsjinner (string DNS), lykas ek alle ferkear troch de VPN-tunnel trochjaan (AllowedIPs = 0.0.0.0/0).

Ynstee fan it kopiearjen fan it bestân nei jo mobyl apparaat, kinne jo it konvertearje nei in QR-koade:

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

De QR-koade wurdt as ASCII nei de konsole útfierd. It kin fanút de app scanne wurde. Android VPN en konfigurearje de VPN-tunnel automatysk.

konklúzje

oanpassing WireGuard gewoan magysk yn ferliking mei OpenVPN.

Boarne: www.habr.com

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster