Skip to content

feat(securedns): add systemd-resolved support to dns-selector#1388

Merged
RoyalOughtness merged 3 commits intosecureblue:stagingfrom
alexvojproc:unbound-p3
Sep 25, 2025
Merged

feat(securedns): add systemd-resolved support to dns-selector#1388
RoyalOughtness merged 3 commits intosecureblue:stagingfrom
alexvojproc:unbound-p3

Conversation

@alexvojproc
Copy link
Copy Markdown
Collaborator

Although Unbound works with more consistency than systemd-resolved, several VPNs have a hard dependency on it, so they consistently fail (see #1383). This PR allows users to switch between DNS resolvers in ujust dns-selector.

Changelog:

  • Add limited systemd-resolved support to ujust dns-selector, for resolver switching without exposing incompatible options.
    • resolved is typically only used when runtime VPN DNS configuration is needed, so global resolved configuration is not supported.
    • resolved does not support DNSSEC, so this is disabled.
  • Disable the NetworkManager VPN dispatcher when systemd-resolved is in use.
    • The dispatcher fixes many VPNs, but gives mixed results with some third-party clients.
    • Keeping the dispatcher means more VPNs work without resolved so can benefit from DNSSEC and extended hardening.
    • In future, the dispatcher may allow for use of per-connection DNS settings with a secure default profile.
  • Robustness: systemd service restarts are re-attempted, more sanity-checking and local testing.
  • Maintainability: Google-style docstrings, some refactoring.

Note: no changes have been made to the audit. ujust dns-selector status is backwards-compatible, so no changes were needed. Currently, with systemd-resolved enabled, it returns FAIL for missing DNSSEC.

Not included in this PR:

  • DNS integration testing? (see ujust dns-selector --help).
image

@alexvojproc alexvojproc marked this pull request as draft September 25, 2025 16:11
@alexvojproc alexvojproc marked this pull request as ready for review September 25, 2025 16:29
@RoyalOughtness RoyalOughtness merged commit 0917dec into secureblue:staging Sep 25, 2025
12 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants