Raspberry Pi, jonka tarvitsee suojata vain oma lähtevä liikenteensä, on kaksi realistista mallia: anna verkkohallinnan omistaa tunneli tai pidä skripti, joka omistaa sen. Molemmat voivat kuljettaa liikennettä. Ne epäonnistuvat eri kohdissa, ja vika, jonka voit diagnosoida etänä kahdelta yöllä, on se, joka kannattaa valita. Vertaa niitä omistajuuden, täyden tunnelin merkityksen kun IPv6 ja DNS tulevat mukaan, ja sen mukaan, mitä tapahtuu sillä hetkellä, kun tunneli putoaa.

Kaksi omistajaa yhdelle tunnelille

Malli A on profiili järjestelmän verkkohallinnan sisällä: tuotu OpenVPN-profiili tai natiivi WireGuard-yhteys, jonka aktivoi käynnistyksessä sama palvelu, joka nostaa Ethernetin ja Wi-Fi:n. Malli B on oma yksikkösi, joka ajaa asiakasta suoraan, muokkaa resolverin kokoonpanoa ja asentaa omat reittinsä ja palomuurinsa säännöt. Molemmat ovat hyväksyttäviä malleja; ne eroavat siinä, kuka saa muuttaa reititystaulua.

Viat eroavat, koska omistajat eroavat. A:ssa profiili, joka ei aktivoidu, jättää liitännän ylös ja tunnelin alas, ja hallinnan lokit kertovat miksi. B:ssä skripti, joka onnistuu puoliksi, jättää reittejä, jotka selviävät ne luoneesta prosessista. Molempien ajaminen on huonoin lopputulos: kaksi prosessia kirjoittaa oletusreittiä, kaksi resolverin muokkausta kilpailee käynnistyksessä ja kaksi salaisuusjoukkoa on kierrättevä.

Valitse yksi omistaja tunnelia kohden ja poista toinen käytöstä ennen kuin testaat mitään. Kaksi omistajaa tarkoittaa myös kahta paikkaa, joista katsoa, kun tunneli on ylhäällä eikä mikään ratkea. Tämä yksi sääntö estää useimmat Pi VPN -ketjuissa kuvatut sekavat tilat.

Mitä tuonti luo ja mitä ei

Raspberry Pi OS Bookwormissa ja myöhemmissä verkon oletusasetustyökalu on NetworkManager, joten profiili on asiakastunnelin luonnollinen koti. Tuonti vaatii asennetun sopivan liitännäisen; ilman sitä tuonti epäonnistuu viestillä tukemattomasta yhteystyypistä, mikä on rehellinen merkki pysähtyä ja asentaa liitännäinen.

nmcli connection import type openvpn file ./provider.ovpn
nmcli connection show
nmcli --ask connection up id provider-name

Tuonti tallentaa profiilin. Se ei todista, että toinen pää on tavoitettavissa, eikä takaa, että jokainen tiedoston direktiivi selvisi muunnoksesta. Lue syntynyt yhteys takaisin ja tarkista osat, jotka kantavat identiteettiä ja luottamusta: varmenne, etähallinta ja portti sekä kysytäänkö salasana vai tallennetaanko se.

Aktivointi valitsimella --ask pitää salalauseen poissa komentotulkin historiasta jaetulla koneella. Valvomattomalle Pi:lle haluat lopulta profiilin nousevan käynnistyksessä, mikä on erillinen päätös kuin sen nostaminen kerran käsin.

Täysi tunneli molempien mallien vertailussa

Täysi tunneli on väite reiteistä, ei aikomuksesta, ja kaksi mallia ilmaisevat sen eri tavoin. Profiililähestymistapa pyytää hallintaa asentamaan oletusreitin ja resolverin asetukset; skriptilähestymistapa tekee, mitä skripti sanoo, mukaan lukien ei mitään. Kumpikaan malli ei kata IPv6:ta ellei sitä kerrota, ja koskematon IPv6-oletusreitti kuljettaa mielellään liikennettä tunnelin ulkopuolelle, kun IPv4 näyttää täydelliseltä.

ip -4 route get 198.51.100.23
ip -6 route show default
resolvectl query example.org

Käytä dokumentaatiiosoitetta reittihakuun ja korvaa se isännällä, jota sinulla on lupa koetella. Ensimmäinen komento näyttää, mitä liitäntää Pi käyttäisi tavalliseen kohteeseen; toinen näyttää, onko IPv6-oletusreittiä vielä olemassa; kolmas todistaa, mikä resolver vastasi. Lue kaikki kolme ennen kuin uskot mitään väitettä täydestä tunnelista.

Jos palveluntarjoajan ohjeet lupaavat täyden tunnelin mutta IPv6-oletusreitti säilyy, Pi vuotaa. Poista IPv6 käytöstä ylälinkissä tai pyydä profiilia vaatimaan se, ja päätä tietoisesti sen sijaan että löytäisit sen myöhemmin.

Avoin vika suljettua vastaan

Kun tunneli putoaa, reititystaulu, joka menettää oletusreittinsä, palaa yksinkertaisesti fyysiseen ylälinkkiin, ja liikenne jatkuu avoimesti. Se on avoin vika, ja se on molempien mallien oletuskäyttäytyminen, ellei jokin estä sitä. Useimmat löytävät sen viikkoja myöhemmin lukemalla palomuurin lokia.

Suljettu vika maksaa sinulle etäyhteyden, kun tunneli on alhaalla, joten se tarvitsee tietoisen poikkeuksen hallintapolulle. Yksi tapa on sääntö, joka sallii vain VPN-vertaisen osoitteen tunnelin ulkopuolella:

sudo nft add table inet vpnkill
sudo nft 'add chain inet vpnkill out { type filter hook output priority 0; policy accept; }'
sudo nft add rule inet vpnkill out oifname != "tun0" ip daddr != 203.0.113.24 reject

Vertaa käyttökustannusta rehellisesti. Profiili ei yleensä pysty ilmaisemaan tätä sääntöä, joten suljettu vika työntää sinut skriptimalliin tai pieneen yksikköön, joka asentaa säännön tunnelista riippumatta. Joka tapauksessa kirjaa hylkäykset viikon ajan: hiljainen hylkäys näyttää samalta kuin rikkinäinen palvelu, ja tarvitset laskurin, kun käyttäjä ilmoittaa, että yksi sivusto lakkasi latautumasta.

Valinta näytöttömälle Pi:lle

Jos levykuva jo ajaa NetworkManageria, tunneli ei tarvitse mitään eksoottista ja haluat sen seuraavan ylälinkkiä automaattisesti, ota profiili. Jos tarvitset käytäntöpohjaista reititystä, useita kohteen mukaan valittavia tunneleita tai suljetun vian säännön, jonka on oltava olemassa ennen kuin tunneli nousee, ota skripti ja omista jokainen sen osa, mukaan lukien käynnistysjärjestys ja siivous. Kahden mallin sekoittaminen maksaa enemmän kuin kumpikaan yksinään.

Niiden välinen siirtyminen on enimmäkseen järjestyskysymys: poista vanha omistaja käytöstä, varmista, ettei vanhentunutta reittiä tai resolverin merkintää jäänyt, ota sitten uusi käyttöön ja käynnistä uudelleen kahdesti. Yksi uudelleenkäynnistys voi piilottaa kilpailun, jonka toinen paljastaa. Lopeta testaamalla Pi:tä eikä tunnelia: ratkaise nimi, hae jotain IPv4:n yli, hae IPv6:n yli jos pidit sen, pudota sitten tunneli ja varmista, että valitsemasi käyttäytyminen todella tapahtuu. Liitäntä komennossa ip link on testin alku, ei loppu.

Aiheeseen liittyvät artikkelit