OpenConnect vpnc-script: hvilken fil kører den?
Hjælperen, der installerer ruter og DNS, er adskilt fra tunnelklienten. Find den sti, den kørende klient bruger, før du erstatter den med en kopi fra et forum.
OpenConnect kan fuldføre tunnelens håndtryk og alligevel efterlade dig uden en rute til det private undernet, fordi klienten og hjælperen, der ændrer den lokale netværkstilstand, er to forskellige programmer. Godkendelsen beviser, at gatewayen accepterede sessionen; den beviser intet om, hvilket interface, hvilke ruter eller hvilke resolverindstillinger der blev installeret bagefter. De fleste forvirrende rapporter kommer fra at erstatte hjælperen med en kopi fra et gammelt svar, hvilket ændrer adfærden for hver forbindelse på maskinen. Find den hjælper, som den kørende klient faktisk kalder, før du redigerer noget i den.
To programmer, to ansvarsområder
Klienten ejer transport, godkendelse og tunneleenheden. En separat hjælper ejer det, der sker på det lokale system, når tunnelen findes: adressering på interfacet, ruter til de undernet, som gatewayen annoncerede, og resolverkonfiguration. dokumentationen for OpenConnect-hjælperen beskriver den opdeling og det miljø, hjælperen modtager. Forskellen betyder noget under en fejl, fordi en afvist adgangskode og en manglende rute ikke er samme hændelse, selv når skrivebordet viser én dialog for begge.
At holde opdelingen i tankerne forklarer også, hvorfor en forbindelse kan rapportere succes, mens private navne stadig ikke kan slås op. Tunnelen er oppe i begge tilfælde, og kun det lokale integrationstrin er forskelligt.
Find den hjælper, den kørende klient bruger
Stien fastlægges, når pakken bygges, og kan tilsidesættes ved hver kørsel, så den fil, du husker fra en anden distribution, har måske intet med denne forbindelse at gøre. Spørg den kørende proces i stedet for den dokumentation, du tilfældigvis har åben.
openconnect --version
ps -o args= -C openconnect
dpkg -L openconnect | grep -i script
ls -l /etc/vpnc/ 2>/dev/null
Hvis proceslinjen bærer et --script argument, vinder den fil over den kompilerede standard. Ældre stier som /etc/vpnc/vpnc-script kan findes og stadig være ubrugte, og derfor ændrer sletning eller redigering af dem intet i et nyere build. Se også på ændringsdatoen, fordi en hjælper, som ingen har rørt i årevis, er et stærkt tegn på, at den medfølgende standard gør arbejdet.
NetworkManager-integrationen er en tredje ejer med sin egen hjælper og sine egne profilindstillinger. At lægge et ekstra rute- eller resolverscript oven på den integration fordobler ruter og efterlader en resolver, som to programmer begge hævder at styre. Vælg én ejer pr. forbindelse, og deaktiver den anden før test.
Læs den første mislykkede handling, ikke den sidste advarsel
Interfacekonfiguration, ruteinstallation, resolvalg og oprydning af forældet tilstand er separate trin, og den advarsel, der udskrives sidst, er ofte en klage over oprydning og ikke den fejl, der brød forbindelsen. Læs opad til den første konkrete handling, der mislykkedes. En hjælperfejl, der navngiver en fil eller en adresse, er mere værd end ti linjer oprydningsstøj.
Sammenlign det tilsigtede lokale resultat med det observerede: tunneleenheden findes, en rute til en kendt privat adresse går gennem den, og resolveren svarer for et privat navn. En hjælper, der lykkes med de to første og fejler med det tredje, peger på resolverpolitik og ikke på routing. En hjælper, der slet ikke konfigurerer enheden, blev sandsynligvis aldrig kørt, og det er et spørgsmål om tilladelser, ikke om netværk. Bekræft den eksekverbare bit og tjenestekontoen, før du omskriver nogen logik.
Kontroller forbind, genopret forbindelse og afbryd
Opsætningen er kun halvdelen af kontrakten, fordi den samme hjælper skal gendanne eller fjerne den tilstand, den ejer, når tunnelen lukkes. En hjælper, der tilføjer ruter og aldrig fjerner dem, efterlader maskinen med en forældet sti, der overlever sessionen.
ip -brief address show tun0
ip route get 10.24.8.15
resolvectl status tun0
journalctl -u NetworkManager -b --no-pager | grep -i -E 'vpnc|script'
Kør de tre første, mens du er forbundet, afbryd, og kør dem så igen, og bekræft at ruten og resolverposten er væk. Den fjerde linje viser, om hjælperen blev kaldt overhovedet, og hvilken eksekverbar sti tjenesten brugte. Gem det par af output i sagen, fordi netop før-og-efter gør en oprydningsfejl tydelig.
Hold hjælperen pakket og eksekverbar for tjenestekontoen, fordi et script, der kører i din shell, kan stadig afvises under en begrænset tjenestepolitik. Når en tilpasning virkelig er nødvendig, dokumentér dens formål og ejer, og sammenlign den med den pakkede version ved hver opgradering. En uforklaret fork af en hjælper er en af de få ting, der kan få en fungerende forbindelse til at fejle et år senere.