Azure VPN Client ënner Linux: DNS-Domaine konnte net gesat ginn
Den Tunnel kënnt erop, an dann kann de Linux-Client keng DNS-Domaine setzen. Préift systemd-resolved, beobacht den D-Bus-Aufruff a korrigéier d'polkit-Aktioun.
Den Tunnel kënnt erop, d'Zertifikat gëtt validéiert, an dann seet en Dialog, datt den DNS-Server oder d'Domaine net konnte gesat ginn. Ënner Linux geet et an dësem Dialog meeschtens net ëm de Gateway: de Client iwwergëtt d'Nimmkonfiguratioun iwwer D-Bus un systemd-resolved, an eng verworfene Iwwergab léisst d'Interface uewen, während d'Opléisung nach ëmmer op déi al Verbindung weist. Dee selwechte Laptop léist Nimm gutt op, éier de Profil en Suffix kritt, an dat ass den Hiweis, deem et wäert ass nozegoe. Um Tunnel huet sech an deem Moment, wéi den Dialog opgetratt ass, näischt geännert.
Ouni Suffix dréckt de Client nëmmen Nimm-Serveren. Füügt en Sichdomain dobäi, an en zweeten Aufruff schléisst sech u, SetLinkDomains, mat senger eegener Autorisatiounspréifung, dofir funktionéiert dee selwechte Profil ënner Windows a scheitert hei. De Gateway dréckt a béide Fäll déiselwecht Astellungen, an de Komponent, deen se verwërft, ass lokal.
Bestätegt, datt systemd-resolved den Opléiser ass
Dëse Client schwätzt mat systemd-resolved an mat kengem aneren. Arch an e puer aner Distributiounen liwweren en ausgeschalt, an /etc/resolv.conf kann zu engem ganz aneren Opléiser héieren, also bestëmmt den Eegentemer, éier Dir op d'Rechter kuckt.
Dräi Kommandoen entscheeden dat:
systemctl status systemd-resolved
ls -l /etc/resolv.conf
resolvectl status
Dir sicht en aktiven Service, e symbolesche Link op /run/systemd/resolve/stub-resolv.conf, an DNS pro Verbindung an resolvectl. Wann NetworkManager d'Eegentum huet, da verleet et op resolved, amplaz mat dem Client ze streiden; de Drop-in hei drënner setzt béid Schlësselen:
[main]
dns=systemd-resolved
systemd-resolved=true
Startt NetworkManager nei, soubal dës Datei existéiert. En inaktiven Opléiser zesumme mat engem Client, deen weiderhi säin D-Bus-Numm rifft, produzéiert e Fehler, deen keen vun deenen zwee nennt.
Beobacht den D-Bus-Aufruff, dee scheitert
Dëse Schrëtt mécht aus dem Dialog eng konkret Äntwert. Beobacht d'Opléiser-Interface an engem Terminal an d'Journal an engem aneren, a verbonn dech dann nei:
sudo dbus-monitor --system "interface='org.freedesktop.resolve1.Manager'"
journalctl -fu systemd-resolved
Dräi Aufruff sollten erschéngen: SetLinkDNS, SetLinkDomains an SetLinkDefaultRoute. Dee, deen als Feeleräntwert zeréckkënnt, ass deen, deen ze reparéieren ass. Déi Äntwert nennt meeschtens hire Grond, zum Beispill org.freedesktop.DBus.Error.AccessDenied géint SetLinkDomains. Nottéier, wéi en Aufruff et war, well de nächsten Abschnitt geet just ëm d'Durchloossen vun deem Aufruff.
Gitt dem Client déi néideg polkit-Aktiounen
Liest d'Politik, éier Dir eng Regel schreift. E Client, deen als Service leeft, kann net op eng interaktiv Ufro äntweren, dofir ass en impliziten auth_admin_keep eng Sakgaass.
pkaction --verbose --action-id org.freedesktop.resolve1.set-domains
pkaction --action-id org.freedesktop.resolve1.set-dns-servers --verbose
Wann d'Äntwert auth_admin_keep ass, brauch de Client eng explizit Regel. De Schnipsel hei drënner erlaabt déi véier resolve1-Aktiounen, déi e VPN-Client während enger Verbindung benotzt, an léisst alles anescht op polkit.Result.NOT_HANDLED:
polkit.addRule(function(action, subject) {
var allowed = [
"org.freedesktop.resolve1.set-dns-servers",
"org.freedesktop.resolve1.set-domains",
"org.freedesktop.resolve1.set-default-route",
"org.freedesktop.resolve1.revert"
];
if (allowed.indexOf(action.id) !== -1 &&
subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
return polkit.Result.NOT_HANDLED;
});
Setzt en an /etc/polkit-1/rules.d/ als eng Datei, déi Dir méi spéit erëmkennt, zum Beispill 50-azurevpn.rules, an ersetzt den Gruppennumm am Schnipsel duerch Ären eegene, éier Dir Iech aus- an erëm aloggt. Halt en enk, well all resolve1-Aktioun fir all Kont z'erlaben ass méi breet, wéi dëse Client brauch, an deemools vill méi schwéier z'auditteieren.
Préift de Profil-XML, éier Dir polkit ännert
E Profil, deen per Hand geännert gouf, kann ouni e Wuert ignoréiert ginn. Microsoft dokumentéiert eng flaach Anuerdnung an där d'Entréeën dnsserver direkt an dnsservers leien an d'Suffixe bannent dnssuffixes. En zousätzlecht Wrap-Element ëm all Adress ass net déi Form, an de Client fällt roueg op dat zeréck, wat de Gateway dréckt.
Maacht den Entfernungs-Test, éier Dir polkit ufosst. Huelt de Suffix-Block eraus, verbonn dech nei a kuckt, ob den Dialog sech ännert. Wann jo, war den Aufruff, deen gescheitert ass, d'Domain-Iwwergab, an d'Korrektur ass Autorisatioun an net nach eng XML-Ännerung.
Verifizéiert den Domain op der Tunnelverbindung
Verbonn dech nei a liest resolvectl status nach eng Kéier, a préift, datt d'Tunnelverbindung den Nimm-Server an de Sichdomain zesummen dréit. Léist en kuerzen private Numm op amplaz vun engem ëffentlechen. Wann den Numm sech opléist, awer de Service hannendrun net äntwert, huet d'DNS-Iwwergab funktionéiert an de Reschtproblem ass Routing.
Schreift den Eegentemer vum Opléiser, den D-Bus-Aufruff, deen gescheitert ass, d'Reegeldatei an d'Profilversioun an den Ticket. Déi véier Zeile maachen den nächsten Linux-Laptop zu enger kuerzer Korrektur amplaz enger widderholler Enquête.