Egy Raspberry Pi, amelynek csak a saját kimenő forgalmát kell védenie, két reális tervet választhat: a hálózatkezelő birtokolja az alagutat, vagy tartson egy szkriptet, amely birtokolja. Mindkettő szállíthat forgalmat. Máshol hibáznak, és az a hiba, amelyet hajnali kettőkor távolról diagnosztizálni tud, az, amelyet érdemes választani. Hasonlítsa össze őket a birtoklás, a teljes alagút jelentése szempontjából, amikor IPv6 és DNS kerül a képbe, és aszerint, hogy mi történik abban a pillanatban, amikor az alagút leesik.

Két birtokos egy alagúthoz

Az A terv egy profil a rendszer hálózatkezelőjén belül: importált OpenVPN-profil vagy natív WireGuard-kapcsolat, amelyet indításkor ugyanaz a szolgáltatás aktivál, amely az Ethernetet és a Wi-Fi-t felhozza. A B terv a saját egysége, amely közvetlenül futtatja a klienst, szerkeszti a feloldó konfigurációját, és saját útvonalakat és tűzfal-szabályokat telepít. Mindkettő legitim; abban különböznek, ki módosíthatja az útválasztási táblázatot.

A hibák azért különböznek, mert a birtokosok különböznek. Az A esetében egy nem aktiválódó profil fent hagyja az interfészt és lent az alagutat, és a kezelő naplói megmondják, miért. A B esetében egy félig sikeres szkript olyan útvonalakat hagy maga után, amelyek túlélik a létrehozó folyamatot. Mindkettőt futtatni a legrosszabb eredmény: két folyamat írja az alapértelmezett útvonalat, két feloldó-szerkesztés verseng indításkor, és két titokkészletet kell rotálni.

Válasszon egy birtokost alagútonként, és kapcsolja ki a másikat, mielőtt bármit tesztel. Két birtokos két helyet is jelent, ahol nézni kell, amikor az alagút fent van és semmi sem oldódik fel. Ez az egyetlen szabály megakadályozza a Pi VPN-szálakban leírt zavaros állapotok többségét.

Mit hoz létre az import, és mit nem

A Raspberry Pi OS Bookworm és újabb verzióin az alapértelmezett hálózati konfigurációs eszköz a NetworkManager, így a profil az ügyfélalagút természetes otthona. Az importhoz telepített megfelelő bővítmény kell; nélküle az import nem támogatott kapcsolattípusról szóló üzenettel hiúsul meg, ami az őszinte jelzés a megállásra és a bővítmény telepítésére.

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

Az import eltárol egy profilt. Nem bizonyítja, hogy a másik fél elérhető, és nem garantálja, hogy a fájl minden utasítása túlélte az átalakítást. Olvassa vissza a létrejött kapcsolatot, és ellenőrizze az identitást és bizalmat hordozó részeket: a tanúsítványt, a távoli gazdagépet és portot, valamint hogy kérnek-e jelszót, vagy tárolják-e.

A --ask kapcsolóval történő aktiválás távol tartja a jelmondatot a shell-előzményektől egy megosztott gépen. Egy felügyelet nélküli Pi esetében előbb-utóbb azt szeretné, hogy a profil indításkor feljöjjön, ami külön döntés az egyszeri kézi felhozataltól.

Teljes alagút, a két terv összehasonlításában

A teljes alagút útvonalakra vonatkozó állítás, nem szándékra, és a két terv másképp fejezi ki. A profil-megközelítés arra kéri a kezelőt, hogy telepítsen egy alapértelmezett útvonalat és annak feloldó-beállításait; a szkript-megközelítés azt teszi, amit a szkript mond, a semmit is beleértve. Egyik terv sem fedi le az IPv6-ot, hacsak nem szólunk neki, és az érintetlen IPv6-os alapértelmezett útvonal vígan viszi a forgalmat az alagúton kívülre, miközben az IPv4 tökéletesnek látszik.

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

Használjon dokumentációs címet az útvonal-lekérdezéshez, és cserélje ki egy olyan gazdagépre, amelyet vizsgálhat. Az első parancs megmutatja, melyik interfészt használná a Pi egy közönséges célhoz; a második megmutatja, létezik-e még IPv6-os alapértelmezett útvonal; a harmadik bizonyítja, melyik feloldó válaszolt. Olvassa el mindhármat, mielőtt bármilyen teljes alagútra vonatkozó állításnak hisz.

Ha a szolgáltató utasításai teljes alagutat ígérnek, de az IPv6-os alapértelmezett útvonal megmarad, a Pi szivárog. Kapcsolja ki az IPv6-ot a feltörekvő kapcsolaton, vagy kérje a profiltól, hogy igényelje, és döntsön tudatosan ahelyett, hogy később fedezné fel.

Nyitott hiba a zárt hibával szemben

Amikor az alagút leesik, az alapértelmezett útvonalát elvesztő útválasztási táblázat egyszerűen visszaesik a fizikai feltörekvő kapcsolatra, és a forgalom nyíltan folytatódik. Ez a nyitott hiba, és ez mindkét terv alapértelmezett viselkedése, hacsak valami meg nem akadályozza. A legtöbben hetekkel később fedezik fel egy tűzfalnapló olvasásakor.

A zárt hiba a távoli hozzáférést viszi el, amikor az alagút lent van, ezért tudatos kivétel kell a felügyeleti útvonalhoz. Az egyik mód egy szabály, amely az alagúton kívül csak a VPN-társ címét engedélyezi:

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

Hasonlítsa össze az üzemeltetési költséget őszintén. A profil általában nem tudja kifejezni ezt a szabályt, ezért a zárt hiba a szkriptes terv vagy egy kis egység felé tolja, amely az alagúttól függetlenül telepíti a szabályt. Mindenképpen naplózza az elutasításokat egy hétig: a csendes elutasítás pontosan úgy néz ki, mint egy hibás szolgáltatás, és szüksége lesz a számlálóra, amikor egy felhasználó jelzi, hogy egy oldal nem tölt be többé.

Választás képernyő nélküli Pi-hez

Ha a lemezkép már futtatja a NetworkManagert, az alagút nem igényel semmi egzotikumot, és szeretné, hogy automatikusan kövesse a feltörekvő kapcsolatot, válassza a profilt. Ha házirend-alapú útválasztásra, célonként választott több alagútra, vagy olyan zárt hibás szabályra van szüksége, amelynek léteznie kell, mielőtt az alagút feljön, válassza a szkriptet, és birtokolja minden részét, beleértve az indítási sorrendet és a tisztítást. A két terv keverése többe kerül, mint bármelyik önmagában.

A köztük való átállás főleg sorrend kérdése: kapcsolja ki a régi birtokost, erősítse meg, hogy nem maradt elavult útvonal vagy feloldó-bejegyzés, majd kapcsolja be az újat, és indítsa újra kétszer. Egyetlen újraindítás elrejthet egy versenyt, amelyet a második feltár. Fejezze be a Pi, nem az alagút tesztelésével: oldjon fel egy nevet, töltsön le valamit IPv4-en, töltsön le IPv6-on, ha megtartotta, majd ejtse az alagutat, és erősítse meg, hogy a választott viselkedés valóban bekövetkezik. Az ip link parancsban lévő interfész a teszt kezdete, nem a vége.

Kapcsolódó cikkek