Twaqqif ta 'VPN sempliċi b'WireGuard u Raspberry Pi bħala server

Minħabba WireGuard se ssir parti tal-kernel Linux li jmiss 5.6, iddeċidejt li nara kif l-aħjar nintegra din il-VPN ma' tiegħi LTE router/punt ta 'aċċess fuq Raspberry Pi.

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

  • Raspberry Pi 3 b'modulu LTE u indirizz IP pubbliku. Hawn se jkun hemm server VPN (minn hawn 'il quddiem fit-test jissejjaħ edgewalker)
  • Telefown Android li jrid juża VPN għall-komunikazzjonijiet kollha
  • Laptop Linux li għandu juża biss VPN fin-netwerk

Kull apparat li jgħaqqad mal-VPN għandu jkun jista 'jikkonnettja mal-apparati l-oħra kollha. Pereżempju, telefon għandu jkun jista' jikkonnettja ma' server tal-web fuq laptop jekk iż-żewġ apparati jkunu parti minn netwerk VPN. Jekk is-setup tirriżulta li hija pjuttost sempliċi, allura tista 'taħseb dwar il-konnessjoni tad-desktop mal-VPN (permezz ta' Ethernet).

Meta wieħed iqis li l-konnessjonijiet bil-fili u mingħajr fili qed isiru dejjem inqas sikuri maż-żmien (attakki mmirati, KRACK WPA2 attakk tal-qsim и Attakk Dragonblood kontra WPA3), qed nikkunsidra bis-serjetà li nuża WireGuard għall-apparati kollha tiegħi, irrispettivament minn liema ambjent ikunu fihom.

Installazzjoni tas-software

WireGuard jipprovdi pakketti kkumpilati minn qabel għall-biċċa l-kbira tad-distribuzzjonijiet Linux, Windows u macOS. L-apps tal-Android u tal-iOS huma kkonsenjati permezz tad-direttorji tal-app.

Għandi l-aħħar Fedora Linux 31, u kont għażżien wisq biex naqra l-manwal qabel ma ninstalla. Biss sibt il-pakketti wireguard-tools, installathom, u mbagħad ma setgħux insemmu għaliex xejn ma kien qed jaħdem. Aktar investigazzjoni wriet li m'għandix il-pakkett installat wireguard-dkms (b'sewwieq tan-netwerk), iżda ma kienx fir-repożitorju tad-distribuzzjoni tiegħi.

Kieku qrajt l-istruzzjonijiet, kont ħadt il-passi korretti:

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

Għandi d-distribuzzjoni Raspbian Buster installata fuq il-Raspberry Pi tiegħi, diġà hemm pakkett hemmhekk wireguard, installah:

$ sudo apt install wireguard

Fuq it-telefon Android tiegħi installajt l-applikazzjoni WireGuardVPN mill-katalgu uffiċjali tal-Google App Store.

Installazzjoni ta' ċwievet

Għall-awtentikazzjoni bejn il-pari, Wireguard juża skema sempliċi ta’ ċavetta privata/pubblika biex jawtentika lill-pari tal-VPN. Tista 'faċilment toħloq ċwievet VPN billi tuża l-kmand li ġej:

$ 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

Dan jagħtina tliet pari ewlenin (sitt fajls). Aħna mhux se nirreferu għall-fajls fil-konfigurazzjonijiet, iżda nikkopja l-kontenut hawn: kull ċavetta hija linja waħda f'base64.

Ħolqien ta 'fajl ta' konfigurazzjoni għas-server VPN (Raspberry Pi)

Il-konfigurazzjoni hija pjuttost sempliċi, ħloqt il-fajl li ġej /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

Ftit noti:

  • Fil-postijiet xierqa għandek bżonn daħħal linji mill-fajls biċ-ċwievet
  • Il-VPN tiegħi qed juża faxxa interna 10.200.200.0/24
  • Għat-timijiet PostUp/PostDown Għandi l-interface tan-netwerk estern wwan0, jista 'jkollok waħda differenti (per eżempju, eth0)

In-netwerk VPN jitqajjem faċilment bil-kmand li ġej:

$ sudo wg-quick up wg0

Dettall żgħir wieħed: bħala s-server DNS li użajt dnsmasq marbut ma 'interface tan-netwerk br0, Żidt ukoll apparati wg0 għal-lista ta' apparati permessi. F'dnsmasq dan isir billi żżid linja ġdida ta' interface tan-netwerk mal-fajl tal-konfigurazzjoni /etc/dnsmasq.confper eżempju:

interface=br0
interface=wg0

Barra minn hekk, żidt regola iptable biex tippermetti t-traffiku lejn il-port tas-smigħ UDP (51280):

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

Issa li kollox qed jaħdem, nistgħu nwaqqfu t-tnedija awtomatika tal-mina VPN:

$ sudo systemctl enable [email protected]

Konfigurazzjoni tal-klijent fuq il-laptop

Oħloq fajl ta 'konfigurazzjoni fuq laptop /etc/wireguard/wg0.conf bl-istess settings:

[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

Noti:

  • Minflok edgewalker għandek bżonn tispeċifika l-IP pubbliku jew host server VPN
  • Billi tissettja AllowedIPs fuq 10.200.200.0/24, nużaw biss VPN biex naċċessaw in-netwerk intern. It-traffiku lejn l-indirizzi IP/servers l-oħra kollha se jkompli jgħaddi minn kanali miftuħa "normali". Se juża wkoll is-server DNS konfigurat minn qabel fuq il-laptop.

Għall-ittestjar u t-tnedija awtomatika nużaw l-istess kmandi wg-quick и systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]

Twaqqif ta 'klijent fuq telefon Android

Għal telefon Android noħolqu fajl ta' konfigurazzjoni simili ħafna (ejja nsejħulha 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

B'differenza mill-konfigurazzjoni fuq il-laptop, it-telefon għandu juża s-server VPN tagħna bħala s-server DNS (linja DNS), u tgħaddi wkoll it-traffiku kollu mill-mina VPN (AllowedIPs = 0.0.0.0/0).

Minflok ma tikkopja l-fajl fuq it-tagħmir mobbli tiegħek, tista' tikkonvertih f'kodiċi QR:

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

Il-kodiċi QR joħroġ lill-console bħala ASCII. Tista' tiskennjaha mill-app Android VPN u twaqqaf mina VPN awtomatikament.

Output

It-twaqqif ta 'WireGuard huwa sempliċement maġiku meta mqabbel ma' OpenVPN.

Sors: www.habr.com

Żid kumment