Kontrola VPN bez grafického rozhraní: jeden tok po druhém, s důkazy
Bezhlavý stroj potřebuje požadavek, jehož odpověď dokážete přečíst. Otestujte každou rodinu adres, kontext i cíl a poté zapište, co výsledek nepokryl.
Na bezhlavém stroji není žádný prohlížeč k otevření ani zámek k pohledu, takže kontrola musí být požadavek, jehož odpověď dokážete přečíst. To zní triviálně, dokud si nevšimnete, že jeden výsledek výstupní adresy se používá k certifikaci zařízení, které provozuje deset služeb, dvě rodiny adres a proxy. Následující postup staví vždy jeden omezený důkaz, ve stejném kontextu, ve kterém pracovní zátěž skutečně běží.
Rozhodněte, co má test prokázat
Než cokoli spustíte, napište očekávání na jeden řádek: který tok, přes které rozhraní, ke kterému cíli a co má být vidět na druhém konci. Test bez vyřčeného očekávání dává číslo, které nikdo nedokáže vyložit.
Nejužitečnější podoba pojmenuje schválený koncový bod, který hlásí zdrojovou adresu, kterou viděl.
Tento koncový bod je jediná část, kterou musíte zařídit. Všechno ostatní je pozorování na straně klienta a pozorování na straně klienta se pokazí zajímavými způsoby.
Proveďte pozorování ve správném kontextu
Administrátorský shell není prostředí pracovní zátěže. Může nést jinou proměnnou proxy, jinou směrovací tabulku v jiném jmenném prostoru nebo soubor prostředí jiného uživatele. Spusťte test ve stejném kontextu hostitele, kontejneru, jmenného prostoru nebo služby jako to, co kontrolujete. Jinak měříte svůj shell.
Na běžném hostiteli to znamená stejného uživatele a stejnou jednotku. V prostředí kontejnerů to znamená vstoupit do síťového jmenného prostoru kontejneru místo testování z hostitele. U služby systemd to může znamenat přechodnou jednotku se stejným nastavením.
Následující požadavek má smysl jen tehdy, když jste ve správném kontextu.
Kontrolujte rodiny adres odděleně
Ptejte se na každou rodinu výslovně, protože úspěšný požadavek IPv4 vůbec necvičí cestu IPv6. Selektory --ipv4 a --ipv6 volbu vynucují a rozdíl mezi oběma výsledky je sám informací.
curl --ipv4 https://probe.example/observed-source
curl --ipv6 https://probe.example/observed-sourceNeúspěšný požadavek IPv6 není důkazem účinného blokování. Může znamenat, že koncový bod nemá adresu IPv6, že DNS nevrátil nic použitelného nebo že zařízení nemá vůbec cestu IPv6. Přečtěte si selhání, než z něj uděláte závěr. Úspěšný požadavek IPv6 tunelem je jediný výsledek, který dokazuje, že cesta IPv6 je pokryta.
Zapište obě odpovědi vedle sebe. Jedna sama je polovina faktu.
Přidejte čtyři věci, které výstupní kontrola přehlíží
Výstupní adresa odpovídá na jednu otázku. Další čtyři rozhodují, zda se tunel chová podle návrhu.
| Check | What it proves | What it does not |
|---|---|---|
| Included and excluded destinations | The split behaves as designed for those flows | Coverage of any other destination |
| Resolver path | Where a fresh lookup actually travelled | Where a cached answer came from |
| Tunnel-down behaviour | The failure policy for a new request | What an already open connection does |
| Reconnect and restart | The requirement survives the lifecycle event | Behaviour under load or partial failure |
Zásady cílů jdou první: otestujte tok, který má být zahrnut, a tok, který má být vyloučen, když má návrh rozdělení. Pak DNS, kde zkoumáte skutečnou cestu překladače místo nakonfigurované hodnoty, protože odpověď z mezipaměti nebo vytištěné nastavení nic neříká o tom, kam nový dotaz putoval.
Chování při selhání potřebuje plán a zachovanou cestu obnovy. Pozorujte nový požadavek, dokud je tunel nedostupný, a pamatujte, že staré otevřené spojení není důkazem o zásadách selhání. Životní cyklus přichází nakonec: zopakujte pozorování po opětovném připojení nebo restartu služby, pokud tyto události ovlivňují požadavek.
Zapisujte důkazy, ne rozsudek
U každého výsledku uchovejte kontext procesu, cíl, rodinu adres, čas a pozorovaný zdroj. Tato sada je omezený důkaz o tocích, které jste cvičili, a je obhajitelná právě proto, že říká, co pokryla.
Není to audit záznamů provozovatele VPN ani certifikát pro každou budoucí aplikaci na zařízení.
Napište limity vedle výsledku. Test, který uvádí, co nepokryl, projde revizí, zatímco ten, který tvrdí, že zařízení je ověřeno, ne. Mějte příručku curl vedle selektorů rodin, které jste použili, a mějte tabulku se čtyřmi řádky u výsledků.