Endast inkludera eller endast exkludera: vilken standard?
Välj standarden innan du bygger listan: tunnla bara det du namnger, eller tunnla allt och skär bort undantagen. Testa sedan appen som ingen hade lagt in.
Öppna routingavsnittet i din VPN-klient och du ser två olika utformade kontroller som ofta bär samma etikett. Den ena ber dig lista de destinationer som hör till tunneln, och allt annat fortsätter använda det lokala nätverket. Den andra utgår från att allt tunnlas och frågar vad som ska skäras bort igen. Båda ger dig en fungerande tunnel vid första testet, och båda underhålls genom att lägga till rader i en lista, vilket är därför skillnaden förblir osynlig tills någon installerar något nytt.
Valet är en standard, inte en funktion. Bestäm den innan listan har tjugo poster.
Läs av standarden på klienten, inte i broschyren
WireGuard gör beslutet ovanligt synligt, eftersom AllowedIPs är en inkluderingslista och inget annat. En peer med 0.0.0.0/0, ::/0 tunnlar allt; en peer med 10.20.0.0/16 tunnlar bara det. Det finns ingen exkluderingssyntax, så vill du lämna ett subnet utanför måste du antingen räkna upp alla andra prefix eller lägga till policy-routing utanför gränssnittet.
OpenVPN når samma plats från andra hållet, med redirect-gateway def1 som installerar en full tunnel och explicita route-direktiv som lägger till eller skriver över specifika prefix. Kommersiella klienter gömmer oftast båda bakom en kryssruta och en destinationstabell, så läs vilken av de två tabellen faktiskt redigerar innan du litar på etiketten.
Frågan är inte vad kryssrutan heter. Frågan är vad som händer med ett paket vars destination inte finns i någon av listorna. Svara på det skriftligt, och resten av konfigurationen följer av det. Hoppar du över frågan överlämnas det första oförklarade felet till den som råkar sitta närmast klienten den dagen.
Följ en applikation som ingen hade lagt in
I en design med bara inkludering går den applikationen direkt, på det lokala nätverket, med den lokala DNS:en. I en design med bara exkludering går den genom tunneln, så långt servern tillåter, och det är ofta skillnaden mellan ett nytt SaaS-verktyg som fungerar första dagen och ett ärende som säger att VPN:en förstörde det.
Ingen av standarderna är säkrare i sig. Inkludering begränsar vad tunneln bär och gör det lokala nätverket till vägen med minst motstånd; exkludering tar tunneln som den normala vägen och behandlar undantag som undantag, vilket ligger närmare vad de flesta företagspolicyer faktiskt menar.
| Question | Include-only | Exclude-only |
|---|---|---|
| Unlisted new app | goes direct | goes through the tunnel |
| A site that breaks over the VPN | add it to the list | carve it out |
| Internal names still resolve | only if routed and served | usually, until split DNS says otherwise |
| Upkeep | one entry per internal service | one entry per misbehaving public service |
Lägg märke till vilken sorts objekt plattformen listar
Androids VpnService.Builder exponerar en lista över tillåtna och en lista över förbjudna applikationer som två separata modeller, och app-regler väljer på paket i stället för på destination. En webbläsare i en sådan lista bär med sig varje destination den öppnar, vilket är en annan granularitet än en routingtabell och inte kan laga en enda trasig webbplats inne i en fungerande app.
Skrivbordsklienter blandar oftast båda sorterna i ett gränssnitt, så kontrollera om raden du lägger till är ett paket, ett värdnamn eller ett prefix. De misslyckas på olika sätt och de löses på olika ställen. En värdnamnsrad blir oftast en rutt plus ett namn, medan en paketrad blir ett policybeslut inne i klienten. Skriv ned vilken av de två du lade till, för den som felsöker senare kommer att utgå från den andra.
Testa feltillståndet, inte bara det lyckliga flödet
En applikation som är utesluten från tunneln får inte automatiskt ren direkt åtkomst. Om klienten dessutom tillämpar en regel som blockerar utan VPN kan den uteslutna trafiken släppas helt, vilket ser ut som en trasig app snarare än ett routingbeslut. Testa det fallet medvetet i stället för att upptäcka det via en användarrapport.
Kontrollera sedan DNS och IPv6 som separata punkter. En tunnel som bara bär IPv4 lämnar en v6-kapabel applikation en väg runt den, och delad DNS avgör om interna namn löses upp för trafik som inte tunnlas alls. Kör en listad app, en olistad app, en namnsökning och en återanslutning, och spara resultaten tillsammans med konfigurationen.
Skriv ned standarden där nästa person hittar den
Anteckna den valda standarden, undantagen och vem som äger dem på samma ställe som klientprofilen, för nästa administratör lägger till en post utan att läsa den här motiveringen. Notera datum och orsak för varje undantag, så att ett inaktuellt undantag för en webbplats som sedan dess har lagats kan tas bort med säkerhet. En lista utan orsaker växer för evigt.
När någon rapporterar en enda trasig destination, ändra undantaget i stället för baslinjen. Att vända standarden för att laga en enskild webbplats flyttar tyst varje olistad applikation till andra sidan av tunneln.