Skip to content

The child's iPhone and iPad

An iPhone or iPad needs two things: a WireGuard tunnel to home that’s always on, and the filter’s certificate, trusted for websites.

  • Supervised (with Apple Configurator, which erases the device first): filter/scripts/make-profile.py --wg <device>.conf --name "<device>" --supervised --no-home-check builds one locked profile with the certificate and the tunnel together.
  • Unsupervised: the certificate as a profile, and the tunnel in the WireGuard app, as in the steps below.
  1. The tunnel. Add a VPN client for the device in the Firewalla app, and import it into the WireGuard app. Edit the tunnel there: add , ::/0 to the peer’s Allowed IPs, so IPv6 doesn’t go around the filter, and turn on On-Demand for Wi-Fi and cellular.
  2. The certificate. Connected to WireGuard, open http://<Firewalla LAN address>:8091/ca.mobileconfig in Safari and allow the download.
  3. Settings ▸ Profile Downloaded ▸ Install. The device passcode is needed.
  4. Settings ▸ General ▸ About ▸ Certificate Trust Settings: turn on the filter’s certificate (shown as “mitmproxy”). Without this, iOS doesn’t trust it for websites.
  5. On the Firewalla, add the device to clients.txt, and to devices.txt as ios.
  6. Screen Time ▸ Content & Privacy: stop new VPN profiles being added.

On the device, a blocked site shows the filter’s page:

The filter’s block page on a blocked site

In either Family Filter app, the device shows under Devices, with its tunnel traffic:

Family Filter for iPhone’s Controls tab, listing each device with Switch off

Source: filter/README.md