OpenVPN 3 Linux: liest en D-Bus-Feeler, ier dir zréckrullt
Fënnef Servicer, ee Frontend. Ordne en D-Bus-Feeler deem Komponent zou, deen en ofgeleent huet, préif ob eng Sëtzung existéiert a korrigéier dann op där Grenz.
Feeler vun OpenVPN 3 Linux kommen als D-Bus-Methodfeeler mat engem onbekannten Numm dru laanscht, an d’Versuchung ass, e Paket zréckzestufen an ze hoffen. De Client ass net ee Programm: e Frontend an der Kommandozeil schwätzt iwwer de Bus mat Servicer, déi d’Profiler, d’Sëtzungen, de VPN-Motor an déi privilegiéiert Netzwierkännerungen hunn. Ze entscheeden, wéi ee vun deene fënnef den Uruff huet, deen feelt, ass de gréissten Deel vun der Diagnos, an et kascht ee Kommando amplaz engem Zréckrullen. Wat duerno kënnt, ass déi Entscheedung, an der Rei, an där d’Feeler meeschtens optrieden.
Fënnef Besëtzer hannert engem Kommando
Fënnef Prozesser zielen, an all huet sengen eegenen Busnumm: de Frontend, deen deng Kommando unhëlt, de Konfiguratiounsmanager, deen d’Profiler an hir Zougangspolitik späichert, de Sëtzungsmanager, deen d’Liewensdauer vun de Sëtzungen huet, de Backend, deen d’Verbindung iwwer OpenVPN 3 Core Engine lafe léisst, an de Netzwierkkonfiguratiounsservice, deen d’Interface, d’Routen an d’DNS-Astellungen installéiert. E Feeler, deen en Konfiguratiounsobjekt nennt, ass dofir kee Backend-Feeler, an e Backend, deen net start, ass kee Authentifikatiounsfeeler. D’Message an eng vun deene Zeilen ze sortéieren, muss geschéien, ier eppes geännert gëtt, well all spéidere Schrëtt dovun ofhänkt, wéi eng Zeil wouer ass. Op d’Zeil ze roden ass de Wee, op deem aus enger kuerzer Korrektur en Nomëtteg Paketaarbecht gëtt.
Fro de Systembus, wéi eng Servicer do sinn, ier s du eppes anescht frees, a bestäteg duerno, datt d’installéiert Deeler sech iwwer eng Versioun eens sinn. OpenVPN 3 Linux registréiert déi Servicer als Systemunitéiten, also ass de Bus ze froen de Systembus, d’Versiounsufro brauch administrativ Autoritéit, an eng Lëscht mat --user liest deng Login-Sëtzung, wou d’Unitéiten ni optrieden. Servicer aktivéiere sech op Ufro an e puer halen op, wann s’idle sinn, also gouf e Service, deen virun dengem éischten Ufro feelt, einfach nach net no eppes gefrot. Déi dräi Kommandoen hei drënner beäntweren Präsenz, Versioun an Unitéitszoustand, ouni eng VPN-Sëtzung opzemaachen.
sudo busctl list | grep -i openvpn
sudo openvpn3-admin version --services
systemctl list-units 'openvpn3*'Wat all Lëscht wierklech beweist
D’eegen Usiichten vum Client sinn dee bëllegsten Beweis, deen et gëtt, an all beweist manner, wéi et schéngt. E Profil an der Konfiguratiounslëscht weist, datt e Profil importéiert ass, an näischt doriwwer, ob een domat sech ka verbannen. Eng Sëtzung an der Sëtzungslëscht weist, datt et en Sëtzungsobjekt gëtt, an näischt doriwwer, ob déi distanzéiert Authentifikatioun fäerdeg ass.
openvpn3 configs-list
openvpn3 sessions-listObjektweeër an deene Ausgaben identifizéieren geréiert Objeten um Bus an net Dateien, also kënne s net geännert ginn, an e Wee, dee méi fréi notéiert gouf, gëtt verhalen am Moment, wou déi Sëtzung sech trennt. Een dovun aus dengen Notizen erëm ze benotzen, bréngt "no such object"-Feeler, déi näischt mam VPN ze dinn hunn. D’Etappentabelle hei drënner trennt, wat all Schrëtt vun enger Verbindung opbaut, dovun, wat en oppe léisst, an et ass genau déi Ënnerscheedung, op där eng Zréckrullentscheedung berout. Liest d’Zeil, déi zu dengem Beweis passt, a liest duerno den Feelertext nach eng Kéier.
| Stage | What exists | What proves it | What it does not prove |
|---|---|---|---|
| Profile imported | A configuration object held by the configuration manager | The profile is listed by the client | That the profile owner permits a connection |
| Session requested | A session object held by the session manager | The session appears in the session list | That the remote side accepted the credentials |
| Connect dispatched | An asynchronous attempt on the VPN backend | Status changes arrive for that session | That an interface was configured |
| Tunnel configured | An interface, routes and DNS settings | The network service reports success and routes appear | That traffic reaches the peer |
Den Uruff vun der Verbindung kënnt zréck, ier den Tunnel existéiert
Den Uruff vun der Verbindung gëtt dir eng Sëtzung ze kucken a kënnt zréck, dofir ass en Uruff, dee schéngt geklappt ze hunn, gefollegt vu Stille, en normale Tëschenzoustand an kee Widdersproch. De Frontend muss weider Statusännerungen nogoen a jiddwer Ufro no Interaktioun beäntweren. E Profil, deen eng Authentifikatioun brauch an keng Äntwert kritt, waart an engem Zoustand, deen exact wéi e gehaangene Backend ausgesäit. Dee Waartzoustand verdéngt Unerkennung, well en d’Leit op de falsche Komponent schéckt.
Während en Versuch leeft, kuck d’Sëtzungslëscht an de Log vum Frontend fir dee Profil. Eng Sëtzung, déi hirem Ufankszoustand ni verléisst, nennt de Komponent, deen opgehalen huet, an de Log nennt en meeschtens an den éischte Zeilen. Halt den Profilnumm bei der Hand, well de Logkommando e Profil hëlt an net e Sëtzungswee, wat nach e Grond ass, d’Lëscht nach eng Kéier ze liesen amplaz e Wee erëmzebenotzen.
openvpn3 sessions-list
openvpn3 log --config <profile> --level 6De Log vun engem eenzege Komponent liesen, ouni eng Sëtzung opzemaachen
Wann de Frontend näischt Nëtzleches mellt, gëi op de Komponent, deen de Feeler geloggt huet, amplaz eng aner Verbindung ze starten. Mat engem konfiguréierte systemd-journald-Logger liest déi ofgegrenzt Journal-Usiicht vum Administrateur d’Evenementer vun engem Komponent, ouni d’Buspolitik unzerëren oder eng Sëtzung opzemaachen, wat zielt, well eng Diagnos, déi de System ännert, deen se misst, ganz wéineg beweist. Filter no Unitéit an net no Syslog-Tag: déi eenzel Serviceunitéiten garantéieren keng gemeinsam Identifikatioun, also kann eng Tag-Ufro eng läich Säit zréckginn, während d’Unitéit selwer de Feeler opgezeechent huet.
Notéier véier Felder, ier s du een no Hëllef frees: den vollstännege Feelernumm, de Service an den Objet, déi bedeelegt sinn, den Zäitstempel an déi installéiert Paketversiounen. Dat ass, wat en Händler brauch, an keen dovun erfuerdert, e Profil oder eng Authentifikatioun an en Ticket ze pechen. D’Buszougangspolitik auszebreen, fir de Feeler stomm ze kréien, ass keng Diagnos, et läscht d’Grenz, déi dir de Komponent genannt huet. Privat Profilinhalter bleiwen aus gedeelte Rapporten eraus, aus dem selwechte Grond wéi Authentifikatiounen.
journalctl -u 'openvpn3-service-*' -n 50 --no-pager
openvpn3-admin journal --service <name>D’Grenz korrigéieren, déi ofgeleent huet
All Zeil vun der Kaart huet seng eegen Korrektur, an d’Zeil ersetzen sech net géigesäiteg. Eng ofgeleente Operatioun op engem Profil ass eng Fro vun Politik a Besëtz, während e Backend, deen net aktivéiert, eng Fro vu Servicer a Paketéierung ass. E Server, deen d’Authentifikatioun refuséiert, ass keent vun deenen zwee, also kënnen erëmholt Passwuertännerungen kee lokale Aktivéierungsproblem reparéieren. Déi falsch Korrektur ze wielen ass de Wee, op deem aus engem Politikproblem eng Reinstallatioun gëtt.
No enger Paketännerung préif eng kohärent, ënnerstëtzt Installatioun, amplaz eng al Binärdatei op hire Platz ze kopéieren. En kontrolléierte Zréckrullen ass eng legitim Äntwert op eng bestätegt Regressioun, soulaang d’Pakete kompatibel bleiwen an et e Wee zréck zu ënnerstëtzter Ënnerhaltung gëtt. Etabléier dee Wee, ier de Service ophält ze starten, net duerno.
Eng aner Plattform kann déiselwecht VPN-Kärbibliothek deelen, ouni d’Busservicer vu Linux ze deelen, also seet en änlech aussehende Feeler op Windows näischt iwwer dësen. D’D-Bus-Iwwersiicht dokumentéiert d’Objektweeër, déi fir Konfiguratiounen a Sëtzungen ugebuede ginn, an dat ass den Deel vun der Architektur, op deem dës Diagnos berout. Liest se emol, an de nächste Feeler kënnt mat engem Komponent, dee schonn drun hänkt.