VPN sinple bat konfiguratzea WireGuard eta Raspberry Pi zerbitzari gisa

WireGuard delako parte bihurtuko da hurrengo Linux nukleoaren 5.6, VPN hau nirearekin nola integratzeko modurik onena ikustea erabaki nuen. LTE bideratzailea/sarbide-puntua Raspberry Pi-n.

ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅

  • Raspberry Pi 3 LTE moduluarekin eta IP helbide publikoarekin. Hemen VPN zerbitzari bat egongo da (aurrerantzean deitzen zaio testuan ertz-ibiltaria)
  • Komunikazio guztietarako VPN bat erabili behar duen Android telefonoa
  • Sarearen barruan VPN bat bakarrik erabili behar duen Linux ordenagailu eramangarria

VPNra konektatzen den gailu guztiek beste gailu guztietara konektatu ahal izan behar dute. Adibidez, telefono batek ordenagailu eramangarri batean web zerbitzari batera konektatu ahal izan beharko luke bi gailuak VPN sare baten parte badira. Konfigurazioa nahiko erraza suertatzen bada, mahaigaina VPNra konektatzea pentsa dezakezu (Ethernet bidez).

Kontuan izanda hari gabeko eta kable bidezko konexioak gero eta seguruagoak direla denborarekin (zuzendutako erasoak, KRACK WPA2 cracking-erasoa ΠΈ Dragonblood WPA3-ren aurkako erasoa), serioski pentsatzen ari naiz WireGuard erabiltzea nire gailu guztietan, edozein ingurunetan dauden ere.

Softwarearen instalazioa

WireGuard eskaintzen du aurrez konpilatutako paketeak Linux, Windows eta macOS banaketa gehienetarako. Android eta iOS aplikazioak aplikazioen direktorioen bidez ematen dira.

Azken Fedora Linux 31 daukat, eta nagiegi nengoen eskuliburua instalatu aurretik irakurtzeko. Paketeak aurkitu berri ditu wireguard-tools, instalatu zituzten, eta orduan ezin izan zuten asmatu zergatik ez zegoen ezer funtzionatzen. Ikerketa gehiagok agerian utzi du ez dudala paketea instalatuta wireguard-dkms (sareko kontrolatzaile batekin), baina ez zegoen nire banaketaren biltegian.

Argibideak irakurri izan banu, urrats zuzenak hartuko nituzke:

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

Raspbian Buster banaketa instalatuta daukat nire Raspberry Pi-n, dagoeneko pakete bat dago wireguard, instalatu:

$ sudo apt install wireguard

Nire Android telefonoan aplikazioa instalatu nuen WireGuardVPN Google App Store katalogo ofizialetik.

Giltzak instalatzea

Parekideen autentifikaziorako, Wireguard-ek gako pribatu/publiko eskema soil bat erabiltzen du VPN parekoak autentifikatzeko. VPN gakoak erraz sor ditzakezu komando hau erabiliz:

$ 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

Honek hiru gako-pare (sei fitxategi) ematen dizkigu. Ez ditugu konfigurazioetako fitxategiak aipatuko, baina kopiatu hemen edukia: gako bakoitza lerro bat da base64-n.

VPN zerbitzarirako konfigurazio fitxategi bat sortzea (Raspberry Pi)

Konfigurazioa nahiko erraza da, ondorengo fitxategia sortu dut /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

Ohar pare bat:

  • Leku egokietan fitxategietako lerroak txertatu behar dituzu teklen bidez
  • Nire VPN barneko banda erabiltzen ari da 10.200.200.0/24
  • Taldeentzat PostUp/PostDown Kanpoko sareko interfazea wwan0 dut, baliteke beste bat izatea (adibidez, eth0)

VPN sarea erraz planteatzen da komando honekin:

$ sudo wg-quick up wg0

Xehetasun txiki bat: erabili nuen DNS zerbitzari gisa dnsmasq sareko interfaze bati lotuta br0, gailuak ere gehitu ditut wg0 baimendutako gailuen zerrendara. Dnsmasq-en hau konfigurazio fitxategiari sare-interfaze lerro berri bat gehituz egiten da /etc/dnsmasq.conf, adibidez:

interface=br0
interface=wg0

Gainera, iptable arau bat gehitu dut UDP entzuteko ataka (51280) trafikoa baimentzeko:

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

Orain dena funtzionatzen ari denez, VPN tunelaren abiarazte automatikoa konfigura dezakegu:

$ sudo systemctl enable [email protected]

Bezeroaren konfigurazioa ordenagailu eramangarrian

Sortu konfigurazio fitxategi bat ordenagailu eramangarri batean /etc/wireguard/wg0.conf ezarpen berdinekin:

[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

Oharrak:

  • Edgewalker-en ordez IP publikoa edo VPN zerbitzariaren ostalaria zehaztu behar duzu
  • Ezarriz AllowedIPs on 10.200.200.0/24, VPN barne sarera sartzeko bakarrik erabiltzen dugu. Beste IP helbide/zerbitzari guztietarako trafikoak kanal ireki "normal"etatik igarotzen jarraituko du. Aurrez konfiguratutako DNS zerbitzaria ere erabiliko du ordenagailu eramangarrian.

Proba egiteko eta abiarazte automatikorako komando berdinak erabiltzen ditugu wg-quick ΠΈ systemd:

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

Bezero bat konfiguratzea Android telefono batean

Android telefono baterako konfigurazio-fitxategi oso antzeko bat sortzen dugu (dei diezaiogun 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

Ordenagailu eramangarriaren konfigurazioa ez bezala, telefonoak gure VPN zerbitzaria erabili behar du DNS zerbitzari gisa (linea DNS), eta trafiko guztia VPN tuneletik pasatzea ere (AllowedIPs = 0.0.0.0/0).

Fitxategia zure gailu mugikorrean kopiatu beharrean, QR kode batera bihur dezakezu:

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

QR kodea ASCII gisa aterako da kontsolara. Android VPN aplikaziotik eskaneatu daiteke eta automatikoki VPN tunel bat konfiguratuko du.

Irteera

WireGuard konfiguratzea magikoa besterik ez da OpenVPNrekin alderatuta.

Iturria: www.habr.com

Gehitu iruzkin berria