Azure VPN Client Linux-en: ezin izan dira DNS domeinuak ezarri
Tunela altxatzen da eta gero Linux bezeroak ezin ditu DNS domeinuak ezarri. Egiazta ezazu systemd-resolved, begiratu D-Bus deiari eta konpondu polkit ekintza.
Tunela altxatzen da, ziurtagiria baliozkotzen da eta gero elkarrizketa-koadro batek dio ezin izan dela DNS zerbitzaria edo domeinuak ezarri. Linux-en elkarrizketa horrek normalean ez du atea hizpide: bezeroak izen-konfigurazioa systemd-resolved-i ematen dio D-Bus bidez, eta ukatutako entrega batek interfazea altxatuta uzten du, bereizmena oraindik esteka zaharrean seinalatuta. Ordenagailu eramangarri berak izenak ondo ebazten ditu profilek atzizki bat lortu baino lehen, eta hori da jarraitzeko mereziko duen arrastoa. Tunelari buruz ezer ez zen aldatu elkarrizketa agertu zen unean.
Atzizkirik gabe bezeroak izen-zerbitzariak baino ez ditu bultzatzen. Gehitu bilaketa-domeinu bat eta bigarren dei bat hurbiltzen zaio, SetLinkDomains, bere autorizazio-egiaztapenarekin, horregatik profile berak Windows-en funtzionatzen du eta hemen huts egiten du. Ateak bietan parametro berak bultzatzen ditu, eta ukatzen dituen osagaia tokikoa da.
Berretsi systemd-resolved dela ebazlea
Bezero hau systemd-resolved-rekin mintzatzen da eta beste inorekin ez. Archek eta beste hainbat banaketak desgaituta ematen dute, eta /etc/resolv.conf erabat beste ebazle bati dagokio, beraz zehaztu jabea baimenak begiratu aurretik.
Hiru komandok argitzen dute:
systemctl status systemd-resolved
ls -l /etc/resolv.conf
resolvectl status
Zerbitzu aktiboa bilatzen ari zara, hau helburu duen esteka sinbolikoa: /run/systemd/resolve/stub-resolv.conf, eta esteka bakoitzeko DNS resolvectl erabiliz. NetworkManager-ek jabetza duenean, eraman resolved-era bezeroarekin borrokatu beharrean; beheko drop-in fitxategiak bi gakoak ezartzen ditu:
[main]
dns=systemd-resolved
systemd-resolved=true
Hasi berriro NetworkManager fitxategi hori existitzen denean. Ebazle ez-aktibo batek eta haren D-Bus izena etengabe deitzen duen bezero batek elkarrekin, inor izendatzen ez duen errore bat sortzen dute.
Begiratu huts egiten duen D-Bus deia
Urrats honek elkarrizketa erantzun zehatz bihurtzen du. Begiratu ebazlearen interfazea terminal batean eta erregistroa bestean, eta gero berriro konektatu:
sudo dbus-monitor --system "interface='org.freedesktop.resolve1.Manager'"
journalctl -fu systemd-resolved
Hiru dei agertu beharko lirateke: SetLinkDNS, SetLinkDomains eta SetLinkDefaultRoute. Errore-erantzun gisa itzultzen dena da konpontzekoa. Erantzun horrek bere arrazoia izendatzen du normalean, adibidez org.freedesktop.DBus.Error.AccessDenied aurka SetLinkDomains. Idatzi zein dei zen, hurrengo atalak dei horri pasatzen uzteari buruz hitz egiten baitu.
Eman bezeroak behar dituen polkit ekintzak
Irakurri politika araua idatzi aurretik. Zerbitzu gisa exekutatzen den bezero batek ezin dio elkarrizketa-galderari erantzun, beraz inplizituki auth_admin_keep bide itsua da.
pkaction --verbose --action-id org.freedesktop.resolve1.set-domains
pkaction --action-id org.freedesktop.resolve1.set-dns-servers --verbose
Erantzuna auth_admin_keep bada, bezeroak arau esplizitua behar du. Beheko zatitxoak VPN bezero batek konexioan erabiltzen dituen lau resolve1 ekintzak uzten ditu eta beste guztia polkit.Result.NOT_HANDLED mailan uzten du:
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;
});
Jarri /etc/polkit-1/rules.d/ karpetan geroago ezagutuko duzun fitxategi gisa, adibidez 50-azurevpn.rules, eta ordezkatu zatitxoko talde-izena zurearekin saioa itxi eta berriro sartu aurretik. Mantendu estua, kontu bakoitzeko resolve1 ekintza guztiak baimentzea bezero honek behar duena baino zabalagoa baita eta gero askoz zailagoa ikuskatzeko.
Egiaztatu profilaren XML-a polkit editatu aurretik
Eskuz editatutako profila hitzik gabe baztertu daiteke. Microsoft-ek diseinu laua dokumentatzen du non dnsserver sarrerak zuzenean dnsservers barruan dauden eta atzizkiak dnssuffixes barruan. Helbide bakoitzaren inguruko bilgailu-elementu gehigarri bat ez da forma hori, eta bezeroa isilik erortzen da atea bultzatzen duenera.
Egin ezabatze-proba polkiti heldu aurretik. Kendu atzizki-blokea, berriro konektatu eta begiratu elkarrizketa aldatzen den. Aldatzen bada, huts egin zuen deia domeinuaren entrega zen, eta konponbidea autorizazioa da, ez beste XML edizio bat.
Egiaztatu domeinua tuneleko estekan
Berriro konektatu eta irakurri resolvectl status berriro, tuneleko estekak izen-zerbitzaria eta bilaketa-domeinua elkarrekin daramatzala egiaztatuz. Ebatz ezazu izen pribatu labur bat publiko bat beharrean. Izena ebazten denean baina atzean duen zerbitzuak erantzuten ez duenean, DNS entrega funtzionatu du eta gainerako arazoa bideratzea da.
Idatzi txartelean ebazlearen jabea, huts egin zuen D-Bus deia, arau-fitxategia eta profilaren bertsioa. Lau lerro horiek hurrengo Linux eramangarria konponketa labur bihurtzen dute, ikerketa errepikatu beharrean.