OpenVPN 3 Linux: basahin ang D-Bus error bago ka mag-rollback
Limang serbisyo, isang frontend. Itugma ang D-Bus error sa bahaging tumanggi, tingnan kung may sesyon, at kumilos sa hangganang iyon.
Dumarating ang mga pagkabigo ng OpenVPN 3 Linux bilang error ng pamamaraang D-Bus na may kakaibang pangalan na nakakabit, at ang tukso ay ibaba ang bersyon ng isang pakete at umasa. Hindi isang programa ang kliyente: isang frontend sa command line ang nagsasalita sa bus sa mga serbisyong may-ari ng mga profile, sesyon, VPN engine at mga pribelehiyadong pagbabago sa network. Ang pagdesisyon kung alin sa limang iyon ang may-ari ng pumapalpak na tawag ang malaking bahagi ng diagnosis, at isang utos lang ang halaga nito kaysa isang rollback. Ang sumusunod ay ang desisyong iyon, sa ayos na karaniwang paglitaw ng mga pagkabigo.
Limang may-ari sa likod ng isang utos
Limang proseso ang mahalaga, at bawat isa ay may sariling pangalan sa bus: ang frontend na tumatanggap ng utos mo, ang tagapamahala ng konfigurasyon na nag-iimbak ng mga profile at ng kanilang patakaran sa pag-access, ang tagapamahala ng sesyon na may-ari ng tagal ng sesyon, ang backend na nagpapatakbo ng koneksyon sa pamamagitan ng OpenVPN 3 Core Engine, at ang serbisyo ng konfigurasyon ng network na naglalagay ng interface, ruta at mga setting ng DNS. Ang error na tumutukoy sa isang konfigurasyon na bagay ay hindi error ng backend, at ang backend na ayaw magsimula ay hindi kabiguan ng pagpapatotoo. Ang paglalagay ng mensahe sa isa sa mga hanay na iyon ay dapat mangyari bago baguhin ang anuman, dahil ang bawat susunod na hakbang ay nakasalalay sa kung aling hanay ang totoo. Ang paghula sa hanay ay ang paraan kung paano nagiging isang hapon ng trabaho sa pakete ang isang maikling pagwawasto.
Itanong sa system bus kung aling mga serbisyo ang naroon bago magtanong ng iba pa, at pagkatapos ay tiyakin na nagkakasundo sa isang bersyon ang mga naka-install na bahagi. Inirerehistro ng OpenVPN 3 Linux ang mga serbisyong iyon bilang mga unit ng system, kaya ang bus na tatanungin ay ang system bus, ang tanong sa bersyon ay nangangailangan ng awtoridad na pang-administrasyon, at ang listahang ginawa gamit ang --user ay nagbabasa ng sesyon ng pag-login mo, kung saan hindi kailanman lumilitaw ang mga unit. Nag-aaktiba ang mga serbisyo kapag hiniling at may ilang lumalabas kapag walang ginagawa, kaya ang serbisyong kulang bago ang unang hiling mo ay talagang wala pang natatanong. Sinasagot ng tatlong utos sa ibaba ang presensya, bersyon at kalagayan ng unit nang hindi nagbubukas ng sesyon ng VPN.
sudo busctl list | grep -i openvpn
sudo openvpn3-admin version --services
systemctl list-units 'openvpn3*'Ano ang tunay na pinatutunayan ng bawat listahan
Ang sariling mga pananaw ng kliyente ang pinakamurang ebidensyang makukuha, at bawat isa sa kanila ay nagpapatunay ng mas kaunti kaysa sa tila. Ang profile sa listahan ng konfigurasyon ay nagpapakita na may na-import na profile at wala itong sinasabi tungkol sa kung may puwedeng kumonekta rito. Ang sesyon sa listahan ng sesyon ay nagpapakita na may umiiral na bagay na sesyon at wala itong sinasabi tungkol sa kung natapos na ang pagpapatotoo sa malayo.
openvpn3 configs-list
openvpn3 sessions-listAng mga landas ng bagay sa mga output na iyon ay tumutukoy sa mga pinamamahalaang bagay sa bus at hindi sa mga file, kaya hindi sila maaaring i-edit, at ang landas na naitala kanina ay nagiging lipas sa sandaling humiwalay ang sesyong iyon. Ang paggamit muli ng isa mula sa mga tala mo ay gumagawa ng "no such object" na mga error na walang kinalaman sa VPN. Hinihiwalay ng talahanayan ng yugto sa ibaba ang itinatayo ng bawat hakbang ng koneksyon sa iniiwan nitong bukas, at iyon mismo ang pagkakaibang pinaghahawakan ng desisyon sa rollback. Basahin ang hanay na tugma sa ebidensya mo, at basahin muli ang teksto ng error.
| 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 |
Bumabalik ang tawag sa koneksyon bago umiral ang tunel
Ibibigay sa iyo ng tawag sa koneksyon ang isang sesyong babantayan at babalik ito, kaya ang tila matagumpay na tawag na sinusundan ng katahimikan ay normal na pansamantalang kalagayan at hindi pagsalungat. Kailangan pa ring sundan ng frontend ang mga pagbabago sa kalagayan at sagutin ang anumang hiling sa interaksyon. Ang profile na nangangailangan ng kredensyal at walang natatanggap na sagot ay naghihintay sa kalagayang kamukhang-kamukha ng nakabitin na backend. Ang kalagayang naghihintay ay dapat makilala, dahil pinapadala nito ang mga tao sa maling bahagi.
Habang tumatakbo ang isang pagtatangka, bantayan ang listahan ng sesyon at ang sariling log ng frontend para sa profile na iyon. Ang sesyong hindi kailanman lumalabas sa simulang kalagayan ay tumutukoy sa bahaging tumigil, at karaniwang tinutukoy ito ng log sa unang ilang linya. Itabi ang pangalan ng profile, dahil ang utos ng log ay tumatanggap ng profile at hindi landas ng sesyon, na isa pang dahilan upang basahin muli ang listahan kaysa gamitin muli ang isang landas.
openvpn3 sessions-list
openvpn3 log --config <profile> --level 6Pagbasa ng log ng isang bahagi nang hindi nagbubukas ng sesyon
Kapag walang sinasabi ang frontend na kapaki-pakinabang, pumunta sa bahaging nagtala ng pagkabigo kaysa magsimula ng isa pang koneksyon. Sa naka-configure na systemd-journald logger, binabasa ng nakapaloob na tanaw ng journal ng administrador ang mga pangyayari ng isang bahagi nang hindi hinahawakan ang patakaran sa bus o nagbubukas ng sesyon, na mahalaga dahil ang diagnosis na nagbabago sa sistemang sinusukat nito ay kakaunti ang pinatutunayan. Salain ayon sa unit at hindi sa tag ng syslog: hindi ginagarantiyahan ng mga indibidwal na unit ng serbisyo ang isang pinagsasaluhang identifier, kaya ang paghahanap ayon sa tag ay maaaring magbalik ng blangkong pahina habang ang unit mismo ang nagtala ng pagkabigo.
Itala ang apat na patlang bago humingi ng tulong sa kahit kanino: ang buong pangalan ng error, ang serbisyo at bagay na sangkot, ang tatak ng oras, at ang mga bersyon ng naka-install na pakete. Iyon ang kailangan ng tagapangalaga, at wala sa mga iyon ang nangangailangan ng pag-paste ng profile o kredensyal sa isang tiket. Ang pagpapalawak ng patakaran sa pag-access sa bus upang patahimikin ang error ay hindi diagnosis, binubura nito ang hangganang tumutukoy ng bahagi para sa iyo. Ang pribadong nilalaman ng profile ay nananatiling labas ng ibinabahaging ulat dahil sa parehong dahilan ng mga kredensyal.
journalctl -u 'openvpn3-service-*' -n 50 --no-pager
openvpn3-admin journal --service <name>Pagwawasto sa hangganang tumanggi
Bawat hanay ng mapa ay may sariling pagwawasto, at hindi pinapalitan ng mga hanay ang isa't isa. Ang tinanggihang operasyon sa isang profile ay tanong tungkol sa patakaran at pagmamay-ari, samantalang ang backend na ayaw mag-activate ay tanong tungkol sa mga serbisyo at pag-iimpake. Ang server na tumatanggihan ng pagpapatotoo ay wala sa dalawa, kaya ang paulit-ulit na pagpapalit ng password ay hindi kayang ayusin ang lokal na problema sa pag-activate. Ang pagpili ng maling pagwawasto ay ang paraan kung paano nagiging muling pag-install ang problema sa patakaran.
Pagkatapos ng pagbabago sa pakete, tiyakin ang magkakaugnay at sinusuportahang pag-install kaysa kopyahin ang isang lumang binary sa puwesto nito. Ang kontroladong rollback ay lehitimong sagot sa kumpirmadong regression, sa kondisyon na nananatiling tugma ang mga pakete at may daan pabalik sa sinusuportahang pagpapanatili. Itayo ang daang iyon bago tumigil magsimula ang serbisyo, hindi pagkatapos.
Ang ibang plataporma ay maaaring magbahagi ng parehong pangunahing library ng VPN nang hindi ibinabahagi ang mga serbisyo sa bus ng Linux, kaya ang mukhang katulad na pagkabigo sa Windows ay walang sinasabi tungkol dito. Dinokumento ng pangkalahatang-tanaw ng D-Bus ang mga landas ng bagay na inilalantad para sa konfigurasyon at sesyon, at iyon ang bahagi ng arkitektura na pinaghahawakan ng diagnosis na ito. Basahin ito nang isang beses, at ang susunod na error ay darating na may bahaging nakakabit na rito.