Linux ನಲ್ಲಿ Azure VPN Client: DNS ಡೊಮೇನ್ಗಳನ್ನು ಸೆಟ್ ಮಾಡಲಾಗಲಿಲ್ಲ
ಟನಲ್ ಮೇಲೇರುತ್ತದೆ ಮತ್ತು ನಂತರ Linux ಕ್ಲೈಂಟ್ DNS ಡೊಮೇನ್ಗಳನ್ನು ಸೆಟ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. systemd-resolved ಪರಿಶೀಲಿಸಿ, D-Bus ಕರೆ ನೋಡಿ ಮತ್ತು polkit ಕ್ರಿಯೆ ಸರಿಪಡಿಸಿ.
ಟನಲ್ ಮೇಲೇರುತ್ತದೆ, ಪ್ರಮಾಣಪತ್ರ ಮಾನ್ಯವಾಗುತ್ತದೆ, ನಂತರ DNS ಸರ್ವರ್ ಅಥವಾ ಡೊಮೇನ್ಗಳನ್ನು ಸೆಟ್ ಮಾಡಲಾಗಲಿಲ್ಲ ಎಂದು ಸಂವಾದ ಹೇಳುತ್ತದೆ. Linux ನಲ್ಲಿ ಈ ಸಂವಾದ ಸಾಮಾನ್ಯವಾಗಿ ಗೇಟ್ವೇ ಬಗ್ಗೆ ಅಲ್ಲ: ಕ್ಲೈಂಟ್ ಹೆಸರು ಸಂರಚನೆಯನ್ನು D-Bus ಮೂಲಕ systemd-resolved ಗೆ ಒಪ್ಪಿಸುತ್ತದೆ, ಮತ್ತು ತಿರಸ್ಕೃತ ಒಪ್ಪಿಸುವಿಕೆ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಮೇಲೆ ಬಿಡುತ್ತದೆ, ರೆಸಲ್ಯೂಶನ್ ಇನ್ನೂ ಹಳೆಯ ಲಿಂಕ್ ಕಡೆಗೆ ತೋರಿಸುತ್ತಿದೆ. ಅದೇ ಲ್ಯಾಪ್ಟಾಪ್ ಪ್ರೊಫೈಲ್ಗೆ ಸಫಿಕ್ಸ್ ಸಿಗುವ ಮೊದಲು ಹೆಸರುಗಳನ್ನು ಸರಿಯಾಗಿ ರೆಸಾಲ್ವ್ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಇದೇ ಅನುಸರಿಸಲು ಯೋಗ್ಯವಾದ ಸುಳಿವು. ಸಂವಾದ ಕಾಣಿಸಿಕೊಂಡ ಕ್ಷಣದಲ್ಲಿ ಟನಲ್ನಲ್ಲಿ ಏನೂ ಬದಲಾಗಿರಲಿಲ್ಲ.
ಸಫಿಕ್ಸ್ ಇಲ್ಲದೆ ಕ್ಲೈಂಟ್ ಕೇವಲ ನೇಮ್ ಸರ್ವರ್ಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ. ಹುಡುಕಾಟ ಡೊಮೇನ್ ಸೇರಿಸಿ ಮತ್ತು ಎರಡನೇ ಕರೆ ಅದಕ್ಕೆ ಸೇರುತ್ತದೆ, SetLinkDomains, ತನ್ನದೇ ಅಧಿಕಾರ ಪರಿಶೀಲನೆಯೊಂದಿಗೆ, ಆದ್ದರಿಂದ ಅದೇ ಪ್ರೊಫೈಲ್ Windows ನಲ್ಲಿ ಕೆಲಸ ಮಾಡಿ ಇಲ್ಲಿ ವಿಫಲವಾಗುತ್ತದೆ. ಗೇಟ್ವೇ ಎರಡೂ ಸಂದರ್ಭಗಳಲ್ಲಿ ಅದೇ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ, ಮತ್ತು ಅವನ್ನು ನಿರಾಕರಿಸುವ ಘಟಕ ಸ್ಥಳೀಯವಾಗಿದೆ.
systemd-resolved ಹೇ ರೆಸಾಲ್ವರ್ ಎಂದು ಖಚಿತಪಡಿಸಿ
ಈ ಕ್ಲೈಂಟ್ systemd-resolved ಜೊತೆ ಮಾತ್ರ ಮಾತನಾಡುತ್ತದೆ, ಬೇರೆ ಯಾರೊಂದಿಗೂ ಅಲ್ಲ. Arch ಮತ್ತು ಇತರ ಹಲವು ವಿತರಣೆಗಳು ಅದನ್ನು ನಿಷ್ಕ್ರಿಯವಾಗಿ ನೀಡುತ್ತವೆ, ಮತ್ತು /etc/resolv.conf ಸಂಪೂರ್ಣವಾಗಿ ಬೇರೆ ರೆಸಾಲ್ವರ್ಗೆ ಸೇರಿರಬಹುದು, ಆದ್ದರಿಂದ ಅನುಮತಿಗಳನ್ನು ನೋಡುವ ಮೊದಲು ಮಾಲೀಕರನ್ನು ನಿರ್ಧರಿಸಿ.
ಮೂರು ಆದೇಶಗಳು ಇದನ್ನು ಸ್ಪಷ್ಟಪಡಿಸುತ್ತವೆ:
systemctl status systemd-resolved
ls -l /etc/resolv.conf
resolvectl status
ನೀವು ಸಕ್ರಿಯ ಸೇವೆ, /run/systemd/resolve/stub-resolv.conf ಕಡೆಗೆ ತೋರಿಸುವ ಸಿಂಬಾಲಿಕ್ ಲಿಂಕ್, ಮತ್ತು resolvectl ನಲ್ಲಿ ಪ್ರತಿ-ಲಿಂಕ್ DNS ಹುಡುಕುತ್ತಿದ್ದೀರಿ. ಮಾಲೀಕತ್ವ NetworkManager ಬಳಿ ಇದ್ದಾಗ, ಕ್ಲೈಂಟ್ ಜೊತೆ ಹೋರಾಡುವ ಬದಲು ಅದನ್ನು resolved ಗೆ ಸರಿಸಿ; ಕೆಳಗಿನ drop-in ಎರಡೂ ಕೀಗಳನ್ನು ಸೆಟ್ ಮಾಡುತ್ತದೆ:
[main]
dns=systemd-resolved
systemd-resolved=true
ಆ ಫೈಲ್ ಇದ್ದ ಕೂಡಲೇ NetworkManager ಅನ್ನು ಒಮ್ಮೆ ಮರುಪ್ರಾರಂಭಿಸಿ. ನಿಷ್ಕ್ರಿಯ ರೆಸಾಲ್ವರ್ ಮತ್ತು ಅದರ D-Bus ಹೆಸರನ್ನು ಕರೆಯುತ್ತಲೇ ಇರುವ ಕ್ಲೈಂಟ್ ಸೇರಿ ಎರಡರಲ್ಲಿ ಯಾವುದನ್ನೂ ಹೆಸರಿಸದ ದೋಷವನ್ನು ಉಂಟುಮಾಡುತ್ತವೆ.
ವಿಫಲವಾಗುವ D-Bus ಕರೆಯನ್ನು ನೋಡಿ
ಈ ಹಂತ ಸಂವಾದವನ್ನು ನಿರ್ದಿಷ್ಟ ಉತ್ತರವಾಗಿ ಬದಲಿಸುತ್ತದೆ. ಒಂದು ಟರ್ಮಿನಲ್ನಲ್ಲಿ ರೆಸಾಲ್ವರ್ ಇಂಟರ್ಫೇಸ್ ಮತ್ತು ಇನ್ನೊಂದರಲ್ಲಿ ಜರ್ನಲ್ ನೋಡಿ, ನಂತರ ಮತ್ತೆ ಸಂಪರ್ಕಿಸಿ:
sudo dbus-monitor --system "interface='org.freedesktop.resolve1.Manager'"
journalctl -fu systemd-resolved
ಮೂರು ಕರೆಗಳು ಕಾಣಬೇಕು: SetLinkDNS, SetLinkDomains ಮತ್ತು SetLinkDefaultRoute. ದೋಷದ ಉತ್ತರವಾಗಿ ಹಿಂತಿರುಗುವುದೇ ಸರಿಪಡಿಸಬೇಕಾದದ್ದು. ಆ ಉತ್ತರ ಸಾಮಾನ್ಯವಾಗಿ ತನ್ನ ಕಾರಣವನ್ನು ಹೇಳುತ್ತದೆ, ಉದಾಹರಣೆಗೆ org.freedesktop.DBus.Error.AccessDenied ವಿರುದ್ಧ SetLinkDomains. ಯಾವ ಕರೆ ಎಂದು ಬರೆದುಕೊಳ್ಳಿ, ಏಕೆಂದರೆ ಮುಂದಿನ ಭಾಗ ಆ ಕರೆಯನ್ನು ಹಾದುಹೋಗಲು ಬಿಡುವ ಬಗ್ಗೆ.
ಕ್ಲೈಂಟ್ಗೆ ಬೇಕಾದ polkit ಕ್ರಿಯೆಗಳನ್ನು ನೀಡಿ
ನಿಯಮ ಬರೆಯುವ ಮೊದಲು ನೀತಿ ಓದಿ. ಸೇವೆಯಾಗಿ ಚಲಿಸುವ ಕ್ಲೈಂಟ್ ಸಂವಾದಾತ್ಮಕ ಪ್ರಾಂಪ್ಟ್ಗೆ ಉತ್ತರಿಸಲಾರದು, ಆದ್ದರಿಂದ ಸೂಚ್ಯ auth_admin_keep ಒಂದು ಮುಚ್ಚಿದ ದಾರಿ.
pkaction --verbose --action-id org.freedesktop.resolve1.set-domains
pkaction --action-id org.freedesktop.resolve1.set-dns-servers --verbose
ಉತ್ತರ auth_admin_keep ಆಗಿದ್ದರೆ, ಕ್ಲೈಂಟ್ಗೆ ಸ್ಪಷ್ಟ ನಿಯಮ ಬೇಕು. ಕೆಳಗಿನ ಸ್ನಿಪೆಟ್ VPN ಕ್ಲೈಂಟ್ ಸಂಪರ್ಕದ ಸಮಯದಲ್ಲಿ ಬಳಸುವ ನಾಲ್ಕು resolve1 ಕ್ರಿಯೆಗಳಿಗೆ ಅನುಮತಿ ನೀಡುತ್ತದೆ ಮತ್ತು ಉಳಿದೆಲ್ಲವನ್ನೂ 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;
});
ಅದನ್ನು /etc/polkit-1/rules.d/ ನಲ್ಲಿ ನಂತರ ಗುರುತಿಸುವ ಫೈಲ್ ಆಗಿ ಇರಿಸಿ, ಉದಾಹರಣೆಗೆ 50-azurevpn.rules, ಮತ್ತು ಲಾಗ್ ಔಟ್ ಮಾಡಿ ಮತ್ತೆ ಲಾಗ್ ಇನ್ ಆಗುವ ಮೊದಲು ಸ್ನಿಪೆಟ್ನಲ್ಲಿನ ಗುಂಪಿನ ಹೆಸರನ್ನು ನಿಮ್ಮದಾಗಿ ಬದಲಿಸಿ. ಅದನ್ನು ಸಂಕುಚಿತವಾಗಿ ಇರಿಸಿ, ಏಕೆಂದರೆ ಪ್ರತಿ ಖಾತೆಗೆ ಪ್ರತಿ resolve1 ಕ್ರಿಯೆಗೆ ಅನುಮತಿ ನೀಡುವುದು ಈ ಕ್ಲೈಂಟ್ಗೆ ಬೇಕಾದುದಕ್ಕಿಂತ ವಿಶಾಲ ಮತ್ತು ನಂತರ ಆಡಿಟ್ ಮಾಡಲು ತುಂಬಾ ಕಷ್ಟ.
polkit ಸಂಪಾದಿಸುವ ಮೊದಲು ಪ್ರೊಫೈಲ್ XML ಪರಿಶೀಲಿಸಿ
ಕೈಯಿಂದ ಸಂಪಾದಿಸಿದ ಪ್ರೊಫೈಲ್ ಒಂದು ಮಾತೂ ಇಲ್ಲದೆ ನಿರ್ಲಕ್ಷಿಸಬಹುದು. Microsoft ಸಮತಟ್ಟಾದ ವಿನ್ಯಾಸವನ್ನು ದಾಖಲಿಸುತ್ತದೆ ಅದರಲ್ಲಿ dnsserver ನಮೂದುಗಳು ನೇರವಾಗಿ dnsservers ಒಳಗೆ ಇರುತ್ತವೆ ಮತ್ತು ಸಫಿಕ್ಸ್ಗಳು dnssuffixes ಒಳಗೆ. ಪ್ರತಿ ವಿಳಾಸದ ಸುತ್ತ ಹೆಚ್ಚುವರಿ ಸುತ್ತುವರಿಕೆ ಅಂಶ ಆ ಆಕಾರವಲ್ಲ, ಮತ್ತು ಕ್ಲೈಂಟ್ ಸದ್ದಿಲ್ಲದೆ ಗೇಟ್ವೇ ಕಳುಹಿಸುವುದಕ್ಕೆ ಮರಳುತ್ತದೆ.
polkit ಮುಟ್ಟುವ ಮೊದಲು ತೆಗೆದುಹಾಕುವ ಪರೀಕ್ಷೆ ಮಾಡಿ. ಸಫಿಕ್ಸ್ ಬ್ಲಾಕ್ ತೆಗೆಯಿರಿ, ಮತ್ತೆ ಸಂಪರ್ಕಿಸಿ ಮತ್ತು ಸಂವಾದ ಬದಲಾಗುತ್ತದೆಯೇ ನೋಡಿ. ಬದಲಾದರೆ, ವಿಫಲವಾದ ಕರೆ ಡೊಮೇನ್ ಒಪ್ಪಿಸುವಿಕೆ, ಮತ್ತು ಪರಿಹಾರ ಅಧಿಕಾರ, ಇನ್ನೊಂದು XML ಸಂಪಾದನೆ ಅಲ್ಲ.
ಟನಲ್ ಲಿಂಕ್ನಲ್ಲಿ ಡೊಮೇನ್ ಪರಿಶೀಲಿಸಿ
ಮತ್ತೆ ಸಂಪರ್ಕಿಸಿ ಮತ್ತು resolvectl status ಮತ್ತೆ ಓದಿ, ಟನಲ್ ಲಿಂಕ್ ನೇಮ್ ಸರ್ವರ್ ಮತ್ತು ಹುಡುಕಾಟ ಡೊಮೇನ್ ಒಟ್ಟಿಗೆ ಹೊತ್ತಿದೆಯೇ ಪರಿಶೀಲಿಸಿ. ಸಾರ್ವಜನಿಕ ಹೆಸರಿಗಿಂತ ಚಿಕ್ಕ ಖಾಸಗಿ ಹೆಸರು ರೆಸಾಲ್ವ್ ಮಾಡಿ. ಹೆಸರು ರೆಸಾಲ್ವ್ ಆದರೆ ಅದರ ಹಿಂದಿನ ಸೇವೆ ಉತ್ತರಿಸದಿದ್ದರೆ, DNS ಒಪ್ಪಿಸುವಿಕೆ ಕೆಲಸ ಮಾಡಿದೆ ಮತ್ತು ಉಳಿದ ಸಮಸ್ಯೆ ರೂಟಿಂಗ್.
ಟಿಕೆಟ್ನಲ್ಲಿ ರೆಸಾಲ್ವರ್ ಮಾಲೀಕ, ವಿಫಲ D-Bus ಕರೆ, ನಿಯಮ ಫೈಲ್ ಮತ್ತು ಪ್ರೊಫೈಲ್ ಆವೃತ್ತಿ ಬರೆಯಿರಿ. ಆ ನಾಲ್ಕು ಸಾಲುಗಳು ಮುಂದಿನ Linux ಲ್ಯಾಪ್ಟಾಪ್ ಅನ್ನು ಪುನರಾವರ್ತಿತ ತನಿಖೆಯ ಬದಲು ಚಿಕ್ಕ ಸರಿಪಡಿಸುವಿಕೆಯಾಗಿ ಮಾಡುತ್ತವೆ.