Sådan sender du ét websted uden om din WireGuard-tunnel
Én /32-rute gennem LAN-gatewayen holder ét websted på din normale forbindelse, forudsat at firewallen tillader det, og at DNS er enig om adressen.
At udelukke et værtsnavn er noget, en tunnel ikke kan. En rute kan dog sende én enkelt adresse uden om tunnelen og ud gennem hjemmegatewayen, og det er normalt nok til ét websted. Haken er, at alt nedstrøms for ruten skal være enigt: firewallen skal lukke pakken ud, DNS skal give den adresse tilbage, du sendte adgang til, og webstedet skal blive ved med at bruge den adresse. Når en af de tre driver, holder undtagelsen op med at virke uden at annoncere det.
Læs destinationsadressen, før du rører tunnelen
Indlæs webstedet én gang med tunnelen oppe, og se derefter på den peer-adresse, browseren faktisk oprettede forbindelse til. På Linux, ss -tunp viser fjernadressen for hver åben socket, og dig +short på samme navn viser, hvad resolveren returnerede. Hold begge tal foran dig.
De to svar er ofte uenige, og uenigheden er hele problemet. Store websteder sætter et indholdsnetværk foran deres oprindelse, så den adresse, din resolver returnerer nu, er måske ikke den, browseren brugte for et minut siden. Rut den adresse, du så på socketten, ikke den en ældre guide viser. Hvis svarene bliver ved med at rotere mellem regioner, er en adresseundtagelse det forkerte værktøj til netop det websted.
Kør opslaget en anden gang fra et andet netværk, og notér IPv6-svaret sammen med IPv4-svaret. En tunnel, der bærer begge familier, kræver en undtagelse i begge, ellers falder browseren lydløst tilbage til den IPv6-vej, du aldrig rørte. Skriv adresserne og datoen et sted, hvor du vil kigge igen.
Sæt én værtsrute på klienten
Antag, at grænsefladen hedder home-wg, og at LAN-routeren står på 192.168.1.1. NetworkManager tager en rute, hvis gateway er den router, og hvis præfikslængde dækker alle 32 bit, og kernen foretrækker den, fordi det længste præfiks vinder.
nmcli connection modify home-wg +ipv4.routes "198.51.100.20/32 192.168.1.1"
nmcli connection up home-wg
ip route get 198.51.100.20
Gatewayen skal være nåbar uden tunnelen; at pege næste hop på tunneladressen ødelægger formålet, fordi pakken ville gå ind i den grænseflade igen, som du prøver at undgå. Når forbindelsen er oppe igen, ip route get for undtagelsen skal udskrive LAN-gatewayen, og den samme kommando for en offentlig resolver skal stadig udskrive tunneleenheden.
En wg-quick-profil har intet ruterfelt, så den samme undtagelse bor i en PostUp -linje, der tilføjer værtsruten til hovedtabellen med LAN-grænsefladen som sin enhed. Tag grænsefladen ned og op efter redigeringen, fordi en kørende grænseflade aldrig læser sin fil igen. De fwmark-regler, wg-quick installerer, styrer kun sine egne indkapslede pakker, så almindelig browsertrafik følger stadig hovedtabellen og finder din /32.
Kill switch er det næste, der blokerer det
En firewallpolitik, der kun tillader trafik på tunnelegrænsefladen, vil droppe undtagelsen, selv når ruten er helt rigtig. Læs reglerne bag kontakten i stedet for at stole på kontakten, for dem, der implementerer en kill switch, er normalt afgrænset til et grænsefladenavn.
Det, du vil have, er en snæver tilladelse til den fysiske grænseflade og det ene mål, placeret før drop'et, mens standardpolitikken forbliver urørt. At sætte kill switchen på pause helt beviser pointen, men efterlader også maskinen åben, så længe du glemmer at slå den til igen.
Test de to retninger hver for sig. En anmodning til undtagelsesadressen skal lykkes, mens en anmodning til et ikke-relateret websted stadig går ud gennem tunnelen. Hvis begge lykkes, men den anden rapporterer hjemadressen, er rækkefølgen af firewallreglerne forkert, ikke ruten.
DNS bestemmer, hvilken adresse browseren ringer til
Når navnet opløses inde i tunnelen, kan udbyderens resolver svare med en anden adresse, end den lokale gjorde. Din rute gælder så for en adresse, browseren aldrig kontakter, og siden indlæses gennem tunnelen, som om intet var ændret. Denne fejl ser ud som en ødelagt undtagelse, selv om routingtabellen er korrekt.
Send også det navns forespørgsler gennem den lokale resolver, eller spring navne helt over og test adressen direkte. At splitte adressen, mens DNS bliver inde i tunnelen, er den mest almindelige halvfærdige version af dette setup, og den er også den sværeste at bemærke, fordi webstedet bliver ved med at virke, bare ikke som du havde tænkt.
Samme undtagelse på routeren, én gang, for hver enhed
Med tunnelen kørende på routeren hører værtsruten til routerens politikroutingtabel og peger på WAN-gatewayen i stedet for LAN-gatewayen. Hver enhed bagved arver undtagelsen, hvilket betyder noget for en streamingboks eller en arbejdslaptop, hvis netværksindstillinger du ikke kan ændre.
Lad tunnelen være standardudgangen for alle andre klienter, og verificér derefter fra en klientmaskine i stedet for fra routerkonsollen. Indlæs undtagelseswebstedet og et andet websted i samme browsersession og sammenlign udgangsadresserne; hvis det andet stadig viser tunnelen, gør politiktabellen det, du bad om.
Skriv adressen, datoen og årsagen ned i routerens noter. En undtagelse bygget omkring en adresse, der senere flytter sig, bliver en fejl, som ingen kan forklare om et år, og rettelsen ser altid ud som en gåde, indtil nogen finder den gamle note.