OpenVPN 3 Linux: lês in D-Bus-flater foardatsto weromrôlest
Fiif tsjinsten, ien frontend. Keppelje in D-Bus-flater oan it ûnderdiel dat wegere, kontrolearje oft der in sesje bestiet en korrizjearje dan op dy grins.
Flaters fan OpenVPN 3 Linux komme binnen as in D-Bus-metoadeflater mei in ûnbekende namme deroan, en de ferlieding is om in pakket werom te setten en te hoopjen. De klant is net ien programma: in frontend op de kommandorigel praat oer de bus mei tsjinsten dy’t profilen, sesjes, de VPN-motor en de privilezjearre netwurkferoarings besitte. Beslute hokker fan dy fiif de mislearjende oanrop besit, is it grutste part fan ’e diagnoaze, en it kostet ien opdracht yn plak fan in weromrôljen. Wat folget is dy beslissing, yn ’e folchoarder wêryn’t de flaters meast foarkomme.
Fiif eigners efter ien opdracht
Fiif prosessen dogge der ta, en elk hat in eigen busnamme: de frontend dy’t dyn opdracht oannimt, de konfiguraasjebehearder dy’t profilen en harren tagongspolityk bewarret, de sesjebehearder dy’t de libbensdoer fan sesjes besit, de backend dy’t de ferbining fia OpenVPN 3 Core Engine rinne lit, en de netwurkkonfiguraasjetsjinst dy’t de ynterface, de rûtes en de DNS-ynstellings ynstallearret. In flater dy’t in konfiguraasjeobjekt neamt, is dêrmei gjin backend-flater, en in backend dy’t net start, is gjin autentikaasjeflater. It berjocht yn ien fan dy rigen ûnderbringe moat barre foardat der eat feroare wurdt, want elke lettere stap hinget derfan ôf hokker rige wier is. Op ’e rige ride is hoe’t in koarte korreksje in middei pakketwurk wurdt.
Freegje de systeembus hokker tsjinsten oanwêzich binne foardatsto eat oars freegst, en befêstigje dêrnei dat de ynstallearre stikken it oer ien ferzje iens binne. OpenVPN 3 Linux registrearret dy tsjinsten as systeemiensheden, dus de bus om te freegjen is de systeembus, de ferzje-query freget bestjoerlike foech, en in list mei --user lêst dyn oanmeldingssesje, dêr’t de iensheden nea ferskine. Tsjinsten aktivearje op oanfraach en guon stopje as se idle binne, dus in tsjinst dy’t foar dyn earste fersyk ûntbrekt is gewoan noch nearne om frege. De trije opdrachten hjirûnder beäntwurdzje oanwêzigens, ferzje en ienshedsstatus sûnder in VPN-sesje te iepenjen.
sudo busctl list | grep -i openvpn
sudo openvpn3-admin version --services
systemctl list-units 'openvpn3*'Wat elke list wier bewiist
De eigen bylden fan ’e klant binne it bêste bewiis dat der is, en elk fan har bewiist minder as it liket. In profyl yn ’e konfiguraasjelist lit sjen dat in profyl ymporteare is en neat oer de fraach oft immen der mei ferbine mei. In sesje yn ’e sesjelist lit sjen dat der in sesjeobjekt bestiet en neat oer de fraach oft de autentikaasje op ôfstân klear is.
openvpn3 configs-list
openvpn3 sessions-listObjektpaden yn dy útfier beneame behearde objekten op ’e bus en gjin triemmen, dus se kinne net bewurke wurde, en in earder notearre paad wurdt ferâldere op it stuit dat dy sesje loskeppele. Ien út dyn notysjes werombrûke leveret "no such object"-flaters op dy’t neat mei de VPN te meitsjen ha. De etappetabel hjirûnder skiedt wat elke stap fan in ferbining fêststelt fan wat er iepen lit, en dat is krekt it ûnderskie dêr’t in weromrôlbeslissing op driuwt. Lês de rige dy’t by dyn bewiis past en lês dan de flatertekst nochris.
| 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 |
De ferbiningsoanrop komt werom foardat de tunnel bestiet
De ferbiningsoanrop jout dy in sesje om te folgjen en komt werom, dêrom is in skynber slagge oanrop folge troch stilte in normale tuskenstân en gjin tsjinstelling. De frontend moat noch hieltyd statusferoarings folgje en elk fersyk om ynteraksje beäntwurdzje. In profyl dat in bewiisstik nedich hat en gjin antwurd krijt, wachtet yn in tastân dy’t der krekt sa útsjocht as in hinge backend. Dy wachtstân fertsjinnet erkenning, want er stjoert minsken nei it ferkearde ûnderdiel.
Wylst in poging rint, hâld de sesjelist en it eigen log fan ’e frontend foar dat profyl yn ’e gaten. In sesje dy’t har begjintastân nea ferlit neamt it ûnderdiel dat stoppe, en it log neamt it meastal al yn ’e earste pear regels. Hâld de profylnamme by de hân, want de logopdracht nimt in profyl en gjin sesjepaad, wat noch in reden is om de list opnij te lêzen yn plak fan in paad werom te brûken.
openvpn3 sessions-list
openvpn3 log --config <profile> --level 6It log fan ien ûnderdiel lêze sûnder in sesje te iepenjen
As de frontend neat nuttichs meldt, gean dan nei it ûnderdiel dat de flater logde yn plak fan noch in ferbining te starten. Mei in konfigurearre systemd-journald-logger lêst de ôfbeakene journalbyld fan ’e behearder de barrens fan ien ûnderdiel sûnder it busbelied oan te reitsjen of in sesje te iepenjen, wat fan belang is om’t in diagnoaze dy’t it systeem feroaret dat se mjit hiel lyts bewiist. Filter op iensheid en net op syslog-tag: de aparte tsjinstiensheden garandearje gjin mienskiplike identifikaasje, dus in tag-query kin in lege side weromjaan wylst de iensheid sels de flater fêstleine.
Notearje fjouwer fjilden foardatsto immen om help freegst: de folsleine flaternamme, de tsjinst en it objekt dy’t belutsen binne, de tiidstimpel en de ynstallearre pakketferzjes. Dat is wat in behearder nedich hat, en neat dêrfan freget om in profyl of in bewiisstik yn in ticket te plakken. It busbelied ferbreedzje om ’e flater stil te krijen is gjin diagnoaze, it wislet de grins dy’t it ûnderdiel foar dy beneamde. Privee profylynhâld bliuwt bûten dielde rapporten, om deselde reden as bewiisstikken.
journalctl -u 'openvpn3-service-*' -n 50 --no-pager
openvpn3-admin journal --service <name>De grins korrizjearje dy’t wegere
Elke rige fan ’e kaart hat syn eigen korreksje, en de rigen ferfange inoar net. In wegere bewurking op in profyl is in fraach oer belied en eigendom, wylst in backend dy’t net aktivearret in fraach is oer tsjinsten en pakketten. In tsjinner dy’t autentikaasje wegere is gjin fan beide, dus werhelle wachtwurdferoarings kinne in lokaal aktivearringsprobleem net meitsje. De ferkearde korreksje kieze is hoe’t in beliedsprobleem in weromynstallaasje wurdt.
Kontrolearje nei in pakketferoaring in gearhingjende, stipe ynstallaasje yn plak fan ien âld binêr bestân op syn plak te kopiearjen. In behearske weromrôljen is in legitym antwurd op in befêstige regression, mits de pakketten kompatibel bliuwe en der in wei werom nei stipe ûnderhâld bestiet. Meitsje dy wei foardat de tsjinst ophâldt te starten, net dêrnei.
In oar platfoarm kin deselde VPN-kearnbibleteek diele sûnder de bastsjinsten fan Linux te dielen, dus in gelykboppich útsjende flater op Windows seit neat oer dizze. De D-Bus-oersjoch dokumintearret de objektpaden dy’t foar konfiguraasjes en sesjes bleatlein wurde, en dat is it part fan ’e arsjitektuer dêr’t dizze diagnoaze op driuwt. Lês it ien kear, en de folgjende flater komt mei in ûnderdiel dat der al oan fêst sit.