Account with parental controls enabled breaks proxy use

apachehttpmojaveNetworkPROXY

I have a MacBook Air running Mojave (10.14.2). My router is running a proxy using Squid that works fine on the Mac's administrator account and a user account. When the user account has Parental Controls enabled the proxy fails and no sites are reachable.

This is a known problem first reported in 2008 where Parental Controls runs the httpsproxyd daemon which interferes with external proxy operation. The solution was to either disable httpsproxyd or httpd, as described here.

  1. MacWorld's MacOS X Hints
    • Summary: Run "sudo chmod a-x /usr/sbin/httpd"
    • Result on my machine: Error "chmod: Unable to change file mode on /usr/bin/httpd: Operation not permitted"
  2. Apple discussion forum
    • Summary: Run "sudo chmod a-x /System/Library/PrivateFrameworks/FamilyControls.framework/Versions/A/Resources /httpsproxyd"
    • Result on my machine: File "httpsproxyd" does not exist in that location or anywhere else.

As both these approaches fail I'm looking for any other approaches to resolving this conflict where an account with Parental Controls enabled has issues using a proxy.

A related issue regarding how the Parental Controls interfere with HTTP/HTTPS traffic was also asked here earlier in 2017 but was unanswered. I'm including the link as it may provide additional details relating to this problem.

Best Answer

I've found a solution for this problem. Running proxy software on the Mac will override Apple's built-in proxy used for parental controls. In this case I used squid via the SquidMan package as follows:

  1. Install the SquidMan package to the administrator account. Ensure SquidMan is configured to run at startup.
  2. In SquidMan's preferences enable use of a parental control proxy, and point it to your router that is running squid (at 192.x.x.x, port 3128).
  3. In the controlled account configure the browser to use a proxy and point it to the one created by SquidMan (at localhost, port 8080)

In this way Internet access from the controlled account will be routed through SquidMan to the specified proxy coming from the router.

One caveat of bypassing the Apple proxy is that the Parental Controls will no longer keep a history of visited websites. However you can configure Squid on your router to keep access logs that provide much more information than Apple's parental controls are capable of.