Að setja upp einfalt VPN með WireGuard og Raspberry Pi sem netþjón

Þar WireGuard orðið hluti af framtíðarkjarni Linux 5.6, ákvað ég að sjá hvernig best væri að samþætta þetta VPN við mitt LTE leið/aðgangsstaður á Raspberry Pi.

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

  • Raspberry Pi 3 með LTE einingu og opinberri IP. Það verður VPN netþjónn (hér á eftir nefndur kantgöngumaður)
  • Sími á Android, sem verður að nota VPN fyrir öll samskipti
  • Fartölvu Linux, sem ætti aðeins að nota VPN innan netsins

Öll tæki sem tengjast VPN verða að geta tengst öllum öðrum tækjum. Til dæmis ætti sími að geta tengst vefþjóni á fartölvu ef bæði tækin eru hluti af VPN neti. Ef uppsetningin er nógu einföld, þá geturðu hugsað þér að tengjast VPN og skjáborði (í gegnum Ethernet).

Miðað við að þráðlausar og þráðlausar tengingar verða óöruggari með tímanum (markvissar árásir, KRACK WPA2 reiðhestur árás и Dragonblood árás gegn WPA3), ég er alvarlega að íhuga að nota WireGuard fyrir öll mín tæki, sama í hvaða umhverfi þau keyra.

Uppsetning hugbúnaðar

WireGuard veitir forsamaðir pakkar fyrir flestar dreifingar Linux, Windows и macOSUmsóknir um Android og iOS eru afhent í gegnum appverslanir.

Ég er með nýjasta Fedora Linux 31, og áður en ég setti upp var ég of latur til að lesa handbókina. Ég fann bara pakkana. wireguard-tools, setti þau upp og gat svo ekki fundið út hvers vegna ekkert virkaði. Frekari rannsókn leiddi í ljós að ég var ekki með pakkann uppsettan wireguard-dkms (með net rekla), og það var ekki í geymslu dreifingar minnar.

Ef ég hefði lesið leiðbeiningarnar hefði ég tekið réttu skrefin:

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

Ég er með Raspbian Buster dreifinguna uppsetta á Raspberry Pi minn, það er nú þegar pakki wireguard, settu það upp:

$ sudo apt install wireguard

Í símanum Android Ég setti upp forritið WireGuard VPN úr opinberri vörulista Google App Store.

Að setja upp lykla

Til að staðfesta hnúta Wireguard Notar einfalda einkalykla/opinbera lykla til að auðkenna VPN hnúta. Þú getur auðveldlega búið til VPN lykla með eftirfarandi skipun:

$ 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

Þetta gefur okkur þrjú lykilpör (sex skrár). Við munum ekki vísa til skráa í stillingum, heldur afrita innihaldið hér: hver lykill er ein lína í base64.

Að búa til stillingarskrá fyrir VPN netþjón (Raspberry Pi)

Stillingin er frekar einföld, ég bjó til eftirfarandi skrá /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

Nokkrar athugasemdir:

  • Á viðeigandi stöðum þarftu að setja inn línurnar úr skránum með lyklunum
  • VPN-netið mitt notar innra svið 10.200.200.0/24
  • Fyrir lið PostUp/PostDown Ég er með ytra netviðmót wwan0, þú gætir haft annað (til dæmis eth0)

VPN netið er auðveldlega alið upp með eftirfarandi skipun:

$ sudo wg-quick up wg0

Eitt lítið smáatriði: sem DNS netþjónn notaði ég dnsmasq tengdur við netviðmót br0, ég bætti líka við tækjum wg0 á lista yfir leyfð tæki. Í dnsmasq er þetta gert með því að bæta við nýrri línu með netviðmótinu í stillingarskrána /etc/dnsmasq.conf, til dæmis:

interface=br0
interface=wg0

Einnig bætti ég við iptable reglu til að leyfa umferð að hlustunar UDP tenginu (51280):

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

Nú þegar allt er að virka getum við skráð sjálfvirka ræsingu VPN gönganna:

$ sudo systemctl enable wg-quick@wg0.service

Uppsetning fartölvu viðskiptavinar

Búðu til stillingarskrá á fartölvunni /etc/wireguard/wg0.conf með sömu stillingum:

[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

Skýringar:

  • Í stað edgewalker þarftu að tilgreina opinberan IP eða VPN netþjón
  • Með því að stilla AllowedIPs á 10.200.200.0/24, við notum aðeins VPN til að fá aðgang að innra neti. Umferð á allar aðrar IP tölur/miðlara mun halda áfram að fara í gegnum „venjulegar“ opnar rásir. Forstillti DNS-þjónninn á fartölvunni verður einnig notaður.

Fyrir prófun og sjálfvirka ræsingu notum við sömu skipanir wg-quick и systemd:

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

Að setja upp viðskiptavininn fyrir Android-sími

Fyrir síma Android Við búum til mjög svipaða stillingarskrá (köllum hana 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

Ólíkt fartölvustillingunni ætti síminn að nota VPN netþjóninn okkar sem DNS netþjón (streng DNS), auk þess að fara með alla umferð í gegnum VPN göngin (AllowedIPs = 0.0.0.0/0).

Í stað þess að afrita skrána í farsímann þinn geturðu breytt henni í QR kóða:

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

QR kóðinn verður sendur út í stjórnborðið sem ASCII. Hægt er að skanna hann úr appinu. Android VPN og stilla VPN-göngin sjálfkrafa.

Output

aðlögun WireGuard einfaldlega töfrandi samanborið við OpenVPN.

Heimild: www.habr.com

Kauptu áreiðanlega hýsingu fyrir síður með DDoS vernd, VPS VDS netþjónum 🔥 Kauptu áreiðanlega vefhýsingu með DDoS vörn, VPS VDS netþjónum | ProHoster