Den Tunnel steet, du maachs en zousätzlechen Terminal zou, an de VPN fällt aus, ouni datt s de am Client eng Taste gedréckt hues. Beim Linux-AnyConnect-Client ass déi gemellt Ursaach d'Sessiounscomptabilitéit an net d'Routung: de Client hält fest, wéi eng Login-Sessiounen et beim Opbau vum Tunnel gouf, an hält d'Enn vun enger dovun als Grond, fir en erofzefueren. Déi folgend Iwwerpréiwungen lafen der Reiefolleg no, an déi éischt, déi feelt, seet dir, ob et iwwerhaapt ëm dëst Verhalen geet. An der üblecher Ausgab vum Client steet näischt vun engem Terminal, dofir ass den éischten Instinkt, de Concentrator ze beschëllegen, meeschtens vergebens Aarbecht.

Fänk net domat un, Systemdateien ze änneren. All Schrëtt entweder erkläert den Ausfall oder eliminéiert eng Méiglechkeet, an déi bëlleg Schrëtt kommen als éischt.

En Ausfall duerch eng Sessioun vun engem Ausfall vun der Ënnerlag trennen

Verbanne sech direkt no der Trennung erëm. En Tunnel, deen a Sekonne mat dee selwechte Reseau an ouni nei Umeldungsdaten zréckkënnt, weist op en lokalen Ausléiser wéi eng zougemaachte Sessioun an net op eng doudeg Uplink, Wi-Fi-Roaming oder en Idle-Timeout um Concentrator. En Tunnel, deen um Connecting hänkt oder bis zum Wiessele vum Reseau feelt, ass en aneren Artikel.

Schreif op, wat op war, wéi den Tunnel opgaang ass: den Terminal, aus deem s de Client gestart hues, all zweet Shell, de grafesche Login an all SSH-Sessioun vun enger anerer Maschinn. Du brauchs déi Lëscht gläich, an se aus dem Gediechtnes no der nächster Trennung ze rekonstruéieren ass onzouverlässeg.

Préif, wat de Client beim Verbannen festgehalen huet

De Client kuckt net no Prozess-Elteren oder Terminal-Besëtz. Hien hält engem Schnappschoss vun de Login-Sessiounen, déi beim Verbannen do waren, a vergläicht déi Quantitéit méi spéit; verschwënnt ee Member, feelt de Verglach an den Tunnel geet mat. Dofir kann et harmlos sinn, d'Fënster zouzemaachen, aus där s de verbonnen hues, wärend en onofhängegen zousätzlechen Terminal d'Verbindung ëmbréngt: et kënnt drop un, ob déi Sessioun an der ursprénglecher Quantitéit war. Et ass e Verglach vun der Quantitéit an net eng Zielung, dofir kann eng Sessioun z'ersetzen esou fatal sinn wéi eng ze verléieren.

Maach eng Lëscht vun deem, wat de Client konnt gesinn, ier s eppes änderst:

who
w
last -n 10
sudo ls -l /run/utmp

All Zeil vum who ass en Notzprozess-Andrag an utmp. Wann deng Sessioun zweemol optrëtt, eemol fir de grafesche Login an eemol fir den Terminal, dann waren déi zwee Andräg beim Verbannen do an déi zwee sinn Kandidaten.

Nëmmen däin eegenen Andrag aus utmp eraushuelen

De publizéierten Ëmwee mécht d'Sessioun, déi s de wëlls benotzen, am utmp onsiichtbar, ier de Client start. En klengt C-Programm geet duerch getutent(), sicht de Rekord, deem säin ut_line gläich dem TTY vun der Standardagab ass, an schreift deen Rekord nei. D'Reiefolleg ass bewosst: setutent(), den Andrag liesen, seng ut_id kopéieren, ut_type op DEAD_PROCESS setzen, d'Benotzer- an d'Linn-Felder läschen, en mat pututline() zréckschreiwen, duerno endutent().

Kompiléier en, a maach en da mat root aus der Shell, déi de Client start:

sudo ./utmpremove && /opt/cisco/anyconnect/bin/vpn -s connect vpn.example.edu

Zwee Feelmodi erklären déi meescht Berichter, datt de Tool näischt mécht. Hie wierkt um TTY, dat un der Standardagab hänkt, also wann s en aus engem Skript oder engem Cron-Job ouni Terminal laafe léis, bleift him näischt ze vergläichen. An /run/utmp ass net fir normal Benotzer schreifbar, also feels e Laf ouni root roueg, wann s de Exit-Status net préifs.

Préif, ob den Tunnel d'Zoumaachen iwwerstoen

Test de Mechanismus, amplaz en unzehuelen. Verbannech aus enger Sessioun, déi s de wëlls behalen, maach en zweeten Terminal op, maach deen zweeten zou, a bestäteg dann mat vpn state an engem Bléck op d'Interface-Lëscht, datt den Tunnel nach ëmmer steet. Iwwerlieft den Tunnel, war den Ausléiser eng bestëmmte Sessiounsaart a net all Sessioun, an du hues d'Sessioun fonnt, déi muss op bleiwen.

Fällt en nach ëmmer, war déi iwwerwaacht Sessioun eng aner, meeschtens de grafesche Login, deen däin Terminal hiergemaach huet, an eng TTY-Zeil erauszezéien hëlleft net. Widderhuel d'Beobachtung mat der kompletter Lëscht aus dem éischte Schrëtt, amplaz nach méi Chirurgie derbäizesetzen.

Wéini d'utmp-Ëmschreiwung déi falsch Äntwert ass

utmp ass gemeinsam Comptabilitéit, keng privat Tabell. Den Andrag vun enger Sessioun nei ze schreiwen, déi nach lieft, mécht, datt who, w an e puer Audit-Toolen se ënnerrapportéieren, an e Programm, deen deen nämmlechten Andrag méi spéit zoumaacht, kann ganz feelen. Hal de Tool op deng eege Sessioun begrenzt, hal eng Kopie vun der Originaldatei, a maach doraus kee Boot-Service, deen all Rekord erauszitt.

Wann däi Site d'Sessiounscomptabilitéit fir d'Compliance sammelt, steet den Ëmwee géint déi Ufuerderung, an déi ënnerstëtzt Äntwert ass eng Client-Versioun oder eng aner Accèsmethod, net en gepatchten utmp. Fir déi meescht Leit ass déi mannst invasiv Léisung einfach, de Client aus enger Sessioun ze starten, déi de ganzen Dag op bleift, an déi Fënster a Rou ze loossen.

Ier s den Ticket zoumaachs, hal fest, wéi eng Sessioun de Client iwwerwaacht huet, wéi den Tunnel opgaang ass. Déi eng Zeil mécht aus enger mysteriéiser Trennung eng reproduzéierbar Bedingung fir déi nächst Persoun op der Maschinn.

Ähnlech Artikelen