I have a security app that filters DNS traffic via a NEPacketTunnelProvider extension, blocking access to dangerous domains (malware, phishing etc). The DNS requests are sent to a DNS server that will resolve only the safe domains.
With Private Relay ON I still have access in the extension to all the DNS queries, but unfortunately, the user can still access those domains on the device, although DNS resolutions are blocked in the extension for specific domains. This happens only when Private Relay is ON, so practically the web browsing protection does not work anymore.
With Private Relay ON, I noticed DNS requests for mask.apple-dns.net domain resolved by the my DNS server. How is this supposed to work?
-
Are other DNS requests sent to mask.apple-dns.net and not caught by our network extension? Is that supposed to happen?
-
a. Would a NXDOMAIN response for mask.apple-dns.net fix this behaviour and allow the app to offer protection while Private Relay ON?
-
b. Will any alert be displayed to the user in that case?
-
Do you have any other suggestions?
-
Could you clarify the behaviour for a NEPacketTunnelProvider extension processing only DNS requests?
I would have expected for the DNS name resolution queries to be processed only through the network extension.
An excerpt from "Get ready for iCloud Private Relay" says: “Similarly, if your app provides a network extension to add VPN or app-proxying capabilities, your extension won't use Private Relay and neither will app traffic that uses your extension.” “When a VPN configuration is active, connections use the VPN instead of iCloud Private Relay. Network Extension providers also don’t use iCloud Private Relay.”
I have also asked for help via Feedback Assistant (FB9623058).
I think I haven’t mentioned that I’m referring to an iOS app and, unfortunately, the doc mentions that NEDNSProxyProvider is available only for iOS supervised devices only.
What alternatives would there be for non-supervised devices?
DNS proxy providers are supported … on iOS supervised devices only.
https://developer.apple.com/documentation/networkextension/dns_proxy_provider