Én enhed kan vende i to retninger på samme tid: roaming-brugere kobler ind, og den samme boks kobler ud til en udgangsudbyder, så udvalgt trafik forlader via et andet netværk. At aktivere begge tjenester tager minutter; at få dem til at sameksistere kræver et design, fordi den anden rolle omskriver rutetabellen, som den første afhænger af. Tre betingelser afgør, om arrangementet virker, nemlig om den indgående tjeneste beholder sin egen returvej, om den udgående tunnel stadig kan nå sin peer, og om den trafik, du ville videresende, bliver udvalgt til udgangen. Tager du én fejl, får du to tunneler, der begge melder forbindelse, mens intet nyttigt passerer mellem dem. Kontrollerne nedenfor fastslår hver betingelse i den rækkefølge, fejlene normalt viser sig.

Navngiv de to roller, før du rører en indstilling

Skriv fire fakta ned for hver instans: dens fjernpeer, dens autentificeringsmateriale, den adressepulje den uddeler, og netværkene bag den. De to instanser er adskilte objekter på enheden og bør også forblive adskilte i dine noter. Næsten hvert forvirrende symptom senere kommer fra at blande deres værdier, og to instanser, der deler ét sæt noter, er måden, hvorpå den forkerte pulje ender i det forkerte felt.

Den indgående tjeneste har brug for et tunnelnettet, der ikke overlapper den udgående tunnels adresser eller noget privat netværk, som enheden ruter. Overlap er den ene fejl, der giver symptomer i begge roller på én gang, og det er langt billigere at fange på papir. Sammenlign begge puljer og hvert rutet privat netværk ét sted, før du konfigurerer nogen af tjenesterne.

Delt hardware betyder ikke delte legitimationsoplysninger, og et klientcertifikat fra fjernadgangspuljen bør ikke kunne bruges mod udgangsudbyderen. Adskilt materiale gør også tilbagekaldelse til en lokal beslutning i stedet for en begivenhed for hele flåden.

Hold serverens svar på WAN-vejen

Svarene, som enheden selv genererer, er det første offer for en sjusket standardrute. Når en roaming-brugers indkapslede pakke ankommer, er svaret lokalt opstået trafik, og det skal forlade gennem det interface, som brugeren kom ind ad. Hvis udgangsklienten har installeret en standardrute, der fanger det, går svaret ind i den forkerte tunnel, og sessionen går i stå, mens tjenesten stadig ser sund ud.

Der er ingen enkelt afkrydsningsboks, der afgør dette, fordi beslutningen handler om, hvilken trafik udgangsklienten må fange. Enten trækker du ingen ruter og styrer kun det, du udvælger, eller også trækker du ruter og tilføjer de undtagelser, der holder enhedens egne tjenester kørende. Skriv valget ned ved siden af instansen, ellers vil den næste person antage det andet.

netstat -rn | head -20
pfctl -sr | grep -i vpn
ifconfig | grep -A3 ovpn

Læs rutetabellen efter længste match og ikke efter den rækkefølge, du konfigurerede noget i. Spørgsmålet er, hvilken post der vinder for udgangspeerens adresse og hvilken post der vinder for den indgående tjenestes svar, og de to svar kan være forskellige.

Lad ikke udgangstunnelen spise sit eget endepunkt

Udgangsklienten skal nå sin peers offentlige adresse for overhovedet at oprette tunnelen. Hvis den adresse selv rutes ind i tunnelen, jager klienten sin egen hale: transporten kommer aldrig op, eller den kommer op og falder i det øjeblik, ruten installeres. Loggen ser ud som en autentificeringstimeout snarere end en rutefejl, og derfor fortjener ruten den første kontrol.

Kontrollér ruten før legitimationsoplysningerne og igen, når tunnelen er oppe, fordi en post kan være korrekt ved opstart og forkert et minut senere. Peerens adresse skal pege på den almindelige WAN-vej, aldrig på tunnelanordningen. Når transporten er stabil, flytter det interessante spørgsmål sig til videresendt trafik, som er den næste beslutning.

netstat -rn | grep -F '198.51.100.10'
traceroute -n 198.51.100.10

Vælg, hvilke brugere der får udgangen

Kildepolitik hører til indgangen, hvor trafikken kommer ind i enheden, så vælg fjernadgangspuljen eller snævrere identiteter indeni. Bevar de private destinationer og de undtagelser for administration, der aldrig må sendes til udgangen, og anbring disse regler før den brede. Udgangsvejen har derefter brug for sin egen oversættelse eller et rutet returarrangement, hvilket for de fleste designs betyder udgående NAT på udgangsinterfacet, der dækker puljen. Oversættelse vælger ikke en udgang; den omskriver kun det, der allerede er forladt, så en NAT-regel på et uvedkommende WAN ændrer intet ved udvælgelsen.

Bekræft, at den fjerne ende tillader videresendt trafik fra dette design, fordi nogle udbydere gør og andre ikke. Forskellen viser sig som en tunnel, der forbinder og ikke bærer noget, hvilket er let at læse som en lokal fejl. Test de tre strømme hver for sig, fordi de fejler uafhængigt, og to ud af tre er et halvt design.

openvpn --config user07.ovpn
curl -sS https://ifconfig.me
curl --interface 10.10.10.1 -sS https://intranet.corp.example/health

Den første kommando er roaming-brugerens ydre forbindelse, og den virker, når klienten rapporterer, at initialiseringssekvensen er fuldført. Den anden, kørt fra den tilsluttede laptop, bør rapportere udgangsudbyderens adresse i stedet for din WAN-adresse. Den tredje kører på enheden bundet til en puljeadresse, og den tester kildepolitikken for videresendt trafik uden at inddrage en fjernbruger overhovedet. Hvis den svarer fra WAN i stedet, passede politikken ikke, og ingen mængde NAT-redigering retter et udvælgelsesproblem.

Beslut, hvad der sker, når udgangen svigter

Skriv fejlopførslen ned, før den sker: når udgangstunnelen falder, falder brugerne så tilbage til det almindelige WAN, eller bliver de blokeret, indtil udgangen vender tilbage? Begge svar er forsvarlige, og enheden vil ikke vælge for dig. En fjernet rute eller en politik, der peger på en død gateway, giver ikke automatisk et fuldstændigt blokeret resultat. Vil du have blokering, skal politikken sige det eksplicit, og den skal testes ved at fjerne udgangen i stedet for ved at ræsonnere om den. Vil du have tilbagefald, skal du offentliggøre det for brugerne, for trafik, der stille tager den almindelige vej, er netop den trafik, som nogen troede var dækket.

Deaktiver klientinstansen, se, hvad en tilsluttet bruger stadig kan nå, og start den så igen. En anmodning, der timer ud, er det fuldstændigt blokerede resultat, du bad om; en, der svarer med WAN-adressen, er det tilbagefald, du ikke dokumenterede. Gentag kontrollen for IPv6 og for DNS, fordi en politik skrevet til IPv4 intet siger om AAAA-trafik, og en resolver, der skubbes af en af tunnelerne, svarer fra det sted, hvor forespørgslen faktisk forlader.

pfSsh.php playback svc stop openvpn client 2
curl --max-time 6 -sS https://ifconfig.me
pfSsh.php playback svc start openvpn client 2

Netgates opskrift på routet OpenVPN viser, hvordan kildepolitik, interfacetildeling og udgående oversættelse passer sammen, og dens site-til-site-omfang er den del, man ikke skal kopiere helt. Det, den ikke vil fortælle dig, er, hvilken af de tre betingelser ovenfor dit eget design allerede har brudt.

Relaterede artikler