Before you start
- Finish the relevant device setup in Guardrails.
- Choose one filtering resolver or filtering service. Do not mix random DNS providers.
- Identify who controls admin, root, router, or owner access.
- Take screenshots of current network settings before changing them.
- Test after each change, not only at the end.
Pick a family-safe DNS resolver
DNS filtering is not a complete blocker, but it is a useful layer. Set the same resolver on the router and on portable devices where possible.
| Provider | Use when | Addresses or hostname | Notes |
|---|---|---|---|
| OpenDNS FamilyShield | You want a simple adult-content DNS filter with no account setup. | 208.67.222.123208.67.220.123 |
Use these FamilyShield addresses, not the regular OpenDNS addresses. |
| CleanBrowsing Family Filter | You want adult-content blocking, SafeSearch enforcement, and mobile Private DNS support. | 185.228.168.168185.228.169.168family-filter-dns.cleanbrowsing.org |
Good for Android Private DNS and router setup. Paid plans add account control. |
| Cloudflare 1.1.1.1 for Families | You want a fast DNS filter for malware plus adult content. | 1.1.1.31.0.0.3 |
Simple network-level layer. Not a full accountability or app-control tool. |
| NextDNS / AdGuard DNS / CleanBrowsing paid | You want dashboards, allowlists, blocklists, schedules, logs, and device profiles. | Use the provider's assigned DNS, DoH, DoT, or configuration profile. | Have the trusted person own the account if this is self-lockout. |
iPhone, iPad, and Mac DNS friction
Manual Wi-Fi DNS is easy and useful, but it only covers that Wi-Fi network. A configuration profile, MDM, or router-level filter is stronger.
Set DNS manually on iPhone or iPad Wi-Fi
- Open Settings -> Wi-Fi.
- Tap the blue i next to the connected network.
- Tap Configure DNS.
- Choose Manual.
- Remove existing servers you do not want used.
- Tap Add Server.
- Enter your chosen resolver, such as
208.67.222.123and208.67.220.123for OpenDNS FamilyShield. - Tap Save.
- Repeat on each Wi-Fi network you use often.
- Test on Wi-Fi, then test on cellular data. Cellular data will not use the Wi-Fi DNS setting.
Use a stronger Apple DNS profile
- Choose a DNS provider that offers an iOS, iPadOS, or macOS profile.
- Install the provider's DNS profile while the trusted person is present.
- Check Settings -> General -> VPN & Device Management on iPhone or iPad.
- On Mac, check System Settings -> Privacy & Security -> Profiles if your macOS version shows Profiles there.
- Block account and passcode changes in Screen Time so profile removal is less casual.
- Use supervised device management or MDM if you need a profile the daily user cannot remove alone.
For a normal personal device, profiles are friction. For stronger control, supervision or MDM is the more serious Apple path.
Set DNS manually on Mac
- Open System Settings -> Network.
- Select Wi-Fi or Ethernet.
- Click Details.
- Open DNS.
- Add your chosen DNS servers.
- Remove DNS servers you do not want used.
- Click OK or Done.
- Open Terminal and run
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder. - Test Safari and every other installed browser.
Android Private DNS friction
Private DNS can cover both Wi-Fi and mobile data on many Android devices. Menu names vary by manufacturer.
Set a Private DNS hostname
- Open Settings.
- Open Network & internet. On Samsung, check Connections -> More connection settings.
- Tap Private DNS.
- Choose Private DNS provider hostname.
- Enter a family-safe hostname, such as
family-filter-dns.cleanbrowsing.org. - Tap Save.
- Test on Wi-Fi.
- Turn Wi-Fi off and test on mobile data.
- Keep Family Link app-install approval turned on so another DNS or VPN app cannot be casually installed.
Close Android bypasses
- Uninstall extra browsers, VPNs, proxy apps, and alternate app stores.
- Disable developer options if they are on.
- Keep the parent Google Account off the managed phone.
- Block new app installs through Family Link or the Play Store approval flow.
- If the phone is rooted, treat local controls as weak. Move enforcement to the router, DNS account, and trusted person.
Chromebook / ChromeOS friction
On personal Chromebooks, the owner account controls guest browsing and sign-in rules. For high-control environments, use managed ChromeOS policies.
Personal Chromebook hardening
- Finish the Chromebook steps in Guardrails.
- Make sure Guest browsing is off.
- Make sure sign-in is restricted to the approved accounts.
- Use Family Link to set Chrome to Try to block explicit sites or Only allow approved sites.
- Review extensions and remove anything that acts as a proxy, VPN, alternate browser, or remote desktop client.
- Test by restarting the Chromebook and checking the login screen.
Managed ChromeOS path
- Use a managed ChromeOS environment when the personal owner model is not enough.
- In the admin console, restrict guest mode and restrict which accounts can sign in.
- Use URL blocklists or allowlists for Chrome.
- Block unapproved extensions, VPN extensions, proxy extensions, and developer-mode workarounds.
- Have the trusted person or organization own the admin account.
Windows friction
The important Windows split is standard user for daily use, separate administrator for changes, and policy where the edition supports it.
Set family-safe DNS on Windows 11
- Sign in with an administrator account for setup.
- Open Settings -> Network & Internet.
- Open your active Wi-Fi or Ethernet connection.
- Find DNS server assignment and click Edit.
- Choose Manual.
- Turn on IPv4.
- Enter the preferred and alternate DNS servers.
- Save.
- Open Command Prompt and run
ipconfig /flushdns. - Sign into the standard daily account and test.
Add hosts-file blocking
- Sign in as administrator.
- Open Notepad as administrator.
- Open
C:\Windows\System32\drivers\etc\hosts. Change the file picker from text files to all files if you do not see it. - Add one blocked domain per line.
- Save the file.
- Run
ipconfig /flushdns. - Test from the standard daily account.
0.0.0.0 example.com
0.0.0.0 www.example.com
Hosts-file blocking is brittle. It does not cover every subdomain, app, cached connection, VPN, or DNS-over-HTTPS path. Use it as a supplement.
Protect the hosts file from the daily user
- Right-click
C:\Windows\System32\drivers\etc\hosts. - Open Properties -> Security -> Advanced.
- Confirm the daily account is a standard user.
- Remove write access for the daily account and ordinary users.
- Leave write access only for administrators.
- Keep the administrator password with the trusted person if you are using lockout.
- Sign into the daily account and confirm the file cannot be edited.
Disable browser secure-DNS bypasses with policy
DNS filters can be bypassed when a browser uses its own DNS-over-HTTPS resolver. Managed browser policy is cleaner than telling the user to leave a setting alone.
- Install Microsoft Edge and Google Chrome policy templates if you use Group Policy.
- Set Edge policy
DnsOverHttpsModetooff. - Set Chrome policy
DnsOverHttpsModetooff. - For Firefox, deploy an enterprise
policies.jsonfile that disables and locks DNS-over-HTTPS. - Also use
URLBlocklistandURLAllowlistpolicies if you need browser-level allowlisting. - Restart the browser and check its policy page:
edge://policy,chrome://policy, orabout:policies.
{
"policies": {
"DNSOverHTTPS": {
"Enabled": false,
"Locked": true
}
}
}
Use AppLocker or WDAC for stronger app control
- Use this only on supported Windows editions and only if you know how to recover from a bad rule.
- Create rules in audit mode first.
- Block portable browsers, unknown EXE paths, user-writable app folders, VPN clients, proxy tools, and installer folders.
- Allow only required browsers and work apps.
- Switch from audit to enforce only after reviewing logs.
- Keep the policy-changing administrator account outside the daily user's control.
A bad application-control rule can lock you out of legitimate software. Test with a recovery admin account.
Mac friction
Use the Mac as a standard user for daily work. Keep admin credentials and Screen Time recovery away from the person who is trying not to bypass.
Add hosts-file blocking on Mac
- Sign into the admin account.
- Open Terminal.
- Run
sudo nano /etc/hosts. - Add blocked domains mapped to
0.0.0.0. - Save, then run
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder. - Use a standard account for daily work.
- Test from that standard account.
0.0.0.0 example.com
0.0.0.0 www.example.com
Use profiles, MDM, or browser policy
- Use Screen Time from Guardrails as the base layer.
- Use a DNS configuration profile from your filtering provider for a stronger DNS layer.
- Use MDM if you need to enforce profiles, browser settings, or app restrictions.
- Deploy Chrome, Edge, or Firefox policy files to disable browser DoH and enforce blocklists.
- Keep the MDM admin, local admin, or profile removal path with the trusted person.
Linux friction
Linux can be hardened, but only if daily use does not include root or sudo. If the daily user has sudo, they can usually undo the block.
Use a non-sudo daily account
- Create a daily user that is not in
sudo,wheel, or another admin group. - Keep the root or admin password with the trusted person.
- Use the daily user for browsing and normal work.
- Do not leave an unlocked admin shell, SSH key, password manager, or recovery note available to the daily user.
Set DNS with NetworkManager
- Open a terminal as an admin user.
- Run
nmcli connection showand note the active connection name. - Replace
CONNECTION_NAMEbelow with the exact connection name. - Bring the connection back up.
- Test with the daily user.
sudo nmcli connection modify "CONNECTION_NAME" ipv4.dns "185.228.168.168 185.228.169.168" ipv4.ignore-auto-dns yes
sudo nmcli connection up "CONNECTION_NAME"
Use hosts-file blocking and make it harder to edit
- As admin, edit
/etc/hosts. - Add blocked domains mapped to
0.0.0.0. - Set the owner to
root:root. - Set permissions to
0644. - If the filesystem supports it, make the file immutable after you finish.
- Do not give the daily user the root password or sudo access.
sudo nano /etc/hosts
sudo chown root:root /etc/hosts
sudo chmod 0644 /etc/hosts
sudo chattr +i /etc/hosts
Immutable files are a maintenance headache. Record the setup for the trusted person, not for the daily user.
Block direct DNS and DNS-over-TLS with a firewall
Router enforcement is better, but a local firewall can add friction. Adapt this pattern carefully and test on a local machine, not over SSH.
# Example concept only: allow your chosen DNS, reject other DNS and DoT.
# Adapt for nftables, ufw, firewalld, or your router firewall.
# DNS: TCP/UDP 53. DNS-over-TLS: TCP 853.
- Allow DNS to your chosen resolver.
- Reject or drop outbound TCP and UDP port
53to other addresses. - Reject outbound TCP port
853unless you intentionally use DoT to your chosen resolver. - Address IPv6 too, or disable IPv6 only if you understand the side effects.
- Test browser DNS, package manager DNS, VPN clients, and reboot behavior.
Deploy browser policy on Linux
- For Chrome, put managed policy JSON under
/etc/opt/chrome/policies/managed/. - For Chromium, check
/etc/chromium/policies/managed/. - For Firefox, use the distribution or enterprise policy path used by your distro.
- Disable DNS-over-HTTPS and use URL blocklists or allowlists.
- Open
chrome://policyorabout:policiesto confirm the policy loaded.
{
"DnsOverHttpsMode": "off",
"URLBlocklist": ["*://*.example.com/*"]
}
Router / gateway friction
The router is the best place to make the whole home network follow one rule. It will not cover mobile data or another Wi-Fi network.
Set DNS on the router
- Connect to the home network.
- Open the router admin page. Common addresses are
192.168.0.1,192.168.1.1, and10.0.0.1. - Log in as router admin.
- Find Internet, WAN, DHCP, LAN, or DNS settings.
- Set primary and secondary DNS to the chosen family-safe resolver.
- Set IPv6 DNS too if the router and ISP use IPv6.
- Save and reboot if required.
- Forget and rejoin Wi-Fi on a test device, or renew DHCP.
- Test a blocked site.
Block DNS bypass at the router
- Change the router admin password.
- Give that password to the trusted person if this is self-lockout.
- Block or redirect outbound DNS on TCP and UDP port
53to anything except your chosen resolver. - Block outbound DNS-over-TLS on TCP port
853unless it goes to your chosen resolver. - Apply the same rule to IPv6 or clients may bypass over IPv6.
- Apply the rules to guest networks too.
- Disable router features that let clients choose their own DNS if available.
- Test from a normal client, a guest-network client, and a device with a hardcoded DNS server.
DNS-over-HTTPS uses normal HTTPS traffic on port 443, so router DNS rules alone do not reliably catch it. Use browser policy, managed devices, or a filtering service profile for that gap.
Use Pi-hole, AdGuard Home, or NextDNS
- Choose where filtering will live: a local device like Pi-hole or AdGuard Home, or a cloud service like NextDNS.
- Point router DHCP DNS to that filter.
- Set upstream DNS on the filter to your chosen family-safe resolver or the provider's recommended upstream.
- Use blocklists for categories you actually need. Too many lists create breakage and alert fatigue.
- Use an allowlist for important sites that break.
- Have the trusted person own the admin password or provider account.
- Test logs only if you are comfortable with the privacy tradeoff.
Router checklist
- Router admin password is not known to the daily user.
- Primary and secondary DNS are both family-safe.
- IPv6 DNS is handled.
- Guest network is disabled or filtered.
- Outbound DNS to other resolvers is blocked or redirected.
- DoT on port 853 is blocked or forced to the chosen resolver.
- Mobile data and hotspots are handled separately.
Privacy and logging
Filtering tools can create sensitive logs. DNS dashboards, router logs, accountability apps, parental-control reports, and browser-management tools may reveal searches, domains, app usage, or attempted bypasses.
- Use the least invasive tool that still works.
- Prefer trusted-person control of recovery over constant monitoring when that is enough.
- Decide in advance what the trusted person can see, what they should ignore, and what should trigger a conversation.
- Protect the trusted person’s dashboard with strong authentication.
- Review logging after major setup changes, new DNS providers, new routers, or new accountability tools.
When to move from Friction to Lockout
- You keep changing the settings back.
- You know the admin, root, owner, router, or DNS-dashboard password.
- You can install a new browser, VPN, profile, or app store without approval.
- You can reset the device or account and regain control alone.
Technical references
OpenDNS FamilyShield
FamilyShield router and DNS setup, including the adult-content resolver addresses.
CleanBrowsing filters
Family Filter DNS addresses, Private DNS hostname, DoH, DoT, and SafeSearch behavior.
Cloudflare for Families
Cloudflare's malware and adult-content DNS resolver addresses.
Microsoft Edge DoH policy
Policy control for disabling or managing DNS-over-HTTPS in Edge.
Chrome DoH policy
Managed policy for Chrome DNS-over-HTTPS behavior.
Firefox enterprise policies
Firefox policy templates, including DNS-over-HTTPS and website restrictions.
Pi-hole documentation
Network-wide DNS sinkhole documentation for local filtering.
Apple web content filter payloads
Apple managed-device web content filter payload reference.
Advanced friction pages
More guides
Use these when you need a checklist, a specific bypass closed, or a clearer handoff plan.
Test your setup
Browser, DNS, mobile data, recovery, and reset-path tests.
Setup recipes
Direct paths for phones, laptops, technical users, and whole-home setups.
Recovery audit
Find passwords, backup codes, router logins, and reset paths.
Browser policy
Chrome, Edge, and Firefox policy examples.
Mobile data
Close cellular, Private DNS, VPN, and hotspot gaps.
Apps and platforms
Search, YouTube, social apps, app stores, TVs, and in-app browsers.
Router recipes
DNS enforcement, guest networks, IPv6, Pi-hole, and AdGuard Home.
Urge plan
What to do before trying to bypass.
Trusted handoff worksheet
Printable inventory for passcodes, recovery paths, and refusal rules.
Glossary
Plain-language definitions for DNS, DoH, VPNs, MDM, recovery keys, and more.