OpenConnect vpnc-script: welk bestand wordt uitgevoerd?
De helper die routes en DNS installeert, staat los van de tunnelclient. Zoek het pad dat de draaiende client gebruikt voordat u hem vervangt door een kopie van een forum.
OpenConnect kan de tunnelhandshake afronden en u alsnog zonder route naar het privésubnet achterlaten, omdat de client en de helper die de lokale netwerkstatus wijzigt twee verschillende programma's zijn. De authenticatie bewijst dat de gateway de sessie heeft geaccepteerd; ze bewijst niets over welke interface, welke routes of welke resolverinstellingen daarna zijn geïnstalleerd. De meeste verwarrende meldingen ontstaan doordat de helper wordt vervangen door een kopie uit een oud antwoord, wat het gedrag van elke verbinding op de machine verandert. Zoek de helper die de draaiende client werkelijk aanroept voordat u er iets aan wijzigt.
Twee programma's, twee verantwoordelijkheden
De client bezit transport, authenticatie en het tunnelapparaat. Een aparte helper bezit wat er op het lokale systeem gebeurt zodra de tunnel bestaat: adressering op de interface, routes naar de subnetten die de gateway aankondigde, en resolverconfiguratie. De documentatie van de OpenConnect-helper beschrijft die splitsing en de omgeving die de helper ontvangt. Het onderscheid is belangrijk bij een storing, want een geweigerd wachtwoord en een ontbrekende route zijn niet hetzelfde incident, zelfs niet wanneer de desktop voor beide één dialoogvenster toont.
Deze splitsing in gedachten houden verklaart ook waarom een verbinding succes kan melden terwijl privénamen nog steeds niet worden opgelost. De tunnel staat in beide gevallen overeind, en alleen de lokale integratiefase verschilt.
Zoek de helper die de draaiende client gebruikt
Het pad wordt bij het bouwen van het pakket vastgelegd en kan bij elke aanroep worden overschreven, dus het bestand dat u van een andere distributie kent, heeft misschien niets met deze verbinding te maken. Vraag het draaiende proces, niet de documentatie die u toevallig open hebt.
openconnect --version
ps -o args= -C openconnect
dpkg -L openconnect | grep -i script
ls -l /etc/vpnc/ 2>/dev/null
Als de procesregel een --script argument draagt, wint dat bestand van de gecompileerde standaard. Oudere paden zoals /etc/vpnc/vpnc-script kunnen bestaan en toch ongebruikt blijven, en daarom verandert het verwijderen of bewerken ervan niets op een recente build. Controleer ook de wijzigingsdatum, want een helper die jarenlang door niemand is aangeraakt is een sterk teken dat de meegeleverde standaard het werk doet.
NetworkManager-integratie is een derde eigenaar, met een eigen helper en eigen profielinstellingen. Een tweede route- of resolverscript boven op die integratie stapelen dupliceert routes en laat een resolver achter die twee programma's beide menen te beheren. Kies één eigenaar per verbinding en schakel de andere uit voordat u test.
Lees de eerste mislukte bewerking, niet de laatste waarschuwing
Interfaceconfiguratie, route-installatie, resolverkeuze en het opruimen van verouderde status zijn afzonderlijke stappen, en de waarschuwing die als laatste wordt afgedrukt is vaak een opruimklacht en niet de fout die de verbinding verbrak. Lees omhoog tot de eerste concrete bewerking die mislukte. Een helperfout die een bestand of een adres noemt is meer waard dan tien regels opruimlawaai.
Vergelijk het bedoelde lokale resultaat met het waargenomen resultaat: het tunnelapparaat bestaat, een route naar een bekend privéadres loopt erdoorheen, en de resolver antwoordt voor een privénaam. Een helper die de eerste twee haalt en bij de derde faalt, wijst op resolverbeleid en niet op routing. Een helper die het apparaat helemaal niet configureert, is waarschijnlijk nooit uitgevoerd, en dat is een kwestie van rechten en niet van netwerk. Bevestig de uitvoerbare bit en het serviceaccount voordat u enige logica herschrijft.
Controleer verbinden, opnieuw verbinden en verbreken
De installatie is slechts de helft van het contract, want dezelfde helper moet de status die hij bezit herstellen of verwijderen wanneer de tunnel sluit. Een helper die routes toevoegt en ze nooit verwijdert, laat de machine achter met een verouderd pad dat de sessie overleeft.
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'
Voer de eerste drie uit terwijl u verbonden bent, verbreek de verbinding, en voer ze daarna opnieuw uit en bevestig dat de route en de resolververmelding weg zijn. De vierde regel laat zien of de helper überhaupt is aangeroepen en welk uitvoerbaar pad de service gebruikte. Bewaar dat paar uitvoer in het ticket, want juist de vergelijking voor en na maakt een opruimfout zichtbaar.
Houd de helper verpakt en uitvoerbaar voor het serviceaccount, want een script dat in uw shell draait kan onder een beperkt servicebeleid alsnog worden geweigerd. Wanneer een aanpassing echt nodig is, documenteer dan het doel en de eigenaar en vergelijk die bij elke upgrade met de verpakte versie. Een onverklaarde fork van een helper is een van de weinige dingen die een werkende verbinding een jaar later kan laten falen.