Uingizaji katika NetworkManager unashindikana kwa faili za OpenVPN na WireGuard
Kwa kawaida kichanganuzi, si wasifu, ndicho kinachovunjika. Angalia programu jalizi, soma muunganisho ulioingizwa, rekebisha secret flag na njia, kisha jaribu kuwasha upya.
Nilichagua Ingiza kutoka faili… katika Mipangilio ya GNOME, nikachagua wasifu unaofanya kazi na mteja wa mtoa huduma, na kidirisha kilifungwa bila kuongeza chochote kwenye orodha. Kwenye kompyuta ndogo ya pili uingizaji ulikamilika, muunganisho ukaonekana kwa jina la wasifu, kisha ukashindikana kwenye ombi la kwanza la uthibitishaji. NetworkManager haiwahi kuendesha faili yako ya .ovpn au wg-quick kama ilivyo. Inakabidhi faili kwa kichanganuzi, kichanganuzi kinaibadilisha kuwa muundo wa muunganisho wa NetworkManager yenyewe, na kuanzia hapo handaki hujengwa kutoka kwa kitu hicho kilichochanganuliwa — siri, njia, DNS na kila kitu. Kwa hiyo swali lenye maana si kwa nini faili imeharibika, bali kama uchanganuzi ulifanyika na ulihifadhi nini.
Uingizaji hufanya nini kwa kweli na faili
Kwa OpenVPN, kichanganuzi kinaishi katika kifurushi cha programu jalizi, na muunganisho unaoundwa kinaelekeza kwa huduma ya D-Bus kama org.freedesktop.NetworkManager.openvpn. Hakuna jalizi, hakuna kichanganuzi: aina hiyo haijulikani kwa nmcli, na orodha ya picha ya kuongeza VPN huenda isionyeshe ingizo la uingizaji kabisa. WireGuard inatofautiana kwa jambo moja muhimu — NetworkManager ina mipangilio yake ya WireGuard tangu mfululizo wa 1.30, kwa hiyo hakuna kifurushi cha jalizi tofauti, lakini kisomaji cha wg-quick kinapatikana tu katika miundo inayokileta.
Vyovyote vile, faili inasomwa mara moja. Matokeo huandikwa kama keyfile chini ya /etc/NetworkManager/system-connections/, ikipewa jina la muunganisho, inamilikiwa na root na haisomeki kwa watumiaji wengine kwa sababu ina nyenzo za ufunguo. Keyfile hiyo sasa ndiyo muunganisho; kuhariri faili ya awali ya .ovpn baadaye hakubadilishi chochote.
Dalili tatu ni za hatua tatu tofauti. Hakuna ingizo la uingizaji au aina isiyojulikana humaanisha jalizi au toleo halipo. Hitilafu ya uingizaji inayotaja maagizo humaanisha kichanganuzi kilisoma faili na kukataa sehemu yake. Muunganisho uliopo lakini usioamilishwa kamwe humaanisha kitu kilichochanganuliwa hakijakamilika au seva inakikataa. Amua ni ipi kati ya hali tatu uliyonayo kabla ya kuhariri chochote.
Thibitisha jalizi kabla ya kutafuta hitilafu za wasifu
Jalizi inayokosekana inaonekana kama wasifu ulioharibika kabisa, kwa hiyo angalia kifurushi kwanza. Kwenye Debian na Ubuntu msaada wa OpenVPN huja kama network-manager-openvpn pamoja na msaidizi wa dawati; kwenye Fedora vifurushi ni NetworkManager-openvpn na NetworkManager-openvpn-gnome; kwenye Arch ni networkmanager-openvpn.
dpkg -l network-manager-openvpn-gnome | tail -n 2 rpm -q NetworkManager-openvpn pacman -Q networkmanager-openvpn
Kisha ingiza kutoka njia kamili: nmcli connection import type openvpn file /home/you/profile.ovpn. Njia zisizo kamili kwa kawaida hufanya kazi, lakini shell iliyobadilisha saraka hufanya uingizaji wa haraka kuwa mzunguko. Kwa WireGuard angalia nmcli --version na uhakikishe upande wa kernel upo kwa modprobe wireguard; uingizaji unaofanikiwa kwenye mashine isiyo na moduli hukuacha na muunganisho ambao kifaa chake hakionekani kamwe. Marejeo ya nmcli yanaeleza amri ndogo ya import na majina ya aina yanayokubalika. Ikiwa type wireguard inakataliwa moja kwa moja, muundo ni wa zamani kuliko kipengele hiki, na hatua sahihi ni kifurushi cha usambazaji au backport — si kunakili usanidi kwenye saraka yoyote kwa matumaini kwamba kitu kitaisoma.
Soma muunganisho wa OpenVPN, si .ovpn
Muunganisho ukiwepo, soma mipangilio iliyochanganuliwa badala ya kusoma faili tena: nmcli connection show "Work VPN" | grep -E '^vpn\.'. Unataka remote na bandari, usafirishaji, nyenzo za utambulisho — ca, cert, key, tls-auth au tls-crypt — na mbinu ya uthibitishaji. Kwenye wasifu wenye nenosiri la ufunguo wa kibinafsi, ongeza sudo nmcli --show-secrets connection show "Work VPN" na uangalie secret flag: 0 ni none, kwa hiyo siri iko kwenye keyfile; 1 ni agent-owned; 2 ni not-saved, yaani haijaandikwa kamwe kwenye keyfile; 4 ni not-required, yaani hakuna siri inayohitajika kabisa. Ni biti, si kipimo, kwa hiyo 3 ni agent-owned pamoja na not-saved tu. Siri inayouliza mara moja kwa kikao ni agent-owned (1), huku wakala akiomba; hakuna namba ya bendera tofauti kwa hilo. Kutolingana kwa bendera ndiyo sababu ya kawaida wasifu kuunganisha kutoka applet ya dawati na kushindikana kutoka skripti au wakati wa kuwasha.
Njia ya haraka zaidi ya kuona kile kichanganuzi kilichotupa ni kuiomba jalizi iandike faili tena kisha ulinganishe: nmcli connection export "Work VPN" /tmp/roundtrip.ovpn. Maagizo yanayotoweka katika tofauti hiyo hayatakuwepo wakati wa kuunganisha. Hook ndio washukiwa wa kawaida — script-security, up, down na route-up hutegemea skripti inayoendeshwa kwa mamlaka ya juu na kwa makusudi haihamishwi. Usipunguze uthibitishaji wala usitoe upendeleo wa ziada ili uingizaji ufanikiwe; chaguo lisilotumika kwa kawaida huakisi seti ya vipengele vya jalizi na si seva isiyoweza kufikiwa. Hamishia tabia hiyo kwenye skripti ya dispatcher ya NetworkManager au kwenye sera ya upande wa seva.
Thibitisha pia kwamba sehemu za utambulisho zilinusurika: rejeleo la CA, remote-cert-tls na ukaguzi wowote wa jina ambao wasifu ulitegemea. Muunganisho unaopanda bila hizo unaweza kuwa unazungumza na chochote kinachojibu kwenye anwani hiyo.
Soma muunganisho wa WireGuard, si faili ya wg-quick
Faili ya wg-quick ni muundo wenye maana ya shell; muunganisho ulioingizwa ni seti ya mipangilio. PrivateKey inakuwa ufunguo wa kibinafsi wa kiolesura, Address inakuwa anwani moja au zaidi za IPv4 na IPv6, DNS inapangwa kwenye sifa za resolver za NetworkManager, MTU inapangwa kwenye wireguard.mtu (thamani ya msingi ya wg-quick yenyewe ni 1420), na kila kizuizi cha peer kinakuwa ingizo la peer lenye ufunguo wa umma, endpoint, IP zinazoruhusiwa na persistent keepalive. Chapisha kilichohifadhiwa kwa nmcli --show-secrets connection show wg0; ikiwa orodha ya peer haionekani kwenye matokeo hayo, soma keyfile:
sudo sed -n '/^\[wireguard\]/,/^\[/p' /etc/NetworkManager/system-connections/wg0.nmconnection
Kisichonusurika ni nusu ya shell ya wg-quick. PreUp, PostUp, PreDown, PostDown na Table ni tabia ya zana hiyo, si sifa za kiolesura cha WireGuard, kwa hiyo hakuna kinachoziendesha baada ya uingizaji. Ikiwa asili ilitumia Table = off kuacha njia ya msingi, matoleo mapya ya NetworkManager yanatoa ip4-auto-default-route na ip6-auto-default-route kwa madhumuni sawa; ziweke kwa uwazi badala ya kudhani muunganisho unafanya kama skripti. Hook iliyokuwa inasukuma njia maalum inahitaji njia hiyo kwenye mipangilio ya njia ya muunganisho, vinginevyo itakosekana tu.
Ipe muunganisho mmiliki mmoja hasa
Hitilafu ya kawaida inayofuata ni muunganisho unaofanya kazi hadi kuwasha kunakofuata kisha unaingia mzunguko. Kwa kawaida [email protected] ilikuwa bado imewezeshwa kutoka jaribio la awali, au mteja wa mtoa huduma alikuwa akianzisha daemon yake mwenyewe, na wamiliki wawili walikuwa wakiandika njia na DNS kwa lengo moja. NetworkManager huweka resolver kwa njia yake mwenyewe, wg-quick huandika kupitia resolvconf, na mwandishi wa mwisho anashinda — kwa hiyo utatuzi wa majina unafanya kazi, kisha unasimama, kisha unafanya kazi tena. Angalia systemctl status wg-quick@wg0, nmcli connection show --active na ip link show type wireguard, kisha zima mmiliki wa pili badala ya kurekebisha metric yake.
Ikiwa unahitaji vyote viwili kwa kweli, wape violesura tofauti na IP zinazoruhusiwa zisizogusana, na acha mmoja wao hasa asakinishe njia ya msingi. Njia mbili za msingi zenye metric tofauti si split tunnel; ni mashindano yanayoamuliwa na huduma inayoanza ya pili. Na baada ya kuunganisha tena, kagua tena hali iliyotumika — uhariri wa mkono wa mara moja wa resolver unaofanya mambo kufanya kazi si uthibitisho kwamba uingizaji umekamilika.
Thibitisha kwa trafiki na ukinge kuwasha upya
Pandisha muunganisho kwa nmcli connection up "Work VPN", kisha soma hali, anwani na njia badala ya kuamini ikoni: nmcli device show wg0 | grep -E 'GENERAL.STATE|IP4.ADDRESS|IP4.ROUTE', ip route show default na utafutaji halisi wa jina linalotatuliwa tu ndani ya handaki. Handshake au ping iliyofanikiwa inathibitisha tu kwamba usimbaji fiche unafanya kazi; haisemi chochote kuhusu upelekaji, viambishi vya split tunnel au DNS ya kibinafsi, na ndizo sehemu zinazovunjika kwa kawaida.
Kisha washa upya na urudie. Tabia ya autoconnect, kiolesura kilichopewa jina jipya na jalizi inayopakiwa baada ya kifaa ni hitilafu zote unazoziona tu kwenye kuwasha safi. journalctl -u NetworkManager -b --no-pager | tail -n 40 inaonyesha kile daemon ilifanya na muunganisho huu katika kuwasha huku. Kwa kompyuta ya pili nakili keyfile na uihifadhi ikimilikiwa na root kwa modi 600, au tumia nmcli connection export kwa OpenVPN na uingize tena .ovpn inayotokana — njia ya kuhamisha haina kifananisho cha WireGuard, kwa hiyo mwelekeo huo ni nakala ya faili au uingizaji mpya kutoka asili iliyolindwa.
Toleo fupi, kwa mpangilio: thibitisha jalizi au toleo la NetworkManager, ingiza kutoka njia kamili, soma mipangilio iliyochanganuliwa ikiwa ni pamoja na secret flag, linganisha uhamishaji wa OpenVPN na asili, angalia hook na njia upande wa WireGuard, zima mmiliki yeyote wa pili, kisha baada ya kuwasha upya thibitisha utatuzi wa jina na jedwali la njia. Muunganisho ukipita yote hayo, faili ya wasifu iliyouanzisha inaweza kurudi kwenye hifadhi iliyolindwa.