Valisin Impordi failist… GNOME seadetes, valisin profiili, mis töötab teenusepakkuja kliendiga, ja dialoog sulgus midagi loendisse lisamata. Teisel sülearvutil import lõppes, ühendus ilmus profiili nime alla ja siis ebaõnnestus see esimesel autentimisküsimusel. NetworkManager ei käivita kunagi sinu .ovpn või wg-quick faili sellisena, nagu see on. See annab faili parserile, parser muudab selle NetworkManageri enda ühenduse vormingusse ja sealt edasi ehitatakse tunnel sellest parsitud objektist — saladused, marsruudid, DNS ja kõik muu. Nii et kasulik küsimus ei ole, miks fail katki on, vaid kas parsimine toimus ja mida see säilitas.

Mida import failiga tegelikult teeb

Rääkides OpenVPN parserist, see elab pistikprogrammi paketis ja loodud ühendus osutab D-Bus teenusele nagu org.freedesktop.NetworkManager.openvpn. Pistikprogrammi pole, parserit pole: tüüp on nmcli jaoks tundmatu ja graafiline VPN-i lisamise loend ei pruugi üldse impordi kirjet näidata. WireGuard erineb ühes olulises asjas — NetworkManageril on oma WireGuard-i seaded alates 1.30 seeriast, seega eraldi pistikprogrammi paketti pole, kuid wg-quick lugeja on ainult nendes buildides, mis selle kaasa annavad.

Igal juhul loetakse faili üks kord. Tulemus kirjutatakse keyfile-na /etc/NetworkManager/system-connections/ alla, nimetatakse ühenduse järgi, kuulub rootile ja on teistele kasutajatele loetamatu, sest sisaldab võtmematerjali. See keyfile on nüüd ühendus; hilisem originaalse .ovpn muutmine ei muuda midagi.

Kolm sümptomit kuuluvad kolme erinevasse etappi. Impordi kirje puudumine või tundmatu tüüp tähendab, et pistikprogramm või versioon puudub. Impordiviga, mis nimetab direktiivi, tähendab, et parser luges faili ja lükkas osa sellest tagasi. Ühendus, mis on olemas, kuid ei aktiveeru kunagi, tähendab, et parsitud objekt on puudulik või server lükkab selle tagasi. Otsusta, milline kolmest juhtumist sinul on, enne kui midagi muudatusi teed.

Kinnita pistikprogramm enne profiili silumist

Puuduv pistikprogramm näeb täpselt välja nagu rikutud profiil, seega kontrolli esmalt paketti. Debianis ja Ubuntus tarnitakse OpenVPN-i tugi paketina network-manager-openvpn pluss töölaua abiline; Fedoras on paketid NetworkManager-openvpn ja NetworkManager-openvpn-gnome; Archis on see networkmanager-openvpn.

dpkg -l network-manager-openvpn-gnome | tail -n 2
rpm -q NetworkManager-openvpn
pacman -Q networkmanager-openvpn

Seejärel impordi absoluutsest teest: nmcli connection import type openvpn file /home/you/profile.ovpn. Suhtelised teed tavaliselt töötavad, kuid kataloogi vahetanud shell muudab kiire impordi ümbersõiduks. WireGuardi puhul kontrolli nmcli --version ja veendu, et kerneli pool on olemas käsuga modprobe wireguard; import, mis õnnestub masinas ilma moodulita, jätab sind ühendusega, mille seade ei ilmu kunagi. nmcli viide dokumenteerib alamkäsud import ja aktsepteeritud tüübinimed. Kui type wireguard lükatakse kohe tagasi, on build funktsioonist vanem ja õige samm on distributsiooni pakett või backport — mitte konfiguratsiooni kopeerimine suvalisse kataloogi lootuses, et keegi selle loeb.

Loe OpenVPN-i ühendust, mitte .ovpn faili

Kui ühendus on olemas, loe parsitud seadeid, mitte ära loe faili uuesti: nmcli connection show "Work VPN" | grep -E '^vpn\.'. Sa tahad remote'i ja porti, transporti, identiteedimaterjali — ca, cert, key, tls-auth või tls-crypt — ja autentimismeetodit. Privaatvõtme parooliga profiilil lisa sudo nmcli --show-secrets connection show "Work VPN" ja vaata secret lippe: 0 on none, seega saladus asub keyfile'is; 1 on agent-owned; 2 on not-saved, mis tähendab, et seda ei kirjutata kunagi keyfile'i; 4 on not-required, mis tähendab, et saladust pole üldse vaja. Need on bitid, mitte skaala, seega 3 on lihtsalt agent-owned pluss not-saved. Saladus, mida küsitakse korra seansi jooksul, on agent-owned (1), kusjuures agent küsib seda; selle jaoks eraldi lipunumbrit pole. Lippude mittevastavus on tavaline põhjus, miks profiil ühendub töölaua apletist ja ebaõnnestub skriptist või käivitamisel.

Kiireim viis näha, mida parser välja jättis, on paluda pistikprogrammil fail tagasi kirjutada ja siis seda diffida: nmcli connection export "Work VPN" /tmp/roundtrip.ovpn. Direktiivid, mis selles diffis kaovad, ei eksisteeri ühendamise ajal. Hookid on tavalised kahtlusalused — script-security, up, down ja route-up eeldavad kõrgendatud õigustega skripti ja neid ei kanta meelega üle. Ära alanda kontrolli ega anna lisaprivileege, et import õnnestuks; toetamata valik peegeldab tavaliselt pistikprogrammi funktsioonide kogumit, mitte kättesaamatut serverit. Viige see käitumine NetworkManageri dispatcher-skripti või serveripoolsesse poliitikasse.

Kontrolli ka, et identiteediväljad jäid alles: CA viide, remote-cert-tls ja iga nimekontroll, millele profiil toetus. Ühendus, mis tõuseb ilma nendeta, võib rääkida millega iganes, mis sellel aadressil vastab.

Loe WireGuardi ühendust, mitte wg-quick faili

wg-quick fail on shell-semantikaga vorming; imporditud ühendus on seadete kogum. PrivateKey saab liidese privaatvõtmeks, Address saab üheks või mitmeks IPv4 ja IPv6 aadressiks, DNS vastendub NetworkManageri resolveri omadustele, MTU vastendub wireguard.mtu-ga (wg-quick'i enda vaikeväärtus on 1420) ja iga peer-plokk saab peer-kirjeks avaliku võtme, endpointi, lubatud IP-de ja persistent keepalive'iga. Trüki välja, mis salvestati, käsuga nmcli --show-secrets connection show wg0; kui peer-loend selles väljundis ei ilmu, loe keyfile:

sudo sed -n '/^\[wireguard\]/,/^\[/p' /etc/NetworkManager/system-connections/wg0.nmconnection

Ei jää alles wg-quick'i shell-pool. PreUp, PostUp, PreDown, PostDown ja Table on selle tööriista käitumine, mitte WireGuardi liidese atribuudid, seega ei käivita neid pärast importi miski. Kui originaal kasutas Table = off, et jätta vaikemarsruut puutumata, pakuvad uuemad NetworkManageri väljaanded samaks otstarbeks ip4-auto-default-route ja ip6-auto-default-route; sea need selgesõnaliselt, selle asemel et eeldada, et ühendus käitub nagu skript. Hook, mis lükkas kohandatud marsruudi, vajab seda marsruuti ühenduse marsruutimisseadetes, muidu jääb see lihtsalt puudu.

Anna ühendusele täpselt üks omanik

Klassikaline järeltõrge on ühendus, mis töötab järgmise käivituseni ja läheb siis silmusesse. Tavaliselt oli [email protected] veel varasemast katsest lubatud või käivitas tarnija klient oma daemoni, ja kaks omanikku kirjutasid marsruute ja DNS-i sama sihtkoha jaoks. NetworkManager seab resolveri oma teed, wg-quick kirjutab läbi resolvconfi ja võidab viimane kirjutaja — nii et nime lahutamine töötab, siis peatub, siis töötab jälle. Kontrolli systemctl status wg-quick@wg0, nmcli connection show --active ja ip link show type wireguard, seejärel keela teine omanik, selle asemel et selle metricut häälestada.

Kui sul on tõesti mõlemat vaja, anna neile eraldi liidesed ja mittelõikuvad lubatud IP-d ning lase täpselt ühel neist paigaldada vaikemarsruut. Kaks erineva metricuga vaikemarsruuti ei ole split tunnel; see on võidujooks, mille otsustab teenus, mis käivitub teisena. Ja pärast uuesti ühendamist vaata rakendatud olek uuesti üle — ühekordne käsitsi resolveri muudatus, mis asjad tööle paneb, ei tõenda, et import on täielik.

Kontrolli liiklusega ja püsi restart üle

Tõsta ühendus üles käsuga nmcli connection up "Work VPN", seejärel loe olekut, aadressi ja marsruute, selle asemel et ikooni usaldada: nmcli device show wg0 | grep -E 'GENERAL.STATE|IP4.ADDRESS|IP4.ROUTE', ip route show default ja tõeline päring nime järele, mis laheneb ainult tunneli sees. Handshake või edukas ping tõestab ainult seda, et krüptograafia töötab; see ei ütle midagi edastamise, split-tunnel-i prefiksite ega privaatse DNS-i kohta ja just need osad tavaliselt katkevad.

Seejärel lisa restart ja korda. Autoconnecti käitumine, ümbernimetatud liides ja pistikprogramm, mis laaditakse pärast seadet, on kõik tõrked, mida näed ainult puhtal käivitusel. journalctl -u NetworkManager -b --no-pager | tail -n 40 näitab, mida daemon selle ühendusega selles käivituses tegi. Teise arvuti jaoks kopeeri keyfile ja hoia seda rooti omandis režiimiga 600, või kasuta nmcli connection export OpenVPN-i jaoks ja impordi saadud .ovpn uuesti — eksporditeel pole WireGuardi vastet, seega see suund on faili koopia või värske import kaitstud originaalist.

Lühiversioon, järjekorras: kinnita pistikprogramm või NetworkManageri versioon, impordi absoluutsest teest, loe parsitud seadeid koos secret lippudega, võrdle OpenVPN-i eksporti originaaliga, kontrolli hooke ja marsruute WireGuardi poolel, keela iga teine omanik ja seejärel pärast restarti kontrolli nime lahutamist ja marsruutitabelit. Kui ühendus läbib kõik selle, võib profiilifail, millest see algas, tagasi kaitstud hoiukohta minna.

Seotud artiklid