Den Import an NetworkManager schléit bei OpenVPN- an WireGuard-Dateien fehl
Meeschtens ass de Parser, net de Profil, dat wat briecht. Kontrolléiert de Plugin, liest déi importéiert Verbindung, reparéiert Secret-Flags a Routen, an test en Neistart.
Ech hunn Aus Datei importéieren… an den GNOME-Astellungen gewielt, e Profil gewielt, dat mam Client vum Hiersteller funktionéiert, an den Dialog ass zou gaange, ouni eppes an d'Lëscht derbäizefügen. Op engem zweete Laptop war den Import fäerdeg, d'Verbindung ass ënner dem Numm vum Profil opgetrueden, an duerno ass se bei der éischter Authentifizéierungsufro gescheitert. Den NetworkManager féiert Är .ovpn- oder wg-quick-Datei ni esou aus. Hien iwwergëtt d'Datei un e Parser, de Parser verwandelt se an den eegene Verbindungsformat vum NetworkManager, an vun do un gëtt den Tunnel aus dësem geparsten Objet gebaut — Geheimnissen, Routen, DNS an alles. D'nuetze Fro ass also net, firwat d'Datei futti ass, mä ob d'Parsen geschitt ass a wat se behalen huet.
Wat den Import tatsächlech mat der Datei mécht
Fir OpenVPN läit de Parser am Plugin-Paket, an d'Verbindung, déi en uleet, weist op en D-Bus-Service wéi org.freedesktop.NetworkManager.openvpn. Kee Plugin, kee Parser: den Typ ass nmcli onbekannt, an d'grafesch Lëscht fir eng VPN derbäizesetzen weist vläicht guer keen Import-Agang. WireGuard ënnerscheet sech an engem wichtege Punkt — den NetworkManager huet zënter der 1.30-Serie seng eege WireGuard-Astellungen, et gëtt also kee separat Plugin-Paket, mä de wg-quick-Lieser existéiert nëmmen an Builds, déi en matliwweren.
Sou oder sou gëtt d'Datei eemol gelies. D'Resultat gëtt als Keyfile ënner /etc/NetworkManager/system-connections/ geschriwwen, nom Verbindungsnumm genannt, am Besëtz vu root a fir aner Benotzer onliesbar, well et d'Schlësselmaterial enthält. Dëse Keyfile ass elo d'Verbindung; eng spéider Ännerung vun der ursprénglecher .ovpn ännert näischt.
Dräi Symptomer gehéieren zu dräi verschiddene Phase. Kee Import-Agang oder en onbekannten Typ bedeit, datt de Plugin oder d'Versioun feelt. En Importfehler, deen eng Direktiv nennt, bedeit, datt de Parser d'Datei gelies huet an en Deel dovun ofgeleent huet. Eng Verbindung, déi existéiert, awer ni aktivéiert, bedeit, datt de geparste Objet onvollstänneg ass oder datt d'Server-Säit se ofleent. Entscheet, wéi ee Fall Dir hutt, ier Dir eppes ännert.
Kontrolléiert de Plugin, ier Dir de Profil debugg.
E fehlende Plugin gesäit genau wéi e beschiedegte Profil aus, also kontrolléiert als éischt d'Paket. Op Debian an Ubuntu gëtt d'OpenVPN-Ënnerstëtzung als network-manager-openvpn plus en Desktop-Helfer geliwwert; op Fedora sinn et d'Pakete NetworkManager-openvpn an NetworkManager-openvpn-gnome; op Arch ass et networkmanager-openvpn.
dpkg -l network-manager-openvpn-gnome | tail -n 2 rpm -q NetworkManager-openvpn pacman -Q networkmanager-openvpn
Importéiert dann iwwer en absolute Pad: nmcli connection import type openvpn file /home/you/profile.ovpn. Relativ Pade funktionéieren normalerweis, awer eng Shell, déi d'Verzeechnis gewiesselt huet, mécht aus engem séieren Import en Ëmwee. Kontrolléiert fir WireGuard nmcli --version a suergt dofir, datt d'Kär-Säit mat modprobe wireguard existéiert; en Import, deen op enger Maschinn ouni de Modul geléngt, léisst Iech mat enger Verbindung, deenen hiren Apparat ni opdaucht. D'nmcli-Referenz dokumentéiert den Ënnerkommando import an déi akzeptéiert Typnummen. Gëtt type wireguard ronderëm ofgeleent, ass de Build méi al wéi d'Funktioun, an de richtege Schrëtt ass en Distributiounspaket oder e Backport — net d'Konfiguratioun an en beléifegen Verzeechnis ze kopéieren an ze hoffen, datt eppes se liest.
Liest d'OpenVPN-Verbindung, net d'.ovpn
Soubal d'Verbindung existéiert, liest déi geparste Astellungen, amplaz d'Datei nach eng Kéier ze liesen: nmcli connection show "Work VPN" | grep -E '^vpn\.'. Dir wëllt de Remote an de Port, den Transport, d'Identitéitsmaterial — ca, cert, key, tls-auth oder tls-crypt — an d'Authentifizéierungsmethod. Bei engem Profil mat engem Passwuert fir de privaten Schlëssel füügt Dir sudo nmcli --show-secrets connection show "Work VPN" derbäi a kuckt op d'Secret-Flags: 0 ass none, also läit d'Geheimnis am Keyfile; 1 ass agent-owned; 2 ass not-saved, dat heescht et gëtt ni an de Keyfile geschriwwen; 4 ass not-required, dat heescht et ass guer keng Geheimnis néideg. Et sinn Bits, keng Skala, also 3 ass einfach agent-owned plus not-saved. Eng Geheimnis, déi Iech eemol pro Sitzung freet, ass agent-owned (1), woubäi den Agent dofir freet; dofir gëtt et keng separat Flagg-Nummer. En Flag-Mismatch ass de gewéinleche Grond, firwat e Profil vum Desktop-Applet aus verbënnt a vu engem Skript oder beim Booten ausfällt.
De séierste Wee fir ze gesinn, wat de Parser fale gelooss huet, ass de Plugin ze freen, d'Datei zréckzeschreiwen, an se dann ze diffen: nmcli connection export "Work VPN" /tmp/roundtrip.ovpn. Direktiven, déi an deem Diff verschwannen, existéieren zur Verbindungszäit net. Hooks sinn déi gewéinlech Verdächteg — script-security, up, down an route-up erwaarden e Skript, dat mat erhéiten Rechter leeft, a ginn bewosst net iwwerholl. Wëllt d'Verifikatioun net erofsetzen a gitt keng zousätzlech Rechter, fir en Import ze erméiglechen; eng net ënnerstëtzten Optioun refleutéiert meeschtens de Funktiounsset vum Plugin an net en onereechbare Server. Verleet dëst Verhalen an e NetworkManager-Dispatcher-Skript oder an eng server-side Policy.
Kontrolléiert och, ob d'Identitéitsfelder iwwerlieft hunn: d'CA-Referenz, remote-cert-tls an all Nummkontroll, op déi sech de Profil gestëtzt huet. Eng Verbindung, déi ouni si eropkënnt, schwätzt vläicht mat deem, wat op där Adress äntwert.
Liest d'WireGuard-Verbindung, net d'wg-quick-Datei
Eng wg-quick-Datei ass e Format mat Shell-Semantik; déi importéiert Verbindung ass eng Rei Astellungen. PrivateKey gëtt den private Schlëssel vum Interface, Address gëtt eng oder méi IPv4- an IPv6-Adressen, DNS mappt op d'Resolver-Eegenschaften vum NetworkManager, MTU mappt op wireguard.mtu (dem wg-quick seng eege Standard ass 1420), an all Peer-Block gëtt en Peer-Agang mam ëffentleche Schlëssel, Endpoint, erlaabten IPs a persistentem Keepalive. Dréckt aus, wat gespäichert gouf, mat nmcli --show-secrets connection show wg0; erschéngt d'Peer-Lëscht net an där Ausgab, liest de Keyfile:
sudo sed -n '/^\[wireguard\]/,/^\[/p' /etc/NetworkManager/system-connections/wg0.nmconnection
Wat net iwwerlieft, ass d'Shell-Halschent vum wg-quick. PreUp, PostUp, PreDown, PostDown an Table sinn Verhalen vun deem Tool, keng Attributer vun engem WireGuard-Interface, also féiert ee vun hinnen no engem Import aus. Wann d'Original Table = off benotzt huet, fir d'Standardroute an Rou ze loossen, bidden nei NetworkManager-Releases ip4-auto-default-route an ip6-auto-default-route fir dee selwechte Zweck; setzt se explizit, amplaz unzehuelen, datt d'Verbindung sech wéi d'Skript verhält. En Hook, deen eng eegen Route gesat huet, brauch déi Route an den Routing-Astellungen vun der Verbindung, soss feelt se einfach.
Gitt der Verbindung genau een Eegentemer
De klassesche Folgefehler ass eng Verbindung, déi bis zum nächsten Neistart funktionéiert an dann an enger Schlauf hänkt. Meeschtens war [email protected] nach aus engem fréieren Experiment aktivéiert, oder e Client vum Hiersteller huet säin eegene Daemon gestart, an zwee Eegentemer hunn Routen an DNS fir déiselwecht Destinatioun geschriwwen. Den NetworkManager setzt de Resolver iwwer säin eegene Wee, wg-quick schreift iwwer resolvconf, an de leschte Schreiwer gewënnt — also funktionéiert d'Nummopliesung, da stoppt se, da funktionéiert se nees. Kontrolléiert systemctl status wg-quick@wg0, nmcli connection show --active an ip link show type wireguard, an deaktivéiert dann den zweeten Eegentemer, amplaz un senger Metrik ze dréien.
Wann Dir béid wierklech braucht, gitt hinnen getrennten Interfacen an disjoint erlaabten IPs, a loosst genau ee vun hinnen d'Standardroute installéieren. Zwou Standardrouten mat verschiddenen Metriken ass kee Split-Tunnel; et ass eng Course, déi vum Service entscheet gëtt, deen als zweeten start. An no engem Reconnect kuckt Dir dee applizéierte Staat nach eng Kéier un — eng eeemoleg manuell Resolver-Ännerung, déi d'Saachen zum Lafen bréngt, ass kee Beweis, datt den Import komplett ass.
Verifizéiert mam Traffic a iwwerlieft en Neistart
Bréngt d'Verbindung mat nmcli connection up "Work VPN" erop, a liest dann Staat, Adress a Routen, amplaz dem Symbol ze vertrauen: nmcli device show wg0 | grep -E 'GENERAL.STATE|IP4.ADDRESS|IP4.ROUTE', ip route show default, an eng richteg Opfro vun engem Numm, dee just am Tunnel opgeléist gëtt. En Handshake oder en erfollegräiche Ping beweise just, datt d'Krypto funktionéiert; iwwer Forwarding, Split-Tunnel-Präfixer oder privaten DNS soen se näischt, an dat sinn d'Deeler, déi meeschtens briechen.
Start dann nei a widderhëlt et. Autoconnect-Verhalen, en ëmbenannten Interface an e Plugin, deen nom Apparat lued, sinn alles Feeler, déi Dir just bei engem frische Boot gesitt. journalctl -u NetworkManager -b --no-pager | tail -n 40 weist, wat den Daemon an dësem Boot mat dëser Verbindung gemaach huet. Fir en zweeten Desktop kopéiert Dir de Keyfile a halt en am Besëtz vu root mat Modus 600, oder Dir benotzt nmcli connection export fir OpenVPN an importéiert déi entstoe .ovpn nei — fir den Exportwee gëtt et kee WireGuard-Äquivalent, also ass déi Richtung eng Dateikopie oder en frische Import aus dem geschützten Original.
Kurz Versioun, an der Reihenfolg: bestätegt de Plugin oder d'NetworkManager-Versioun, importéiert iwwer en absolute Pad, liest déi geparsten Astellungen inklusiv Secret-Flags, diff den OpenVPN-Export géint d'Original, kontrolléiert Hooks a Routen op der WireGuard-Säit, deaktivéiert all zweeten Eegentemer, a verifizéiert dann no engem Neistart eng Nummopfro an d'Routentabelle. Wann eng Verbindung dat alles besteet, kann d'Profildatei, déi se gestart huet, zréck an de geschützte Späicher.